Compare commits

..
Author SHA1 Message Date
Laurent Cozic 831a0480c9 doc 2023-09-18 12:51:21 +01:00
Laurent Cozic fc8e54319d refactor 2023-09-17 19:16:17 +01:00
Laurent Cozic eb24e5328d update 2023-09-17 19:12:37 +01:00
Laurent Cozic aacec5ad84 support for note.tags 2023-09-17 18:33:21 +01:00
Laurent Cozic 0a61fc6d1a Merge branch 'dev' into note_list_plugin 2023-09-17 18:09:50 +01:00
Laurent Cozic 40ddb80173 Update plugin types 2023-09-17 18:09:08 +01:00
Laurent Cozic 4908bcf226 Merge branch 'dev' into note_list_plugin 2023-09-17 18:08:13 +01:00
Laurent Cozic 510caa77cc Desktop: Remove potentially slow methods from imaging plugin API 2023-09-17 18:07:24 +01:00
Laurent Cozic da9b36df77 speed up thumb rendering 2023-09-17 18:04:53 +01:00
Laurent Cozic 0228da1131 fix ts 2023-09-17 17:59:00 +01:00
Laurent Cozic 829b0b60f2 comments 2023-09-17 17:56:21 +01:00
Laurent Cozic 79b79d68fd refactor note item 2023-09-17 17:52:31 +01:00
Laurent Cozic 6d72166eb3 update 2023-09-17 15:14:40 +01:00
Laurent Cozic b14c85771c Merge branch 'dev' into note_list_plugin 2023-09-17 14:11:08 +01:00
Laurent Cozic 3b4717b674 Desktop: Added more methods to the imaging plugin API 2023-09-17 14:08:55 +01:00
Laurent Cozic 073fd5f9fa update 2023-09-17 13:17:28 +01:00
Laurent Cozic f4490ef3ed plugin types 2023-09-17 13:15:37 +01:00
Laurent Cozic 517788a6c6 Merge branch 'dev' into note_list_plugin 2023-09-17 11:48:03 +01:00
Laurent Cozic 3d8c96489f Desktop: Add support for plugin imaging API (#8900) 2023-09-17 11:40:50 +01:00
Laurent Cozic 96b2929846 Delete packages/app-cli/tests/support/updateTypes.sh 2023-09-17 10:14:15 +01:00
Laurent Cozic eb1915e495 demo plugin 2023-09-17 10:11:33 +01:00
Henry Heino 8324af5682 Desktop: Fixes #8743: Fix escapes breaking linkified URLs (#8873) 2023-09-17 08:35:40 +01:00
CptMeetKat fed623e3a4 Desktop: Fixes #6440: Enable translation for "Reveal file in folder" command (#8852) 2023-09-17 08:35:12 +01:00
CptMeetKat a4658f0416 Desktop: Fixes #8194: Remove dead area at the end of the note list (#8825) 2023-09-17 08:27:42 +01:00
Laurent Cozic 1ad83d65ab Tools: Exclude styled-components from Renovate updates 2023-09-17 08:20:35 +01:00
renovate[bot] fa95f5ce4d Update dependency @types/node to v18.17.12 (#8896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-17 06:57:17 +00:00
Laurent Cozic 966d3a0535 update 2023-09-16 18:24:33 +01:00
Laurent Cozic dd2212b559 udpate plugins 2023-09-16 18:01:24 +01:00
Laurent Cozic 46a04bf5e7 Merge branch 'dev' into note_list_plugin 2023-09-16 12:08:23 +01:00
Laurent Cozic 087490500b Chore: Update plugin demo types 2023-09-16 12:08:02 +01:00
Laurent Cozic 20f46c75c4 Tools: Make it easier to update plugin demo types 2023-09-16 12:08:01 +01:00
github-actions[bot] 3e58aefbbe @oj-lappi has signed the CLA in laurent22/joplin#8890 2023-09-16 10:50:01 +00:00
qx100 52f864d0a8 All: Translation: Update zh_CN.po (#8884) 2023-09-16 11:15:07 +01:00
Laurent Cozic 6034c0ba25 update 2023-09-16 10:34:20 +01:00
Laurent Cozic 99cf53e971 Merge branch 'dev' into note_list_plugin 2023-09-16 09:35:15 +01:00
Laurent Cozic 1a4418ab70 support multiple renderer in menu 2023-09-16 09:12:27 +01:00
renovate[bot] da2049d918 Update dependency react-native-modal-datetime-picker to v17 (#8885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 23:35:34 +01:00
Laurent Cozic cdece235ab init 2023-09-15 12:22:08 +01:00
Laurent Cozic ddc83ec153 Desktop: Regression: Fixes #8877: After a note is decrypted, the note list is not updated 2023-09-15 11:32:06 +01:00
Laurent Cozic dc8a095e47 Chore: Fixed server debug tools 2023-09-15 11:32:06 +01:00
Joplin Bot 05a4c05236 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-15 00:38:40 +00:00
Laurent Cozic 2cb3857fbe Desktop: Indent sub-sections in config screen 2023-09-14 22:54:11 +01:00
Laurent Cozic 47f297a34e Tools: Fixes #8863: Disable generation of blockmap and mac.zip files during release 2023-09-14 22:22:35 +01:00
renovate[bot] b7f7539923 Update dependency react-native-modal-datetime-picker to v16 (#8878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 18:36:40 +01:00
Joplin Bot 6fcd2cd2eb Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-14 12:20:04 +00:00
Laurent Cozic 3f00d8bb1b iOS: Fixes #2153: Fix sync issue with Stackstorage 2023-09-14 12:47:25 +01:00
Laurent Cozic 2b79926ff5 lock file 2023-09-14 12:24:49 +01:00
Laurent Cozic 0eeec7f300 Doc: Fixes #8812: All news are published 8 may 23 2023-09-14 12:07:07 +01:00
renovate[bot] 9c972618b6 Update jest monorepo (#8835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 06:52:06 +00:00
renovate[bot] d6ca63c9ac Update dependency @types/node to v18.17.11 (#8858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 04:29:24 +00:00
renovate[bot] ba197bedeb Update dependency @testing-library/react-native to v12.2.2 (#8871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 00:08:31 +00:00
Laurent Cozic 15edd351a1 Tools: Linkify GitHub links 2023-09-13 20:37:14 +01:00
Jonatan 74ae9740b6 Update Swedish translation (#8836) 2023-09-13 20:09:57 +01:00
renovate[bot] 0edca93dfc Update dependency @testing-library/react-native to v12.2.0 (#8867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 20:08:58 +01:00
renovate[bot] a15daf6bc2 Update dependency react-native-share to v9.2.3 (#8868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 20:08:45 +01:00
renovate[bot] ca342a7ba7 Update dependency @electron/notarize to v2.1.0 (#8866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 20:08:31 +01:00
Joplin Bot fb8527a4cc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-13 18:32:20 +00:00
Laurent Cozic 97b0f4c8de Fix ts issues 2023-09-13 19:19:31 +01:00
Laurent Cozic 1fd11588db Doc: Auto-publish pre-release info to forum 2023-09-13 19:01:59 +01:00
renovate[bot] cfc2a29df6 Update dependency eslint-plugin-react to v7.33.2 (#8834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 15:59:02 +01:00
renovate[bot] a9d83275ee Update dependency react-native-share to v9 (#8855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 15:27:05 +01:00
renovate[bot] 57c4725795 Update dependency @electron/notarize to v2 (#8862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 15:26:45 +01:00
Joplin Bot e802568875 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-13 12:22:31 +00:00
Laurent Cozic cfea26d6d0 Desktop release v2.13.1 2023-09-13 09:44:19 +01:00
Laurent Cozic 612223164e Prepare release 2.13 2023-09-13 09:44:04 +01:00
renovate[bot] 45b8bf7207 Update Yarn to v3.6.3 (#8860)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 03:39:34 +00:00
renovate[bot] 2ab4e891ef Update dependency @react-native-community/datetimepicker to v7.4.2 (#8857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 00:27:47 +00:00
Laurent Cozic fec021aa5d Tools: Remove now unnecessary checkLibPaths from commit hook 2023-09-12 21:37:39 +01:00
Laurent Cozic b9f36705ff Desktop: Fixes #8844: Hide option to share a notebook when it is not available 2023-09-12 19:20:12 +01:00
renovate[bot] efd7cc7a6b Update dependency eslint-plugin-import to v2.28.1 (#8830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 15:23:59 +00:00
renovate[bot] ae9a09ff65 Update dependency @types/react-redux to v7.1.26 (#8849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 13:50:45 +00:00
renovate[bot] 839e87de81 Update dependency @types/react to v18.2.21 (#8846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 10:05:42 +00:00
renovate[bot] e943b84d91 Update dependency @types/node to v18.17.8 (#8833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 08:47:36 +00:00
renovate[bot] 5e1031a482 Update dependency @types/jsdom to v21.1.2 (#8842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 03:57:10 +00:00
Joplin Bot 047c6ae61c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-12 00:36:36 +00:00
Laurent Cozic 2067889a01 Merge branch 'release-2.12-mobile' into dev 2023-09-11 22:38:50 +01:00
Laurent Cozic 175a1b7a64 iOS 12.12.3 2023-09-11 21:05:41 +01:00
Laurent Cozic d5a60ba2d7 Android 2.12.3 2023-09-11 21:03:57 +01:00
Laurent Cozic 14957b1a0d Merge branch 'release-2.12' into dev 2023-09-11 20:51:40 +01:00
Laurent Cozic 9666ea6648 Desktop release v2.12.16 2023-09-11 20:49:17 +01:00
Henry Heino a07985da98 Mobile: Resolves #8789: Fix older Android versions unable to set alarms (#8837) 2023-09-11 20:45:32 +01:00
renovate[bot] cb21e8655e Update dependency @testing-library/jest-native to v5.4.3 (#8840)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 19:44:44 +00:00
Henry Heino 78ffc0bc23 Mobile: Improve accessibility of side menu (#8839) 2023-09-11 20:44:15 +01:00
renovate[bot] 7f720ce4f8 Update dependency @bam.tech/react-native-image-resizer to v3.0.7 (#8838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 18:41:48 +00:00
Henry Heino e041169300 Mobile: Resolves #8796: Add screen reader labels to search/note actions buttons (#8797) 2023-09-11 18:25:18 +01:00
Shivam Gupta c824f25262 Desktop: Resolves #8817: Scrollbar thumb is barely visible in Light theme (#8831) 2023-09-11 17:27:54 +01:00
Hubert 5a5a8526c3 Desktop: Resolves #8722: Add option to import HTML and TXT file (#8729) 2023-09-11 17:25:12 +01:00
renovate[bot] 217fd20985 Update jest monorepo to v29.6.2 (#8826)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 11:30:21 +01:00
renovate[bot] 00e6801803 Update typescript-eslint monorepo to v5.62.0 (#8828)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 11:30:02 +01:00
github-actions[bot] 39bc15111a @imshivam-gupta has signed the CLA in laurent22/joplin#8831 2023-09-11 09:22:42 +00:00
renovate[bot] 1bb38e10c6 Update dependency react-native-webview to v13.3.1 (#8824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 09:49:31 +01:00
renovate[bot] 0d32d19539 Update dependency eslint-plugin-react to v7.33.1 (#8822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 09:49:19 +01:00
renovate[bot] d4a9e5ce65 Update dependency eslint-plugin-import to v2.28.0 (#8821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 09:49:11 +01:00
renovate[bot] 41c2a6ba68 Update dependency sharp to v0.32.5 (#8818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 08:30:12 +00:00
Henry Heino 41dc96b441 Mobile: Resolves #8791: Revert to react-native-sidemenu-updated for navigation drawers (#8820) 2023-09-11 08:53:53 +01:00
renovate[bot] d1042c409d Update dependency react-native-image-picker to v5.6.1 (#8816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 07:51:15 +00:00
renovate[bot] 2b01392c52 Update dependency pg to v8.11.3 (#8815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 04:41:19 +00:00
renovate[bot] 63127ef213 Update dependency @types/react to v18.2.20 (#8808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 01:29:41 +00:00
renovate[bot] 0c6f498da4 Update dependency @types/node to v18.17.6 (#8814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 23:20:13 +00:00
renovate[bot] bc6a0765c5 Update dependency @react-native-community/slider to v4.4.3 (#8813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:07:25 +00:00
renovate[bot] f82302c38d Update Yarn to v3.6.2 (#8809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 17:30:34 +01:00
Laurent Cozic e444f9947a fix build 2023-09-10 16:41:28 +01:00
renovate[bot] 706c3dbed1 Update dependency react-native-webview to v13 (#8747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 14:34:05 +01:00
renovate[bot] 67569b9fcf Update dependency eslint-plugin-github to v4.9.2 (#8771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 14:33:17 +01:00
renovate[bot] 1a579f724f Update dependency @types/node to v18.17.1 (#8769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 14:33:07 +01:00
Laurent Cozic 63ad154e61 Revert "Revert "Doc: Update Basic price""
This reverts commit f56cac9d64.
2023-09-10 11:32:58 +01:00
Laurent Cozic ed8ce6b27c Revert "Mobile: Resolves #8791: Revert to react-native-sidemenu-updated for navigation drawers" (#8810) 2023-09-10 11:30:18 +01:00
Hubert d461d89a27 Desktop: Fixes #8726: Rich Text editor toolbar doesn't show all buttons even when there's enough space (#8754) 2023-09-10 11:21:42 +01:00
pedr fad643d916 Workspace: improve debugger experience (#8803) 2023-09-10 11:20:56 +01:00
Henry Heino bac1009492 Mobile: Resolves #8791: Fix random crash due to sidebar animation (#8792) 2023-09-10 11:18:38 +01:00
renovate[bot] fb9d0b10a9 Update dependency eslint to v8.46.0 (#8770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 11:17:32 +01:00
renovate[bot] 96dc5724a6 Update react monorepo (#8767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 11:17:01 +01:00
Arda Kılıçdağı 75e6ae135b All: Translation: Update tr_TR.po (#8772) 2023-09-05 22:46:40 -04:00
Naoki KawamukaiandLaurent Cozic e46812830a All: Translation: Update ja_JP.po (#8761)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-09-05 22:45:18 -04:00
Joplin Bot 7a8b69fa79 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-04 18:16:21 +00:00
Henry Heino 66bc6a77ca Desktop: Fixes #8777: Fix AppImage launch on older Linux distros (#8780) 2023-09-04 10:59:05 -07:00
renovate[bot] 427b66ea6c Update dependency typescript to v5.1.6 (#8766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 13:04:22 +00:00
renovate[bot] 6c5bfb0141 Update dependency eslint-plugin-jest to v27.2.3 (#8765)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 09:58:00 +00:00
renovate[bot] 2c242deeaa Update dependency @types/nodemailer to v6.4.9 (#8764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 06:27:43 +00:00
Joplin Bot 41b4d2e53f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-03 00:40:42 +00:00
renovate[bot] 6970641c56 Update Yarn to v3.6.1 (#8762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 00:32:45 +00:00
renovate[bot] 76818ef98a Update dependency @types/koa to v2.13.8 (#8763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-02 21:54:01 +00:00
Laurent Cozic 988ce8db74 Doc: Release 2.12 announcement (#8727) 2023-09-02 23:18:41 +03:00
Laurent Cozic 60b89e7c52 Merge branch 'release-2.12' into dev 2023-09-02 22:19:27 +03:00
Laurent Cozic 28fc4d09d1 Merge branch 'release-2.12-mobile' into dev 2023-09-02 22:17:48 +03:00
Laurent Cozic 58f7b987eb renovate 2023-09-02 21:43:26 +03:00
Laurent Cozic 27e4c05982 lock file 2023-09-02 21:41:36 +03:00
Laurent Cozic 8af2f3d203 Revert "Update buildTools (#8755)"
This reverts commit 10ea9b7568.
2023-09-02 21:39:11 +03:00
Laurent Cozic f56cac9d64 Revert "Doc: Update Basic price"
This reverts commit b7f813f387.
2023-09-02 21:37:15 +03:00
Laurent Cozic d448b8bd4e iOS 12.12.2 2023-09-01 23:14:18 +01:00
Laurent Cozic b7f813f387 Doc: Update Basic price 2023-09-01 23:02:02 +01:00
renovate[bot] a3f454b62e Update dependency markdown-it-multimd-table to v4.2.3 (#8758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 20:03:46 +00:00
renovate[bot] 10ea9b7568 Update buildTools (#8755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 04:25:28 +00:00
Joplin Bot 302ebf4488 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-09-01 00:38:46 +00:00
github-actions[bot] 73f6bd1295 @mybeon has signed the CLA in laurent22/joplin#8753 2023-08-31 20:44:03 +00:00
renovate[bot] c7e47ed578 Update dependency re-resizable to v6.9.11 (#8752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 03:14:11 +00:00
github-actions[bot] 138f804580 @CptMeetKat has signed the CLA in laurent22/joplin#8746 2023-08-29 07:33:44 +00:00
renovate[bot] 5dbeb684d9 Update dependency sass to v1.64.2 (#8745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-29 06:58:47 +00:00
renovate[bot] dd767dd479 Update dependency sass to v1.64.0 (#8744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-29 05:53:32 +01:00
Helmut K. C. Tessarek b8d1ad60ff All: Translation: Update da_DK.po (thanks ERYpTION) 2023-08-28 18:14:50 -04:00
renovate[bot] a7053157d8 Update dependency deprecated-react-native-prop-types to v4.2.1 (#8739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 14:23:48 +00:00
pedr ddc74af3d1 Chore: All: Change Logger to accept formatter function (#8702) 2023-08-28 14:30:56 +01:00
renovate[bot] 9430dccb61 Update dependency deprecated-react-native-prop-types to v4.2.0 (#8738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 13:57:12 +01:00
Laurent Cozic 832e9454c7 Desktop: Resolves #8579: Allow more special content within tables in the Rich Text editor 2023-08-27 19:09:19 +01:00
Laurent Cozic e4cb871c11 Chore: Remove dummy file 2023-08-27 19:09:18 +01:00
wljince007 591324b7bf Mobile : Fixes #8517: Fixed code block not default line wrap in pdf view (#8626) 2023-08-27 15:32:04 +01:00
Fernando f74732a03d Translation: Update Brazilian Portuguese translation (#8733) 2023-08-27 15:31:34 +01:00
Joplin Bot dd789fbde7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-27 12:18:11 +00:00
Peter Havekes 9d73ff0ead Update Dutch translations (#8725) 2023-08-27 12:43:01 +01:00
Henry Heino a3a7ab2cf0 Mobile: Fixes #8707: Fix not all dropdown items focusable with VoiceOver (#8714) 2023-08-27 12:42:42 +01:00
Laurent Cozic 2d26332770 Desktop release v2.12.15 2023-08-27 11:35:48 +01:00
Henry HeinoandLaurent Cozic 406365f0e0 Chore: Resolves #8697: Rename releases such that MacOS x86_64 releases are selected by old versions of Joplin (#8731)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-08-27 11:26:03 +01:00
github-actions[bot] 4e25377122 @fernandonagase has signed the CLA in laurent22/joplin#8733 2023-08-26 01:50:34 +00:00
Laurent Cozic dcd3def942 All: Resolves #8684: Apply correct size to images imported from ENEX files 2023-08-25 15:13:36 +01:00
Laurent Cozic a14674aaa8 Doc: Update plugin generator doc 2023-08-25 10:41:46 +01:00
Титан a03401a692 Updated russian localization (#8635) 2023-08-25 10:15:31 +01:00
Henry Heino ea4d54aea6 Chore: Desktop: Support uppercase DMG extensions when checking for updates (#8720) 2023-08-25 09:21:34 +01:00
Henry Heino 315baacba7 Desktop: Fixes #8723: Update CSS variables in user iframes on theme change (#8724) 2023-08-25 09:20:44 +01:00
github-actions[bot] 7ab197a92b @phavekes has signed the CLA in laurent22/joplin#8725 2023-08-25 08:14:53 +00:00
Henry Heino bf41ed1b13 Chore: Fix packageJsonLint on some systems (#8721) 2023-08-24 19:51:53 +01:00
renovate[bot] ea60087788 Update dependency gettext-extractor to v3.8.0 (#8717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 16:22:08 +01:00
Laurent Cozic 97938ec272 Tools: Retry CodeMirror mobile tests when they fail 2023-08-24 15:34:00 +01:00
Laurent Cozic 13b7e3657b Merge branch 'release-2.12' into dev 2023-08-23 19:10:58 +01:00
Laurent Cozic d590bd7720 Desktop release v2.12.14 2023-08-23 19:03:00 +01:00
Laurent Cozic 8696ae1bb6 Desktop: Fixes #8706: Pasting a resource in Rich Text editor breaks the resource link 2023-08-23 18:59:04 +01:00
Laurent Cozic b452a0a870 Desktop: Fixes #8706: Pasting a resource in Rich Text editor breaks the resource link 2023-08-23 18:41:58 +01:00
Laurent Cozic 77df474b46 Tools: Enable eslint rule comma-dangle: always-multiline for functions 2023-08-23 18:28:00 +01:00
Laurent Cozic 5a8032050d Desktop release v2.12.13 2023-08-23 18:16:51 +01:00
Laurent Cozic 73eedd3ec3 Desktop: Fixes #8706: Pasting a resource in Rich Text editor breaks the resource link 2023-08-23 18:16:06 +01:00
Laurent Cozic 3577b245f6 CLI v2.12.1 2023-08-23 13:53:55 +01:00
Laurent Cozic e126a2d8bf Lock file 2023-08-23 13:52:14 +01:00
Laurent Cozic 21929157b5 Releasing sub-packages 2023-08-23 13:51:28 +01:00
Laurent Cozic 5da3780197 Chore: Make package private 2023-08-23 13:48:49 +01:00
Laurent Cozic cea07b94fb Doc: Specify the domains the app connects to, and removed redundant info from privacy policy 2023-08-22 20:08:46 +01:00
Laurent Cozic 59f8b43c21 All: Fixes #8699: Prevent application from being stuck when importing an invalid ENEX file 2023-08-22 17:26:52 +01:00
Laurent Cozic 5c63eb0913 Merge branch 'release-2.12-mobile' into dev 2023-08-22 14:54:32 +01:00
Laurent Cozic 5855748e06 Android 2.12.2 2023-08-22 14:53:46 +01:00
Laurent Cozic 4e2d36648e Android: Only include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" in APK 2023-08-22 14:08:13 +01:00
Joplin Bot 6aec75806e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-22 12:19:35 +00:00
Laurent Cozic 2e9f93ad9a Tools: Enable eslint rule comma-dangle: always-multiline for functions 2023-08-22 11:58:53 +01:00
Laurent Cozic 26a967e53c Tools: Change order of pre-commit hooks 2023-08-22 11:46:35 +01:00
Laurent Cozic 2fda252a5e Doc: Update contributor table 2023-08-22 11:40:27 +01:00
Laurent Cozic 831b1ae035 Merge branch 'release-2.12-mobile' into dev 2023-08-22 11:26:15 +01:00
Laurent Cozic f807a0179d iOS 12.12.1 2023-08-22 11:08:22 +01:00
Laurent Cozic b3801b333d Chore: iOS: Disable Flipper support
It is useless and prevents the app from building
2023-08-22 11:01:54 +01:00
renovate[bot] 808e175f7f Update dependency react-native-device-info to v10.8.0 (#8703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 18:39:20 +01:00
Laurent Cozic 03f1d86531 Desktop: Resolves #8691: Improve pasting content from Word and Excel (#8705) 2023-08-21 18:37:33 +01:00
Laurent Cozic b92cb7deb7 lock file 2023-08-21 16:01:29 +01:00
Laurent Cozic 0edc66da49 Desktop: Refactor note list in preparation for plugin support (#8624)
Relates to #5389
2023-08-21 16:01:20 +01:00
renovate[bot] e96ad7ccfa Update dependency react-native-safe-area-context to v4.7.1 (#8695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 11:44:38 +01:00
renovate[bot] 817ef7bbed Update dependency pg to v8.11.2 (#8700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 07:54:22 +00:00
renovate[bot] 5bd0c9b3a0 Update dependency react-native-gesture-handler to v2.12.1 (#8696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-20 12:08:00 +00:00
Joplin Bot 46d9cd34a8 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-20 00:38:24 +00:00
Laurent Cozic c3e08237fd Android 2.12.1 2023-08-19 23:36:18 +01:00
Laurent Cozic b406f05241 lock file 2023-08-19 23:20:52 +01:00
Laurent Cozic 973680ea27 Desktop release v2.12.12 2023-08-19 21:03:46 +01:00
renovate[bot] 2cbee6d8af Update dependency tap to v16.3.8 (#8693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 10:52:34 +00:00
Henry HeinoandLaurent Cozic 3778f190fb Desktop: Resolves #8493: Link to FAQ when encryption password may have been reset by an update (#8667)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-08-19 09:17:25 +01:00
renovate[bot] c859ad48c1 Update dependency react-redux to v8.1.2 (#8690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 19:11:44 +00:00
renovate[bot] 1141b1c2a1 Update dependency knex to v2.5.1 (#8689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 17:27:55 +00:00
Laurent Cozic 39c118be90 Desktop: Fetch release info from Joplin server 2023-08-18 12:58:10 +01:00
Hubert f9ac4e112b Server: Resolves #7808: Add a link to resend email verification email (#8650) 2023-08-18 12:48:09 +01:00
Laurent Cozic f0c1042a71 Desktop: Fetch release info from Joplin server 2023-08-18 12:46:34 +01:00
Laurent Cozic 87e51aa8e6 Doc: Remove support email 2023-08-18 11:50:44 +01:00
Henry Heino 41fdc0d44d Mobile: Fixes #8687: Hide markdown toolbar completely when low on vertical space (#8688) 2023-08-18 09:45:04 +01:00
renovate[bot] a754a8d772 Update dependency knex to v2.5.0 (#8686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 09:44:48 +01:00
Hubert 41d0363fd0 Android: Fixes #8510: The voice typing box covers the texts in the editor (#8685) 2023-08-18 09:42:03 +01:00
Hubert 2a4c7a334e Server: Fixes #8307: Searching for user should be case insensitive (#8682) 2023-08-18 09:39:57 +01:00
Hubert df1b0a96f4 Server: Fixes #8308: Sorting users by "total size" leads to a crash (#8680) 2023-08-18 09:36:41 +01:00
Henry Heino 0030681cb4 Mobile: Fixes #8310: Preserve image rotation (and other metadata) when resizing (#8669) 2023-08-18 09:34:31 +01:00
Henry Heino e7014492c5 Desktop: Fixes #8661: Fix note editor blank after syncing an encrypted note with remote changes (#8666) 2023-08-18 09:31:45 +01:00
Joplin Bot 4804c1c0c3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-18 06:19:25 +00:00
Joplin Bot 270d96ad07 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-18 00:35:18 +00:00
Laurent Cozic 5ed3d94faa Server: Ensure that server does not crash when trying to start a task that is already running 2023-08-16 15:03:20 +01:00
renovate[bot] d0e943630d Update dependency rate-limiter-flexible to v2.4.2 (#8678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-16 13:06:33 +00:00
Henry Heino 406e933407 Chore: Mobile: Remove unused dependency (#8676) 2023-08-16 12:00:14 +01:00
Xavi Ivars 7108a4243d Update Catalan localization (#8675) 2023-08-16 10:41:26 +01:00
github-actions[bot] 135e2e4a21 @xavivars has signed the CLA in laurent22/joplin#8675 2023-08-15 23:52:14 +00:00
renovate[bot] c68c0bf501 Update dependency @react-native-community/datetimepicker to v7.4.1 (#8672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 19:08:56 +00:00
renovate[bot] cf3d86698d Update dependency @react-native-community/datetimepicker to v7.4.0 (#8671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 17:35:53 +01:00
Mr-Kanister 3251c4c40e Update de_DE.po (#8668) 2023-08-15 17:00:15 +01:00
Laurent Cozic bd5e0fd42a Merge branch 'release-2.12' into dev 2023-08-14 18:39:56 +01:00
Laurent Cozic 7d0b7122f0 Revert "Desktop: Fixes #8661: Fix note editor blank after syncing an encrypted note with remote changes (#8665)"
This reverts commit 85eddbfe22.

Due to useForm conflicts with https://github.com/laurent22/joplin/pull/8654
2023-08-14 18:38:31 +01:00
Henry Heino c50052ac04 Chore: Desktop: Fix NoteEditor unnecessary rerendering (#8662) 2023-08-14 18:33:48 +01:00
Henry Heino 357c23b588 Desktop: Fixes #8652: Fix editor not refreshed when the current note changes during sync (#8654) 2023-08-14 18:33:15 +01:00
Laurent Cozic eca1afb6d5 All: Resolves #8657: Temporarily revert to AES-128 as encryption method due to severe performance issues 2023-08-14 18:26:49 +01:00
Henry Heino 85eddbfe22 Desktop: Fixes #8661: Fix note editor blank after syncing an encrypted note with remote changes (#8665) 2023-08-14 18:21:41 +01:00
Henry Heino c6c2733726 Desktop: Resolves #8625: Show missing sync password warning and link to FAQ (#8644) 2023-08-14 18:12:49 +01:00
renovate[bot] 5d87b4ca3e Update dependency word-wrap to v1.2.5 (#8651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-11 19:23:30 +00:00
renovate[bot] 89f550ca48 Update dependency sharp to v0.32.4 (#8648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 21:41:09 +00:00
Laurent Cozic 9e55d90736 lock file 2023-08-10 18:57:44 +01:00
renovate[bot] 8d0d9b58de Update dependency @testing-library/react-native to v12.1.3 (#8647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 15:08:48 +00:00
Laurent Cozic ac5e484d4e Chore: Fix CI 2023-08-10 13:18:25 +01:00
Henry Heino bce18a1614 Desktop: Resolves #8493: Draw red border around missing encryption key passwords (#8636) 2023-08-10 10:45:45 +01:00
renovate[bot]andHubert 950b16370f Update dependency react-native-document-picker to v9 (#8614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hubert <hubertfilho@users.noreply.github.com>
2023-08-10 10:42:07 +01:00
Laurent Cozic 4337e2b79a Chore: Fixed website builder, and added check to CI to verify that builder is not broken 2023-08-10 10:41:31 +01:00
renovate[bot] 90d75ce80e Update dependency react-native-device-info to v10.7.0 (#8645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 11:31:13 +01:00
renovate[bot] 72d34788dc Update dependency react-native-paper to v5.9.1 (#8640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 00:02:10 +00:00
renovate[bot] 6a2e6173ab Update dependency nodemailer to v6.9.4 (#8638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 22:25:19 +00:00
renovate[bot] 65bb9fa3c4 Update dependency @react-native-community/netinfo to v9.4.1 (#8642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 18:50:57 +00:00
renovate[bot] 90e1502e73 Update dependency @react-native-community/netinfo to v9.4.0 (#8641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 16:34:18 +01:00
Laurent Cozic 3cc990e1a2 Ignore ESM module 2023-08-08 16:06:08 +01:00
Laurent Cozic 10fd8454f7 Chore: Fix tests 2023-08-08 16:02:05 +01:00
Laurent Cozic 56d7030222 Desktop release v2.12.11 2023-08-08 15:51:28 +01:00
Henry Heino 8696052e27 Desktop: Resolves #8380: Always show reencrypt button (#8555) 2023-08-08 15:50:51 +01:00
5f7e130ff9 Mobile, Desktop: Resolves #8566: Add an option to disable the image resizing prompt (#8575)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-08-08 15:49:54 +01:00
Laurent Cozic 434c890686 Doc: Add release cycle 2023-08-08 15:15:40 +01:00
Laurent Cozic 5ab1b0bfd0 Chore: Server: Move isHashedPassword under auth.ts 2023-08-08 12:06:47 +01:00
renovate[bot] b9f632b634 Update dependency react-native-paper to v5.9.0 (#8631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 11:19:20 +01:00
Hubert ae8f32e6b4 Chore: Desktop: Fixes #8598 - Recent logs appear to be deleted (#8605) 2023-08-08 11:18:59 +01:00
Hubert ce8470ee7c Chore: Resolves #8609: Some auto-generated .js files are commited to the repository (#8632) 2023-08-08 11:17:30 +01:00
pedr 3b1a726a23 Server: throwing an error if the password being saved already seems to be hashed (#8637) 2023-08-08 11:15:03 +01:00
github-actions[bot] 3d4740203f @TuTAH1 has signed the CLA in laurent22/joplin#8635 2023-08-07 22:03:35 +00:00
renovate[bot] 7a74271e6a Update dependency word-wrap to v1.2.4 (#8629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 21:02:02 +00:00
Joplin Bot 2cfae43fce Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-07 18:15:42 +00:00
Laurent Cozic a143b980ee Doc: Update sponsors 2023-08-07 15:30:15 +01:00
Sönke Joppien 329c385358 Update de_DE.po (#8627) 2023-08-07 15:20:57 +01:00
github-actions[bot] 1543c651aa @WebSnke has signed the CLA in laurent22/joplin#8627 2023-08-07 11:20:30 +00:00
Laurent Cozic 9cdaff4f1e Doc: Removed confusing paragraph about sync 2023-08-07 11:57:24 +01:00
renovate[bot] 8e3247221a Update dependency @react-native-community/datetimepicker to v7.3.0 (#8623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 20:49:36 +01:00
Laurent Cozic ad975a473f Desktop: Resolves #8467: Auto-update to ARM64 version on Apple M1 hardware 2023-08-06 12:57:26 +01:00
Laurent Cozic 9a8c0e9813 Doc: debug info 2023-08-06 10:54:24 +01:00
Laurent Cozic 9d16dd22be Server: Disallow loading env file that contains duplicate keys 2023-08-05 18:33:26 +01:00
Laurent Cozic c0501fc4e0 Server: Removed obsolete node-env-file dependency 2023-08-05 18:26:12 +01:00
Laurent Cozic 1acbb5dc9a Server: Do not allow the server to start if a migration needs to be applied 2023-08-05 17:42:29 +01:00
Laurent Cozic 2f6e146841 CI: Trying to enable Yarn cache 2023-08-05 17:06:58 +01:00
Laurent Cozic ba2bfa5b5c CI: Trying to enable Yarn cache 2023-08-05 16:57:17 +01:00
Laurent Cozic 95ca89bf5b Desktop: Improved sharing error handling 2023-08-05 16:40:05 +01:00
Laurent Cozic 16d8a78d8a Doc: Add rule "Do not set the type when it can be inferred" 2023-08-05 15:04:56 +01:00
Laurent Cozic f116504e88 Chore: Fixed CLI logger 2023-08-04 16:42:25 +01:00
Laurent Cozic 4d0b6ae382 Doc: Distinction between sharing and collaborating on a notebook 2023-08-04 16:24:02 +01:00
Laurent Cozic 13c4eba3af Server: Allow any account to share with any other account 2023-08-04 15:55:51 +01:00
Laurent Cozic 9756f64c11 Update translations 2023-08-04 15:12:31 +01:00
Laurent Cozic 807384cfac Desktop: Sync 15 seconds after changing a note
Ref: https://discourse.joplinapp.org/t/joplin-continuously-synchronizes-while-entering-notes/31845
2023-08-04 14:49:27 +01:00
renovate[bot] 2329e321ec Update dependency @rmp135/sql-ts to v1.18.0 (#8615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-04 12:28:58 +01:00
Hubert 6c2e0d9262 Desktop: Fixes #8591: Error while quitting the app (#8612) 2023-08-04 11:00:39 +01:00
Laurent Cozic 887c271853 Chore: Trying to fix logger (#8610) 2023-08-04 10:57:54 +01:00
Milo Ivir ea7c7f6447 Update Croatian translation file (#8608) 2023-08-03 15:51:06 +01:00
renovate[bot] 29931c05ad Update dependency sharp to v0.32.3 (#8606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 13:06:41 +00:00
renovate[bot] 17c227024e Update dependency react-select to v5.7.4 (#8604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 19:11:39 +00:00
renovate[bot]andLaurent Cozic 406a1496db Update buildTools (major) (#8597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-08-02 11:24:54 +01:00
Laurent Cozic c8180b91e0 fix CI 2023-08-02 11:22:23 +01:00
renovate[bot] 1978929114 Update dependency glob to v10.3.3 (#8599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 22:26:37 +00:00
Joplin Bot 3e7debbcc5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-01 18:15:52 +00:00
Henry Heino a138b92b1b Desktop: Fixes #8541: Fix toggle external editing button always disabled in rich text editor (#8595) 2023-08-01 17:54:39 +01:00
renovate[bot] 28619f1786 Update dependency @react-native-community/datetimepicker to v7.2.0 (#8593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 15:40:05 +01:00
renovate[bot] e8f30b708b Update dependency glob to v10.3.0 (#8594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 15:39:51 +01:00
renovate[bot]andLaurent Cozic 39bc7ed397 Update buildTools (#8596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-08-01 15:38:59 +01:00
Joplin Bot 59852e252b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-08-01 00:46:55 +00:00
renovate[bot] 51764cc933 Update dependency sharp to v0.32.2 (#8590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 18:06:24 +00:00
renovate[bot] cb754604f1 Update dependency react-native-safe-area-context to v4.6.4 (#8589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 15:44:33 +00:00
Laurent Cozic 2633bcef69 Doc: Shortened section about carbon neutrality and mentioned data being in France 2023-07-31 11:12:32 +01:00
renovate[bot] 772c8abdcf Update dependency react-native-safe-area-context to v4.6.0 (#8586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 10:31:31 +01:00
Joplin Bot ac098759ea Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-31 00:44:28 +00:00
Naoki Kawamukai 349dda30b8 All: Translation: Update ja_JP.po (#8580) 2023-07-30 18:35:37 -04:00
renovate[bot] cbbd9b9a61 Update dependency react-native-image-picker to v5.6.0 (#8582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-30 15:22:23 +01:00
github-actions[bot] 14ef0d725b @kna has signed the CLA in laurent22/joplin#8580 2023-07-30 02:10:58 +00:00
Laurent Cozic 40b89f61bd Desktop release v2.12.10 2023-07-29 16:53:15 +01:00
Laurent Cozic 23c4020eea udpate 2023-07-29 16:52:24 +01:00
Laurent Cozic 5ba374c03b Doc: Change Reddit links to Lemmy 2023-07-29 16:47:46 +01:00
Henry Heino f76ae86204 Chore: Mobile: Tests: Fix CodeMirror-related error messages (#8569) 2023-07-29 16:33:39 +01:00
Henry Heino 46ccd94514 Desktop: Fixes: #8370: Fix note drag-drop into markdown editor (#8571) 2023-07-29 16:32:52 +01:00
Henry Heino 7140675181 Chore: Desktop: Fixes #8572: Fix warning when pasting images with data URI srcs (#8574) 2023-07-29 16:31:36 +01:00
Laurent Cozic 31f8e725dd Fixed mobile build 2023-07-28 11:31:59 +01:00
Laurent Cozic 5edbdb2466 Fix tests 2023-07-28 10:46:40 +01:00
Joplin Bot 83cf5eb617 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-27 18:18:52 +00:00
Oleksandr Popov 5b0c332477 Translation: Updating Ukrainian translation file (#8565) 2023-07-27 16:35:42 +01:00
Oleksandr Popov 21a5feb322 Translation: Updating Russian translation file (#8560) 2023-07-27 16:35:30 +01:00
Laurent Cozic 16c87c36da Chore: Move Logger from lib to utils package 2023-07-27 16:08:11 +01:00
Henry Heino a0ec928fca Merge pull request from GHSA-m59c-9rrj-c399
* Sanitize HTML in processPastedHtml

* Add test
2023-07-27 15:41:57 +01:00
Laurent Cozic b9659bb9c1 Desktop: Fixes #8476: Text that is pasted in Rich Text editor had extra new lines 2023-07-27 14:48:41 +01:00
Henry Heino 35f375d756 Desktop: Fixes #6055: Preserve empty newlines created by pressing Enter repeatedly in the rich text editor (#8549) 2023-07-27 11:52:41 +01:00
Mr-Kanister 04c80fe00e Update de_DE.po (#8551) 2023-07-27 11:39:38 +01:00
Joplin Bot 06732d8b8a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-26 18:16:56 +00:00
pedr 8fc1e71fb3 Doc: Email to Note (#8527) 2023-07-26 18:07:29 +01:00
Henry Heino aebfa6e96d Desktop: Fixes #8535: Fix CodeMirror context menu not containing correct items (#8543) 2023-07-26 18:07:00 +01:00
Henry Heino 3453abb670 Desktop: Fixes #8535: Upgrade to electron 25.3.1 (#8550) 2023-07-26 18:00:46 +01:00
Laurent Cozic 637a0eac7f Desktop: Fixes #8485: Note imported from Web Clipper is broken after being saved from the Rich Text editor 2023-07-26 17:37:24 +01:00
github-actions[bot] abe479d03f @popovoleksandr has signed the CLA in laurent22/joplin#8560 2023-07-26 16:17:15 +00:00
Myst d1558d84b1 Fix typo french translation (#8554) 2023-07-26 16:25:16 +01:00
Laurent Cozic 36e9e0a33c Server: Support setting an instance name 2023-07-26 14:42:35 +01:00
Laurent Cozic d78ab16021 Server: Add support for separate admin instance 2023-07-26 14:36:50 +01:00
Laurent Cozic c718706f9c Server: Remove event-based services 2023-07-26 10:40:56 +01:00
github-actions[bot] f6586239c4 @LeMyst has signed the CLA in laurent22/joplin#8554 2023-07-25 20:11:08 +00:00
Joplin Bot 287d8fee73 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-25 18:16:50 +00:00
Laurent Cozic 5357b2b0dc Android: Fixes #8533: Trying to fix sharing issues 2023-07-25 16:45:57 +01:00
Laurent Cozic 0c4513838a Update manifestFromObject.ts 2023-07-25 16:26:00 +01:00
Laurent Cozic d8a54da496 Chore: fix build 2023-07-25 15:48:07 +01:00
Hubert 672ef1fd7c Desktop: Resolves #8408: Adding support for plugin icons (#8499) 2023-07-25 15:47:43 +01:00
Laurent Cozic c50181f0a6 Tools: Fixed updateIgnored so that it works consistently across platforms 2023-07-25 14:51:37 +01:00
renovate[bot] 778f317f9f Update dependency gettext-parser to v7.0.1 (#8547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 13:46:00 +00:00
renovate[bot] 0394694a91 Update dependency gettext-parser to v7 (#8546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 12:25:13 +01:00
renovate[bot] fec853735b Update dependency react-redux to v8.1.1 (#8539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 01:54:42 +00:00
renovate[bot] 087b206982 Update dependency react-native-localize to v3.0.2 (#8538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 21:19:16 +00:00
renovate[bot] 3bd04aeaf4 Update dependency react-native-gesture-handler to v2.12.0 (#8540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 17:59:46 +01:00
Laurent Cozic 74e81eb6f3 lock file 2023-07-23 17:14:20 +01:00
Laurent Cozic 3cb8fd035f Desktop release v2.12.9 2023-07-23 17:07:22 +01:00
Henry Heino 0a96c3d56b Mobile: Fixes #8425: Fix frequent crashing on Android 12 ARM (#8516) 2023-07-23 16:01:32 +01:00
Henry Heino 2d16151fa8 Desktop: Fixes #8520: Fix Rich Text theme not matching the system theme after several global theme changes (#8521) 2023-07-23 16:00:30 +01:00
Henry Heino 93c5f6c9d3 Desktop: Rich text editor: Disable spellcheck in inline code blocks (#8532) 2023-07-23 15:59:51 +01:00
Henry Heino e47985c101 Desktop: Fixes #8530: Rich text editor: Use fewer &nbsp;s in markdown while still preserving initial paragraph indentation (#8529) 2023-07-23 15:59:24 +01:00
Laurent Cozic 1c1d20f82c Chore: Desktop: Update for share permissions (#8528) 2023-07-23 15:57:55 +01:00
renovate[bot] 880304c2fb Update dependency react-redux to v8.1.0 (#8537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 11:28:33 +01:00
renovate[bot] bd3d5f213e Update dependency node-gyp to v9.4.0 (#8536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 11:28:02 +01:00
github-actions[bot] 0d6f4c9361 @xbdmHQ has signed the CLA in laurent22/joplin#8531 2023-07-22 14:55:50 +00:00
Laurent Cozic c49b53cb4b Tools: Trying to fix flaky test 2023-07-22 15:32:09 +01:00
Laurent Cozic da177d3025 Tools: Do not bail when failing server tests 2023-07-22 11:56:41 +01:00
Laurent Cozic 6d184fb47c CI: Trying to fix random test failures 2023-07-22 11:19:57 +01:00
Laurent Cozic 3691662da2 Chore: Better messages in runForTesting 2023-07-22 11:19:55 +01:00
Henry Heino 776b6d8f12 Desktop: Fixes #8504: Support plugin toolbar icons in the Rich Text editor toolbar (#8519) 2023-07-21 20:49:49 +01:00
renovate[bot] 82c33c4f0c Update dependency jsdom to v22.1.0 (#8526)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 20:46:38 +01:00
renovate[bot] ab77f0e0f4 Update dependency jsdom to v22 (#8524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 18:23:31 +01:00
renovate[bot] df3c60e43f Update dependency dayjs to v1.11.9 (#8522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 08:11:54 +00:00
renovate[bot] 9aafdd2d10 Update dependency react-native-device-info to v10.6.1 (#8514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-20 15:17:58 +00:00
Laurent Cozic 1fe01dc0ce lock file 2023-07-19 13:21:09 +01:00
Marph f0b5ec3e3a Desktop: Fixes #8382: add "insert*before" buttons for tables in the rich text editor (#8393) 2023-07-19 13:11:27 +01:00
Henry Heino 955f724d36 Desktop: Sanitize rendered output in safe mode (#8507) 2023-07-19 13:09:03 +01:00
renovate[bot] 6cf0ed6166 Update dependency @react-native-community/netinfo to v9.3.11 (#8508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 10:05:53 +00:00
renovate[bot] 1bcaf9d167 Update dependency sass to v1.63.6 (#8505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 22:12:59 +00:00
pedr 06b2ba9d75 Desktop, mobile: Add support for Joplin Cloud email to note functionality (#8460) 2023-07-18 20:15:45 +01:00
Laurent Cozic 85079ad213 CI: Prevent random failures when running encodeAssets 2023-07-18 19:31:08 +01:00
Laurent Cozic b9225d1daa CI: Fix random failure of Joplin Server test 2023-07-18 18:43:50 +01:00
Laurent Cozic c88b6b608a Desktop: Enable share permission handling for Joplin Cloud 2023-07-18 18:31:57 +01:00
Laurent Cozic 56cd782175 Tools: Set yarn checksumBehavior option 2023-07-18 17:27:45 +01:00
Henry Heino 6ce8865719 Mobile: Add JEX export (#8428) 2023-07-18 14:58:06 +01:00
Henry Heino ac66332a4e Desktop: Fixes #8430: Make HTML <br/> tags convert to markdown compatible with the softbreaks setting (#8469) 2023-07-18 14:48:26 +01:00
Henry Heino c70afe3478 All: Resolves #8466: WebDAV: Show a more descriptive error message when the password is empty (#8477) 2023-07-18 14:47:25 +01:00
Henry Heino 3c2f193714 Mobile: Fixes #8211: Do not log data shared with the app (#8495) 2023-07-18 14:46:43 +01:00
renovate[bot] bb9e970f8f Update dependency sass to v1.63.2 (#8497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 14:46:25 +01:00
Henry Heino 9c8fbe831f Mobile: Resolves #8490: Add option to autodetect theme (#8498) 2023-07-18 14:46:11 +01:00
renovate[bot] 4e1ee87269 Update dependency ts-loader to v9.4.4 (#8503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 13:26:04 +00:00
renovate[bot] 9a32472522 Update dependency lint-staged to v13.2.3 (#8502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 11:15:06 +00:00
renovate[bot] 1ecd6883d5 Update dependency react-native-gesture-handler to v2.11.0 (#8496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 17:59:20 +01:00
Henry Heino f89c6523e4 Chore: Fix failing CodeMirror test (#8494) 2023-07-17 17:12:35 +01:00
Joplin Bot 5c7b48fce1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-17 12:21:46 +00:00
Henry Heino 1e2e8ed099 Desktop: Fixes #8448: Merge changes from upstream turndown project (#8468) 2023-07-17 12:19:34 +01:00
Henry Heino 4d7399973e Desktop: Security: Close root electron window before unload: Prevent top-level redirection (#8478) 2023-07-17 12:13:01 +01:00
Henry Heino 2f8275be8c Mobile: Fixes #8381: Show warning if some items could not be decrypted (#8481) 2023-07-17 12:12:42 +01:00
Laurent Cozic 58e5b83648 Doc: Add sponsor 2023-07-17 11:36:21 +01:00
renovate[bot] 49e3f01a0a Update dependency pg to v8.11.1 (#8492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-16 18:29:15 +00:00
Laurent Cozic f64305e858 Desktop release v2.12.8 2023-07-16 17:56:40 +01:00
Laurent Cozic 0470a3168c Chore: cleanup 2023-07-16 17:48:13 +01:00
Laurent Cozic 77482a0c95 All: Add support for share permissions (#8491) 2023-07-16 17:42:42 +01:00
Joplin Bot b5193e1174 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-16 12:19:18 +00:00
Laurent Cozic 1d709a3b5c Tools: Check for files that should have been ignored on pre-commit 2023-07-16 11:52:42 +01:00
Laurent Cozic cc4e69bf92 gitignore 2023-07-16 11:31:52 +01:00
renovate[bot] 4cf6d12704 Update dependency react-native-localize to v3.0.1 (#8484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-15 12:34:58 +00:00
Henry Heino 7c52c3e9a8 Desktop: Security: Disallow map and area tags (#8479) 2023-07-15 11:56:12 +01:00
Laurent Cozic 68ffdc5c0f Server: By default, sort user deletion in descending order 2023-07-15 11:52:35 +01:00
cajhin 8d32cc794e Doc: Update conflict.md - how to resolve conflicts (#8470) 2023-07-15 11:46:30 +01:00
Joplin Bot 8d3f60ed1f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-14 18:17:39 +00:00
Henry HeinoandLaurent Cozic 05395781cc Chore: Mobile: Fixes #8456: Upgrade react-native-reanimated (#8457)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-07-14 14:42:36 +01:00
HubertandLaurent Cozic 33ba934937 All: Resolves #5521: Rotating log files (#8376)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-07-14 14:24:25 +01:00
renovate[bot] f4019dbcd3 Update dependency madge to v6.1.0 (#8475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 10:06:55 +01:00
Joplin Bot ffc40b2797 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-13 18:18:29 +00:00
Laurent Cozic 7a780e3087 CI: Disable signing macOS app on non-release commits 2023-07-13 19:10:04 +01:00
github-actions[bot] 712efe357e @cajhin has signed the CLA in laurent22/joplin#8470 2023-07-13 17:55:37 +00:00
Laurent Cozic 49638774f0 CI: Only generate DMG for ARM64 version 2023-07-13 13:47:18 +01:00
Laurent Cozic 04f8e96297 Desktop release v2.12.7 2023-07-13 13:09:13 +01:00
Laurent Cozic 4116f3d55b Chore: Desktop: Fixed building of M1 release 2023-07-13 13:08:55 +01:00
Laurent Cozic 99d99b9d85 Desktop release v2.12.6 2023-07-13 11:37:14 +01:00
Noah NashandLaurent Cozic 16b7969f78 Desktop: Fixes #6052: Create ARM64 function for cross-compile support (#8452)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-07-13 11:29:15 +01:00
Laurent Cozic 15ae42be1d Server v2.12.1 2023-07-13 11:24:23 +01:00
renovate[bot] 0f1412fb46 Update dependency tap to v16.3.7 (#8463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 01:52:57 +00:00
Joplin Bot 450f18dfbf Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-12 18:17:10 +00:00
renovate[bot] e703c70b70 Update dependency css-loader to v6.8.1 (#8426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 19:02:23 +01:00
renovate[bot] ee4b79129f Update dependency react-native-drawer-layout to v3.2.1 (#8458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 17:11:37 +00:00
Laurent Cozic 42e4c9ff89 typo 2023-07-12 16:57:36 +01:00
Henry Heino a354feb626 Desktop: Resolves #8258: Upgrade to Electron 25 (#8451) 2023-07-12 16:00:30 +01:00
Laurent Cozic c0fe29ec82 CI: Fixed M1 config 2023-07-12 15:44:14 +01:00
Laurent Cozic 7c4b12200b Desktop release v2.12.5 2023-07-12 15:18:53 +01:00
Laurent Cozic 1abfb1cb0e Desktop: Fixed macOS version check so that it does not return the ARM64 version 2023-07-12 15:18:05 +01:00
Laurent Cozic 9ae4401564 Doc: Fix brand guideline colours 2023-07-12 14:45:44 +01:00
Henry Heino d95d6733a1 Chore: Refactor InteropService to not use dynamic imports (#8454) 2023-07-12 10:30:38 +01:00
github-actions[bot] 93e4004033 @noah-nash has signed the CLA in laurent22/joplin#8452 2023-07-11 23:36:51 +00:00
Joplin Bot baabd1cbbd Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-11 18:19:11 +00:00
Laurent Cozic dbb7df138e Doc: Remove 32-bit Android release, and fixed readme auto-update 2023-07-11 18:37:43 +01:00
Laurent Cozic 0690f7354f lock files 2023-07-11 17:09:40 +01:00
Laurent Cozic 004d2a1d9e Desktop: Quickly synchronise immediately after changing a note 2023-07-11 14:00:29 +01:00
Laurent Cozic 733c2dc878 Doc: Add release notes 2.11 2023-07-11 13:51:48 +01:00
Rob Moffat 0071a05a6c Desktop, CLI: Allow importing Evernote task lists (#8440) 2023-07-11 13:39:49 +01:00
renovate[bot] 7e53a41a30 Update dependency react-native-safe-area-context to v4.5.5 (#8450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 10:57:10 +00:00
Laurent Cozic 32db9c814b Chore: Fix M1 CI 2023-07-11 09:58:05 +01:00
Laurent Cozic 0d44234452 Update build-macos-m1.yml 2023-07-11 09:55:46 +01:00
qx100 d55caad8d6 Updated Simplified Chinese translation (#8437) 2023-07-10 12:04:41 +01:00
Henry Heino 1691180790 Desktop: Fixes #6822: Fix extra lines added to KaTeX source when toggling the rich text editor (#8442) 2023-07-10 12:03:52 +01:00
Henry Heino 7ef591f3a8 Desktop: Fixes #8256: Don't start window minimized in GNOME (#8441) 2023-07-10 11:59:09 +01:00
github-actions[bot] 383e9d4e46 @robmoffat has signed the CLA in laurent22/joplin#8440 2023-07-10 08:52:35 +00:00
renovate[bot] d2b64f9af0 Update dependency standard to v17.1.0 (#8439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:54:54 +01:00
renovate[bot] da192e718e Update dependency react-native-reanimated to v3.2.0 (#8438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 15:49:34 +01:00
github-actions[bot] cc4e65cee4 @laurent22 has signed the CLA in laurent22/joplin#8437 2023-07-09 13:17:03 +00:00
Laurent Cozic 4c5837b85b Desktop: Prevent app from crashing when changing screens
Ref: https://github.com/laurent22/joplin/issues/6052#issuecomment-1627528277
2023-07-09 14:12:41 +01:00
Laurent Cozic ecd79ef7e4 CI: Do no publish M1 app on pull requests 2023-07-09 11:20:21 +01:00
Laurent Cozic a6f22bb7a9 Doc: Fixed Android APK links 2023-07-09 10:44:23 +01:00
Joplin Bot cde7b4d4f6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-08 00:46:25 +00:00
Laurent Cozic dabcd3d946 Desktop release v2.12.4 2023-07-07 16:16:01 +01:00
Laurent Cozic a547ff1ca5 Desktop: Resolves #6052: Build macOS app as Universal binary 2023-07-07 16:02:59 +01:00
Joplin Bot f12984b38e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-07 12:20:36 +00:00
Laurent Cozic 6962db7b2f Desktop release v2.12.3 2023-07-07 10:11:57 +01:00
Laurent Cozic 050d9fa794 Desktop: Resolves #6052: Build macOS app as Universal binary 2023-07-07 10:11:29 +01:00
Joplin Bot 9c71523546 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-07 00:50:37 +00:00
renovate[bot] 10eebad566 Update dependency react-native-gesture-handler to v2.10.2 (#8424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 00:33:13 +00:00
renovate[bot] 5405b05792 Update dependency react-native-gesture-handler to v2.10.1 (#8422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 23:09:56 +01:00
Laurent Cozic bb47b1ec8d Desktop release v2.12.2 2023-07-06 23:01:58 +01:00
Laurent Cozic 32043caabf CI: Trying to build macOS M1 version 2023-07-06 23:01:42 +01:00
Laurent Cozic a58d1d040c Desktop release v2.12.1 2023-07-06 21:58:48 +01:00
Laurent Cozic 2e7996152e Desktop: Resolves #6052: Build macOS app as Universal binary (#8423) 2023-07-06 21:58:22 +01:00
Laurent Cozic d5e583aba3 Doc: Fixed brand guidelines 2023-07-06 21:23:51 +01:00
Laurent Cozic f27b21cc68 lock file 2023-07-06 20:47:59 +01:00
Laurent Cozic 244d204332 Chore: Fixed type 2023-07-06 20:41:03 +01:00
Henry Heino b15c81fef8 Mobile: Fixes #7918: Unrevert #7953: Migrate to react-native-drawer-layout (#8379) 2023-07-06 19:18:43 +01:00
Henry Heino 28923a69b2 Chore: Resolves #8360: Use @typescript-eslint/indent for TypeScript files (#8367) 2023-07-06 19:17:41 +01:00
Letty e21a5c1b80 Mobile: Fixes #8027: Fixed link modal position on devices with notch (#8029) 2023-07-06 19:03:57 +01:00
Laurent Cozic e278a26dc8 Renovate ignore immer 2023-07-06 18:24:19 +01:00
renovate[bot] 2eac0078cd Update dependency react-native-image-picker to v5.4.2 (#8417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 17:51:42 +00:00
Laurent Cozic 3fa6ce4583 Doc: Add brand guidelines 2023-07-05 15:19:47 +01:00
Laurent Cozic 7d218ca5b2 Doc: Add brand guidelines 2023-07-05 15:18:29 +01:00
renovate[bot] 721a37a377 Update dependency react-native-image-picker to v5.4.0 (#8416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 13:20:29 +01:00
renovate[bot] 5600c498d8 Update dependency @rmp135/sql-ts to v1.17.0 (#8414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 12:27:07 +01:00
Henry Heino 8eba798cdd Chore: Fix search filter tests in non UTC+0 timezones (#8411) 2023-07-04 18:56:06 +01:00
Laurent Cozic 0c76b731e7 Tools: Apply prefer-regex-literals eslint rule 2023-07-03 17:15:19 +01:00
Joplin Bot 2289e3297a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-03 13:29:46 +00:00
github-actions[bot] 51fbb38f66 @hubertfilho has signed the CLA in laurent22/joplin#8376 2023-07-03 13:24:41 +00:00
Laurent Cozic 86aaa7f478 lock file 2023-07-03 13:28:40 +01:00
Laurent Cozic c5c9d3a2ef Merge branch 'release-2.11' into dev 2023-07-03 13:14:33 +01:00
Laurent Cozic 1118fef164 Android 2.11.32 2023-07-03 13:08:52 +01:00
Laurent Cozic e0ea76c9f1 Update translations 2023-07-03 12:26:33 +01:00
Laurent Cozic 2aab85f073 Android: Allow configuring voice typing model URL 2023-07-03 12:25:50 +01:00
Laurent Cozic dfbe628944 Chore: Fixed asset order 2023-07-02 17:48:29 +01:00
Laurent Cozic bc35649dda Chore: Disable warning in tests 2023-07-02 17:45:52 +01:00
Joplin Bot 09c6c81992 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 06:16:25 +00:00
Joplin Bot cf98f6a450 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 00:49:06 +00:00
renovate[bot] 9e56bc72a3 Update dependency url to v0.11.1 (#8404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 13:42:08 +00:00
Laurent Cozic 85b9fe06e4 Chore: Fixed buildCommandIndex 2023-07-01 12:56:34 +01:00
Laurent Cozic e91e38c4e6 Server: Add yarn patches to Docker image 2023-07-01 12:52:30 +01:00
Joplin Bot fbf2fef17c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-01 00:51:33 +00:00
Laurent Cozic 3080575a17 Fixed tests 2023-06-30 16:23:05 +01:00
Laurent Cozic 10b9df7b9f Revert update of clean-html package 2023-06-30 13:13:45 +01:00
Laurent Cozic dd6eec6a03 Tools: Apply rule @typescript-eslint/ban-types 2023-06-30 10:30:29 +01:00
Laurent Cozic 48ef6db4a5 Tools: Apply @typescript-eslint/ban-ts-comment rule 2023-06-30 10:22:47 +01:00
Laurent Cozic 7591a1182e Tools: Apply eslint rule multiline-comment-style with checkJSDoc option 2023-06-30 09:55:56 +01:00
Laurent Cozic 0c4ba592f6 Tools: Apply rule github/array-foreach 2023-06-30 09:39:21 +01:00
Laurent Cozic c6a15b3186 Tools: Add eslint rule @typescript-eslint/array-type 2023-06-30 09:16:08 +01:00
Laurent Cozic e89b59be8e Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreArguments=false 2023-06-30 09:11:26 +01:00
Laurent Cozic 315f071337 Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreProperties=false 2023-06-30 09:07:03 +01:00
renovate[bot] 667bb19765 Update dependency clean-html to v2 (#8398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 08:21:12 +01:00
github-actions[bot] 21d09e44c4 @wljince007 has signed the CLA in laurent22/joplin#8391 2023-06-30 06:18:16 +00:00
renovate[bot] d36c3069c3 Update dependency glob to v10.2.7 (#8395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 22:50:11 +00:00
Joplin Bot ab0747693d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-29 18:20:22 +00:00
renovate[bot] e322699829 Update dependency glob to v10.2.5 (#8392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 18:55:03 +01:00
Laurent Cozic 220803d478 Doc: Added guiding principles 2023-06-29 13:55:26 +01:00
Laurent Cozic 78d558f72e Doc: Added sponsor 2023-06-29 13:55:25 +01:00
renovate[bot] 3c7dc9f11c Update dependency glob to v10 (#8386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 13:34:43 +01:00
renovate[bot] a8a8452d21 Update dependency yeoman-generator to v5.9.0 (#8385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 12:56:41 +01:00
Laurent Cozic 9f5924984c Plugin Generator release v2.12.1 2023-06-28 15:13:26 +01:00
Laurent Cozic 6db5723a50 Setup new release 2.12 2023-06-28 15:12:32 +01:00
Laurent Cozic 1d0bcc435b Generator: Updated doc 2023-06-28 14:49:19 +01:00
Laurent Cozic 700158d83c Generator: Fixed incompatbility with latest Yeoman version 2023-06-28 14:48:52 +01:00
Laurent Cozic df4e8c9f47 Generator: Add script updateVersion to update both manifest and package version numbers 2023-06-28 14:48:04 +01:00
renovate[bot] ce6baccd82 Update dependency react-native-modal-datetime-picker to v15.0.1 (#8378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 01:58:38 +00:00
renovate[bot] 0caf1fdd7b Update dependency react-native-modal-datetime-picker to v15 (#8377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 22:03:22 +01:00
Laurent Cozic adf1c5496e Lock file 2023-06-27 15:05:56 +01:00
Laurent Cozic 51b294e66b Releasing sub-packages 2023-06-27 15:05:03 +01:00
Laurent Cozic 893accf59c fix dep 2023-06-27 15:02:14 +01:00
renovate[bot] 2a10cd3333 Update dependency react-native-get-random-values to v1.9.0 (#8372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 10:36:20 +01:00
Laurent Cozic 3ec257abc3 Plugin Generator release v2.11.1 2023-06-27 10:34:50 +01:00
Laurent Cozic 295756a528 Merge branch 'release-2.11' into dev 2023-06-27 10:33:22 +01:00
Laurent Cozic 5603900fc2 CLI v2.11.1 2023-06-27 10:29:24 +01:00
Laurent Cozic e1195f7370 Lock file 2023-06-27 10:25:21 +01:00
Laurent Cozic 5625b15cb5 Releasing sub-packages 2023-06-27 10:24:24 +01:00
Arda Kılıçdağı af4147ed58 All: Translation: Update tr_TR.po (#8368) 2023-06-27 02:53:18 -04:00
Harris Arvanitis 9e10261e0b All: Translation: Update el_GR.po (#8357) 2023-06-27 02:51:29 -04:00
Joplin Bot 487fecb16e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-26 12:21:51 +00:00
Laurent Cozic e0ce301c3f lock file 2023-06-26 13:00:45 +01:00
Laurent Cozic bb474287e5 Merge branch 'release-2.11' into dev 2023-06-26 12:17:23 +01:00
pedr 583ae0385b Desktop: Fixes #8317: Removing Markdown when using 'Paste as Text' (#8351) 2023-06-26 12:00:47 +01:00
renovate[bot] 35a4eef87b Update dependency @electron/remote to v2.0.10 (#8365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 02:20:40 +00:00
Laurent Cozic e46ecdcb2b Android 2.11.31 2023-06-25 15:28:47 +01:00
Laurent Cozic 6036420bc6 iOS 12.11.5 2023-06-25 15:06:29 +01:00
Laurent Cozic cd73661200 lock file 2023-06-25 14:52:55 +01:00
Laurent Cozic 5dbadbbff6 iOS 12.11.4 2023-06-25 14:07:09 +01:00
Laurent Cozic 2dc02fe0f2 All: Resolves #7686: Upgrade E2EE encryption method to AES-256 2023-06-25 14:04:42 +01:00
renovate[bot] a474b403f9 Update dependency tap to v16.3.6 (#8359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-25 00:50:38 +00:00
renovate[bot] e9a8475ecf Update dependency pg to v8.11.0 (#8358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-24 22:43:09 +01:00
github-actions[bot] 0f9bdf1ca0 @XarisA has signed the CLA in laurent22/joplin#8357 2023-06-23 20:43:15 +00:00
Joplin Bot a7781f2a6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-23 18:17:44 +00:00
Laurent Cozic 71144bb675 Tools: Fixed buildPluginDoc command 2023-06-23 18:18:25 +01:00
Laurent Cozic 6886f6fd39 Desktop release v2.11.11 2023-06-23 15:10:56 +01:00
Laurent Cozic 83610c01c0 Tools: Switch to @electron/notarize 2023-06-23 15:10:05 +01:00
Laurent Cozic 5b18edc8be Desktop release v2.11.10 2023-06-23 14:24:54 +01:00
Laurent Cozic 671fa542b4 Tools: Switch to @electron/notarize 2023-06-23 14:20:47 +01:00
pedr 4e4685b039 Tools: Creating a vscode configuration for debugging the server project (#8322) 2023-06-23 12:49:54 +01:00
renovate[bot] e4023a349f Update dependency dayjs to v1.11.8 (#8355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-22 15:28:00 +00:00
renovate[bot] e7c37d17c1 Update dependency jquery to v3.7.0 (#8348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 12:59:31 +01:00
Joplin Bot d6c2b64a43 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-21 00:43:17 +00:00
Joplin Bot 10e49d8cd3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 18:12:08 +00:00
Laurent Cozic 95d83a8ced Android 2.11.30 2023-06-20 17:51:05 +01:00
renovate[bot] 6b00c4e6ce Update dependency @react-native-community/datetimepicker to v7.1.0 (#8347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 17:35:14 +01:00
Laurent Cozic dc2def403c Tools: Only build one Android version 2023-06-20 16:14:48 +01:00
Laurent Cozic 89e2603f02 Android 2.11.29 2023-06-20 16:13:02 +01:00
Joplin Bot 35e03e2ad9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 15:41:48 +01:00
Laurent Cozic 12e853b871 Doc: Update French translation 2023-06-20 15:41:39 +01:00
Laurent Cozic 5841596acb Android: Add support for Voice Typing for most languages (#8309) 2023-06-20 15:41:22 +01:00
Laurent Cozic 377e35b1af Mobile: Improved Vosk error handling 2023-06-20 15:33:53 +01:00
Laurent Cozic a3181d4458 v28 2023-06-20 15:33:15 +01:00
Laurent Cozic e057c7beea Tools: Only build one Android version 2023-06-20 15:31:58 +01:00
Laurent Cozic 60c25f88cf Chore: Server: Refactor error codes 2023-06-20 10:43:51 +01:00
Laurent Cozic d532b9dffc Server v2.11.2 2023-06-20 09:41:19 +01:00
renovate[bot] 5a2310ff4d Update dependency react-redux to v8.0.7 (#8346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 05:20:21 +00:00
Joplin Bot 472120d5ec Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 00:40:08 +00:00
Laurent Cozic 9de83bf922 Revert formidable update 2023-06-19 19:40:08 +01:00
Joplin Bot 96bd76e45e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-19 18:15:15 +00:00
pedr 5564e2178a CI: Add a step to check if the Docker image is accepting HTTP requests (#8336) 2023-06-19 17:06:22 +01:00
renovate[bot] 9eb643f8f7 Update dependency formidable to v3 (#8334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 17:02:25 +01:00
renovate[bot] c2bdaddcec Update dependency nodemailer to v6.9.3 (#8338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 12:53:27 +00:00
Laurent Cozic 17888a2da0 Server: Improve performance and reliability when adding an item 2023-06-18 10:38:54 +01:00
renovate[bot] eda18c3860 Update dependency formidable to v2.1.2 (#8333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 15:36:32 +01:00
Laurent Cozic 878bf13a0e Chore: Server: Convert migrations to arrow functions 2023-06-16 10:14:01 +01:00
Laurent Cozic a8c21b2477 lock file 2023-06-16 10:03:47 +01:00
Laurent Cozic b85bd8d296 Renovate ignore 2023-06-16 10:03:31 +01:00
Laurent Cozic eb6d5690aa Renovate ignore 2023-06-16 09:26:16 +01:00
renovate[bot] ebe00ea58b Update dependency react-redux to v8 (#8328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 09:23:23 +01:00
renovate[bot] e14a0b54f5 Update dependency styled-components to v5.3.11 (#8324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 04:20:55 +00:00
renovate[bot] 2f0f63e2b1 Update dependency @react-native-community/geolocation to v3.0.6 (#8325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 00:31:15 +00:00
Laurent Cozic 048100ebb3 renovate 2023-06-15 23:16:57 +01:00
Laurent Cozic 7880d07868 Renovate ignore 2023-06-15 23:16:56 +01:00
renovate[bot] 9ba42b7919 Update dependency domhandler to v5 (#8321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 22:06:26 +01:00
renovate[bot] fcc7ed3ed4 Update dependency @react-native-community/geolocation to v3 (#8320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 21:38:29 +01:00
renovate[bot] c000d4f4b3 Update dependency @koa/cors to v4 (#8319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 21:37:11 +01:00
Laurent Cozic 6e0c484441 Doc: Fixed layout 2023-06-15 19:10:33 +01:00
Laurent Cozic 753a25a5e1 Fix tests 2023-06-14 17:45:13 +01:00
Laurent Cozic 57b4198d2c All: Security: Prevent XSS when passing specially encoded string to a link 2023-06-14 16:55:54 +01:00
Laurent Cozic 2078fa4e40 Fix tests 2023-06-14 15:59:20 +01:00
Laurent Cozic 69826610a2 Desktop: Security: Prevent calling arbitrary commands via x-callback-url 2023-06-14 15:51:35 +01:00
Laurent Cozic 0f9727144f Desktop: Fixes #8316: Include more Rich Text editor commands in the menu 2023-06-14 14:57:12 +01:00
Joplin Bot 11355bfdc5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-13 18:14:50 +00:00
Laurent Cozic 4d08d7385f Tools: Do not lock pull requests after merging 2023-06-13 18:08:32 +01:00
Laurent Cozic ce7da882ee Android: Add support for Voice Typing for most languages (#8309) 2023-06-13 18:06:54 +01:00
Laurent Cozic 92c68882e2 Desktop: Resolves #8080: Add support for plugin user data (#8312) 2023-06-13 18:06:16 +01:00
renovate[bot] 6424832984 Update dependency ts-loader to v9.4.3 (#8311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 20:47:12 +00:00
Laurent Cozic 3c0331eb6e Desktop: Fixes #8210: Display plugin console in dev mode 2023-06-12 17:30:47 +01:00
Laurent Cozic 1eeb5ab471 Mobile: Improved Vosk error handling 2023-06-11 16:13:36 +01:00
Joplin Bot c77a0b4709 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-11 12:17:44 +00:00
Laurent Cozic 1b64688042 Doc: Update French translation 2023-06-11 12:20:13 +01:00
Joplin Bot c082505f61 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-11 00:46:39 +00:00
Laurent Cozic f555e528ba All: Resolves #7686: Upgrade E2EE encryption method to AES-256 2023-06-10 19:20:08 +01:00
Joplin Bot 96ff76fd1d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-10 18:12:20 +00:00
Laurent Cozic 9ceb7b9c88 Mobile: Upgrade react-native-webview to v12 2023-06-10 17:58:55 +01:00
Marph 6dc8ad2ba6 Desktop: Resolves #3535: Configure Rich Text editor to handle the first table row as header (#8163) 2023-06-10 17:08:15 +01:00
renovate[bot] 152e354d87 Update dependency highlight.js to v11.8.0 (#8296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-10 17:07:35 +01:00
Laurent Cozic dbef391855 Disable RN auto-updates 2023-06-10 17:07:07 +01:00
Laurent Cozic 78f3f1c01a Mobile: Fixed text update issue when attaching a file to an empty note 2023-06-10 17:04:45 +01:00
Laurent Cozic e7409145b6 Mobile: Upgrade to React Native 0.71 2023-06-10 17:03:34 +01:00
Calum Lind bf8e34a0be Linux: Fixes #8297: Fix corrupted sidebar (#8298) 2023-06-10 14:03:26 +01:00
renovate[bot] 4aaea3fe71 Update dependency @react-native-community/datetimepicker to v7.0.1 (#8295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 18:15:23 +00:00
Laurent Cozic e5b4332f17 Android 2.11.26 2023-06-08 17:18:25 +01:00
Laurent Cozic 72a0adb434 Android: Fixes #8229: Fix alarms for latest Android versions 2023-06-08 16:43:06 +01:00
Laurent Cozic 37b745c69e Mobile: Fixes #8285: Fix sharing data with the app 2023-06-08 16:23:48 +01:00
Laurent Cozic 3338164f43 lock file 2023-06-08 16:02:42 +01:00
Laurent Cozic 98440beffa All: Fixes #8286: Allow certain HTML anchor tags 2023-06-08 15:18:46 +01:00
Laurent Cozic 0c6f779aab Desktop: Fixes #8287: Duplicated published notes retain the published note's label's color 2023-06-08 15:09:10 +01:00
Laurent Cozic fb27ae991c Linux: Resolves #8289: Ask user to restart app after switching profile 2023-06-08 14:46:37 +01:00
Laurent Cozic a41c9b6819 Renovate exclude 2023-06-08 14:46:36 +01:00
renovate[bot] 625812f7e6 Update dependency @react-native-community/datetimepicker to v7 (#8281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 14:37:32 +01:00
renovate[bot] e8cee2907c Update dependency domutils to v3.1.0 (#8293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 13:50:57 +01:00
renovate[bot] da25d10900 Update dependency style-loader to v3.3.3 (#8292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 07:45:01 +00:00
renovate[bot] 9f01258341 Update dependency css-loader to v6.7.4 (#8291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 05:23:18 +00:00
Joplin Bot 8608032243 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-06 18:17:20 +00:00
Laurent Cozic bdbb362644 Tools: Fixed git-changelog 2023-06-06 16:43:46 +01:00
Laurent Cozic 30671e7a20 Desktop release v2.11.9 2023-06-06 16:34:13 +01:00
Laurent Cozic 8b578c5dde Desktop: Trying to fix white screen issue 2023-06-06 16:31:31 +01:00
Laurent Cozic 3792a5fb94 lock file 2023-06-06 16:31:12 +01:00
Laurent Cozic fb28268582 fix 2023-06-06 12:27:54 +01:00
Laurent Cozic be3c15c37c Doc: Add link to profile 2023-06-06 12:04:34 +01:00
Laurent Cozic b34342f01e Tools: Improve git-changelog tag detection 2023-06-06 12:04:06 +01:00
renovate[bot]andLaurent Cozic 19992ffcf9 Update buildTools (major) (#8266)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-06-06 10:55:02 +01:00
renovate[bot] 6c15940005 Update dependency tar to v6.1.15 (#8280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 09:39:30 +00:00
Joplin Bot 7f0f745af3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-06 00:43:31 +00:00
renovate[bot] 1d62003486 Update dependency react-native-safe-area-context to v4.5.3 (#8279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 00:23:56 +00:00
renovate[bot] fd373baeae Update dependency react-native-document-picker to v8.2.1 (#8278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 23:26:55 +00:00
Laurent Cozic f880e12a26 Desktop release v2.11.8 2023-06-05 20:05:56 +01:00
Laurent Cozic e81332e6b9 Desktop: Prevent double-initialisation of plugins 2023-06-05 20:05:00 +01:00
Laurent Cozic bda8766564 Desktop release v2.11.7 2023-06-05 18:46:41 +01:00
Laurent Cozic 6d7b856d1d Desktop: Resolves #8083: Improved word count when em-dash is used 2023-06-05 18:35:34 +01:00
Laurent Cozic 90a8d704c1 Desktop: Resolves #8175: Add support for AVIF image format 2023-06-05 18:23:41 +01:00
Rio Sinnott 8dfcec249f Desktop: Fixes #8159: "New note" buttons so large they occlude Search (#8249) 2023-06-05 18:22:31 +01:00
Laurent Cozic 659f602a12 Revert "Desktop: Fixes #4124: Fix note list blank space display problems (#7888)"
This reverts commit 5c6e17bc89.

Appears to cause this regression (based on stacktrace):

https://github.com/laurent22/joplin/issues/8237
2023-06-05 17:56:12 +01:00
Laurent Cozic 45877f8b26 Desktop: Fixes #7484: Window is white on startup 2023-06-05 17:49:34 +01:00
Laurent Cozic 77505e3c75 Revert "Android: Fixes #7766: Support monochrome icons (#7772)"
This reverts commit fd578d1c36.

Ref: https://github.com/laurent22/joplin/issues/8273
2023-06-05 17:15:24 +01:00
renovate[bot]andLaurent Cozic dde7acc70f Update buildTools (#8264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-06-04 18:34:32 +01:00
Laurent Cozic 531402cede Android 2.11.25 2023-06-03 17:47:00 +01:00
Laurent Cozic 56ca9d4125 Revert "Mobile: Fixes #8017: Fixed sync crash (#8056)"
This reverts commit b824ff5457.

Fixes error "Download interrupted" when downloading resources from
Joplin Cloud/Server.
2023-06-03 16:45:15 +01:00
Laurent Cozic 60b3921808 Android: Fix Vosk logic 2023-06-03 15:43:40 +01:00
Laurent Cozic 3a1759aabc Android 2.11.24 2023-06-02 16:37:34 +01:00
Laurent Cozic ac732f4d1d Tools: Fixed Vosk release script 2023-06-02 15:47:42 +01:00
Laurent Cozic 7779879c6d Mobile: Write to note in realtime using voice typing 2023-06-02 15:46:04 +01:00
github-actions[bot] c6a9837f1f @wimmers has signed the CLA in laurent22/joplin#8269 2023-06-02 14:27:03 +00:00
Laurent Cozic 6e49440b95 Android 2.11.23 2023-06-01 18:19:48 +01:00
Laurent Cozic 12746c5ff9 Revert "Mobile: Fixes #7918: Use react-native-drawer-layout instead of react-native-side-menu-updated (#7953)"
This reverts commit 40e0037d50.

It doesn't build on Android:

> Task :react-native-reanimated:buildCMakeRelWithDebInfo[arm64-v8a] FAILED
C/C++: ninja: error: '../../../../build/third-party-ndk/hermes/jni/arm64-v8a/libhermes.so',
needed by '../../../../build-main/intermediates/cxx/RelWithDebInfo/6w4f694p/obj/arm64-v8a/libreanimated.so',
missing and no known rule to make it
2023-06-01 17:35:27 +01:00
Laurent Cozic 7bd4a999a0 Update translations 2023-06-01 16:56:42 +01:00
Laurent Cozic e48d55c3e5 Mobile: Auto-detect language on start 2023-06-01 16:48:02 +01:00
Laurent Cozic 54efc9f2f5 Chore: Revert AWS package upgrade due to failing mobile build 2023-06-01 16:13:08 +01:00
Laurent Cozic 963eeccf7b Fixed buid 2023-06-01 15:25:40 +01:00
Laurent Cozic c89edd7b22 Tools: Implement "prefer-object-spread" eslint rule 2023-06-01 12:02:36 +01:00
Laurent Cozic 804d674d37 lock file 2023-06-01 11:26:02 +01:00
Laurent Cozic 514091eb41 Tools: Install rsync on CI 2023-06-01 09:44:27 +01:00
renovate[bot] cd506bd3f1 Update aws (#8265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 05:03:41 +00:00
Joplin Bot e2d47d7d0d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-01 00:54:11 +00:00
Laurent Cozic 7a9afd4aff Desktop release v2.11.6 2023-05-31 20:33:57 +01:00
Laurent Cozic e647775608 All: When resetting the master password, also create a new master key with that password 2023-05-31 20:31:44 +01:00
Laurent Cozic 577aa519e0 All: Fixes #8254: Improve selection of active E2EE key 2023-05-31 20:17:22 +01:00
renovate[bot] 03cfef6a8d Update dependency react-native-reanimated to v3.1.0 (#8255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 19:39:01 +01:00
github-actions[bot] 1219a30dff @cwilby has signed the CLA in laurent22/joplin#8259 2023-05-31 02:07:47 +00:00
LinkosredandLaurent Cozic 801719e3ba Doc: Update faq_joplin_cloud.md (#8250)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-29 14:04:05 +01:00
Laurent Cozic 02098dbd79 iOS 12.11.3 2023-05-29 13:28:04 +01:00
Laurent Cozic e149e4b5fd Revert "Mobile: Fix "Download interrupted" error"
This reverts commit b023f58497.

Due to:

https://discourse.joplinapp.org/t/the-latest-ios-version-of-joplin-12-11-2-works-weird/31045
2023-05-29 13:27:10 +01:00
Laurent Cozic b19f1a1023 Mobile: Fixed regression in biometric check
Due to f0ade02435
2023-05-29 13:27:09 +01:00
Laurent Cozic 192bfb5555 iOS: Fixed broken domain detection 2023-05-29 13:27:07 +01:00
Andrey Mukamolov fd578d1c36 Android: Fixes #7766: Support monochrome icons (#7772) 2023-05-29 11:36:47 +01:00
jcgurango 230e7f6914 Mobile: Resolves #8193: Implement parenting of notebooks (#7980) 2023-05-29 11:31:21 +01:00
GitStartandLaurent Cozic 12bba9da29 Desktop: Fixes #7933: Don't display "obsolete encryption method" message if the key is disabled (#8025)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-29 11:27:53 +01:00
Calum Lind 03424f76ea Desktop: Fixes #7506: Improve sidebar workaround for Linux w/Intel GPU (#8126) 2023-05-29 11:20:11 +01:00
Christopher O'Toole 745849023d Desktop: Fixes #6431: Preserve Table Alignment When Editing a Note With the Rich Text Editor (#8214) 2023-05-29 11:10:17 +01:00
github-actions[bot] 3e3b1764b7 @rio-codes has signed the CLA in laurent22/joplin#8249 2023-05-28 03:55:26 +00:00
Joplin Bot 902f0c3bf7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-28 00:43:11 +00:00
Joplin Bot 0f51249a76 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-27 18:14:29 +00:00
Laurent Cozic 3621e252d1 Desktop release v2.11.5 2023-05-27 17:24:51 +01:00
Laurent Cozic 5669b1f04f iOS 12.11.2 2023-05-27 16:33:33 +01:00
Laurent Cozic 91c99960ba Chore: iOS: Fix build 2023-05-27 16:30:25 +01:00
Laurent Cozic b309504ffb lock file 2023-05-27 14:46:21 +01:00
Laurent Cozic 22ab4b7473 iOS 12.11.1 2023-05-27 14:38:02 +01:00
Laurent Cozic 04ea9343b0 Doc: Mention Joplin Cloud in download page 2023-05-27 14:28:02 +01:00
Laurent Cozic b93f91078b Doc: Added Liberapay method 2023-05-27 12:43:46 +01:00
renovate[bot] b82e4be5c5 Update dependency @react-native-community/netinfo to v9.3.10 (#8239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-25 23:25:58 +00:00
Joplin Bot 77a6e6f617 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 18:16:45 +00:00
Laurent Cozic 959ae59af0 Doc: Add sponsor 2023-05-25 19:00:18 +01:00
Joplin Bot 98dd926cb9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 12:20:03 +00:00
Joplin Bot 8197c7aa7a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 06:18:05 +00:00
renovate[bot] 1687adf015 Update dependency react-select to v5.7.3 (#8230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 11:39:08 +00:00
renovate[bot] 7542ca907c Update dependency tar to v6.1.14 (#8228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 02:19:51 +00:00
renovate[bot] 1652b06e8c Update dependency jsdom to v21.1.2 (#8223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 18:13:20 +00:00
Milo Ivir 1a835ef094 All: Translation: Update hr_HR.po (#8219) 2023-05-20 18:27:29 -04:00
Joplin Bot 575f55b22c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-20 18:15:16 +00:00
Joplin Bot d105387ece Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-20 06:16:16 +00:00
renovate[bot] 587eceb7c0 Update dependency react-native-safe-area-context to v4.5.2 (#8218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-19 19:51:19 +00:00
Laurent Cozic c90d7756c0 Renovate - exclude xml2js 2023-05-19 20:50:37 +01:00
Laurent Cozic 9e90d9016d All: Security: Prevent XSS by sanitizing certain HTML attributes 2023-05-19 11:00:31 +01:00
Laurent Cozic ccec93eaa3 fix tests 2023-05-19 10:44:49 +01:00
github-actions[bot] 7bf823e0df @christopher-o-toole has signed the CLA in laurent22/joplin#8213 2023-05-18 23:44:24 +00:00
b533d8d164 Linux: Fix the ldconfig dependency (#8205)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-05-18 12:46:58 -04:00
97477bb751 Doc: Update README.md (#8197)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-05-18 00:49:06 -04:00
renovate[bot] 9cf863979b Update dependency yargs to v17.7.2 (#8207)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-18 00:01:12 +00:00
Laurent Cozic 9ffe990c0b Fixed tests 2023-05-17 19:59:22 +01:00
Joplin Bot 2c57e949b9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-17 18:16:02 +00:00
Laurent Cozic a7e185eb11 Server: Fixed copyright year 2023-05-17 18:23:38 +01:00
Laurent Cozic 091eff9bc2 Server: Allow giving a different version number to forks 2023-05-17 18:16:29 +01:00
Laurent Cozic a04be2b28a Tools: Ignore unsupport tags 2023-05-17 17:38:37 +01:00
Laurent Cozic caf66068bf Desktop, Mobile: Security: Disable SVG tag support in editor to prevent XSS 2023-05-17 16:00:24 +01:00
Laurent Cozic 8deba24d7d Chore: Improve TS types 2023-05-17 15:46:35 +01:00
Laurent Cozic 84b130e0cb Server: Process orphaned items 2023-05-17 15:11:55 +01:00
github-actions[bot] e6209f449e @sandrotanner has signed the CLA in laurent22/joplin#8204 2023-05-17 13:32:16 +00:00
Joplin Bot faa4c5b9fc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-17 12:20:02 +00:00
Laurent Cozic df9bfc7635 Doc: Describe how to escape Markdown in coding style 2023-05-17 10:04:31 +01:00
renovate[bot] a46648f1ee Update dependency sharp to v0.32.1 (#8128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 09:36:45 +01:00
github-actions[bot] 215434bb4f @ScriptInfra has signed the CLA in laurent22/joplin#8197 2023-05-16 21:29:02 +00:00
jcgurango 40e0037d50 Mobile: Fixes #7918: Use react-native-drawer-layout instead of react-native-side-menu-updated (#7953) 2023-05-16 20:51:51 +01:00
renovate[bot] 6afd839ae8 Update dependency lint-staged to v13.2.2 (#8196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 18:02:46 +00:00
renovate[bot] 63595d2469 Update dependency @react-native-community/push-notification-ios to v1.11.0 (#8195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 15:18:08 +01:00
Joplin Bot d715e1ba6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-16 12:18:50 +00:00
Daniel Junho fb8a0c9ea9 Linux: Check libfuse2 dependency in install script (#8079) 2023-05-16 11:57:50 +01:00
github-actions[bot] ad20eba65e @laurent22 has signed the CLA in laurent22/joplin#8189 2023-05-16 10:56:45 +00:00
renovate[bot] ea73e20115 Update dependency react-native-paper to v5.8.0 (#8183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:30 +01:00
renovate[bot] 1b8e9271a6 Update dependency markdown-it-multimd-table to v4.2.2 (#8180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:21 +01:00
renovate[bot] 3a8a7a592d Update dependency nodemailer to v6.9.2 (#8164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:06 +01:00
renovate[bot] 9d5c63de4f Update dependency sass to v1.62.1 (#8119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:42:35 +01:00
Laurent Cozic e37c95b9e5 Tools: Set pruneBranchAfterAutomerge for Renovate 2023-05-16 11:40:18 +01:00
Laurent Cozic 201c7d893e Desktop release v2.11.4 2023-05-16 10:26:01 +01:00
Laurent Cozic c12108d1ac Desktop: Fixes #8087: Fix slow startup time 2023-05-16 10:25:45 +01:00
Laurent Cozic 6ffd1046bd Desktop release v2.11.3 2023-05-16 09:32:38 +01:00
Laurent Cozic d4f49d6a02 CI: Fix Android build 2023-05-15 19:58:59 +01:00
Laurent Cozic cff24af099 Server v2.11.1 2023-05-15 18:16:42 +01:00
Laurent Cozic b99ba85acd Fixed tests 2023-05-15 18:14:26 +01:00
Laurent Cozic a0b707cbda Desktop, Server: Improved handling of items with duplicate IDs 2023-05-15 17:49:26 +01:00
Joplin Bot 1d7ffe358e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-14 18:15:33 +00:00
Laurent Cozic 9160f0e2a2 Android 2.11.22 2023-05-14 14:49:59 +01:00
Laurent Cozic 92272533e5 Merge branch 'dev' of github.com:laurent22/joplin into dev 2023-05-14 14:34:27 +01:00
Laurent Cozic 648e091523 Chore: Fix Android release script 2023-05-14 14:33:13 +01:00
Laurent Cozic b023f58497 Mobile: Fix "Download interrupted" error 2023-05-14 14:31:55 +01:00
Laurent Cozic c639791d4f Include yarn patches 2023-05-14 14:24:58 +01:00
Joplin Bot 6d52288e28 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-14 12:19:54 +00:00
Laurent Cozic 3e2f4b163b Android 2.11.21 2023-05-14 12:20:01 +01:00
renovate[bot] e0dbd198d8 Update dependency react-native-paper to v5.6.0 (#8181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-13 18:40:18 +01:00
Laurent Cozic a76c5c8746 Tools: Allow publishing varients 2023-05-13 18:25:29 +01:00
Laurent Cozic 20b43ce56e fix 2023-05-13 16:31:24 +01:00
Laurent Cozic 8215ce14c6 Tools: Allow different Android variants 2023-05-13 15:54:17 +01:00
renovate[bot] 3fead0a8a7 Update dependency styled-components to v5.3.10 (#8178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-13 05:50:55 +00:00
Jonatan c8bf3e8583 All: Translation: Update sv.po (#8169) 2023-05-12 13:57:39 -04:00
Dmitriy Q 42dee6c275 All: Translation: Update ru_RU.po (#8161) 2023-05-12 13:56:10 -04:00
Laurent Cozic 6f3f866f78 Android 2.11.16 2023-05-12 13:44:15 +01:00
Laurent Cozic adf2e7322d fix 2023-05-12 13:18:29 +01:00
Laurent Cozic 0df170926a Tools: Restore content after patching Android app 2023-05-12 13:18:28 +01:00
Laurent Cozic 20a26732a9 Tools: Restore content after patching Android app 2023-05-12 13:18:27 +01:00
Laurent Cozic 0da3e91a29 Tools: Exclude Vosk model files when building regular app 2023-05-12 13:17:01 +01:00
renovate[bot] 9ad56dc373 Update dependency gettext-extractor to v3.7.2 (#8167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-12 05:32:43 +00:00
Arda KılıçdağıandLaurent Cozic 29dab26dce All: Translation: Update tr_TR.po (#8162)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-11 18:22:36 -04:00
github-actions[bot] 10e8fbcdab @Ardakilic has signed the CLA in laurent22/joplin#8162 2023-05-11 19:11:11 +00:00
Laurent Cozic 6c4f566765 Doc: Fix download links 2023-05-11 19:12:39 +01:00
Joplin Bot 78df302e86 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-11 17:55:45 +00:00
Laurent Cozic f52dd4f098 Doc: Update download links 2023-05-11 18:44:50 +01:00
github-actions[bot] dbab786c7b @marph91 has signed the CLA in laurent22/joplin#8163 2023-05-11 14:17:59 +00:00
Laurent Cozic 3eb44d27b2 Mobile: Sync as soon as the app starts, and immediately after changing a note 2023-05-11 14:58:19 +01:00
Laurent Cozic 52bea115ac Tools: Allow uploading Android version to different repo 2023-05-11 14:48:33 +01:00
Laurent Cozic 19bdda25c6 Desktop: Security: Prevent XSS and potential RCE when using a special HTML tag 2023-05-11 14:17:37 +01:00
Laurent Cozic b26bc9ed5f Desktop: Security: Fixed possible XSS injection 2023-05-10 16:27:16 +01:00
Laurent Cozic 865cedc24f Android 2.11.14 2023-05-10 13:28:43 +01:00
Laurent Cozic 33f0811ad2 Server: Resolves #8153: Allow setting NTP server using NTP_SERVER env variable 2023-05-10 12:50:48 +01:00
Laurent Cozic 8cedf27fea Desktop, Mobile: Resolves #8154: Translate Welcome notes 2023-05-10 12:20:04 +01:00
Laurent Cozic 052a829167 Desktop: Auto-detect locale on startup 2023-05-10 12:20:03 +01:00
Laurent Cozic 5371c97ccd Chore: Refactor build-welcome script 2023-05-10 12:20:02 +01:00
Joplin Bot c53b957293 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-09 18:17:54 +00:00
Laurent Cozic e6f8dc96df Fixed CI 2023-05-09 17:21:40 +01:00
Laurent Cozic 21648b1b1b Desktop: Fixes #8149: Application cannot be installed on Windows 10 in some cases 2023-05-09 12:56:23 +01:00
Laurent Cozic 83db6f6596 Desktop release v2.11.2 2023-05-09 11:13:38 +01:00
Laurent Cozic 3adfa574c0 Desktop: Fixes #8149: Application cannot be installed on Windows 10 in some cases 2023-05-09 11:13:23 +01:00
Laurent Cozic 4d0ffc5beb clean up 2023-05-09 11:12:53 +01:00
Laurent Cozic 69f9b160dd Chore: Cleanup Android release script 2023-05-09 11:01:43 +01:00
Laurent Cozic c17b02cfb5 Android 2.11.13 2023-05-09 08:49:00 +01:00
Laurent Cozic 6dd57b63a6 Chore: Enable Hermes again on Android to try to fix crash 2023-05-08 21:03:11 +01:00
Laurent Cozic 248c8014c8 Android 2.11.12 2023-05-08 21:02:28 +01:00
Joplin Bot 5fe2766a6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 18:16:06 +00:00
Laurent Cozic 000e0ad517 Chore: Android: Remove non longer needed joplin/react-native-vosk package 2023-05-08 18:54:23 +01:00
Laurent Cozic c047375143 Chore: Android: Trying to fix random crash 2023-05-08 18:44:52 +01:00
Laurent Cozic bd9e62cbd2 Android 2.11.11 2023-05-08 18:27:18 +01:00
Laurent Cozic 5ecae17538 Mobile: Tells whether Hermes engine is enabled or not 2023-05-08 17:50:19 +01:00
Laurent Cozic 35037e2dc9 fix tests 2023-05-08 17:30:30 +01:00
Laurent Cozic 059202be09 Desktop: Fixes #8072: Enter Key No Longer Saves and Closes The Tag Dialog 2023-05-08 17:07:55 +01:00
Laurent Cozic 6672f63981 Desktop: Fixes #8143: Fixes crash when using multiple profiles along with certain plugins 2023-05-08 16:45:18 +01:00
Laurent Cozic f390eca4de Desktop: Fixes #8143: Fixes crash when using multiple profiles along with certain plugins 2023-05-08 15:34:38 +01:00
Joplin Bot edc5e33559 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 13:12:39 +00:00
Laurent Cozic a4b81edb5a Doc: Fix news page 2023-05-08 13:12:57 +01:00
Joplin Bot fc5f338e16 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 11:38:41 +00:00
Laurent Cozic 767e380144 Doc: Release notes for 2.10 2023-05-08 12:24:55 +01:00
Laurent Cozic 60aff6ae77 Android 2.11.10 2023-05-08 12:09:28 +01:00
Laurent Cozic 345d9da7f2 Update translations 2023-05-08 10:56:16 +01:00
Laurent Cozic 98d45b1b81 Chore: Make text translatable 2023-05-08 10:38:52 +01:00
Joplin Bot 2cbf12bf0b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 06:17:54 +00:00
Laurent Cozic 968529f7e8 Android 2.11.9 2023-05-07 20:04:55 +01:00
Laurent Cozic b1b7c3903f Update renovate.json5 2023-05-07 18:58:56 +01:00
Laurent Cozic 530a620d68 Chore: Fix Android buiold 2023-05-07 18:29:10 +01:00
Laurent Cozic 1f2ecd08eb Android 2.11.8 2023-05-07 18:26:16 +01:00
Laurent Cozic d5eeb12ce7 Android: Fix voice typing 2023-05-07 17:53:19 +01:00
Laurent Cozic e9e9986978 Mobile: Disable Hermes engine 2023-05-07 17:52:58 +01:00
Laurent Cozic d44f212b95 Android 2.11.7 2023-05-07 15:29:58 +01:00
Laurent Cozic 47be6bcde3 Chore: Mobile: Fixed typo 2023-05-07 14:56:02 +01:00
Laurent Cozic ef256a82ab Android 2.11.6 2023-05-07 14:53:51 +01:00
Laurent Cozic b4d56f42f7 Chore: Disable Hermes to try to debug crash
Ref: https://github.com/facebook/react-native/issues/29165
2023-05-07 14:24:40 +01:00
Laurent Cozic c1598c1a59 Doc: Update Android changelog 2023-05-07 14:24:26 +01:00
Laurent Cozic 3b6decfaf6 lock file 2023-05-07 12:48:30 +01:00
Laurent Cozic 5494e8c3dc Mobile: Improved Vosk support (beta, fr only) (#8131) 2023-05-07 12:05:41 +01:00
renovate[bot] 39059ae6bf Update dependency reselect to v4.1.8 (#8137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-07 02:10:24 +00:00
renovate[bot] 5773f63664 Update dependency react-native-share to v8.2.2 (#8130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 18:03:17 +00:00
renovate[bot] 5698c30d1a Update dependency sharp to v0.32.0 (#8124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 12:12:27 +01:00
github-actions[bot] 218d69cf38 @cas-- has signed the CLA in laurent22/joplin#8126 2023-05-04 08:42:05 +00:00
renovate[bot] 00369fd613 Update dependency koa to v2.14.2 (#8111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-03 16:11:52 +00:00
Laurent Cozic ef86e01cd6 Android 2.11.4 2023-05-03 13:09:52 +01:00
Laurent Cozic efd9f740ca Tools: Fixed git-changelog logic 2023-05-03 12:47:40 +01:00
Laurent Cozic 36c121523a Android: Add support for offline speech to text (Beta - FR only) (#8115) 2023-05-03 12:19:43 +01:00
Laurent Cozic 991c12025b Mobile: Fixes issue where the note body is not updated after attaching a file 2023-05-03 11:45:19 +01:00
renovate[bot] f1d6945cd5 Update dependency sass to v1.60.0 (#8116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-03 09:35:15 +01:00
Laurent Cozic 2ebebd1dfa Doc: Fix image 2023-05-03 09:33:22 +01:00
Linkosred d955ed464e Update faq_joplin_cloud.md (#8113) 2023-05-02 14:42:38 +01:00
github-actions[bot] b7695115da @Linkosred has signed the CLA in laurent22/joplin#8110 2023-05-02 09:54:29 +00:00
renovate[bot] f274678ad7 Update dependency react-native-document-picker to v8.2.0 (#8107)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-01 15:01:06 +01:00
renovate[bot] 5ff0309586 Update aws (#8106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-01 07:36:51 +00:00
Joplin Bot ffb6c25ce7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-01 00:39:43 +00:00
renovate[bot] 7237ae319a Update dependency gettext-extractor to v3.7.1 (#8102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-30 20:36:51 +00:00
Jonatan cdd5a911a9 All: Translation: Update sv.po (#8103) 2023-04-30 11:01:25 -04:00
github-actions[bot] 66b53f013d @reportxx has signed the CLA in laurent22/joplin#8103 2023-04-30 11:19:00 +00:00
Laurent Cozic 4d9ffffe56 Doc: Update Paypal link 2023-04-30 10:50:14 +01:00
Laurent Cozic c08f7de6bb Update architecture.md 2023-04-29 14:39:15 +01:00
Laurent Cozic 77789c0b17 Doc: Added architecture document 2023-04-29 11:40:13 +01:00
renovate[bot] be7056ff59 Update dependency react-native-safe-area-context to v4.5.1 (#8097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 22:30:07 +00:00
renovate[bot] 274a55a31f Update dependency lint-staged to v13.2.1 (#8091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 01:07:50 +00:00
Joplin Bot 32977c4e3f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-27 12:21:00 +00:00
renovate[bot] 075b1626bd Update dependency @react-native-community/netinfo to v9.3.9 (#8086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-27 12:19:05 +00:00
Joplin Bot fd6538fdc7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-27 00:42:00 +00:00
Torgny BjersandHelmut K. C. Tessarek b897191cc8 Doc: add note about reference links (#8036)
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-04-26 19:01:25 -04:00
Laurent Cozic 31897581d3 Desktop: Resolves #8028: Remove custom PDF viewer to reduce application size 2023-04-26 21:45:02 +01:00
Douglas Leão 6c1820edc0 All: Translation: Update pt_BR.po (#8077) 2023-04-26 09:53:09 -04:00
github-actions[bot] cfe4c8c6f4 @djunho has signed the CLA in laurent22/joplin#8079 2023-04-24 10:05:37 +00:00
github-actions[bot] b83165f9e5 @DeeJayLSP has signed the CLA in laurent22/joplin#8077 2023-04-24 04:57:05 +00:00
Laurent Cozic 7706f9058b Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:58:43 +01:00
Laurent Cozic 03222ba1b2 Revert "Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance""
This reverts commit d4f49db342.

Wrong fix
2023-04-23 22:56:24 +01:00
Laurent Cozic d4f49db342 Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:43:10 +01:00
Laurent Cozic 40e1b0559e Doc: Allow translating documentation 2023-04-23 22:33:15 +01:00
Laurent Cozic 738f1decbb Chore: Add types to search engine 2023-04-23 10:07:38 +01:00
jcgurango e5a364d052 Chore: Mobile: Convert note-list.js to NoteList.tsx (#8064) 2023-04-23 10:07:28 +01:00
Laurent Cozic 357a3e2e7b Chore: Add types to search engine 2023-04-23 10:05:13 +01:00
Joplin Bot af91fd99cc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-22 00:39:14 +00:00
Joplin Bot 3855f60a0d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-21 18:18:40 +00:00
Arun Kumar 079b379e7a Desktop: Resolves #8028: Compress installer to reduce size (#8068) 2023-04-20 09:02:04 +01:00
github-actions[bot] e23e036677 @Wladefant has signed the CLA in laurent22/joplin#8069 2023-04-19 12:28:56 +00:00
Arun Kumar b824ff5457 Mobile: Fixes #8017: Fixed sync crash (#8056) 2023-04-17 15:17:15 +03:00
renovate[bot] 3669a1b5d6 Update dependency react-native-paper to v5.5.2 (#8054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-16 23:41:05 +00:00
Laurent Cozic b93f9aaf01 Update terminal.md 2023-04-16 13:13:06 +03:00
renovate[bot] 8679290206 Update dependency react-native-paper to v5.5.1 (#8037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 22:36:08 +00:00
Joplin Bot 4acec5c6c7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-14 18:18:49 +00:00
Joplin Bot f1b03453a4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-14 12:20:07 +00:00
github-actions[bot] 7972dd5556 @simonla has signed the CLA in laurent22/joplin#8042 2023-04-11 19:03:07 +00:00
Laurent Cozic 4842500f0a Tools: Increase renovate stability days 2023-04-10 13:00:07 +02:00
renovate[bot] 84c7f28ec5 Update dependency react-native-paper to v5.5.0 (#8035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 12:57:53 +02:00
github-actions[bot] f3eea43d24 @tbjers has signed the CLA in laurent22/joplin#8036 2023-04-10 02:35:07 +00:00
Joplin Bot 8babaddbcb Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-09 12:21:18 +00:00
Laurent Cozic 13cdaabb17 Android 2.11.2 2023-04-09 14:07:14 +02:00
renovate[bot]andLaurent Cozic a94aa21088 Update dependency slugify to v1.6.6 (#8019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-04-09 12:56:05 +01:00
Henry Heino 6116bed4e3 Mobile: Resolve #8022: Editor syntax highlighting was broken (#8023) 2023-04-09 12:55:47 +01:00
Arun Kumar fabd0b4dda Desktop, Mobile: Fixes #7940: Removed MasterKey from Sync Status report (#8026) 2023-04-09 12:54:48 +01:00
Laurent Cozic 6b72f86e7b Mobile: Security: Prevent bypassing fingerprint lock on certain devices 2023-04-09 11:29:33 +02:00
Joplin Bot 02cf546124 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-09 06:17:13 +00:00
renovate[bot] eecb012d64 Update dependency @react-native-community/netinfo to v9.3.8 (#8033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-09 03:02:24 +00:00
Laurent Cozic 04e9b40769 Android 2.11.1 2023-04-08 10:51:00 +02:00
Laurent Cozic efdbaeb397 Mobile: Add log info for biometrics feature 2023-04-08 10:40:53 +02:00
Laurent Cozic 46425b920c Doc: Added some doc about Joplin Server items 2023-04-07 16:49:54 +02:00
Laurent Cozic f5be43c2ac Doc: Add info about synchronisation process 2023-04-07 16:36:59 +02:00
github-actions[bot] 080541a2fe @Letty has signed the CLA in laurent22/joplin#8029 2023-04-07 10:05:21 +00:00
github-actions[bot] 7dc638edf4 @gitstart has signed the CLA in laurent22/joplin#8024 2023-04-06 21:46:34 +00:00
Laurent Cozic 3b686194d8 Tools: Pass APPLE_APP_SPECIFIC_PASSWORD to CI 2023-04-06 14:02:45 +02:00
Laurent Cozic 5c2640f88f Tools: Simplify root workspace build 2023-04-06 12:11:45 +02:00
Laurent Cozic eca0f92dff Disable again 2023-04-06 11:46:06 +02:00
Laurent Cozic 260fa6c038 Clipper release v2.11.2 2023-04-06 11:44:55 +02:00
Laurent Cozic 8ec6bc9138 Tools: Simplify dependencies of root package 2023-04-06 11:29:59 +02:00
Laurent Cozic 93fa92369b Tools: Removing packages/tools dependency from root workspace 2023-04-06 11:02:22 +02:00
Laurent Cozic bc6c5ab7a7 Chore: Make utils package a fixed version again (too many problems otherwise) 2023-04-06 10:02:49 +02:00
Laurent Cozic 1826625e4f lock file 2023-04-05 23:19:25 +02:00
Laurent Cozic 20b8fb2719 Missing package 2023-04-05 22:48:17 +02:00
Laurent Cozic f813e71b29 Chore: Access utils lib with relative path 2023-04-05 22:35:47 +02:00
Laurent Cozic 02422a6e31 Chore: Access utils lib with relative path 2023-04-05 22:35:46 +02:00
renovate[bot] 69a34e87f3 Update dependency nanoid to v3.3.6 (#7973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-05 21:16:55 +01:00
Joplin Bot cbeaa16b61 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-05 18:18:02 +00:00
Joplin Bot 05917ac142 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-05 12:24:26 +00:00
Laurent Cozic 0c8de68b80 Desktop: Fixed issue with text disappearing within plugin-created zones when searching for text
Ref: https://github.com/joplin/plugin-abc-sheet-music/issues/5
2023-04-04 21:09:58 +02:00
Joplin Bot 44d93d52d3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-04 18:30:09 +00:00
Laurent Cozic 073bec9e8c CI: Trying to fix website builder 2023-04-04 20:16:35 +02:00
Laurent Cozic e6a8c2bea5 CI: Trying to fix website builder 2023-04-04 19:47:54 +02:00
Laurent Cozic 81c316cd2c CI: Trying to fix website builder 2023-04-04 19:24:03 +02:00
Laurent Cozic 659c851960 CI: Trying to fix website builder 2023-04-04 17:01:34 +02:00
Laurent Cozic 572701d9a0 Tools: Fix website builder 2023-04-04 12:04:42 +02:00
Laurent Cozic 66ef37bd4e Chore: Disable flaky test 2023-04-03 20:42:31 +02:00
Laurent Cozic 9ddf75604d Doc: Remove sponsor 2023-04-03 20:39:31 +02:00
Laurent Cozic 3ed7e1d7e8 Doc: Fix sponsor thumbnails 2023-04-03 20:39:31 +02:00
Laurent Cozic b2b412105a Merge branch 'release-2.10' into dev 2023-04-03 18:30:55 +02:00
Laurent Cozic 60a3c4f65e lock file 2023-04-03 18:26:04 +02:00
Laurent Cozic 9645414c17 Desktop release v2.10.13 2023-04-03 18:10:54 +02:00
Henry Heino af0136ef39 All: Fixes #7986: Fix OneDrive sync attempting to call method on null variable (#7987) 2023-04-03 18:09:52 +02:00
Self Not Found b76586c4fd All: Fixes #7851: Encode the non-ASCII characters in OneDrive URI (#7868) 2023-04-03 18:09:10 +02:00
Laurent Cozic 376e4ebde0 Desktop: Fixed display of installed plugins in About box 2023-04-03 18:01:06 +02:00
renovate[bot] 1439b8787f Update dependency react-native-image-picker to v5.3.1 (#8015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 11:51:02 +01:00
renovate[bot] b8854a99be Update dependency @lezer/highlight to v1.1.4 (#8014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:46:19 +00:00
renovate[bot] 6cf02173dc Update dependency gettext-extractor to v3.7.0 (#8012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:56:44 +01:00
renovate[bot] 4d8a53d8c9 Update dependency react-native-image-picker to v5.3.0 (#8010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:56:25 +01:00
renovate[bot] 7f43718e1d Update dependency react-select to v5.7.2 (#8009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-02 07:09:26 +00:00
renovate[bot] 690ce637b1 Update dependency nodemon to v2.0.22 (#8008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-02 03:42:02 +00:00
renovate[bot] 4d023e679e Update dependency turndown to v7.1.2 (#8006)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 16:46:25 +00:00
renovate[bot] 6e220a978f Update dependency jsdom to v21.1.1 (#8007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 16:00:34 +02:00
renovate[bot] 39757cd90e Update dependency sass to v1.59.3 (#8005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 05:46:20 +00:00
renovate[bot] 5ccbbea757 Update dependency react-native-paper to v5.4.1 (#8004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 22:56:15 +00:00
Arun Kumar 309222c082 Desktop: Fixes #8000: Fixed Linux tag display issues (#8002) 2023-03-31 23:13:59 +02:00
renovate[bot] 50f5fe2c91 Update dependency sass to v1.59.2 (#8001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 23:12:25 +02:00
renovate[bot] eacae83182 Update dependency react-native-paper to v5.4.0 (#7997)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 23:12:05 +02:00
Laurent Cozic 403d770b1d Tools: Trying to prevent CI from running on forks 2023-03-30 22:57:58 +01:00
Laurent Cozic a481bf1b53 Tools: Trying to prevent CI from running on forks 2023-03-30 22:55:14 +01:00
renovate[bot] 0d32570c9e Update dependency fs-extra to v11.1.1 (#7996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 20:11:29 +00:00
Fejby f017e99b02 All: Translation: Update cs_CZ.po (#7999) 2023-03-30 14:40:05 -04:00
github-actions[bot] a89d64d435 @Fejby has signed the CLA in laurent22/joplin#7999 2023-03-30 18:21:47 +00:00
github-actions[bot] 3a27086534 @TahaNw has signed the CLA in laurent22/joplin#7998 2023-03-30 17:33:50 +00:00
Laurent Cozic 413c1e41b5 Revert "Chore: Mac binary signing tweaks for embedded plugins (#7988)"
This reverts commit cf4008951d.

Not working.

Ref: https://github.com/laurent22/joplin/issues/7934#issuecomment-1490632038
2023-03-30 18:24:25 +01:00
Henry Heino 8b879464b8 All: Fixes #7986: Fix OneDrive sync attempting to call method on null variable (#7987) 2023-03-30 17:41:29 +01:00
renovate[bot] 97c9bbc1fe Update dependency react-native-paper to v5.3.1 (#7977) 2023-03-30 17:38:18 +01:00
renovate[bot] e5bebef7b2 Update dependency lint-staged to v13.2.0 (#7994) 2023-03-30 17:38:06 +01:00
renovate[bot] 73752c4b3f Update dependency pg to v8.10.0 (#7978) 2023-03-30 17:37:46 +01:00
Laurent Cozic dcf7c9838d Desktop release v2.11.1 2023-03-30 17:13:20 +01:00
Laurent Cozic f325e7694b Chore: Prepare v2.11 2023-03-30 17:13:06 +01:00
Arun Kumar 75d204c9ca Desktop: Resolves #6101: Added export graph button for Mermaid (#7958) 2023-03-30 16:58:48 +01:00
Arun Kumar cf4008951d Chore: Mac binary signing tweaks for embedded plugins (#7988) 2023-03-30 16:57:22 +01:00
renovate[bot] d67818d096 Update dependency react-select to v5.7.1 (#7993)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 14:30:20 +00:00
Laurent Cozic 6aaea8ad4f Renovate conf 2023-03-26 16:58:29 +01:00
github-actions[bot] de41278096 @HelpdeskThisIsJohn has signed the CLA in laurent22/joplin#7969 2023-03-26 03:41:02 +00:00
renovate[bot] f01ab70907 Update dependency sqlite3 to v5.1.6 (#7967) 2023-03-25 14:27:19 +00:00
renovate[bot] bbdb221a67 Update dependency react-native-document-picker to v8.1.4 (#7966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 18:21:01 +00:00
renovate[bot] 7d053f8c79 Update dependency styled-components to v5.3.9 (#7965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 14:17:40 +00:00
renovate[bot] fcad0bf3ca Update dependency style-loader to v3.3.2 (#7964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 10:04:32 +00:00
renovate[bot] 58f929f6b5 Update dependency sqlite3 to v5.1.5 (#7963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 05:40:51 +00:00
renovate[bot] 943198c56e Update dependency node-mocks-http to v1.12.2 (#7962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 01:51:21 +00:00
renovate[bot] 2112ad4004 Update dependency markdown-it-multimd-table to v4.2.1 (#7928) 2023-03-23 21:07:41 +00:00
Laurent Cozic 5995dc81f3 Doc: Added info about data escaping in coding style 2023-03-23 16:10:52 +00:00
Laurent Cozic 104e752634 Merge branch 'release-2.10' into dev 2023-03-23 11:35:21 +00:00
Laurent Cozic fc335cd15d Desktop release v2.10.12 2023-03-23 11:34:42 +00:00
Julien 45923ba0d3 Desktop: Adjusted New Note and New to-do buttons' breakpoints to happen earlier (#7961) 2023-03-23 11:32:36 +00:00
Julien 8fefa99d81 Desktop: Adjusted New Note and New to-do buttons' breakpoints to happen earlier (#7961) 2023-03-23 11:31:22 +00:00
Laurent Cozic 85d652cd67 Removed unused conf 2023-03-23 11:05:15 +00:00
github-actions[bot] 88e41e9c7d @chenqy9 has signed the CLA in laurent22/joplin#7955 2023-03-23 07:04:32 +00:00
Laurent Cozic 26750488d0 Merge branch 'release-2.10' into dev 2023-03-22 18:46:42 +00:00
Laurent Cozic a0f582b2b9 Android 2.10.9 2023-03-22 18:45:52 +00:00
Laurent Cozic 917b53bec2 lock file 2023-03-22 18:33:19 +00:00
Laurent Cozic e44a93422a Mobile: Mark biometrics feature as beta and ensure no call is made if it is not enabled 2023-03-22 18:24:10 +00:00
Laurent Cozic e115ef4259 Mobile: Mark biometrics feature as beta and ensure no call is made if it is not enabled 2023-03-22 18:22:58 +00:00
Laurent Cozic bcec699124 Doc: Fixed sponsor avatars 2023-03-21 17:31:43 +00:00
github-actions[bot] d23c728a1a @jcgurango has signed the CLA in laurent22/joplin#7953 2023-03-21 17:20:42 +00:00
Milo Ivir 0a2d507dec All: Translation: Update hr_HR.po (#7947) 2023-03-20 17:32:52 -04:00
Laurent Cozic 0c08617606 Fix CI 2023-03-20 13:43:25 +00:00
Laurent Cozic 29fba45c33 Fix CI 2023-03-20 12:24:17 +00:00
Laurent Cozic 1071a455b6 Revert "Update Croatian translation (#7937)"
This reverts commit ffeeff260f.

Ref: https://github.com/laurent22/joplin/pull/7937#issuecomment-1475058291
2023-03-20 10:20:46 +00:00
Laurent Cozic 57e4b36fd7 Revert "Revert "All: Translation: Update fi_FI.po (#7945)""
This reverts commit d18a4be31f.

Restore FI translation.

Ref: https://github.com/laurent22/joplin/commit/d18a4be31ff6578c48526e3c743508425a0dc2fd#commitcomment-105121959
2023-03-20 10:19:56 +00:00
Joplin Bot f08fa92294 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-19 18:19:35 +00:00
Laurent Cozic 3a8d87d292 Tools: Export rootDir from utils 2023-03-19 17:31:37 +00:00
Laurent Cozic 53302c9e90 lock file 2023-03-19 17:05:31 +00:00
Laurent Cozic 28a24d8c03 Chore: Fixed build 2023-03-19 17:03:04 +00:00
Laurent Cozic 3e52411bc4 Tools: Moved some utility functions to @joplin/utils to reduce dependencies between packages 2023-03-19 15:38:09 +00:00
Joplin Bot 1548ea18e1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-19 12:21:16 +00:00
Laurent Cozic f8cd1ba8e5 Revert "Tools: Switch Joplin Server image location to laurent22/joplin-server"
This reverts commit 6729a3d51f.

Ref: https://discourse.joplinapp.org/t/docker-image-doesnt-exist/30103/5
2023-03-19 09:07:19 +00:00
Laurent Cozic d18a4be31f Revert "All: Translation: Update fi_FI.po (#7945)"
This reverts commit c56f270ed6.

Ref: https://github.com/laurent22/joplin/pull/7937#issuecomment-1475058291
2023-03-19 08:59:16 +00:00
mrkaato0 c56f270ed6 All: Translation: Update fi_FI.po (#7945) 2023-03-18 21:16:42 -04:00
github-actions[bot] 2bca3d1032 @mrkaato0 has signed the CLA in laurent22/joplin#7945 2023-03-18 18:25:42 +00:00
renovate[bot] 9f81d69c5e Update dependency jquery to v3.6.4 (#7944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 16:33:08 +00:00
Laurent Cozic 815419260d Server v2.10.11 2023-03-17 17:50:34 +00:00
Laurent Cozic 6729a3d51f Tools: Switch Joplin Server image location to laurent22/joplin-server 2023-03-17 17:49:34 +00:00
Joplin Bot 6d8ce280dd Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-17 12:20:34 +00:00
Laurent Cozic 9e5b455065 Merge branch 'release-2.10' into dev 2023-03-17 08:56:39 +00:00
Laurent Cozic 09cbac3019 Desktop release v2.10.11 2023-03-17 08:55:09 +00:00
Julien 5354ad3934 Desktop: Fixes text wrap on new buttons (#7938) 2023-03-17 08:53:19 +00:00
Julien 7754048b80 Desktop: Fixes text wrap on new buttons (#7938) 2023-03-17 08:51:46 +00:00
Milo Ivir ffeeff260f Update Croatian translation (#7937) 2023-03-17 08:51:22 +00:00
Julien 71ea74d273 Desktop: Fixes #4801: Do not allow update for plugins incompatible with current version (#7936) 2023-03-17 08:50:51 +00:00
Julien 3a744c79ae Desktop: Fixes #7920: List enabled plugins only in About Joplin and in alphabetical order (#7923) 2023-03-17 08:41:33 +00:00
renovate[bot] d9ba27a1ec Update dependency lint-staged to v13.1.4 (#7935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 20:26:38 +00:00
github-actions[bot] 0a3540049c @milotype has signed the CLA in laurent22/joplin#7937 2023-03-16 18:51:53 +00:00
Henry Heino ab50ca9bbd Mobile: Add setting to enable/disable the markdown toolbar (#7929) 2023-03-16 11:12:56 +00:00
renovate[bot] 0bee793ab8 Update dependency lint-staged to v13.1.3 (#7927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-15 20:36:26 +00:00
Arun Kumar 89fc5e19d9 Desktop: Fixes #7881: Fixed icon when note is dragged across notebooks (#7924) 2023-03-15 14:33:59 +00:00
Arun Kumar 6a3bf51084 Desktop: Resolves #7889: Add support for --safe-mode command line flag (#7919) 2023-03-14 11:46:21 +00:00
Laurent Cozic df1e298c84 Doc: Mentioned Safe Mode in debugging doc 2023-03-14 11:41:30 +00:00
Joplin Bot b9c706324b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-14 06:18:40 +00:00
Laurent Cozic ab7e2de1d9 Update renovate.json5 2023-03-14 01:29:44 +00:00
Joplin Bot 7ef8753b94 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-14 00:40:45 +00:00
Laurent Cozic d48a5efa03 Doc: Update coding style 2023-03-13 19:31:22 +00:00
Laurent Cozic 0804b62ffb Merge branch 'release-2.10' into dev 2023-03-13 18:48:05 +00:00
Laurent Cozic 37995b9ec7 Desktop release v2.10.10 2023-03-13 18:46:58 +00:00
Julien 7a3e6fde7f Desktop: Fixes #7907: Fixed height when controls are on a single row (#7912) 2023-03-13 16:26:56 +00:00
Laurent Cozic bd4291462e Desktop: Fix issue where search bar can randomly lose focus while searching 2023-03-13 12:19:22 +00:00
Laurent Cozic 489d6778db Desktop: Fix issue where search bar can randomly lose focus while searching 2023-03-13 12:18:47 +00:00
renovate[bot] 538a1413d9 Update dependency nodemon to v2.0.21 (#7908)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 22:39:35 +00:00
Joplin Bot 3c9b755045 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-12 18:16:33 +00:00
Laurent Cozic fd7b345efa Merge branch 'release-2.10' into dev 2023-03-12 15:44:02 +00:00
Laurent Cozic c96468149a Desktop release v2.10.9 2023-03-12 15:37:38 +00:00
pedr d6d4897e1c Desktop: Resolves #7880: Paste as Text only working on hotkeys on Windows (#7886) 2023-03-12 15:33:16 +00:00
Julien e07e248fea Desktop: Always show new note buttons (Regression) (#7850) 2023-03-12 15:30:41 +00:00
Julien b561460307 Desktop: Resolves #7848: Made note list controls responsive (#7884) 2023-03-12 15:26:15 +00:00
Self Not Found f6d1a27f51 All: Fixes #7851: Encode the non-ASCII characters in OneDrive URI (#7868) 2023-03-12 15:21:31 +00:00
Tao Klerks 80a1500634 Desktop: Fixes #7741: With Custom Sort, new notes appear at bottom and later randomly "pop" to the top (#7765) 2023-03-12 15:16:45 +00:00
Laurent Cozic bcb578c933 Doc: Update sponsors 2023-03-12 12:38:08 +00:00
Laurent Cozic 75ad454971 Doc: Make website work on more resolutions and added LinkedIn link 2023-03-12 11:53:44 +00:00
renovate[bot] e90b7f2d81 Update dependency styled-components to v5.3.8 (#7906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 10:17:05 +00:00
renovate[bot] ffca11ca8a Update dependency react-native-share to v8.2.1 (#7904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:41 +00:00
renovate[bot] bd98951d32 Update dependency react-native-image-picker to v5.1.0 (#7896) 2023-03-10 12:54:53 +00:00
pedr 9106fb82f3 Chore: Desktop: Resolves #7879: Paste as Text shortcut pasting content twice (#7885) 2023-03-10 12:53:48 +00:00
Arun Kumar 5c6e17bc89 Desktop: Fixes #4124: Fix note list blank space display problems (#7888) 2023-03-10 12:06:30 +00:00
Arun Kumar 538e9e9b4e Desktop: Fixes #7506: Linux notebook display bug (#7897) 2023-03-10 12:01:35 +00:00
Laurent Cozic d871b3c7d6 Tools: Include packages that have been updated by Renovate in changelog 2023-03-09 17:50:57 +00:00
Laurent Cozic 99c6c9b411 Tools: Add more eslint/jest rules 2023-03-09 17:50:56 +00:00
Laurent Cozic 3eca4ada5a Tools: Add eslint rule "jest/require-top-level-describe" 2023-03-09 17:50:56 +00:00
Laurent Cozic 19431abc73 Server v2.10.10 2023-03-09 14:37:27 +00:00
renovate[bot] 3e299f1ab9 Update dependency yargs to v17.7.1 (#7892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-09 01:14:55 +00:00
renovate[bot] 42873d3829 Update dependency yargs to v17.7.0 (#7890) 2023-03-08 22:17:54 +00:00
renovate[bot] 4983327f90 Update dependency node-persist to v3.1.3 (#7887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-07 21:28:30 +00:00
Mr-Kanister fddbe6cf6c All: Translation: Update de_DE.po (#7883) 2023-03-07 13:22:43 -05:00
Laurent Cozic 57f00c612d Desktop: Resolves #7867: Cache code blocks in notes to speed up rendering 2023-03-07 17:55:20 +00:00
Joplin Bot 235288e903 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-07 12:23:39 +00:00
Laurent Cozic 38be744c3e Tools: Update stats script so that it runs at the beginning of the month 2023-03-07 10:01:24 +00:00
Laurent Cozic 2384ec8792 Chore: Disable flaky test 2023-03-06 17:54:01 +00:00
Laurent Cozic 85f7caa0eb Merge branch 'release-2.10' into dev 2023-03-06 15:48:49 +00:00
Laurent Cozic ad0f0414c4 iOS 12.10.5 2023-03-06 15:48:23 +00:00
Laurent Cozic 437320f90c lock file 2023-03-06 14:24:14 +00:00
Laurent Cozic c1db7182ac Tools: Add class member accessibility modifiers and converted rule @typescript-eslint/explicit-member-accessibility to an error 2023-03-06 14:22:37 +00:00
renovate[bot] aa4af69afc Update dependency yeoman-generator to v5.8.0 (#7878) 2023-03-06 14:00:03 +00:00
renovate[bot] 21a39af97b Update dependency node-persist to v3.1.2 (#7876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-06 00:10:07 +00:00
Laurent Cozic 0812cc5944 Doc: Typo 2023-03-04 12:19:23 +00:00
renovate[bot] 1fb5d2c6c5 Update dependency raw-body to v2.5.2 (#7869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-04 08:26:49 +00:00
Laurent Cozic 1b9901d232 Doc: Update coding style 2023-03-03 12:09:45 +00:00
Laurent Cozic f15d2793cc Doc: Update coding style
Removed rules that are not enforced by esling,
and added new ones
2023-03-03 11:45:01 +00:00
Self Not Found ad4d71dbe1 Desktop: Fixes #7831: Skip the resources which haven't been downloaded yet when exporting (#7843) 2023-03-03 11:31:49 +00:00
Julien 4bee6ffc90 Desktop: Always show new note buttons (Regression) (#7850) 2023-03-03 11:28:12 +00:00
Julien 01f63b3d97 Desktop: Fix lines alignment when sort order buttons are disabled (Regression) (#7849) 2023-03-03 11:27:11 +00:00
renovate[bot] b19b590efc Update dependency open to v8.4.2 (#7860)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-03 01:06:42 +00:00
Joplin Bot 6b7577f94d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-02 15:19:57 +00:00
Laurent Cozic 4d09b14522 Doc: Added new for JdLL 2023 2023-03-02 13:27:02 +00:00
Laurent Cozic 9f1e95324d Doc: Added new for JdLL 2023 2023-03-02 13:25:46 +00:00
renovate[bot] f98314346d Update contributor-assistant/github-action action to v2.3.0 (#7857) 2023-03-01 12:57:31 +00:00
Arun Kumar fa659b615a Doc: Fix minor typo in technical spec documentation (#7856) 2023-03-01 05:42:30 -05:00
github-actions[bot] e4aafa7edb @palerdot has signed the CLA from Pull Request #7856 2023-03-01 10:00:41 +00:00
renovate[bot] 811c40b074 Update dependency sass to v1.58.3 (#7852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-28 23:41:07 +00:00
Laurent Cozic 405c528ef0 Android 2.10.8 2023-02-28 18:19:09 +00:00
Laurent Cozic a176216374 Update translations 2023-02-28 18:02:09 +00:00
renovate[bot] 8d0b090f66 Update dependency madge to v6 (#7853) 2023-02-28 15:06:57 +00:00
Joplin Bot 337c5ed61c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-28 00:45:05 +00:00
Joplin Bot b32d39860b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-27 18:19:06 +00:00
renovate[bot] a091608f72 Update dependency react-native-share to v8.2.0 (#7845) 2023-02-27 12:22:55 +00:00
renovate[bot] 9686ee7833 Update dependency react-native-paper to v5.2.0 (#7844) 2023-02-27 12:22:38 +00:00
renovate[bot] 3b55dcac65 Update dependency sass to v1.58.2 (#7846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-27 06:00:02 +00:00
Joplin Bot d524d11d8a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-26 18:16:41 +00:00
Tao Klerks 9c080ec631 Desktop: Fixes #7776: Drag-dropping notes to top or bottom, in custom sort, is finicky (#7777) 2023-02-26 15:40:13 +00:00
Laurent Cozic da11476fd7 CLI v2.10.3 2023-02-26 13:04:03 +00:00
Laurent Cozic d157b9cfc7 Cli: Fixed "sync" command when calling it in non-interactive mode 2023-02-26 13:02:50 +00:00
Laurent Cozic bc8c61748a CLI v2.10.2 2023-02-26 12:41:43 +00:00
Laurent Cozic 3ad727889b Lock file 2023-02-26 12:40:57 +00:00
Laurent Cozic 8df128bb7a Releasing sub-packages 2023-02-26 12:37:29 +00:00
Laurent Cozic 5a4568f4db CI: Fixed publishall 2023-02-26 12:33:59 +00:00
Laurent Cozic 170295919a CI: Fixed publishall 2023-02-26 12:17:17 +00:00
Laurent Cozic 2262cbfdfd Desktop release v2.10.8 2023-02-26 12:15:07 +00:00
Andrej Lifinzew 43e40bcf5a CLI: Resolves #1728: Create subnotebooks (#6722) 2023-02-26 12:13:45 +00:00
Helmut K. C. Tessarek e60595f0de All: Translation: Update da_DK.po (thanks ERYpTION) 2023-02-25 16:54:55 -05:00
renovate[bot] 527a7c115d Update jest monorepo to v29.4.3 (#7841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-25 20:42:10 +00:00
Laurent Cozic c22f910500 Merge branch 'release-2.10' into dev 2023-02-25 16:50:09 +00:00
Laurent Cozic 667b7969ff CLI v2.10.1 2023-02-25 16:49:54 +00:00
Laurent Cozic 1bbf065142 Releasing sub-packages 2023-02-25 16:47:37 +00:00
renovate[bot] 606cad3c3a Update dependency react-native-image-picker to v5.0.2 (#7829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-25 07:42:17 +00:00
renovate[bot] c9612dc8b8 Update dependency lint-staged to v13.1.2 (#7832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-25 04:15:09 +00:00
renovate[bot] 6ee30e22a6 Update dependency @react-native-community/datetimepicker to v6.7.5 (#7835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-25 02:11:33 +00:00
Laurent Cozic a6536e1ef9 Chore: Improve logging on api/notes 2023-02-24 18:50:04 +00:00
Laurent Cozic 92cf5abd08 Desktop: Fixed clipping certain pages that contain images within links 2023-02-24 18:49:27 +00:00
Laurent Cozic d1e545ac2c Desktop: Note background does not change when theme automatically updated via system 2023-02-24 18:00:14 +00:00
Laurent Cozic ec6567c68d Update translations 2023-02-24 15:30:26 +00:00
Joplin Bot 3b236307f7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-24 12:23:01 +00:00
Laurent Cozic 14ac54bf3d Update translations 2023-02-24 12:07:30 +00:00
Laurent Cozic e53b796523 iOS 12.10.4 2023-02-24 11:50:40 +00:00
Laurent Cozic 9d189b2b34 iOS 12.10.4 2023-02-24 11:50:16 +00:00
renovate[bot] 84545cf26d Update dependency sass to v1.58.1 (#7818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-24 10:39:20 +00:00
Joplin Bot c427a6d0a5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-24 06:18:07 +00:00
Laurent Cozic 42dc6e1ea6 Desktop release v2.10.7 2023-02-23 13:52:29 +00:00
Laurent Cozic 431b95ff7b Android 2.10.7 2023-02-23 13:51:39 +00:00
Laurent Cozic 041fb731a6 lock file 2023-02-23 13:36:59 +00:00
pedr 5289f80394 Chore: Mobile: Fixes #7822: Spellcheck was hidden because of deprecated logic (#7830) 2023-02-23 13:31:08 +00:00
Laurent Cozic 6c12ce0e04 Chore: Set type of main BrowserWindow, and fixed popup calls 2023-02-22 18:16:28 +00:00
Teko-uy 46982c7d64 Completed spanish translation (#7817) 2023-02-22 14:36:53 +00:00
Julien 359448eb69 Chore: Regression: Revert changes made to the note list' height (#7823) 2023-02-22 13:13:39 +00:00
Julien 32bb256cca All: Resolves #7661: Stop synchronization with unsupported WebDAV providers (#7819) 2023-02-22 13:12:53 +00:00
github-actions[bot] 219585bbcf @adidevs has signed the CLA from Pull Request #7824 2023-02-22 10:33:39 +00:00
renovate[bot] 1a9dbcbd1d Update dependency yeoman-generator to v5.7.1 (#7821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-22 04:34:29 +00:00
pedr 6a9848ebe7 Desktop: Fixes #7782: Markdown + Front Matter export fails when tag(s) lost (#7820) 2023-02-21 17:57:04 +00:00
Laurent Cozic 9e73d3590b Tools: Add eslint rule "no-unneeded-ternary" 2023-02-21 17:19:19 +00:00
Laurent Cozic 08c9a25182 Chore: Desktop: Do not wait for updating geolocation (regression) 2023-02-21 17:19:19 +00:00
renovate[bot] 5b9a45dc1d Update dependency sass to v1.58.0 (#7813) 2023-02-21 15:38:04 +00:00
Laurent Cozic 9dd2fb9674 Fixed regression 2023-02-21 15:28:00 +00:00
github-actions[bot] 234b5c8363 @Teko-uy has signed the CLA from Pull Request #7817 2023-02-21 13:37:05 +00:00
github-actions[bot] 1dc7ec3701 @rddunphy has signed the CLA from Pull Request #7815 2023-02-21 11:22:29 +00:00
Polaris66 72773caf58 Desktop: Resolves #7692: Added "Move Line Up" and "Move Line Down" shortcuts (#7755) 2023-02-21 10:55:17 +00:00
Joplin Bot 094249d074 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-20 18:17:07 +00:00
Laurent Cozic c324f17453 Tools: Fixed Android build error with JDK 19 2023-02-20 16:09:34 +00:00
Laurent Cozic 25a31b0689 Android: Fixes #7791: Fixed issue where app would close after sharing a file 2023-02-20 16:09:33 +00:00
pedr f2995dd196 Tools: Add prefer-arrow-callbacks to ESlint rules (#7810) 2023-02-20 15:02:29 +00:00
Tao Klerks ca575162f7 Desktop: Fixes #7731: Make note sort update logic use correct prior sort and drop-grouping (#7737) 2023-02-20 13:23:26 +00:00
pedr f0ade02435 Mobile: Fixes #7762: Hide main content while biometric is enabled and not authenticated (#7781) 2023-02-20 12:55:40 +00:00
pedr b13c02017a Desktop: Add a link to twitter inside the help menu (#7796) 2023-02-20 12:45:23 +00:00
Laurent Cozic 716c8c1ce4 Desktop release v2.10.6 2023-02-20 11:48:44 +00:00
Laurent Cozic 30a49b84ad Chore: Mobile: Restore broken back button when file is shared 2023-02-19 19:24:44 +00:00
Laurent Cozic b8e4150bfd iOS: Fixes #7791: Sharing pictures to Joplin creates recurring duplications 2023-02-19 19:06:17 +00:00
Laurent Cozic ed0edcb36c iOS: Fixed sharing file 2023-02-19 19:00:17 +00:00
Laurent Cozic e93046e8e2 lock file 2023-02-19 18:27:43 +00:00
javad mnjd 18a0ca0881 Android: Fixes #7791: Sharing pictures to Joplin creates recurring duplications (#7807) 2023-02-19 18:23:00 +00:00
javad mnjd 21dbc800d5 Android: Fixes #6942: Fixed error when sharing a file (#7801) 2023-02-19 18:21:49 +00:00
Laurent Cozic 5c1eda3392 Chore: Mobile: Refactor note-screen-shared utility lib 2023-02-19 13:09:07 +00:00
Laurent Cozic 1139317788 Chore: Mobile: Refactor note-screen-shared utility lib 2023-02-19 13:09:06 +00:00
Laurent Cozic a24ccb8da9 Chore: Mobile: Convert Notes component to TSX and fixed AppState listener issue 2023-02-19 13:09:06 +00:00
vikneshwar 0aaa396315 Mobile: Fixes #7675: Fix camera attachment (#7775) 2023-02-19 13:08:53 +00:00
jbfagot f9dc19e1c4 Typo correction (#7803) 2023-02-19 11:33:06 +00:00
github-actions[bot] 1839724d7c @jbfagot has signed the CLA from Pull Request #7803 2023-02-19 08:58:20 +00:00
renovate[bot] a5aeb3a2f8 Update dependency open to v8.4.1 (#7800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 18:31:53 +00:00
javad mnjd d5d57aa360 Android: Fixes #7791: Fixed duplicate sharing issue (#7799) 2023-02-18 16:30:56 +00:00
renovate[bot] 9aa5df7790 Update dependency @react-native-community/datetimepicker to v6.7.4 (#7798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 12:14:30 +00:00
renovate[bot] a7697465a8 Update jest monorepo to v29.4.2 (#7793)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 07:13:34 +00:00
renovate[bot] aeb7e5ce47 Update dependency gettext-extractor to v3.6.2 (#7795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 01:48:20 +00:00
Laurent Cozic 42cef1e918 CLI: Validate required flags 2023-02-17 16:31:20 +00:00
ahk02 b832930512 Cipper: fixed display cutoff due to increase in browser scale (#7757) 2023-02-17 13:29:15 +00:00
Henry Heino 057ac550bd Chore: Renderer: Refactor and test long-press and click handlers (#7774) 2023-02-17 13:13:28 +00:00
pedr 3a14b76a61 Desktop: Add a menu option to reset the application layout (#7786) 2023-02-17 13:07:18 +00:00
Julien e1a8c76598 Desktop: New design for "New note" and "New todo" buttons (#7780) 2023-02-17 13:02:47 +00:00
Julien b62e6552cd Chore: Remove test spy (#7790) 2023-02-17 12:52:06 +00:00
renovate[bot] ca6e50e80c Update dependency lint-staged to v13.1.1 (#7788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-17 11:51:44 +00:00
renovate[bot] ad8947a85d Update dependency pg to v8.9.0 (#7784) 2023-02-17 00:01:46 +00:00
github-actions[bot] fb562210b2 @adibullu123 has signed the CLA from Pull Request #7785 2023-02-16 16:20:58 +00:00
melsonic 34940d1c4f Desktop: Fixes #7662: Ctrl-X behaviour when no text is selected (#7778) 2023-02-16 14:08:28 +00:00
Laurent Cozic 7fa1459dc3 Tools: Apply eslint rules "no-console" and "id-denylist" 2023-02-16 10:58:24 +00:00
Laurent Cozic 625689dbb1 Tools: Add "@typescript-eslint/object-curly-spacing" rule 2023-02-16 10:58:23 +00:00
Julien dc976047d2 Desktop: Fixes #7658: Clicking on Save saves changes when updating a link (#7753) 2023-02-16 09:01:50 +00:00
github-actions[bot] a014e830e7 @laurent22 has signed the CLA from Pull Request #7778 2023-02-15 21:40:20 +00:00
github-actions[bot] 1e828bfdca @laurent22 has signed the CLA from Pull Request #7775 2023-02-15 21:40:16 +00:00
github-actions[bot] 60309ec6a3 @laurent22 has signed the CLA from Pull Request #7772 2023-02-15 21:39:56 +00:00
github-actions[bot] aabba090b1 @laurent22 has signed the CLA from Pull Request #7757 2023-02-15 21:39:52 +00:00
github-actions[bot] 6ae903ef4d @laurent22 has signed the CLA from Pull Request #7755 2023-02-15 21:38:49 +00:00
pedr dd86940c6b Desktop: Add 'Paste as text' to the Context menu of the Rich Text Editor (#7769) 2023-02-15 13:59:32 +00:00
pedr 7d7b7ed6f3 Desktop: Fixes #7634: App freezes and displays fatal error when text provided in the search bar is too long (#7764) 2023-02-14 15:13:31 +00:00
renovate[bot] 8de904cd3c Update jest monorepo to v29.4.1 (#7760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-14 04:26:21 +00:00
pedr c706b8dd2f Desktop: Allow 'Paste as Text' on the Rich Text Editor (#7751) 2023-02-13 19:16:33 +00:00
Laurent Cozic d55d4d42e5 Doc: Fixed licence info 2023-02-13 17:10:09 +00:00
Tao Klerks bbfeffec69 All: Fixes #6956: Custom sort order not synchronized (#7729) 2023-02-13 16:41:55 +00:00
renovate[bot] 3c471dc120 Update jest monorepo to v29.4.0 (#7759) 2023-02-13 13:39:42 +00:00
Laurent Cozic be0fa69b3b Revert "Mobile: Resolves #1044: Add create sub-notebook feature (#7728)"
This reverts commit f5fc1f2f22.

Cancel button is gone with this change
2023-02-10 23:48:46 +00:00
Laurent Cozic bf1bdf0951 Android 2.10.6 2023-02-10 16:31:18 +00:00
Laurent Cozic a1a10a6c55 Android: Fixes #7691: Sharing file to Joplin does not work 2023-02-10 16:12:49 +00:00
Laurent Cozic 02e8307093 lock file 2023-02-10 16:12:48 +00:00
renovate[bot] 285a3a211e Update dependency @react-native-community/slider to v4.4.2 (#7752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-10 16:02:45 +00:00
Joplin Bot 80cb1471fc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-10 06:17:49 +00:00
Joplin Bot a7a194f835 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-10 00:43:53 +00:00
github-actions[bot] 41a0b3359a @pedr has signed the CLA from Pull Request #7751 2023-02-09 20:10:04 +00:00
Laurent Cozic 1f70357d37 Server v2.10.9 2023-02-09 19:43:09 +00:00
Laurent Cozic 107f2e128e Server: Clean up share logic 2023-02-09 19:42:16 +00:00
Laurent Cozic e1cd8d9b85 Server v2.10.8 2023-02-09 18:24:30 +00:00
Laurent Cozic 293f621e46 Server: Fixed sharing issue when a user no longer has a user item associated with their account 2023-02-09 18:24:09 +00:00
Joplin Bot c5b551bbcb Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-09 18:17:12 +00:00
Laurent Cozic ac776eabc1 Server v2.10.7 2023-02-09 15:57:38 +00:00
Laurent Cozic 05c17fbfac Server: Fixed sharing issue for changes that are associated with deleted items 2023-02-09 15:56:44 +00:00
Laurent Cozic 6b9de394ca Tools: Update post release commands 2023-02-09 11:48:22 +00:00
Laurent Cozic bef9a29581 Renovate exclude 2023-02-09 01:34:02 +00:00
renovate[bot] 1546aad7e9 Update dependency punycode to v2.3.0 (#7749) 2023-02-09 01:33:32 +00:00
renovate[bot] fe47fef261 Update dependency redux to v4.2.1 (#7743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 00:24:35 +00:00
renovate[bot] 288f4ab43b Update dependency react-native-image-picker to v5.0.1 (#7747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-08 20:36:31 +00:00
renovate[bot] 294cbaea4d Update dependency react-native-image-picker to v5 (#7746) 2023-02-08 17:01:40 +00:00
Carlos f5fc1f2f22 Mobile: Resolves #1044: Add create sub-notebook feature (#7728) 2023-02-08 14:34:29 +00:00
Henry Heino c90865c4d2 Mobile: Fixes #7700: Fix double-scroll issue in long notes (#7701) 2023-02-08 14:24:59 +00:00
Helmut K. C. Tessarek 322641ccd6 Desktop: Fixes #7694: Markdown editor not surrounding highlighted text with backticks (#7697) 2023-02-08 14:24:20 +00:00
Henry Heino 2656666ed8 Mobile: Fixes #7687: Fix startup error (#7688) 2023-02-08 14:21:59 +00:00
andy1631 2d673902a4 Desktop: Fix highlighting in GotoAnything dialogue (#7592) 2023-02-08 14:20:54 +00:00
Julien 631c41a1ff Desktop: Resolves #6143: Show installed plugins in Help - About Joplin (#7711) 2023-02-08 14:16:09 +00:00
renovate[bot] 7841c99c02 Update dependency @rmp135/sql-ts to v1.16.0 (#7736) 2023-02-08 14:13:42 +00:00
renovate[bot] ac75d8f6ac Update dependency react-native-safe-area-context to v4.5.0 (#7744) 2023-02-08 14:13:28 +00:00
github-actions[bot] 200ff617dc @rakeshhotker has signed the CLA from Pull Request #7745 2023-02-08 06:07:30 +00:00
Joplin Bot bbdc18f371 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-07 18:18:46 +00:00
Joplin Bot 0d35b64f9a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-07 12:21:36 +00:00
renovate[bot] 765c4482d6 Update dependency react-native-webview to v11.26.1 (#7735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 06:18:23 +00:00
renovate[bot] 0a0e31a37c Update dependency madge to v5.0.2 (#7734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 02:34:11 +00:00
Laurent Cozic 0c1f4031b4 Server v2.10.6 2023-02-06 19:01:57 +00:00
Laurent Cozic 9ed022458b Chore: Server: Clean up 2023-02-06 18:59:36 +00:00
Laurent Cozic ba5f0bc6e3 Server: Fixed issue when an item is associated with a share that no longer exists 2023-02-06 18:59:36 +00:00
renovate[bot] 793e8f6c0f Update dependency jsdom to v21 (#7732) 2023-02-06 17:29:47 +00:00
renovate[bot] 6182ce521d Update dependency nodemailer to v6.9.1 (#7726) 2023-02-06 16:17:15 +00:00
Joplin Bot 544c50663a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-02-06 10:17:57 +00:00
Laurent Cozic 53aa9e2b42 Chore: Restore stats 2023-02-06 10:07:25 +00:00
renovate[bot] 884260189c Update dependency punycode to v2.2.2 (#7724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-05 20:28:43 +00:00
Laurent Cozic 2f9464f21f Tools: Revert CI issue 2023-02-05 19:10:31 +00:00
github-actions[bot] c6e993b04a @TaoK has signed the CLA from Pull Request #7729 2023-02-05 17:06:32 +00:00
Laurent Cozic 89eb012b25 Tools: Add repeat mechanism when electron-builder randomly fails to build 2023-02-05 16:51:47 +00:00
Laurent Cozic 1e2aa4e2b5 Tools: Fixed Renovate patterns 2023-02-05 12:27:09 +00:00
Laurent Cozic 0019bb8d6b Tools: Add eslint rule "@typescript-eslint/no-inferrable-types" 2023-02-05 12:27:09 +00:00
renovate[bot] e629a4d325 Update dependency nodemailer to v6.9.0 (#7722) 2023-02-05 11:43:37 +00:00
renovate[bot] 049c769d37 Update dependency eslint-plugin-react to v7.32.0 (#7698) 2023-02-05 11:41:13 +00:00
renovate[bot] 47aed8742a Update dependency punycode to v2.2.0 (#7695) 2023-02-05 11:40:58 +00:00
Adarsh Singh 8aad67ccfe Desktop: Fixes #7521: Mermaid images are incorrectly sized when exported as PNG (#7546) 2023-02-05 11:39:26 +00:00
renovate[bot] af7cbcbca7 Update dependency eslint-plugin-import to v2.27.4 (#7717) 2023-02-05 11:06:20 +00:00
Laurent Cozic 88a91314af Tools: Reduce noise with Renovate updates 2023-02-05 11:06:10 +00:00
renovate[bot] 9873c2d756 Update dependency glob to v8.1.0 (#7718) 2023-02-04 16:12:16 +00:00
renovate[bot] 46b68cf461 Update typescript-eslint monorepo to v5.48.2 (#7705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 07:58:54 +00:00
renovate[bot] 6b96b1f355 Update dependency react-native-paper to v5.1.4 (#7714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 05:37:03 +00:00
renovate[bot] dc819700bb Update dependency knex to v2.4.2 (#7713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 01:11:49 +00:00
renovate[bot] 1d1d5fea06 Update dependency @react-native-community/datetimepicker to v6.7.3 (#7712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-03 21:02:58 +00:00
renovate[bot] c3afc0ede7 Update dependency prettier to v2.8.3 (#7704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-03 17:08:36 +00:00
github-actions[bot] 2092110a6e @julien-me has signed the CLA from Pull Request #7711 2023-02-03 12:51:14 +00:00
github-actions[bot] fc940e9a7c @abhiippili has signed the CLA from Pull Request #7709 2023-02-01 17:12:16 +00:00
github-actions[bot] 8718310dd0 @deepampriyadarshi has signed the CLA from Pull Request #7708 2023-02-01 15:00:52 +00:00
renovate[bot] 1b527f2bbe Update dependency @react-native-community/slider to v4.4.1 (#7702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-01 00:38:41 +00:00
Joplin Bot 4da217bc2f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-31 00:43:35 +00:00
github-actions[bot] d3abd4ebf2 @tessus has signed the CLA from Pull Request #7697 2023-01-31 00:13:17 +00:00
Mr-Kanister 38851edf86 All: Translation: Update de_DE.po (#7696) 2023-01-30 18:15:05 -05:00
Joplin Bot 05efb765d6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-30 18:16:44 +00:00
majsterkovic 28dc4a6abd All: Translation: Update pl_PL.po (#7690) 2023-01-29 22:54:17 -05:00
renovate[bot] 2f7b56f96f Update dependency @react-native-community/datetimepicker to v6.7.2 (#7689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-30 02:26:11 +00:00
renovate[bot] fdaa3735fb Update dependency @types/yargs to v17.0.20 (#7685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-29 17:03:51 +00:00
Laurent Cozic 7dfaea12f7 Chore: Fixed build following conversion from JSX to TSX 2023-01-29 13:11:53 +00:00
renovate[bot] 18199b27d9 Update dependency @types/react to v17.0.53 (#7684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-29 06:18:39 +00:00
renovate[bot] a7c52082bb Update dependency @types/react to v16.14.35 (#7683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-29 02:18:29 +00:00
renovate[bot] 3b5357e0c1 Update dependency @types/jest to v29.2.6 (#7682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-28 22:41:15 +00:00
Self Not Found 10dd4e45ed Desktop: Fixes #7678: Fix open files with non-ASCII characters in path (#7679) 2023-01-28 12:28:01 +00:00
github-actions[bot] 1963835309 @carlosngo has signed the CLA from Pull Request #7681 2023-01-28 10:07:12 +00:00
renovate[bot] 46ec0c1381 Update dependency knex to v2.4.1 (#7676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-28 03:43:16 +00:00
Laurent Cozic bb84ae4d68 Tools: Disable tests that randomly fail onn CI 2023-01-27 18:55:39 +00:00
Laurent Cozic b3ff53c0da Tools: Added hack to try to fix issue with broken GitHub API 2023-01-27 17:16:23 +00:00
Self Not Found acd7bfd9f5 Desktop: Remove auto-matching for greater than character (#7669) 2023-01-27 16:50:07 +00:00
renovate[bot] 1dff50d080 Update dependency knex to v2.4.0 (#7674) 2023-01-27 16:47:20 +00:00
Laurent Cozic af40970d09 Ignore package 2023-01-27 16:46:37 +00:00
Joplin Bot 07535a494e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-27 06:17:16 +00:00
Joplin Bot 907422cefa Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-27 00:45:49 +00:00
renovate[bot] f643baea25 Update dependency tap to v16.3.4 (#7671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-26 08:50:49 +00:00
github-actions[bot] 55a4f33982 @majsterkovic has signed the CLA from Pull Request #7668 2023-01-25 21:26:20 +00:00
Dmitriy Q df6700959a All: Translation: Update ru_RU.po (#7665) 2023-01-25 16:10:50 -05:00
github-actions[bot] fde8235f3e @krote5k has signed the CLA from Pull Request #7665 2023-01-25 12:59:46 +00:00
Laurent Cozic f6ba56d966 Doc: Added GSoC idea 2023-01-24 15:56:22 +00:00
Laurent Cozic 4a5312823b Doc: Add info for GSoC 2023 2023-01-24 15:18:51 +00:00
Light 31a27b0e1c Desktop: Fixes #7565: Fix text editor text highlighting when used with special IME methods (#7630) 2023-01-24 14:46:40 +00:00
github-actions[bot] 984ad868e8 @trevor-james-nangosha has signed the CLA from Pull Request #7663 2023-01-24 12:56:39 +00:00
Betty Alagwu 9b657eeda2 Desktop: Resolves #7602: Fix copy text with no selection (#7641) 2023-01-23 18:50:24 +00:00
Laurent Cozic 6f3ad4b3b0 Doc: Allow setting period from parameter 2023-01-23 17:49:16 +00:00
renovate[bot] 56f06fae3c Update dependency ts-jest to v29.0.5 (#7659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-23 15:52:54 +00:00
ThetaDev c22d884357 Doc: Update rscss link (#7653) 2023-01-23 10:11:34 +00:00
github-actions[bot] 35dc22197d @Theta-Dev has signed the CLA from Pull Request #7653 2023-01-22 22:43:08 +00:00
renovate[bot] 70d56ca0be Update dependency ts-jest to v29.0.4 (#7651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-22 02:05:55 +00:00
Laurent Cozic bca09b9476 Android 2.10.5 2023-01-21 14:28:32 +00:00
javad mnjd b82bf16505 Android: Resolves #6942: Improve filesystem sync performance (#7637) 2023-01-21 14:11:37 +00:00
Laurent Cozic 2f254d81cd Ignore some dependencies 2023-01-21 12:20:22 +00:00
Self Not Found b14ce03e5b All: Translation: Update zh_CN.po (#7643) 2023-01-20 20:38:45 -05:00
Laurent Cozic 90b04cbd37 Doc: Fixes #7642: Fixed menu padding in narrower view 2023-01-20 18:07:50 +00:00
Laurent Cozic 5ae866ea85 iOS 12.10.2 2023-01-20 17:42:14 +00:00
Laurent Cozic b450ab9f5a lock file 2023-01-20 17:41:03 +00:00
Laurent Cozic 138bc8144b Android: Fixes non-working alarms
Also imported react-native-alarm-notificatio into the project
2023-01-20 17:33:19 +00:00
Laurent Cozic c9831833c4 Desktop: Fixes #7617: Note editor scrolls back to top when editing certain notes 2023-01-20 15:05:57 +00:00
Laurent Cozic 2813f93c18 Desktop: Fixes #7617: Note editor scrolls back to top when editing certain notes 2023-01-20 15:03:22 +00:00
Laurent Cozic 27bec674a0 Chore: Desktop: Convert last JSX files to TSX 2023-01-20 14:35:22 +00:00
renovate[bot] ff79ca8781 Update dependency react-native-paper to v5.1.3 (#7638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-20 01:12:04 +00:00
github-actions[bot] 34a1342db6 @jd1378 has signed the CLA from Pull Request #7637 2023-01-19 20:42:18 +00:00
renovate[bot] e252986b98 Update dependency tap to v16.3.3 (#7631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-19 17:25:42 +00:00
Helmut K. C. Tessarek 3537c3e5f9 All: Translation: Update da_DK.po (thanks ERYpTION) 2023-01-19 08:19:19 -05:00
github-actions[bot] fdc86f94c4 @LightAPIs has signed the CLA from Pull Request #7630 2023-01-18 17:05:59 +00:00
Laurent Cozic dc5dc94ed5 Desktop: Fixes #7621: Certain plugins could create invalid settings, which could result in a crash 2023-01-17 15:34:04 +00:00
Laurent Cozic f7682d3da3 Desktop: Resolves #7506: Disable custom PDF viewer by default 2023-01-17 13:35:08 +00:00
Joplin Bot 8e2975d23d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-16 17:48:37 +00:00
Laurent Cozic ce85489166 Docs: Added news about "GitHub Action Raw Log Viewer" 2023-01-16 17:28:30 +00:00
Mike Sheldon 13f5738090 All: Resolves #7627: Improve dialogue spacing in Fountain renderer (#7628) 2023-01-16 15:46:17 +00:00
github-actions[bot] cce2ae7401 @Elleo has signed the CLA from Pull Request #7628 2023-01-16 14:00:37 +00:00
Laurent Cozic c9b49a50c8 Desktop release v2.10.5 2023-01-16 13:41:31 +00:00
github-actions[bot] c419c43622 @JackGruber has signed the CLA from Pull Request #7622 2023-01-15 15:44:53 +00:00
Joplin Bot cc5ecfba2b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-15 06:17:01 +00:00
Joplin Bot a98d5feff6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-15 00:44:15 +00:00
Laurent Cozic 7aa4feffd4 Update translations 2023-01-14 20:56:46 +00:00
Joplin Bot 0b46a744f1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-14 18:17:51 +00:00
Laurent Cozic 4d5efff2af Android 2.10.4 2023-01-14 17:31:24 +00:00
Laurent Cozic 4b2aaa6836 lock file 2023-01-14 17:31:03 +00:00
Laurent Cozic 4e27600f9c fix build 2023-01-14 17:24:50 +00:00
Laurent Cozic 6d4394a88d Merge branch 'dev' into release-2.10 2023-01-14 16:57:14 +00:00
Joplin Bot aad9c803ba Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-14 00:41:30 +00:00
Joplin Bot 5418cc82ca Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-13 18:16:59 +00:00
Joplin Bot 79eb33a7f4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-12 18:18:15 +00:00
Andris Strazdiņš cdef433f38 Chore: Correct language labels for Latvian language. (#7615) 2023-01-12 17:11:01 +00:00
github-actions[bot] b29b50df0b @andzs has signed the CLA from Pull Request #7615 2023-01-12 14:38:42 +00:00
Laurent Cozic 91c3986f88 Tools: Remove .d.ts and .map files from ignored files (not needed anymore) 2023-01-12 13:33:39 +00:00
Joplin Bot 29e4a335fb Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-12 12:22:35 +00:00
Wartijn 4e942afba6 API: Fixes #6862 set todo related fields when adding or changing a todo (#7395) 2023-01-11 19:14:19 +00:00
Self Not Found 3bee0a142b Desktop: Fixes #6211: Try to replace the external link with internal link when attachment file is pasted in Markdown editor (#6865) 2023-01-11 19:12:34 +00:00
Henry Heino 9a9fdef512 Mobile: Confirm closing settings with unsaved changes (#7566) 2023-01-11 18:45:00 +00:00
Laurent Cozic 4888b4bd14 Tools: Enable eslint rule "comma-spacing" 2023-01-11 18:40:14 +00:00
Joplin Bot bba3af17b7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-11 18:20:46 +00:00
Henry Heino b695acf4ed Mobile: Fixes #6682: Fixed issue when floating keyboard is visible (#7593) 2023-01-11 17:17:55 +00:00
Laurent Cozic 3367b52b53 Desktop: Fixes #7605: Hyperlink insertion no longer works in Markdown editor 2023-01-11 14:01:10 +00:00
github-actions[bot] c31622f286 @matthijskooijman has signed the CLA from Pull Request #7611 2023-01-11 12:48:29 +00:00
Laurent Cozic 488e469e33 Desktop: Fixes #7610: Optimise sidebar rendering speed 2023-01-10 18:32:06 +00:00
Laurent Cozic fa7d48a3bd Chore: Desktop: Add more ways to automatically populate the database 2023-01-10 18:14:48 +00:00
Henry Heino 0cd2fd660d iOS: Fixes #7553: Fix Dropdown accessibility (#7564) 2023-01-10 17:13:32 +00:00
Laurent Cozic 6bb52d5ad6 Mobile: Add support for multiple profiles 2023-01-10 12:08:13 +00:00
Laurent Cozic c2d5fc13d7 Tools: Create an Android pre-release by default 2023-01-08 17:40:02 +00:00
Laurent Cozic b1e5896d4c lock file 2023-01-08 17:38:25 +00:00
renovate[bot] cc42b7bc38 Update dependency react-native-paper to v5.1.2 (#7600) 2023-01-08 17:29:37 +00:00
Laurent Cozic 4bdb3d0b7e Mobile: Upgrade to React Native 0.70 2023-01-08 17:23:53 +00:00
renovate[bot] 6601547b81 Update dependency react-native-paper to v5.1.0 (#7599) 2023-01-08 15:10:03 +00:00
Laurent Cozic 7e29804e68 Mobile: Upgrade to React Native 0.69 2023-01-08 13:39:27 +00:00
Henry Heino 257a24166e Chore: Mobile: Migrate action button to react-native-paper (#7477) 2023-01-08 12:22:41 +00:00
Laurent Cozic 8b3c9e81a7 Desktop: Fixes #7598: Fixed crash when loading certain plugins 2023-01-08 11:26:36 +00:00
Joplin Bot c65e051e1f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-07 18:18:23 +00:00
Henry Heino a91c8ffbf3 Mobile: Fixes #7594: Remove gray line around text editor (#7595) 2023-01-07 17:49:14 +00:00
Henry Heino 0530c74924 Mobile: Configurable editor font size (#7596) 2023-01-07 17:47:52 +00:00
Henry Heino 2feed88c51 Tools: Ignore autogenerated .bundle.js.md5 file (#7590) 2023-01-07 17:45:43 +00:00
Laurent Cozic 2017e9d7e9 Doc: Add new sponsor 2023-01-07 16:08:14 +00:00
github-actions[bot] afe6cb9454 @andy1631 has signed the CLA from Pull Request #7592 2023-01-07 15:21:19 +00:00
github-actions[bot] 690e22b39a @Mighil31 has signed the CLA from Pull Request #7591 2023-01-07 15:16:53 +00:00
Joplin Bot 8a0aa40707 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-07 12:18:35 +00:00
renovate[bot] 1f40a14084 Update dependency aws-sdk to v2.1290.0 (#7585) 2023-01-07 09:39:17 +00:00
Laurent Cozic 6b9a270225 Desktop: Fixes crash when changing note time from properties dialog 2023-01-06 20:50:11 +00:00
Laurent Cozic 0bc55bff7f Tools: Add delay before creating Renovate PR 2023-01-05 21:33:41 +00:00
Laurent Cozic d9215b044f Tools: Add delay before creating Renovate PR 2023-01-05 21:31:12 +00:00
Laurent Cozic 2f9384f891 lock file 2023-01-05 21:13:08 +00:00
Joplin Bot a172b1380e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-05 18:17:06 +00:00
Laurent Cozic 0d4c074e84 Tools: Refactor Discourse code 2023-01-05 17:05:40 +00:00
Laurent Cozic 9eff7e6060 Mobile: Fixed biometics prompt on new devices 2023-01-05 13:30:09 +00:00
renovate[bot] 1edb345e85 Update dependency react-native-share to v8.1.0 (#7582) 2023-01-05 13:10:18 +00:00
Laurent Cozic 54ed374af6 Android 2.10.3 2023-01-05 13:08:48 +00:00
Laurent Cozic 9866e5912c Desktop release v2.10.4 2023-01-05 11:19:35 +00:00
Laurent Cozic 4058f624f4 lock file 2023-01-05 11:19:23 +00:00
Laurent Cozic 0bc15f40b3 Merge branch 'dev' into release-2.10 2023-01-05 11:12:09 +00:00
Laurent Cozic 7a55a08fec Android 2.10.2 2023-01-05 11:11:52 +00:00
Laurent Cozic 4efb6003dc Desktop: Fixes #7018: Plugin API DirectoryPath edit problems when path contain spaces 2023-01-05 11:05:23 +00:00
Laurent Cozic f4f96cfe89 Update plugin types 2023-01-05 10:41:17 +00:00
Laurent Cozic a43ce33adf Desktop: Fixed certain plugins that were using the sqlite3 database 2023-01-05 10:21:26 +00:00
renovate[bot] f95ccd6700 Update dependency aws-sdk to v2.1288.0 (#7581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-05 06:28:14 +00:00
Joplin Bot 07184301d1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-05 00:43:41 +00:00
Laurent Cozic 0678dad2d6 Tools: Speed up building mobile CodeMirror when nothing has changed 2023-01-04 20:39:33 +00:00
Laurent Cozic b2d59002bb Fix build 2023-01-04 20:25:09 +00:00
Laurent Cozic 7557791230 Remove debug code 2023-01-04 20:19:51 +00:00
Laurent Cozic f10d9f75b0 Mobile: Add support for locking the app using biometrics 2023-01-04 20:18:51 +00:00
Laurent Cozic 5a05cc5797 Chore: Mobile: Suppress useless Icon.loadFont() warning 2023-01-04 20:18:24 +00:00
Joplin Bot 488394ff47 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-04 18:17:18 +00:00
renovate[bot] b2ba0ee849 Update dependency @types/yargs to v17.0.19 (#7577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-04 04:32:14 +00:00
renovate[bot] 6c108bbf6c Update dependency aws-sdk to v2.1287.0 (#7575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-04 02:05:55 +00:00
Laurent Cozic 275c80ade5 Mobile: Fixed proxy timeout setting UI 2023-01-03 20:22:44 +00:00
Laurent Cozic 00bc25ed5c Revert "Mobile: Fixed proxy timeout setting UI"
Will cause unnecessary backward compatibility issues with plugins.

This reverts commit ff355b9f4d.
2023-01-03 20:19:27 +00:00
Laurent Cozic f5ef318f70 Mobile: Make the new text editor the default one 2023-01-03 19:49:08 +00:00
Laurent Cozic ff355b9f4d Mobile: Fixed proxy timeout setting UI 2023-01-03 19:49:05 +00:00
renovate[bot] 9a9d51caaf Update dependency eslint-config-prettier to v8.6.0 (#7570) 2023-01-03 12:41:01 +00:00
Laurent Cozic 3e6e75c27b Update renovate.json5 2023-01-03 10:27:01 +00:00
renovate[bot] a8689816bf Update typescript-eslint monorepo to v5.48.0 (#7571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-03 00:01:20 +00:00
Laurent Cozic 27d1a0ee7c Mobile: Fixes #7503: Settings save button visible even when no settings have been changed 2023-01-02 18:36:39 +00:00
Laurent Cozic 8e12ace3ed Android 2.10.2 2023-01-02 17:49:12 +00:00
Joplin Bot d5c6690606 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-01 12:19:30 +00:00
Joplin Bot f6741cf342 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-01-01 00:46:00 +00:00
renovate[bot] 44fad32ee5 Update dependency gettext-extractor to v3.6.1 (#7563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 23:42:28 +00:00
Joplin Bot bae7ff0ca5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-31 18:15:31 +00:00
renovate[bot] 074d02da56 Update dependency eslint to v8.31.0 (#7562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 14:18:12 +00:00
renovate[bot] 70b01b70c6 Update dependency aws-sdk to v2.1286.0 (#7557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 11:48:11 +00:00
renovate[bot] d29e4c434c Update dependency @types/react-redux to v7.1.25 (#7561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 08:42:54 +00:00
renovate[bot] 423191bda9 Update dependency @types/jest to v29.2.5 (#7560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 05:22:59 +00:00
Laurent Cozic 7a0af66c63 Desktop release v2.10.3 2022-12-31 00:39:20 +00:00
Laurent Cozic 49e444e73b Desktop: Fixes #7528: Fixed crash when closing PDF 2022-12-31 00:36:16 +00:00
Laurent Cozic 0db0a565b7 Desktop: Fixes #7499: Random crash when searching 2022-12-30 23:54:20 +00:00
Betty Alagwu 5fb01b5c7a Desktop: Fixes #7520: Search field doesn't get focus when pressing Ctrl+F (#7529) 2022-12-30 23:54:04 +00:00
Laurent Cozic 854f1163cd Desktop: Fixes #7493: Press Enter to select a tag 2022-12-30 23:39:45 +00:00
Roman Musin d55f6aeb2a Linux: Revert "Linux: Fix AppImage icon when installing using Joplin_install_and_update.sh (#7346)" (#7559)
This reverts commit cb563f7e60.
2022-12-30 23:21:29 +00:00
Henry Heino ea30a6bd38 Mobile: Fixes #6175: Enable autocorrect with spellcheck (#7532) 2022-12-30 23:20:56 +00:00
github-actions[bot] e09b26b99b @roman-r-m has signed the CLA from Pull Request #7559 2022-12-30 21:35:38 +00:00
Henry Heino e7386e6fe3 Chore: Mobile: Fix CodeMirror test failures (#7522) 2022-12-30 17:25:31 +00:00
Laurent Cozic 767213cdc1 Mobile: Add support for realtime search 2022-12-30 14:12:07 +00:00
Laurent Cozic a189b2eff0 lock file 2022-12-30 13:36:19 +00:00
github-actions[bot] 655ea6945d @k33pn3xtlvl has signed the CLA from Pull Request #6722 2022-12-30 13:34:52 +00:00
renovate[bot] 5106ccee91 Update dependency aws-sdk to v2.1285.0 (#7556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-30 06:12:21 +00:00
renovate[bot] 1ee515454a Update aws-sdk-js-v3 monorepo to v3.241.0 (#7555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-30 03:53:44 +00:00
renovate[bot] fc46c87ef7 Update dependency @types/yargs to v17.0.18 (#7554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-30 01:02:53 +00:00
Laurent Cozic 422b81ae24 Android 2.10.1 2022-12-29 14:11:12 +00:00
renovate[bot] 17124e86d1 Update dependency aws-sdk to v2.1284.0 (#7549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-28 22:04:12 +00:00
Laurent Cozic d2aab6536c Fixed linter error 2022-12-28 16:12:36 +00:00
Laurent Cozic ed71f68e1d iOS 12.10.1 2022-12-28 15:09:21 +00:00
Gavin Mogan 01d451f72a Server: Add in ability to use Postgres connection string in configuration (#6836) 2022-12-28 14:38:30 +00:00
renovate[bot] 5b3f07f3c5 Update dependency aws-sdk to v2.1283.0 (#7543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-28 14:31:37 +00:00
renovate[bot] edf7cab1ef Update dependency joplin-rn-alarm-notification to v1.0.7 (#7545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-28 11:25:49 +00:00
github-actions[bot] caaac5c1a2 @adarsh-sgh has signed the CLA from Pull Request #7546 2022-12-28 08:38:37 +00:00
Laurent Cozic 5a28a6bc90 Ignore package 2022-12-27 20:38:28 +00:00
Laurent Cozic f9f7c86915 Chore: Remove obsolete patch 2022-12-27 19:38:41 +00:00
Laurent Cozic e2d59ee1fa Mobile: Upgrade to react-native 0.68.5 2022-12-27 19:37:15 +00:00
Laurent Cozic d81802e7d2 Mobile: Upgrade to react-native 0.67.5 2022-12-27 17:59:16 +00:00
Laurent Cozic 73bb79b558 Tools: Add suport for npm-package-json-lint 2022-12-27 17:39:48 +00:00
github-actions[bot] c41ebe8d9d @asrient has signed the CLA from Pull Request #6845 2022-12-27 17:34:17 +00:00
Hitarth Thummar 8e2e7eccd9 Desktop: Resolve #6254: <details> elements remain closed when exporting to PDF (#7515) 2022-12-27 16:57:00 +00:00
Wartijn 527a7da2ff Desktop: Fixes #7329: Fixes import of tasklists from enex files (#7344) 2022-12-27 15:17:42 +00:00
github-actions[bot] 40399cf3e1 @ManavSarkar has signed the CLA from Pull Request #7541 2022-12-27 10:48:33 +00:00
renovate[bot] 873808a66a Update typescript-eslint monorepo to v5.47.1 (#7539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-27 00:23:59 +00:00
renovate[bot] cf300bc842 Update dependency @types/node to v18.11.18 (#7538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-26 21:57:47 +00:00
Laurent Cozic 9a06824fde Server v2.10.5 2022-12-26 12:09:27 +00:00
Laurent Cozic 186316bb8b lock file 2022-12-26 11:56:47 +00:00
Laurent Cozic 5c8861cbd1 Server: Fixes #7525: Fixed regression that would prevent styles from being loaded in published notes 2022-12-26 11:56:34 +00:00
github-actions[bot] c710cfd273 @ken1kob has signed the CLA from Pull Request #6469 2022-12-26 11:02:08 +00:00
Mr-Kanister 3ef41016b5 All: Translation: Update de_DE.po (#7531) 2022-12-24 21:19:15 -05:00
github-actions[bot] 85423fd835 @Mr-Kanister has signed the CLA from Pull Request #7531 2022-12-24 18:40:34 +00:00
Laurent Cozic d690146f9f Chore: Make it easier to test publishing notes 2022-12-24 12:30:52 +00:00
renovate[bot] 944e0ef304 Update dependency aws-sdk to v2.1282.0 (#7527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-24 06:36:12 +00:00
github-actions[bot] 409dcea0c6 @betty-alagwu has signed the CLA from Pull Request #7529 2022-12-24 03:09:03 +00:00
renovate[bot] 6c20cdefd4 Update aws-sdk-js-v3 monorepo to v3.238.0 (#7526)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-24 01:47:48 +00:00
renovate[bot] 300f1590ba Update dependency @types/react-dom to v18.0.10 (#7524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-23 19:18:31 +00:00
github-actions[bot] f6c2013df8 @Wartijn has signed the CLA from Pull Request #6886 2022-12-23 16:13:36 +00:00
renovate[bot] e3dc77357c Update dependency aws-sdk to v2.1281.0 (#7514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 22:37:33 +00:00
github-actions[bot] a739636ce6 @halkeye has signed the CLA from Pull Request #6836 2022-12-22 17:52:40 +00:00
Laurent Cozic 7620c2b0b7 Tools: Disable CodeMirror flaky test 2022-12-22 14:30:04 +00:00
Laurent Cozic 60c4045000 Merge branch 'dev' of github.com:laurent22/joplin into dev 2022-12-22 13:19:35 +00:00
Laurent Cozic 39fb40dc37 Merge branch 'release-2.9' into dev 2022-12-22 13:18:10 +00:00
Laurent Cozic 145cb6c41e iOS 12.9.2 2022-12-22 12:42:38 +00:00
Laurent Cozic de9f9985d1 Merge branch 'release-2.9' into dev 2022-12-22 12:40:57 +00:00
Laurent Cozic 23277aaf85 Mobile: Fixes #7471: Could not attach images to notes anymore 2022-12-22 12:38:11 +00:00
Henry Heino e9e7a1d0df iOS: Fixes #7469: Note viewer inertial scroll is slower than native inertial scrolling (#7470) 2022-12-22 12:15:20 +00:00
github-actions[bot] 3453240833 @gtlsgamr has signed the CLA from Pull Request #7515 2022-12-22 09:35:15 +00:00
renovate[bot] 1882aac628 Update aws-sdk-js-v3 monorepo to v3.236.0 (#7513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 08:59:20 +00:00
renovate[bot] 6868e7086b Update dependency sharp to v0.31.3 (#7512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 06:31:50 +00:00
renovate[bot] b35eeb6626 Update dependency react-native-image-picker to v4.10.3 (#7508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 03:45:32 +00:00
renovate[bot] 98c56818bb Update contributor-assistant/github-action action to v2.2.1 (#7511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 00:20:50 +00:00
github-actions[bot] 722a0df681 @personalizedrefrigerator has signed the CLA from Pull Request #7470 2022-12-21 21:22:46 +00:00
github-actions[bot] 115cf116a2 @wh201906 has signed the CLA from Pull Request #6865 2022-12-21 17:40:11 +00:00
Laurent Cozic f34e048fad Update cla.md 2022-12-21 17:10:54 +00:00
github-actions[bot] a754659ab9 @laurent22 has signed the CLA from Pull Request #7510 2022-12-21 16:54:28 +00:00
github-actions[bot] 0517d1e5d6 Creating file for storing CLA Signatures 2022-12-21 16:44:53 +00:00
Laurent Cozic 31795f6c78 Tools: Setup CLA Assistant Lite 2022-12-21 16:41:49 +00:00
Joplin Bot 5ac9178f79 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-21 12:20:02 +00:00
Laurent Cozic faf0a4ec8d All: Switch license to AGPL-3.0 2022-12-21 10:00:31 +00:00
Manuel Tassi be70cdf75b All: Translation: Update it_IT.po (#7492) 2022-12-21 01:47:43 -05:00
renovate[bot] 5284989a08 Update dependency aws-sdk to v2.1279.0 (#7495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 06:10:40 +00:00
renovate[bot] 739449bde4 Update dependency jquery to v3.6.3 (#7504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 03:20:22 +00:00
renovate[bot] 1e9cbc9606 Update aws-sdk-js-v3 monorepo to v3.235.0 (#7502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 00:49:37 +00:00
renovate[bot] 0527dbbdc2 Update Yarn to v3.3.1 (#7501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 21:20:04 +00:00
renovate[bot] 80f061a2ca Update dependency react-native-modal-datetime-picker to v14.0.1 (#7500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 17:56:28 +00:00
Laurent Cozic d687abd7ef Doc: Update Chinese page 2022-12-20 12:58:03 +00:00
renovate[bot] c16a92081d Update typescript-eslint monorepo to v5.47.0 (#7490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 10:19:43 +00:00
renovate[bot] 1289be1d90 Update dependency sass to v1.57.1 (#7498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 07:30:56 +00:00
renovate[bot] fdfabe8f92 Update dependency node-gyp to v9.3.1 (#7497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 04:40:22 +00:00
renovate[bot] db4e45ba61 Update aws-sdk-js-v3 monorepo to v3.234.0 (#7494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 01:37:30 +00:00
Caleb John 28621f7e89 Linux: Use XDG_DATA_HOME for the .desktop file on linux (#7456) 2022-12-19 20:32:28 +00:00
Joplin Bot ad2b6ef2fa Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-18 18:15:06 +00:00
Laurent Cozic f6ca396e6e Chore: Server: Improve types to better detect dependency changes 2022-12-18 17:07:04 +00:00
Laurent Cozic 2f46a175ab Fixed tests 2022-12-18 16:39:02 +00:00
Laurent Cozic 79c84150a0 Server v2.10.4 2022-12-18 16:02:28 +00:00
Laurent Cozic 318a61e7c5 Merge branch 'dev' into release-2.10 2022-12-18 16:01:40 +00:00
Laurent Cozic 31c66ae3cd Server: Fixes #7463: Fixed regression introduced by form-parse lib update 2022-12-18 16:00:34 +00:00
Laurent Cozic c50fdde5da lock file 2022-12-18 15:29:09 +00:00
renovate[bot] a7f5a2089d Update dependency @react-native-community/slider to v4.4.0 (#7475) 2022-12-18 12:48:35 +00:00
Wartijn 10252228ae Desktop: Fixes #7434: Profile paths that contain special characters can break note rendering (#7449) 2022-12-18 12:41:36 +00:00
renovate[bot] 573222762a Update dependency @types/node to v18.11.17 (#7476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-18 02:07:16 +00:00
klxiang a2be4fc535 All: Translation: Update zh_CN.po (#7461)
translate
2022-12-17 17:42:09 -05:00
Jonatan e555eafb33 All: Translation: Update sv.po (#7474) 2022-12-17 17:41:27 -05:00
renovate[bot] fa7eb0ff9d Update dependency sass to v1.57.0 (#7468) 2022-12-17 10:16:24 +00:00
renovate[bot] 733b38250b Update dependency @types/nodemailer to v6.4.7 (#7473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 06:59:08 +00:00
renovate[bot] 50177bd997 Update dependency eslint to v8.30.0 (#7467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 04:26:27 +00:00
renovate[bot] 37ad911659 Update dependency @types/node to v18.11.16 (#7466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 01:53:43 +00:00
renovate[bot] 538d6f3d47 Update dependency aws-sdk to v2.1277.0 (#7465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-16 22:16:32 +00:00
Laurent Cozic 1c7ad612a7 Renamed file 2022-12-16 12:29:14 +00:00
Laurent Cozic 789b2005b8 Desktop release v2.10.2 2022-12-16 12:28:43 +00:00
Laurent Cozic 83038de321 Desktop release v2.10.1 2022-12-16 12:28:42 +00:00
Joplin Bot 871190b7ee Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-16 12:19:05 +00:00
Laurent Cozic 0a65d538c5 Desktop release v2.10.2 2022-12-16 12:15:47 +00:00
Laurent Cozic 5edf10c398 Merge branch 'dev' into release-2.10 2022-12-16 12:15:16 +00:00
Laurent Cozic 60db566c2d Desktop release v2.10.1 2022-12-16 12:14:53 +00:00
Laurent Cozic 36381a098f Tools: Fixing CI 2022-12-16 12:14:02 +00:00
Laurent Cozic e6b54efe1b Desktop release v2.10.1 2022-12-16 11:08:03 +00:00
Laurent Cozic ecde67c25f Doc: Version 2.9 release post 2022-12-16 11:06:33 +00:00
renovate[bot] 46d0100bb7 Update dependency aws-sdk to v2.1276.0 (#7459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-16 04:59:30 +00:00
Joplin Bot 957b311872 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-16 00:42:14 +00:00
Laurent Cozic 7051459c47 Server v2.10.3 2022-12-15 23:32:34 +00:00
Laurent Cozic 69038e2d84 Tools: Fixing logic 2022-12-15 23:31:47 +00:00
Laurent Cozic 652a72aba7 Server v2.10.2 2022-12-15 23:26:45 +00:00
Laurent Cozic 9a1adff5fe Tools: Trying to fix server release 2022-12-15 23:25:23 +00:00
Laurent Cozic c8f7772f1b Server v2.10.1 2022-12-15 22:42:17 +00:00
Laurent Cozic 7829c1e272 Create new release 2.10 2022-12-15 22:14:34 +00:00
Laurent Cozic 66f1bd9c11 Tools: Fixed setupNewRelease script when version number is over x.10 2022-12-15 22:06:22 +00:00
renovate[bot] e2e9a7fef2 Update aws-sdk-js-v3 monorepo to v3.231.0 (#7455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-15 01:15:36 +00:00
renovate[bot] 46a499b211 Update dependency aws-sdk to v2.1275.0 (#7454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 22:29:57 +00:00
renovate[bot] 680ebca853 Update dependency css-loader to v6.7.3 (#7453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 19:38:31 +00:00
renovate[bot] 39ef8433bb Update dependency @types/node to v18.11.15 (#7451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 04:32:06 +00:00
renovate[bot] 76889aba4b Update dependency aws-sdk to v2.1274.0 (#7452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 01:48:13 +00:00
renovate[bot] e2627ab26f Update dependency jquery to v3.6.2 (#7450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 19:29:52 +00:00
renovate[bot] 0f51b97494 Update dependency @types/node to v18.11.14 (#7447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 10:32:39 +00:00
renovate[bot] 5a5e5b3bfc Update dependency aws-sdk to v2.1273.0 (#7444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 02:36:17 +00:00
renovate[bot] e530f5246e Update aws-sdk-js-v3 monorepo to v3.229.0 (#7443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 23:15:12 +00:00
renovate[bot] 274da67131 Update typescript-eslint monorepo to v5.46.1 (#7440)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 22:14:29 +00:00
renovate[bot] aeae45fb93 Update dependency sqlite3 to v5.1.4 (#7439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 18:50:56 +00:00
renovate[bot] 6b3868f23b Update dependency @types/node to v18.11.13 (#7437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-10 23:38:03 +00:00
renovate[bot] 423a75e7d8 Update dependency aws-sdk to v2.1272.0 (#7436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-10 11:10:54 +00:00
Laurent Cozic 97bb76c027 Update renovate.json5 2022-12-10 08:45:56 +00:00
renovate[bot] 0697406c55 Update typescript-eslint monorepo to v5.46.0 (#7428) 2022-12-10 00:37:38 +00:00
renovate[bot] 8356adb00a Update dependency react-native-webview to v11.26.0 (#7432) 2022-12-10 00:37:12 +00:00
Joplin Bot f712e1bdbb Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-09 18:16:49 +00:00
Laurent Cozic 1b78486fba Doc: Add job news 2022-12-09 12:41:35 +00:00
Laurent Cozic 16e88bca30 Tools: Add "automerge" label on Renovate PR that can be automerged 2022-12-09 12:22:13 +00:00
renovate[bot] 2d01792604 Update dependency eslint-interactive to v10.3.0 (#7419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 11:58:30 +00:00
renovate[bot] d64e263572 Update dependency aws-sdk to v2.1271.0 (#7425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 08:49:53 +00:00
renovate[bot] 84a3e77e63 Update dependency sass to v1.56.2 (#7431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 05:05:07 +00:00
renovate[bot] af48240f71 Update dependency @types/node to v18.11.12 (#7430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 02:04:31 +00:00
renovate[bot] 5cac8a9fcd Update aws-sdk-js-v3 monorepo to v3.226.0 (#7424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 22:10:39 +00:00
renovate[bot] 15ba608207 Update dependency react-native-share to v8.0.1 (#7427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 18:38:04 +00:00
renovate[bot] 04dffb002f Update dependency typescript to v4.9.4 (#7423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 17:42:26 +00:00
renovate[bot] b0eb588de8 Update dependency tar to v6.1.13 (#7422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 14:11:53 +00:00
renovate[bot] dd350fe126 Update dependency prettier to v2.8.1 (#7421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 10:04:48 +00:00
renovate[bot] c42e4ac7c5 Update dependency @types/yargs to v17.0.17 (#7420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 06:05:32 +00:00
Henry Heino 943a0fdbbf Mobile: Fix CodeMirror syntax highlighting (#7386) 2022-12-07 23:19:55 +00:00
Henry Heino 4860253bff Chore: Mobile: CodeMirror: Tests: Ensure full document is parsed, don't rely on timeout (#7405) 2022-12-07 21:28:17 +00:00
Henry Heino da01dc882b Chore: Mobile: Tests: Markdown math tests: Fix code formatting (#7387) 2022-12-07 20:10:02 +00:00
Laurent Cozic 33038e621b Update renovate.json5 2022-12-07 18:08:55 +00:00
renovate[bot] 4332644d8a Update dependency koa to v2.14.1 (#7414) 2022-12-07 14:53:42 +00:00
renovate[bot] beb4f66767 Update dependency react-native-webview to v11.25.1 (#7417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 03:31:45 +00:00
renovate[bot] ca2602a979 Update dependency aws-sdk to v2.1269.0 (#7413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 00:45:00 +00:00
renovate[bot] 64f35d035e Update dependency dayjs to v1.11.7 (#7415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 18:54:15 +00:00
renovate[bot] 0f2c0e68e1 Update aws-sdk-js-v3 monorepo to v3.224.0 (#7411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 15:20:41 +00:00
renovate[bot] 0eb956c73c Update typescript-eslint monorepo to v5.45.1 (#7410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 13:00:46 +00:00
renovate[bot] 6b9307a8d8 Update dependency @types/yargs to v17.0.16 (#7412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 09:19:28 +00:00
renovate[bot] 1145443916 Update dependency @types/node to v18.11.11 (#7409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 06:44:08 +00:00
renovate[bot] e209663939 Update dependency @electron/remote to v2.0.9 (#7408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 03:49:58 +00:00
Matt DemersandHelmut K. C. Tessarek 022531e879 Documentation: Adding instructions to unpublish a note (#7382)
* Added unpublishing instructions for Joplin Cloud notes

* Screenshot for how to unpublish a note

* Fixed image path for unpublishing instructions

* Update publish_note.md

* Update publish_note.md

* Delete joplin_unpublish_note.png

Removed screenshot that wasn't needed anymore.

* Update readme/publish_note.md

Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>

Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2022-12-05 15:46:28 -05:00
renovate[bot] 56ee31a0c8 Update dependency @types/jest to v29.2.4 (#7406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-05 16:56:08 +00:00
Laurent Cozic 4cc41ccd2e Tools: Ignore translations in changelog 2022-12-05 10:15:49 +00:00
Helmut K. C. Tessarek 67bd5a0f18 All: Translation: Update da_DK.po (thanks ERYpTION) 2022-12-04 18:02:54 -05:00
Laurent Cozic 3e538d9df5 Merge branch 'release-2.9' into dev 2022-12-04 18:51:08 +00:00
Laurent Cozic d73657fa0d Chore: Fix iOS build 2022-12-04 18:50:51 +00:00
Laurent Cozic 8f9895eaf9 iOS 12.9.1 2022-12-04 18:03:36 +00:00
renovate[bot] 649b0e1547 Update dependency lint-staged to v13.1.0 (#7401) 2022-12-04 15:40:10 +00:00
renovate[bot] 2f44bef71b Update dependency formidable to v2.1.1 (#7391) 2022-12-04 15:39:59 +00:00
renovate[bot] 7f7bf44779 Update dependency react-select to v5.7.0 (#7388) 2022-12-04 15:39:48 +00:00
renovate[bot] bcc767578f Update dependency eslint to v8.29.0 (#7399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 06:13:51 +00:00
renovate[bot] f0ba2b43c5 Update dependency aws-sdk to v2.1267.0 (#7398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 03:31:35 +00:00
renovate[bot] ae3931b5de Update aws-sdk-js-v3 monorepo to v3.223.0 (#7397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 00:55:21 +00:00
renovate[bot] b22b5e9113 Update dependency query-string to v7.1.3 (#7396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 21:29:33 +00:00
renovate[bot] 501a42b2fa Update dependency aws-sdk to v2.1266.0 (#7393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 07:21:24 +00:00
renovate[bot] 39c669a36a Update aws-sdk-js-v3 monorepo to v3.222.0 (#7392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 04:49:15 +00:00
renovate[bot] d996637259 Update dependency react-native-image-picker to v4.10.2 (#7390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 01:42:52 +00:00
renovate[bot] cbd532d4f0 Update dependency query-string to v7.1.2 (#7389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 22:17:32 +00:00
renovate[bot] cf32366689 Update dependency aws-sdk to v2.1265.0 (#7384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 10:30:32 +00:00
renovate[bot] d31632f71b Update dependency ts-loader to v9.4.2 (#7385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 07:31:57 +00:00
renovate[bot] df28bad7eb Update dependency @types/node to v18.11.10 (#7383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 04:58:58 +00:00
Mr-Kanister c29a2694a2 All: Translation: Update de_DE.po (#7381) 2022-11-30 18:41:35 -05:00
renovate[bot] aec1860662 Update dependency react-redux to v7.2.9 (#7380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-30 12:40:17 +00:00
renovate[bot] efa6cb8d61 Update dependency @types/uuid to v9 (#7376) 2022-11-30 09:35:01 +00:00
renovate[bot] 973328b6d1 Update dependency fs-extra to v11.1.0 (#7379) 2022-11-30 09:34:27 +00:00
Tolulope Malomo 4775b60887 Chore: Fixes #7360: Fix react-redux build error on mobile (#7378) 2022-11-30 09:33:52 +00:00
Laurent Cozic 96ed2786df Update renovate.json5 2022-11-29 23:16:33 +00:00
renovate[bot] ccdedfa92e Update dependency aws-sdk to v2.1264.0 (#7375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 23:08:52 +00:00
renovate[bot] eeef68482c Update typescript-eslint monorepo to v5.45.0 (#7371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 10:31:02 +00:00
renovate[bot] 044f35d4b5 Update dependency aws-sdk to v2.1263.0 (#7373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 07:39:34 +00:00
renovate[bot] b9aae5b4cf Update dependency @types/yargs to v17.0.15 (#7370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 05:01:25 +00:00
renovate[bot] 20e18a149c Update dependency @react-native-community/netinfo to v9.3.7 (#7369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 02:48:09 +00:00
renovate[bot] e765e9eb39 Update dependency fs-extra to v11 (#7372) 2022-11-28 23:44:37 +00:00
Laurent Cozic 181f88fd99 Doc: Fixed spacing 2022-11-28 22:59:08 +01:00
Laurent Cozic 4e0aad8abe Doc: Update image 2022-11-28 22:56:36 +01:00
Laurent Cozic 59303087dc Chore: Fixed TS error 2022-11-28 18:21:42 +01:00
Laurent Cozic 58da15432f Chore: Fix warning in PDF Viewer 2022-11-28 18:21:41 +01:00
Self Not Found 4fd4360c18 Fix translation in zh_CN.po (#7364) 2022-11-28 17:10:38 +00:00
JackGruber 09fbf6428c Mobile: Tag search case insensitive (#7368) 2022-11-28 17:09:47 +00:00
Laurent Cozic 6ece7f4c1b Desktop: Fixes #7354: Open callback URLs from within the application 2022-11-28 18:01:00 +01:00
Laurent Cozic fab2271c9f Plugin Repo: Fix git compare url 2022-11-28 17:54:29 +01:00
Laurent Cozic 43618c774a Tools: Make main website translatable 2022-11-28 17:18:15 +01:00
Laurent Cozic d6b3b4c404 Update renovate.json5 2022-11-28 15:45:57 +00:00
renovate[bot] 8371e2ece6 Update aws-sdk-js-v3 monorepo to v3.218.0 (#7363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-28 09:40:52 +00:00
renovate[bot] 0c6a966c58 Update dependency aws-sdk to v2.1262.0 (#7362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-28 06:46:05 +00:00
Laurent Cozic fc813715d7 Tools: Auto-generate Linux icons 2022-11-27 21:02:24 +01:00
Roman Musin cb563f7e60 Linux: Fix AppImage icon when installing using Joplin_install_and_update.sh (#7346) 2022-11-27 19:53:37 +00:00
Laurent Cozic 1e788305c3 Tools: Prevent image generation tool to regenerate already existing images 2022-11-27 20:50:17 +01:00
renovate[bot] 7d7f6b251c Update dependency @react-native-community/datetimepicker to v6.7.1 (#7358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-27 00:19:22 +00:00
renovate[bot] 576fb1a828 Update dependency react-native-document-picker to v8.1.3 (#7356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-26 21:29:07 +00:00
renovate[bot] 1c40f31f49 Update dependency react-native-webview to v11.25.0 (#7352) 2022-11-26 13:21:17 +01:00
renovate[bot] 5cb23813f5 Update dependency @lezer/highlight to v1.1.3 (#7349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-25 19:39:57 +00:00
renovate[bot] 32017a80f2 Update dependency lint-staged to v13.0.4 (#7347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-25 12:23:00 +00:00
ancheGT 750b6fc1c7 add Chinese translate (#7335) 2022-11-24 21:58:37 +00:00
Joplin Bot e8b1e1410e Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-24 20:29:45 +00:00
renovate[bot] 6a30ca967d Update dependency highlight.js to v11.7.0 (#7340) 2022-11-24 20:21:56 +00:00
Laurent Cozic 466d79e5d0 Chore: Fixed tests 2022-11-24 21:08:25 +01:00
renovate[bot] d886436d75 Update dependency aws-sdk to v2.1261.0 (#7339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 07:33:48 +00:00
renovate[bot] 9438f58bac Update dependency @types/yargs to v17.0.14 (#7338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 05:03:12 +00:00
renovate[bot] d3fcf4cb76 Update dependency @types/mustache to v4.2.2 (#7337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 02:35:05 +00:00
Laurent Cozic e2c6a865ec Update renovate.json5 2022-11-23 23:09:01 +00:00
Helmut K. C. Tessarek 0682ea28c8 All: Update Mermaid: 9.1.7 to 9.2.2 (#7330) 2022-11-23 23:08:27 +00:00
renovate[bot] a9dee1ba12 Update dependency prettier to v2.8.0 (#7334) 2022-11-23 23:07:55 +00:00
renovate[bot] 8f5d3edaa5 Update dependency react-native-webview to v11.24.0 (#7333) 2022-11-23 23:07:16 +00:00
renovate[bot] 3654943258 Update dependency react-tooltip to v4.5.1 (#7336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-23 22:43:51 +00:00
renovate[bot] 2762ce2bb8 Update aws-sdk-js-v3 monorepo to v3.216.0 (#7332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-23 02:13:46 +00:00
renovate[bot] 0e8ee78d62 Update dependency aws-sdk to v2.1260.0 (#7331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 23:19:54 +00:00
Joplin Bot ef5ec3632c Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-22 18:19:43 +00:00
Laurent Cozic c990e81def Doc: Allow translating website 2022-11-22 18:17:24 +00:00
renovate[bot] 07fc6aa647 Update aws-sdk-js-v3 monorepo to v3.215.0 (#7325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 17:08:04 +00:00
Joplin Bot 65e1460bca Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-22 12:23:04 +00:00
renovate[bot] e957269416 Update typescript-eslint monorepo to v5.44.0 (#7324) 2022-11-22 10:29:34 +00:00
Laurent Cozic 5072a5b891 Update renovate.json5 2022-11-22 10:28:41 +00:00
renovate[bot] 6070a931c4 Update dependency aws-sdk to v2.1259.0 (#7326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 01:06:52 +00:00
Laurent Cozic 5efa227e70 Tools: Fix iOS build 2022-11-21 14:46:07 +00:00
Laurent Cozic 276f066b7b Tools: Filter out certain Yarn warnings 2022-11-21 12:37:07 +00:00
Laurent Cozic 5b0a9b9b56 Tools: Filter out certain Yarn warnings 2022-11-21 12:34:40 +00:00
Laurent Cozic 11d31ad488 Tools: Disable test that randomly fails on CI 2022-11-21 11:41:17 +00:00
phlax ceb6a0b003 Doc: Fix links in README (#7322) 2022-11-21 11:00:57 +00:00
renovate[bot] 5dcb896770 Update dependency eslint to v8.28.0 (#7320) 2022-11-20 10:11:34 +00:00
Laurent Cozic 9595e2a226 Renovate config 2022-11-20 10:11:20 +00:00
Laurent Cozic dbd480913d Fix CI 2022-11-20 10:10:41 +00:00
Mr-Kanister 09ac21e99e All: Translation: Update de_DE.po (#7316) 2022-11-19 01:31:49 -05:00
renovate[bot] 457cb05162 Update dependency aws-sdk to v2.1258.0 (#7319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-19 03:19:26 +00:00
renovate[bot] d1e064532d Update aws-sdk-js-v3 monorepo to v3.213.0 (#7313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-19 00:55:40 +00:00
renovate[bot] 3477ee68ac Update dependency eslint-plugin-react to v7.31.11 (#7317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 21:28:37 +00:00
renovate[bot] adc7d8e2f1 Update dependency aws-sdk to v2.1257.0 (#7309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 00:33:43 +00:00
Laurent Cozic cd7dd12d3c Renovate config 2022-11-17 18:18:43 +00:00
Laurent Cozic c0541950a7 Fix TS errors 2022-11-17 16:34:16 +00:00
renovate[bot] 67f7e2e7ff Update dependency typescript to v4.9.3 (#7310) 2022-11-17 16:23:13 +00:00
Laurent Cozic beec324677 Renovate ignore 2022-11-17 16:04:05 +00:00
Laurent Cozic fda62a97b5 Fix build 2022-11-17 15:36:33 +00:00
renovate[bot] ae49199f36 Update Yarn to v3.3.0 (#7308) 2022-11-17 15:20:14 +00:00
Laurent Cozic 5778d7a3b3 Chore: Finish uuid upgrade 2022-11-17 15:19:32 +00:00
renovate[bot] 7d749d6b1e Update dependency uuid to v9 (#7282) 2022-11-17 14:53:24 +00:00
Laurent Cozic dc73899bde Tools: Fixed updateNews script 2022-11-17 14:06:47 +00:00
Laurent Cozic a91b5f4bb6 Renovate: Automerge TypeScript and Yarn upgrades 2022-11-17 13:53:43 +00:00
renovate[bot] 55cb547664 Update dependency tap to v16 (#7273) 2022-11-17 13:34:59 +00:00
renovate[bot] 33bdaaf385 Update aws-sdk-js-v3 monorepo to v3.212.0 (#7300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-17 13:33:28 +00:00
renovate[bot] 1d9b0233aa Update dependency @react-native-community/datetimepicker to v6.7.0 (#7302) 2022-11-17 13:32:53 +00:00
renovate[bot] 855d6f62a3 Update dependency @seiyab/eslint-plugin-react-hooks to v4.5.1-beta.0 (#7301) 2022-11-17 13:32:38 +00:00
Laurent Cozic 3ae1ebb2f4 Fix tests 2022-11-17 11:57:19 +00:00
Laurent Cozic 089b53e514 Upgrade yeoman to v5 2022-11-17 11:52:21 +00:00
Laurent Cozic d93a210de6 Revert pdfjs-dist to v2 2022-11-17 11:25:11 +00:00
Laurent Cozic 4544144f66 Chore: Downgrade TinyMCE back to v5 2022-11-16 09:37:30 +00:00
Joplin Bot e5d3792335 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-15 18:18:55 +00:00
Laurent Cozic c53d4fd757 Update renovate.json5 2022-11-15 17:47:57 +00:00
Laurent Cozic 83110bce76 lock file 2022-11-15 16:00:36 +00:00
Laurent Cozic 0cfa07b1b0 Tools: Improve error message when website building fails 2022-11-15 16:00:06 +00:00
Joplin Bot 341c9029c4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-15 12:21:07 +00:00
Laurent Cozic 060e78577d Chore: Complete pdf-js update 2022-11-15 11:39:51 +00:00
renovate[bot] ceb1db5379 Update dependency pdfjs-dist to v3 (#7231) 2022-11-15 11:36:05 +00:00
Laurent Cozic 9921f4eb00 Doc: Add news item for Renovate 2022-11-15 11:29:00 +00:00
renovate[bot] b1f840622d Update dependency typescript to v4.8.4 (#7280) 2022-11-15 10:56:35 +00:00
Laurent Cozic 64199704c2 Chore: Complete Jest upgrade 2022-11-15 10:23:50 +00:00
Laurent Cozic 33b96b4c65 Renovate ignore gradle 2022-11-15 09:22:07 +00:00
renovate[bot] 81299384af Update jest monorepo to v29 (#7287) 2022-11-15 09:21:45 +00:00
Laurent Cozic 1554e9dea5 Tools: Move Renovate config to JSON5 to allow comments 2022-11-15 09:11:25 +00:00
Laurent Cozic 5c430a3b0e Upgrade node-fetch to 2.6.7 2022-11-15 09:11:25 +00:00
Laurent Cozic 9c74d18abf Chore: Complete upgrade to React 18 2022-11-15 09:11:24 +00:00
Laurent Cozic a40a5ef3bf Chore: Fixes 2022-11-15 09:11:23 +00:00
renovate[bot] fce571f38c Update dependency terminal-kit to v3 (#7276) 2022-11-15 08:16:58 +00:00
renovate[bot] f079fa3bdd Update dependency uri-template to v2 (#7281) 2022-11-15 08:16:38 +00:00
renovate[bot] b44b733090 Update dependency yargs-parser to v21 (#7284) 2022-11-15 08:13:31 +00:00
renovate[bot] d1089f9284 Update docker/login-action action to v2 (#7286) 2022-11-15 08:12:16 +00:00
renovate[bot] d2457a0079 Update postgres Docker tag to v15 (#7288) 2022-11-15 08:10:13 +00:00
renovate[bot] 7e407af638 Update typescript-eslint monorepo to v5 (#7291) 2022-11-15 08:09:46 +00:00
Laurent Cozic 3cee7b0858 Renovate: Automerge AWS package updates 2022-11-15 08:06:56 +00:00
Laurent Cozic ceb8e70dc7 Merge release-2.9 2022-11-15 07:36:37 +00:00
Laurent Cozic a84a8e7710 Desktop release v2.9.17 2022-11-15 07:35:09 +00:00
Laurent Cozic 6e0c3c076d Tools: Trying to fix CI - macOS translation kit not needed 2022-11-15 07:34:55 +00:00
renovate[bot] b83aadbb7b Update dependency react-select to v5.6.1 (#7299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-15 02:16:26 +00:00
renovate[bot] 3a8e2632a7 Update dependency tcp-port-used to v1 (#7275) 2022-11-14 22:40:35 +00:00
renovate[bot] cf78ec2e22 Update dependency yargs to v17 (#7283) 2022-11-14 22:39:46 +00:00
renovate[bot] 35903572e1 Update dependency @types/react-dom to v18.0.9 (#7296) 2022-11-14 22:38:44 +00:00
renovate[bot] e4254d6195 Update dependency aws-sdk to v2.1254.0 (#7297) 2022-11-14 22:38:27 +00:00
renovate[bot] de4f8c75e5 Update typescript-eslint monorepo to v5.43.0 (#7298) 2022-11-14 22:38:12 +00:00
renovate[bot] 1322e8cbcc Update react monorepo to v18 (#7289) 2022-11-14 22:37:49 +00:00
Laurent Cozic 03a111eebb Desktop release v2.9.16 2022-11-14 22:35:41 +00:00
Laurent Cozic fe8e5adbee Tools: Trying to fix CI - macOS translation kit not needed 2022-11-14 22:35:12 +00:00
Laurent Cozic 7b94901129 Merge release-2.9 2022-11-14 17:33:21 +00:00
Laurent Cozic 4f4f18bc0e Desktop release v2.9.15 2022-11-14 17:29:02 +00:00
Laurent Cozic 018591d1fa Ignored 2022-11-14 17:28:16 +00:00
Laurent Cozic 7364e82c21 Revert "Desktop release v2.9.14"
This reverts commit f008f080f1.
2022-11-14 17:27:48 +00:00
Laurent Cozic f008f080f1 Desktop release v2.9.14 2022-11-14 17:26:54 +00:00
Kenichi Kobayashi 275851091a Desktop: Fixes #6416: Switching a note using Sidebar is slow and grayed out (#6430) 2022-11-14 17:26:43 +00:00
Kenichi Kobayashi 5d49fcfe4e Desktop: Fixes #6416: Switching a note using Sidebar is slow and grayed out (#6430) 2022-11-14 17:25:41 +00:00
Laurent Cozic 8eef7c75e4 Desktop release v2.9.13 2022-11-14 17:22:06 +00:00
Laurent Cozic 762b4e88f8 All: Security: Fix XSS when a specially crafted string is passed to the renderer 2022-11-14 17:21:45 +00:00
Laurent Cozic a2de167b95 All: Security: Fix XSS when a specially crafted string is passed to the renderer 2022-11-14 17:16:59 +00:00
Laurent Cozic a7213453c7 Chore: Remove Redux withRef implementation to simplify code and fix issue 2022-11-14 16:48:41 +00:00
Self Not Found 673653a141 Desktop: Fixes #7036: Fix pasting plain text (#7045) 2022-11-14 12:29:07 +00:00
Self Not Found 7d135730bf Mobile: Fixes #7195: Fix attaching multiple files (#7196) 2022-11-14 12:28:32 +00:00
mrkaato0 456a20b8f8 Update fi_FI.po (#7251) 2022-11-14 12:27:28 +00:00
renovate[bot] 48074c254d Update dependency strip-ansi to v6.0.1 (#7290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-14 05:40:32 +00:00
renovate[bot] 50f587cf02 Update dependency css-loader to v6.7.2 (#7292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-14 02:37:37 +00:00
Henry Heino 79a627c14f Mobile: Fixes #7253: Update CodeMirror (#7262) 2022-11-13 22:49:20 +00:00
Laurent Cozic a873898422 Fix TS 2022-11-13 14:25:06 +00:00
renovate[bot] 859b950106 Update dependency tinymce to v6 (#7277) 2022-11-13 12:33:12 +00:00
renovate[bot] 7f13042c44 Update dependency turndown to v7 (#7278) 2022-11-13 12:32:56 +00:00
renovate[bot] 7e6a43de91 Update dependency tar to v6 (#7274) 2022-11-13 12:32:22 +00:00
Laurent Cozic a3c88b6ec7 Fixed string-ansi 2022-11-13 12:30:47 +00:00
Laurent Cozic 71efa09737 Fixed newly upgraded packages 2022-11-13 12:14:30 +00:00
renovate[bot] c19f7f814f Update dependency react-redux to v8 (#7252) 2022-11-13 11:39:02 +00:00
Laurent Cozic 97e88d7983 Fixed CI 2022-11-13 11:37:05 +00:00
Laurent Cozic cc5ead7474 Fixed husky config 2022-11-13 11:07:51 +00:00
Laurent Cozic b823c729e7 fix ios build 2022-11-13 11:06:55 +00:00
Laurent Cozic 4eac85bec6 renovate ignore 2022-11-13 10:59:03 +00:00
Tom 7bfb6c0ee9 Update changelog_android.md (#7271) 2022-11-13 10:49:30 +00:00
renovate[bot] b879538da9 Update dependency md5-file to v5 (#7215) 2022-11-13 10:44:53 +00:00
renovate[bot] 502b26e0b4 Update dependency pretty-bytes to v6 (#7239) 2022-11-13 10:43:35 +00:00
renovate[bot] 8d58ad7d86 Update dependency proper-lockfile to v4 (#7241) 2022-11-13 10:41:56 +00:00
renovate[bot] c490aa8d90 Update dependency string-natural-compare to v3 (#7267) 2022-11-13 10:39:51 +00:00
renovate[bot] 9c95bc987e Update dependency strip-ansi to v7 (#7269) 2022-11-13 10:38:58 +00:00
renovate[bot] 5e649bdc01 Update dependency string-to-stream to v3 (#7268) 2022-11-13 10:38:24 +00:00
renovate[bot] f653824874 Update dependency node-persist to v3 (#7225) 2022-11-13 10:01:49 +00:00
renovate[bot] ca5ec025c9 Update dependency react-select to v5 (#7254) 2022-11-13 10:01:15 +00:00
renovate[bot] db8a231aa3 Update dependency react-tooltip to v4 (#7255) 2022-11-13 10:00:12 +00:00
renovate[bot] 6f68c91c75 Update dependency smalltalk to v4 (#7261) 2022-11-13 09:59:50 +00:00
renovate[bot] a038704b2a Update dependency source-map-loader to v4 (#7264) 2022-11-13 09:58:58 +00:00
renovate[bot] ab730e84e0 Update dependency standard to v17 (#7266) 2022-11-13 09:58:36 +00:00
renovate[bot] 9e78e48370 Update dependency redux to v4.2.0 (#7257) 2022-11-13 08:42:56 +00:00
renovate[bot] c09567ef16 Update dependency react-native-document-picker to v8 (#7245) 2022-11-13 08:40:11 +00:00
renovate[bot] cf4f059a20 Update dependency query-string to v7 (#7242) 2022-11-13 08:39:35 +00:00
renovate[bot] 5325e85b9d Update dependency sqlite3 to v5.1.2 (#7265) 2022-11-13 08:38:59 +00:00
renovate[bot] 1510b8fa0e Update dependency react-native-image-picker to v4.10.1 (#7221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-13 04:56:25 +00:00
renovate[bot] c135361f70 Update dependency ruby to v2.7.6 (#7205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-13 02:14:53 +00:00
renovate[bot] e7be0f5d00 Update dependency react-datetime to v3 (#7243) 2022-11-12 23:42:23 +00:00
renovate[bot] de9ce973b4 Update dependency react-native-camera to v4 (#7244) 2022-11-12 23:41:58 +00:00
renovate[bot] 4d7ffdd8e0 Update dependency react-native-dropdownalert to v4 (#7246) 2022-11-12 23:40:44 +00:00
renovate[bot] 6af18a0cfc Update dependency react-native-modal-datetime-picker to v14 (#7247) 2022-11-12 23:40:09 +00:00
renovate[bot] d53c3f9f2d Update dependency react-native-share to v8 (#7248) 2022-11-12 23:39:16 +00:00
renovate[bot] 790a756f74 Update dependency react-native-sqlite-storage to v6 (#7249) 2022-11-12 23:38:46 +00:00
renovate[bot] c00b71b5b1 Update dependency promise to v8 (#7240) 2022-11-12 23:38:17 +00:00
renovate[bot] a1051145bc Update dependency react-native-vector-icons to v9 (#7250) 2022-11-12 23:35:28 +00:00
renovate[bot] a0c87d6d4b Update dependency joplin-rn-alarm-notification to v1.0.6 (#7229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-12 21:08:52 +00:00
renovate[bot] 42cbd4fac8 Update dependency knex to v2 (#7208) 2022-11-12 15:59:02 +00:00
renovate[bot] 3a19fe6879 Update dependency prettier to v2 (#7238) 2022-11-12 13:50:56 +00:00
Laurent Cozic 290388b679 renovate iugnore 2022-11-12 13:50:18 +00:00
renovate[bot] 20518112e3 Update dependency open to v8 (#7227) 2022-11-12 13:11:45 +00:00
renovate[bot] c31fce4e33 Update dependency normalize to v8 (#7226) 2022-11-12 13:10:36 +00:00
renovate[bot] 3ce548b005 Update dependency node-notifier to v10 (#7224) 2022-11-12 12:36:27 +00:00
Sammy Hori c0903ad61b Minor grammatical correction in README.md (#7235) 2022-11-12 12:36:08 +00:00
renovate[bot] 01062d4577 Update dependency mustache to v4 (#7217) 2022-11-12 12:28:12 +00:00
renovate[bot] d0498b6274 Update dependency highlight.js to v11.6.0 (#7181) 2022-11-12 12:21:19 +00:00
renovate[bot] 26e5bd5550 Update dependency glob to v8 (#7179) 2022-11-12 12:20:53 +00:00
renovate[bot] 7ccf38fdd6 Update dependency http-server to v14 (#7185) 2022-11-12 12:20:32 +00:00
renovate[bot] 38a24c4bd9 Update aws-sdk-js-v3 monorepo to v3.209.0 (#7222) 2022-11-12 12:20:05 +00:00
renovate[bot] a05dbcd17b Update dependency @react-native-community/datetimepicker to v6.6.0 (#7223) 2022-11-12 12:19:38 +00:00
renovate[bot] 9ced656ede Update dependency madge to v5 (#7211) 2022-11-12 12:19:09 +00:00
Laurent Cozic ac5854bf94 renovate ignore 2022-11-12 10:27:15 +00:00
Laurent Cozic 3823362eed renovate ignore 2022-11-12 10:27:15 +00:00
renovate[bot] 6ce0b46748 Update dependency node-gyp to v9 (#7220) 2022-11-12 10:25:07 +00:00
renovate[bot] e0bfa87522 Update dependency markdown-it-emoji to v2 (#7214) 2022-11-12 10:24:21 +00:00
renovate[bot] f9460d4a14 Update dependency markdown-it to v13 (#7212) 2022-11-12 10:23:00 +00:00
renovate[bot] 2100940019 Update dependency lint-staged to v13 (#7210) 2022-11-12 10:22:42 +00:00
renovate[bot] af100c1c4b Update dependency aws-sdk to v2.1253.0 (#7206) 2022-11-12 10:21:39 +00:00
renovate[bot] 2e52bb4c12 Update dependency node-mocks-http to v1.12.1 (#7207) 2022-11-11 16:07:02 +00:00
renovate[bot] 1b41a22487 Update dependency fs-extra to v10.1.0 (#7177) 2022-11-11 16:05:54 +00:00
renovate[bot] c88b031b0a Update dependency eslint-config-prettier to v8 (#7169) 2022-11-11 15:05:37 +00:00
renovate[bot] 94b83ac28b Update aws-sdk-js-v3 monorepo to v3.208.0 (#7202) 2022-11-11 14:31:38 +00:00
renovate[bot] 67596d60e9 Update dependency jetifier to v2 (#7192) 2022-11-11 14:27:55 +00:00
renovate[bot] 9d10c64ec6 Update dependency html-minifier to v4 (#7183) 2022-11-11 14:24:51 +00:00
renovate[bot] 94e7ed9a5f Update dependency gettext-parser to v6 (#7178) 2022-11-11 14:20:16 +00:00
renovate[bot] 30513e7b59 Update dependency formidable to v2 (#7176) 2022-11-11 14:19:47 +00:00
renovate[bot] b9c3442e9f Update dependency form-data to v4 (#7175) 2022-11-11 14:19:34 +00:00
renovate[bot] 9282dfed5a Update dependency domutils to v3 (#7163) 2022-11-11 14:17:21 +00:00
Laurent Cozic 3b53a33cd5 Tools: Build Android debug app on CI (#7204) 2022-11-11 14:09:55 +00:00
Laurent Cozic 6f1e8e2983 Tools: Upgrade to React Native 0.67.2 2022-11-11 12:22:52 +00:00
Laurent Cozic 739c5dbea5 Update renovate.json 2022-11-11 10:04:03 +00:00
renovate[bot] 5629a020ee Update dependency @react-native-community/datetimepicker to v6.5.5 (#7200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-11 07:18:23 +00:00
renovate[bot] e447e154bc Update dependency sass to v1.56.1 (#7187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-11 04:43:05 +00:00
sammyhori a84589e3bb Fixed grammatical error in faq.md (#7197) 2022-11-11 00:37:13 +00:00
renovate[bot] d21d198325 Update dependency eslint to v8.27.0 (#7168) 2022-11-10 08:31:03 +00:00
Laurent Cozic 4f6ddfad43 Renovate ignore 2022-11-10 07:54:23 +00:00
renovate[bot] 42d1f9e2f7 Update dependency aws-sdk to v2.1251.0 (#7171) 2022-11-10 07:50:06 +00:00
Laurent Cozic f0c3f29ece Revert "Update dependency domhandler to v5 (#7162)"
Build fails due to nonsensical TS errors.

This reverts commit 10d616b2c8.
2022-11-10 07:47:39 +00:00
Laurent Cozic ffe5721c44 Removed unused package 2022-11-08 21:12:23 +00:00
Laurent Cozic 07807d0a26 Renovate ignore 2022-11-08 20:55:38 +00:00
renovate[bot] 10d616b2c8 Update dependency domhandler to v5 (#7162) 2022-11-08 20:49:49 +00:00
renovate[bot] 8d0525af1b Update dependency css to v3 (#7160) 2022-11-08 20:49:08 +00:00
renovate[bot] 8ffc2efa4f Update dependency buffer to v6 (#7152) 2022-11-08 20:46:32 +00:00
renovate[bot] 04bce0cbda Update dependency base-64 to v1 (#7150) 2022-11-08 20:45:36 +00:00
Laurent Cozic e4a8a62ead Improve CI 2022-11-08 18:27:29 +00:00
Laurent Cozic 2fffaec76e Tools: Disable flaky test 2022-11-08 18:18:48 +00:00
Laurent Cozic f746824494 Update renovate.json 2022-11-08 18:15:25 +00:00
renovate[bot] 50068dc80f Update dependency @types/react-dom to v18 (#7146) 2022-11-08 18:02:27 +00:00
renovate[bot] d456ace317 Update typescript-eslint monorepo to v5.42.1 (#7145) 2022-11-08 18:02:04 +00:00
renovate[bot] ab37305625 Update dependency webpack-cli to v4.10.0 (#7144) 2022-11-08 16:59:07 +00:00
renovate[bot] e9f3ce5404 Update dependency uglify-js to v3.17.4 (#7143) 2022-11-08 16:58:56 +00:00
renovate[bot] 7268b2b758 Update dependency ts-loader to v9.4.1 (#7142) 2022-11-08 16:58:32 +00:00
renovate[bot] 1a060ad066 Update dependency stripe to v8.222.0 (#7141) 2022-11-08 16:58:06 +00:00
Laurent Cozic 17502e3370 Tools: Remove package-lock 2022-11-08 15:52:08 +00:00
renovate[bot] 138e956d6c Update dependency pdfjs-dist to v2.16.105 (#7131) 2022-11-08 14:26:42 +00:00
renovate[bot] 573db70d1a Update dependency eslint-plugin-promise to v6.1.1 (#7118) 2022-11-08 14:24:11 +00:00
renovate[bot] daea4021d7 Update dependency eslint-interactive to v10.2.0 (#7117) 2022-11-08 14:23:59 +00:00
renovate[bot] 53ce917db4 Update dependency sass to v1.56.0 (#7140) 2022-11-08 14:23:38 +00:00
renovate[bot] a22caf1440 Update dependency react-native-share to v7.9.1 (#7139) 2022-11-08 14:23:13 +00:00
renovate[bot] 2b1f4d7dab Update dependency react-native-popup-menu to v0.16.1 (#7138) 2022-11-08 14:22:53 +00:00
renovate[bot] deacdb3d67 Update dependency react-native-get-random-values to v1.8.0 (#7137) 2022-11-08 14:22:37 +00:00
renovate[bot] 0075aa3d34 Update dependency eslint-plugin-react to v7.31.10 (#7119) 2022-11-08 12:32:13 +00:00
Laurent Cozic 15886839a9 Tools: Renovate: Increase concurrent PRs to 20 2022-11-08 12:31:50 +00:00
renovate[bot] f61722dda6 Update dependency react-native-fs to v2.20.0 (#7136) 2022-11-08 11:56:56 +00:00
renovate[bot] 38e34adb0d Update dependency raw-body to v2.5.1 (#7135) 2022-11-08 11:56:20 +00:00
Laurent Cozic 5aeaeee87e "useWorkspaces": true 2022-11-08 10:28:43 +00:00
Laurent Cozic 8ed4b7c5b7 Tools: Renovate: Ignore a package 2022-11-08 10:08:22 +00:00
renovate[bot] d0befcc8f4 Update dependency rate-limiter-flexible to v2.4.1 (#7134) 2022-11-08 10:07:41 +00:00
renovate[bot] 338f1d3aaa Update dependency prop-types to v15.8.1 (#7133) 2022-11-08 10:07:29 +00:00
renovate[bot] df5637889b Update dependency pg to v8.8.0 (#7132) 2022-11-08 10:07:15 +00:00
renovate[bot] 6328829875 Update dependency nodemailer to v6.8.0 (#7130) 2022-11-08 10:06:17 +00:00
renovate[bot] e15ab8edab Update dependency aws-sdk to v2.1249.0 (#7127) 2022-11-07 23:13:50 +00:00
renovate[bot] ec6cb92622 Update dependency nanoid to v3.3.4 (#7129) 2022-11-07 23:12:51 +00:00
renovate[bot] 9dd68c2ff8 Update dependency markdown-it-multimd-table to v4.2.0 (#7126) 2022-11-07 19:57:29 +00:00
renovate[bot] 44513bdc68 Update dependency markdown-it to v12.3.2 (#7125) 2022-11-07 19:56:58 +00:00
renovate[bot] 5e20ec1bd2 Update dependency jest-expect-message to v1.1.3 (#7123) 2022-11-07 19:56:45 +00:00
renovate[bot] 18976da8b9 Update dependency gettext-extractor to v3.6.0 (#7121) 2022-11-07 19:56:25 +00:00
Laurent Cozic f3d301766f CI: Skip duplicate jobs 2022-11-07 18:51:22 +00:00
renovate[bot] 7defd590ad Update dependency keytar to v7.9.0 (#7124) 2022-11-07 18:43:02 +00:00
renovate[bot] dade64148d Update dependency hpagent to v1.2.0 (#7122) 2022-11-07 17:58:33 +00:00
Laurent Cozic 9607b016c0 CI: Skip duplicate jobs 2022-11-07 17:56:50 +00:00
renovate[bot] db77057b46 Update dependency follow-redirects to v1.15.2 (#7120) 2022-11-07 17:45:37 +00:00
Laurent Cozic 6a594a5065 CI: Skip duplicate jobs 2022-11-07 16:25:12 +00:00
renovate[bot] fb8c62fcaf Update dependency electron-builder to v23.6.0 (#7116) 2022-11-07 15:52:08 +00:00
renovate[bot] 032dd984fe Update dependency domelementtype to v2.3.0 (#7115) 2022-11-07 15:51:38 +00:00
Laurent Cozic 94e8eb3132 lock files 2022-11-07 10:18:27 +00:00
Laurent Cozic e8cf5ae3f7 Tools: Renovate: Ignore CodeMirror 6 2022-11-07 10:12:21 +00:00
renovate[bot] 326c3ab297 Update dependency codemirror to v5.65.9 (#7112) 2022-11-07 10:11:33 +00:00
Laurent Cozic e134908117 Tools: Let Renovate automerge patch upgrades 2022-11-07 10:05:04 +00:00
renovate[bot] 86ef8b9f98 Update dependency @lezer/highlight to v1.1.2 (#7108) 2022-11-07 10:03:03 +00:00
renovate[bot] 4a4c257a88 Update dependency cspell to v5.21.2 (#7113) 2022-11-07 10:01:46 +00:00
renovate[bot] c2c9121cf5 Update dependency dayjs to v1.11.6 (#7114) 2022-11-07 10:01:27 +00:00
renovate[bot] d1699fcf4d Update aws-sdk-js-v3 monorepo to v3.204.0 (#7106) 2022-11-07 07:51:30 +00:00
renovate[bot] 47839c38d6 Update dependency builtin-modules to v3.3.0 (#7111) 2022-11-07 07:51:00 +00:00
renovate[bot] f11651b503 Update dependency aws-sdk to v2.1248.0 (#7110) 2022-11-07 07:50:29 +00:00
renovate[bot] 97b1e35f2f Update dependency @rmp135/sql-ts to v1.15.1 (#7109) 2022-11-07 07:50:06 +00:00
renovate[bot] 061f5f22c4 Update dependency url-parse to v1.5.10 (#7102) 2022-11-06 22:34:03 +00:00
renovate[bot] 9cb525e298 Update jest monorepo (#7103) 2022-11-06 22:31:38 +00:00
renovate[bot] 2b92fa5efb Update dependency ts-jest to v28.0.8 (#7101) 2022-11-06 17:11:09 +00:00
renovate[bot] 334fe4d437 Update dependency tinymce to v5.10.6 (#7100) 2022-11-06 17:10:52 +00:00
renovate[bot] 70297b6a2a Update dependency reselect to v4.1.7 (#7097) 2022-11-06 16:34:36 +00:00
renovate[bot] 22ce3d4f7e Update dependency slugify to v1.6.5 (#7098) 2022-11-06 16:34:20 +00:00
renovate[bot] 5f0550ae51 Update dependency source-map-loader to v3.0.2 (#7099) 2022-11-06 16:34:01 +00:00
renovate[bot] 644de0016f Update dependency multiparty to v4.2.3 (#7088) 2022-11-06 15:47:31 +00:00
renovate[bot] 952cfa5689 Update dependency react-native-rsa-native to v2.0.5 (#7095) 2022-11-06 14:39:33 +00:00
renovate[bot] 47f62004b6 Update dependency react-native-file-viewer to v2.1.5 (#7094) 2022-11-06 14:39:23 +00:00
renovate[bot] fc6c299198 Update dependency re-resizable to v6.9.9 (#7093) 2022-11-06 14:39:09 +00:00
renovate[bot] ec93c7013a Update dependency re-reselect to v4.0.1 (#7092) 2022-11-06 14:38:57 +00:00
renovate[bot] c188dafec4 Update dependency node-cron to v3.0.2 (#7089) 2022-11-06 14:38:47 +00:00
renovate[bot] f9c5792791 Update dependency electron-rebuild to v3.2.9 (#7083) 2022-11-06 14:38:02 +00:00
Laurent Cozic dfdee74242 Tools: Trying to fix CI - macOS translation kit not needed 2022-11-06 14:37:26 +00:00
Laurent Cozic 5f0144cc23 Tools: Trying to fix CI - macOS translation kit not needed 2022-11-06 13:02:31 +00:00
renovate[bot] fed35668ff Update dependency nodemon to v2.0.20 (#7090) 2022-11-06 12:39:18 +00:00
renovate[bot] 058377da40 Update dependency glob to v7.2.3 (#7085) 2022-11-06 12:38:58 +00:00
renovate[bot] e4db0240e4 Update dependency electron-notarize to v1.2.2 (#7082) 2022-11-06 12:38:32 +00:00
renovate[bot] ba117ed430 Update dependency moment to v2.29.4 (#7087) 2022-11-06 12:37:47 +00:00
renovate[bot] 086fb5c94d Update dependency jquery to v3.6.1 (#7086) 2022-11-06 12:37:39 +00:00
renovate[bot] 0907895e13 Update dependency gh-release-assets to v2.0.1 (#7084) 2022-11-06 12:37:31 +00:00
Laurent Cozic d30a8b3a9e lock file 2022-11-06 12:37:08 +00:00
renovate[bot] 16397893c1 Update dependency @types/react-dom to v16.9.17 (#7080) 2022-11-05 20:12:45 +00:00
renovate[bot] a1ad28bcaf Update dependency chokidar to v3.5.3 (#7081) 2022-11-05 20:12:21 +00:00
renovate[bot] 7be5462a34 Update dependency @types/fs-extra to v9 (#7067) 2022-11-05 18:52:14 +00:00
renovate[bot] 2eb9e727e7 Update dependency @types/node to v18 (#7068) 2022-11-05 18:52:00 +00:00
renovate[bot] 1771f721b7 Update dependency @types/react to v17.0.52 (#7079) 2022-11-05 18:51:42 +00:00
renovate[bot] 2d730e1693 Update dependency sharp to v0.31.2 (#7078) 2022-11-05 18:51:21 +00:00
Laurent Cozic 3c4c948fbd Tools: Fix CI 2022-11-05 17:56:38 +00:00
renovate[bot] 1f11b833b0 Update dependency @types/jsdom to v16.2.15 (#7075) 2022-11-05 17:15:22 +00:00
renovate[bot] 3bccdca9d6 Update dependency bulma to v0.9.4 (#7074) 2022-11-05 17:15:12 +00:00
renovate[bot] 3fd03e84ed Update dependency @types/uuid to v8.3.4 (#7073) 2022-11-05 17:15:03 +00:00
renovate[bot] 8243d31836 Update dependency node-fetch to v2.6.7 (#7069) 2022-11-05 17:13:55 +00:00
Laurent Cozic faacf12bf3 Tools: Add basic test to CI to ensure created Joplin Server image is valid 2022-11-05 16:57:09 +00:00
Laurent Cozic 22d7f57618 Server v2.9.7 2022-11-05 16:52:15 +00:00
Laurent Cozic cb77adab3b Server: Fix Node version 2022-11-05 16:51:09 +00:00
Laurent Cozic 12531a63f9 Tools: Also pin dev dependencies 2022-11-05 14:52:40 +00:00
renovate[bot] faab2ca998 Update dependency @electron/remote to v2.0.8 (#7071) 2022-11-05 14:28:25 +00:00
renovate[bot] 9633ece009 Update dependency @electron/remote to v2.0.8 (#7071) 2022-11-05 14:28:06 +00:00
renovate[bot] 683807d501 Update dependency @joeattardi/emoji-button to v4.6.4 (#7072) 2022-11-05 14:27:35 +00:00
Laurent Cozic 3a09945ad0 Tools: Pin all dependencies 2022-11-05 13:09:41 +00:00
Laurent Cozic 65c1fe1cdc Upgrade to @react-native-community/slider 4.3.3 2022-11-05 12:22:47 +00:00
Laurent Cozic 0ebaf3b0ce Chore: Clean up tests 2022-11-05 12:17:56 +00:00
Laurent Cozic 85ab378ce6 Server v2.9.6 2022-11-05 11:52:49 +00:00
Laurent Cozic 3e60d285e9 Lock file 2022-11-05 11:50:46 +00:00
Laurent Cozic c4577715bc Renovate 2022-11-05 11:50:45 +00:00
Laurent Cozic a9d2af5631 Chore: Fixed server origin (regression) 2022-11-05 11:50:45 +00:00
renovate[bot] 917b60aee4 Update dependency @testing-library/react-hooks to v8 (#7066) 2022-11-05 11:50:09 +00:00
renovate[bot] 2c4f0290dc Update dependency @react-native-community/netinfo to v9 (#7062) 2022-11-05 11:20:30 +00:00
Laurent Cozic 81209956c0 Tools: Disable TCP/UDP offload on macOS and Linux 2022-11-05 10:16:23 +00:00
Laurent Cozic e43bae5133 Update @react-native-community/datetimepicker@npm:6.5.4 2022-11-05 10:11:10 +00:00
Laurent Cozic bbed72b564 Tools: Ignore a few packages for Renovate 2022-11-05 10:03:00 +00:00
renovate[bot] 950f94654c Update dependency @react-native-community/geolocation to v3 (#7061) 2022-11-05 09:59:15 +00:00
renovate[bot] 327d4827d9 Update dependency @koa/cors to v4 (#7059) 2022-11-05 09:58:11 +00:00
renovate[bot] 3c4953fdd9 Update react monorepo to v16.14.0 (#7053) 2022-11-05 09:56:05 +00:00
renovate[bot] 39a5299293 Update dependency yargs to v16.2.0 (#7050) 2022-11-05 09:55:54 +00:00
Laurent Cozic 50e4ca2149 Update readme 2022-11-05 00:17:45 +00:00
Laurent Cozic 49d500cbf1 Tools: Trying to fix CI 2022-11-05 00:14:43 +00:00
Laurent Cozic 76773831ba Tools: Renovate ignore 2022-11-04 20:22:27 +00:00
renovate[bot] 9e73946a31 Update dependency typescript to v3.9.10 (#7048) 2022-11-04 20:14:19 +00:00
renovate[bot] b1110f768d Update dependency styled-components to v5.3.6 (#7043) 2022-11-04 20:13:51 +00:00
renovate[bot] 439289ce24 Update dependency sharp to ^0.31.0 (#7041) 2022-11-04 20:13:18 +00:00
renovate[bot] 8fc92886ee Update dependency resolve to v1.22.1 (#7039) 2022-11-04 20:12:21 +00:00
renovate[bot] 640721939c Update dependency react-redux to v5.1.2 (#7038) 2022-11-04 20:12:03 +00:00
Laurent Cozic ccf5d204f0 Server: Fixed account activation logic 2022-11-04 16:36:54 +00:00
Laurent Cozic 21883b4e6b Server: Fail-safe when trying to delete a non-disabled account 2022-11-04 16:18:41 +00:00
Laurent Cozic bbc4228ed9 Server: When re-activating an account, remove it from the deletion queue 2022-11-04 15:30:04 +00:00
Laurent Cozic e51d9c5621 Tools: Trying to disable clipper build for now 2022-11-04 15:26:17 +00:00
Laurent Cozic 119e457d5e Tools: Trying to fix clipper webpack config 2022-11-04 14:23:43 +00:00
Laurent Cozic 7291ab876e Tools: Trying to fix clipper webpack config 2022-11-04 13:45:21 +00:00
Laurent Cozic e10bc33c3b Update renovate.json 2022-11-04 12:39:53 +00:00
Laurent Cozic f2f6f8ec78 CI: Upgrade to Node 18 2022-11-04 11:48:02 +00:00
Laurent Cozic f34078bd96 Server: Upgrade to Node 18
To fix error ERR_OSSL_EVP_UNSUPPORTED

Ref: https://stackoverflow.com/questions/69394632
Ref: https://github.com/laurent22/joplin/actions/runs/3392538624/jobs/5638855521#step:6:4386
2022-11-04 11:33:21 +00:00
Laurent Cozic a8ed365bcf Chore: Fixed types in server pckage 2022-11-04 09:08:49 +00:00
Laurent Cozic c8e8c3b20c Tools: Upgrade types/koa to 2.13.4 2022-11-03 22:41:15 +00:00
Laurent Cozic dea15e749b Tools: Update Node version to 18 on CI 2022-11-03 20:18:11 +00:00
Laurent Cozic 1ab836961a Tools: Upgrade http-server to 0.13.0 2022-11-03 20:14:12 +00:00
Laurent Cozic ef0286bcc1 Doc: Fixed Markdown title 2022-11-03 20:13:52 +00:00
Laurent Cozic 578d938a37 Tools: Make renovate ignore some packages 2022-11-03 20:10:34 +00:00
Laurent Cozic dc92546ac5 Server: Upgrade Koa framework to 2.13.4 2022-11-03 20:05:57 +00:00
renovate[bot] ec26d65311 Update dependency nan to v2.17.0 (#7029) 2022-11-03 08:40:25 +00:00
renovate[bot] eef81b2b86 Update dependency dotenv to v8.6.0 (#7019) 2022-11-02 22:14:01 +00:00
renovate[bot] 99655f998a Update dependency electron to v19.1.4 (#7020) 2022-11-02 22:13:32 +00:00
renovate[bot] 5456554dd1 Update dependency domhandler to v3.3.0 (#7017) 2022-11-02 19:52:28 +00:00
renovate[bot] 91f9c6b7be Update dependency css-loader to v3.6.0 (#7016) 2022-11-02 19:51:51 +00:00
renovate[bot] 1f24cc24c0 Update dependency color to v3.2.1 (#7015) 2022-11-02 17:38:00 +00:00
renovate[bot] 0e810092a4 Update dependency async-mutex to ^0.4.0 (#7013) 2022-11-02 16:32:55 +00:00
renovate[bot] 750734129c Update dependency turndown to v4.0.2 (#7003) 2022-11-02 16:02:26 +00:00
renovate[bot] a1157110ec Update dependency postcss-safe-parser to v4.0.2 (#7001) 2022-11-02 16:02:11 +00:00
Laurent Cozic c87b055528 Update renovate.json 2022-11-02 15:22:48 +00:00
renovate[bot] 0ffc5c526a Update Yarn to v3.2.4 (#7006) 2022-11-02 15:01:28 +00:00
renovate[bot] ef40e945af Update dependency @types/react to v16.14.34 (#7008) 2022-11-02 15:01:12 +00:00
renovate[bot] ecef31ab5b Update dependency turndown-attendant to v0.0.3 (#7004) 2022-11-02 13:24:33 +00:00
Laurent Cozic 24caa553e3 Tools: Ignore react-native dependency for Renovate 2022-11-02 13:22:36 +00:00
Laurent Cozic d151ca09b8 Tools: Ignore react-native dependency for Renovate 2022-11-02 13:22:04 +00:00
renovate[bot] 6536dde488 Update dependency terser-webpack-plugin to v2.3.8 (#7002) 2022-11-02 13:19:17 +00:00
renovate[bot] 120ba40d21 Update dependency postcss-preset-env to v6.7.1 (#7000) 2022-11-02 13:08:19 +00:00
renovate[bot] db0cdea539 Update dependency optimize-css-assets-webpack-plugin to v5.0.8 (#6999) 2022-11-02 11:29:02 +00:00
renovate[bot] 8b176ff207 Update dependency knex to v0.95.15 (#6998) 2022-11-02 11:28:41 +00:00
renovate[bot] 9d137d94ac Update dependency gradle to v6.9.3 (#6995) 2022-11-02 11:28:15 +00:00
renovate[bot] acd1b2f522 Update dependency @types/react-redux to v7.1.24 (#6994) 2022-11-02 11:27:47 +00:00
Laurent Cozic f81891d320 Tools: Fixed test 2022-11-02 10:04:31 +00:00
Joplin Bot 07b8e66122 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-01 18:19:46 +00:00
Laurent Cozic f4e6948065 Android 2.9.8 2022-11-01 15:46:55 +00:00
Laurent Cozic cb6cf88471 Desktop release v2.9.12 2022-11-01 15:36:43 +00:00
Laurent Cozic 7992fe5b63 Tools: Setup test framework for CLI app 2022-11-01 15:28:14 +00:00
3dd008ae9a Desktop: Fixes #6721: Fix exporting resources to md and md + frontmatter (#6768)
Co-authored-by: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2022-11-01 14:35:48 +00:00
Laurent Cozic 99a61f1283 Desktop: Regression: Plugin CSS files were no longer being loaded correctly
Fixed regression introduced in 36871d9cb0
2022-11-01 14:07:45 +00:00
Joplin Bot 1cf121b52c Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-01 12:27:13 +00:00
renovate[bot] 3a7d6cd520 Tools: Configure Renovate (#6993) 2022-11-01 11:28:43 +00:00
Laurent Cozic 54085a960f Doc: Add sponsor 2022-11-01 11:10:39 +00:00
Helmut K. C. Tessarek 3e8707d9ca All: Translation: Update da_DK.po (thanks ERYpTION) 2022-10-30 19:19:37 -04:00
Kevin-vdberg 83a1a42f92 Corrected/added NL translations (#6980) 2022-10-30 22:36:19 +00:00
Laurent Cozic 996c98f0b3 Update translations 2022-10-30 18:38:38 +00:00
Laurent Cozic 56229d640b Chore: Clean up and simplify translatable strings 2022-10-30 18:37:58 +00:00
Laurent Cozic 33b262cd22 Update translations 2022-10-30 18:00:39 +00:00
Laurent Cozic fd445773ce Desktop: Resolves #6979: Display the plugin name in dialog boxes created by plugins 2022-10-30 17:45:47 +00:00
Laurent Cozic 3c24c4cd0b Android 2.9.7 2022-10-30 10:26:29 +00:00
Laurent Cozic 20c62e0353 Tools: Fixed react-native-saf-x build 2022-10-30 09:52:17 +00:00
Joplin Bot 3b9a730985 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-29 12:26:32 +00:00
Laurent Cozic 7183f79b28 Chore: Disable flaky server test 2022-10-29 12:21:44 +01:00
Laurent Cozic 8cb006cfd9 Doc: Fixed typo 2022-10-29 11:48:25 +01:00
Laurent Cozic ae178016ab Desktop: Fixed crash when setting spellchecker language to en-IN 2022-10-29 11:46:13 +01:00
Ahmed Azzam 4779891154 Desktop: Fixes an error when importing a shortcut map and canceling the dialog (#6975) 2022-10-29 11:28:05 +01:00
Laurent Cozic db4c6eaa6d Desktop: Remove unnecessary PDF viewer messages 2022-10-26 16:04:08 +01:00
Laurent Cozic 5b80fbc543 Desktop: Fixed sidebar tag header click 2022-10-26 15:54:18 +01:00
Laurent Cozic ea6b7caaf3 Mobile: Fixed notebook icons alignment 2022-10-24 15:22:22 +01:00
Laurent Cozic 5d31c087b0 Chore: Sort property names 2022-10-24 11:38:36 +01:00
Joplin Bot 63afbb7346 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-23 18:24:08 +00:00
Laurent Cozic f330e08a35 Android 2.9.6 2022-10-23 18:56:13 +01:00
Laurent Cozic 42a713288a Desktop release v2.9.11 2022-10-23 16:33:16 +01:00
Laurent Cozic a228f7ac58 Desktop release v2.9.10 2022-10-23 16:32:27 +01:00
Laurent Cozic 6c647144e2 Desktop: Fix size of notebook emojis on Windows 2022-10-23 16:28:19 +01:00
Laurent Cozic 0c30198e8c Desktop: Fix size of notebook emojis on Windows 2022-10-23 15:49:28 +01:00
Tom Bursch 150f0485c0 Android: Add monochrome icon (#6954) 2022-10-23 14:01:02 +01:00
javad mnjd 5324f39561 Android: Fix file system sync issues (#6943) 2022-10-23 14:00:27 +01:00
Laurent Cozic 7129c0c14e Desktop release v2.9.9 2022-10-23 13:55:40 +01:00
Laurent Cozic 1379c9c706 Server: Allow enabling and disabling tasks 2022-10-21 11:47:39 +01:00
ScriptInfra cb4cf92206 Doc: Update share_notebook.md (#6955) 2022-10-21 09:57:16 +01:00
Laurent Cozic 35ce87303f Doc: Update copyright 2022-10-20 14:27:16 +01:00
Laurent Cozic bf92ee7c44 Server: Update sender email 2022-10-20 11:26:49 +01:00
Laurent Cozic 1cfbefb76a Server: Allow searching user by email or name 2022-10-18 16:51:04 +01:00
Laurent Cozic 8ac8d537c8 Server: Paginate users 2022-10-18 16:50:36 +01:00
Laurent Cozic 8ea6d89d49 Server: Refactor table structure 2022-10-18 16:45:41 +01:00
Joplin Bot 59a7dd6673 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-16 12:26:36 +00:00
Brad Pitcher c9ff0a3cd1 Desktop: upgrade electron to 19.0.10 (#6888) 2022-10-15 22:55:06 +01:00
flakeforever 5cf83f5641 Desktop: Resolves #6882: Upgrade electron-window-state to 5.0.3 (#6915) 2022-10-15 22:53:45 +01:00
Self Not Found 9bccf787a5 All: Fixes #6838, #6914: Support non-ASCII characters in OneDrive (#6916) 2022-10-15 22:51:57 +01:00
Self Not Found fa67b7193c Desktop: Enable proxy support when fetching list of available plugins (#6907) 2022-10-15 22:21:06 +01:00
Ward De Ridder 0fe34d5178 Doc: AWS url should contain regionname for most regions + style (#6917) 2022-10-15 22:08:23 +01:00
Laurent Cozic bec97d6a42 Tools: Trying to make encodeAssets script more robust on CI 2022-10-14 11:05:44 +01:00
Henry Heino 1fe6910089 Chore: Fix scroll on iOS -- only pass scrollEnabled=false if we aren't scrolling the outermost view (#6925) 2022-10-13 22:04:07 +01:00
javad mnjd 0d5f96f5bb Android: Fix note attachment issue (#6932) 2022-10-13 22:02:06 +01:00
ScriptInfra 5fd5be1e09 Doc: Update terminal.md (#6941) 2022-10-13 21:59:37 +01:00
Joplin Bot d3fa806d64 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-12 18:30:50 +00:00
Laurent Cozic 633c9acd49 Mobile: Fixed notebook icon spacing 2022-10-12 16:03:51 +01:00
Laurent Cozic c13c19b78c Tools: Update yarn.lock 2022-10-12 15:55:38 +01:00
Laurent Cozic 116e2fc92e CLI v2.9.1 2022-10-12 15:50:17 +01:00
Laurent Cozic 713c00053e Releasing sub-packages 2022-10-12 15:45:50 +01:00
Laurent Cozic 6a0700e335 Chore: Fix pdf-viewer build 2022-10-12 15:43:56 +01:00
Laurent Cozic 7961acd06f Doc: News about Joplin company 2022-10-12 15:18:16 +01:00
Laurent Cozic e9f7f106f1 Doc: Fixed changelog 2022-10-11 17:20:06 +01:00
Laurent Cozic 5e944df595 Android 2.9.5 2022-10-11 17:19:37 +01:00
Laurent Cozic 6f6f427356 Tools: Build mobile app before release 2022-10-11 14:43:39 +01:00
Laurent Cozic cac10c4e29 Android 2.9.4 2022-10-11 14:28:43 +01:00
Laurent Cozic 9b348fdc29 Mobile: Disable multi-highlighting to fix context menu 2022-10-11 14:18:09 +01:00
Laurent Cozic ec97dd8c60 Mobile: Display icon for all notebooks if at least one notebook has an icon 2022-10-11 12:46:40 +01:00
Laurent Cozic f28c1bc6ba Chore: Refactor side-menu-content to TS and React Hooks 2022-10-11 12:31:09 +01:00
Laurent Cozic e660fafb7a Server v2.9.5 2022-10-11 11:44:12 +01:00
Laurent Cozic 2c49270f38 Tools: Trying to fix encodeAssets EEXIST error 2022-10-11 11:43:22 +01:00
Laurent Cozic 13c1ae3d39 Desktop: Add some extra space between icon and notebook name 2022-10-11 11:20:47 +01:00
Laurent Cozic 29550ade49 Server v2.9.4 2022-10-11 11:08:03 +01:00
Laurent Cozic 1b9f74f674 Chore: Trying to fix CI for Joplin Server build 2022-10-11 11:07:40 +01:00
Laurent Cozic 0b69ae371c Server v2.9.3 2022-10-11 10:42:53 +01:00
Laurent Cozic 37ebd21cb3 Chore: Trying to fix CI for Joplin Server build 2022-10-11 10:42:13 +01:00
Laurent Cozic c996ddaf9d Server v2.9.2 2022-10-10 11:59:58 +01:00
Laurent Cozic cea1aeac4b Android 2.9.3 2022-10-07 12:13:34 +01:00
mrkaato0 13ee1c89ea Update fi_FI.po (#6922) 2022-10-07 11:50:07 +01:00
Laurent Cozic f01ec941b7 Server v2.9.1 2022-10-07 11:48:00 +01:00
Laurent Cozic 0853521bc9 Server: Update email templates 2022-10-06 11:40:11 +01:00
Joplin Bot e484671a08 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-04 12:27:50 +00:00
Joplin Bot 50253d00e7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-10-04 06:31:07 +00:00
Self Not Found 5364965a69 Desktop: Fixes #6257: Fixed the missing format when pasting text by Ctrl+V in Rich Text editor (#6901) 2022-10-01 15:35:54 +01:00
Self Not Found 50baad3c04 Mobile: Show client ID in log (#6897) 2022-09-30 17:38:22 +01:00
ScriptInfra cf219762c9 Doc: Update faq.md (#6879) 2022-09-30 17:32:24 +01:00
Laurent Cozic 9e27b0881f Doc: Info about eslint 2022-09-30 17:32:01 +01:00
Laurent Cozic 44a96f347a Tools: Add eslint rule prefer-await-to-then 2022-09-30 17:32:00 +01:00
Self Not Found cc6620a7e1 Desktop: Fixes #6630: Made autoMatchBraces work on CJK characters (#6858) 2022-09-30 17:03:45 +01:00
asrient 29f1abb666 Desktop: Remove page number box from new PDF Viewer (#6846) 2022-09-30 17:01:55 +01:00
Laurent Cozic 9781a33419 Update CONTRIBUTING.md 2022-09-30 16:19:09 +01:00
Laurent Cozic 0954794195 Chore: Removed build file 2022-09-30 15:22:51 +01:00
Laurent Cozic a996375b88 Mobile: Fixes #6898: Fixed crash when trying to move note to notebook 2022-09-30 12:13:29 +01:00
Laurent Cozic 129ac1829d Chore: Restore accidentally deleted files 2022-09-30 12:07:26 +01:00
Laurent Cozic 44e60bdda9 Revert: Mobile: Add note bar (#6772)
Revert commit dfd95f8385
Due to UX issues.
Ref https://discourse.joplinapp.org/t/25775/30
2022-09-30 11:46:26 +01:00
Joplin Bot afc34b44c8 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-09-20 18:24:07 +00:00
Joplin Bot e08c74ae08 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-09-20 12:27:32 +00:00
Laurent Cozic e5c669dc7a Doc: Mention that we do not offer bounties 2022-09-20 12:15:13 +03:00
Helmut K. C. Tessarek f4a7f5914e All: Update Mermaid 8.13.9 to 9.1.7 (#6849) 2022-09-18 21:22:41 +01:00
Self Not Found 62eee4df56 Desktop: Fixes #6860: Made "Open profile directory" work on Windows (#6861) 2022-09-17 20:19:12 +01:00
Joplin Bot c16445bc2f Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-09-16 06:49:50 +00:00
Self Not Found e05c5598a0 Mobile: Increase the attachment size limit to 200MB (#6848) 2022-09-14 12:21:21 +01:00
Mayank Bondre 66c9ee0a1a Desktop: Fix missing plugin file error and missing setting key error in dev mode (#6827) 2022-09-12 16:08:06 +01:00
asrient d07788607c Desktop: Fix pdf text blurry (#6843) 2022-09-12 16:07:39 +01:00
Laurent Cozic 907dc7601b Desktop release v2.9.8 2022-09-12 14:12:39 +01:00
Laurent Cozic 4b9adcde04 Tools: Restore Windows build on CI 2022-09-12 14:12:07 +01:00
Henry Heino 9f3a4e0d99 Mobile: Fix multiple webview instances (#6841) 2022-09-12 10:46:12 +01:00
Henry Heino ea14488dc3 Tools: Update Joplin plugin generator to Webpack 5, TypeScript 4.8 (#6826) 2022-09-12 10:44:40 +01:00
Laurent Cozic f59d29f1c5 Desktop release v2.9.7 2022-09-11 20:07:47 +01:00
Laurent Cozic 0a9e919ac7 Merge branch 'release-2.9' into dev 2022-09-11 20:07:21 +01:00
Laurent Cozic f11b6e8fa9 Tools: Remove desktop Windows build for now (broken due to invalid cert) 2022-09-11 20:06:49 +01:00
Laurent Cozic 167560ff6f Desktop release v2.9.6 2022-09-11 18:53:38 +01:00
Laurent Cozic 4b4e316bf0 Chore: Remove broken default plugin bundler for now 2022-09-11 18:53:05 +01:00
Self Not Found 7809228bd3 Mobile: Supports attaching multiple files to a note at once (#6831) 2022-09-11 16:58:36 +01:00
Laurent Cozic 540fbbc22c Desktop release v2.9.5 2022-09-11 15:04:00 +01:00
Laurent Cozic 2983d4f1a3 Merge branch 'dev' into release-2.9 2022-09-11 15:03:34 +01:00
asrient f6a8bf9ea2 Desktop: Add PDF full screen viewer (#6821) 2022-09-11 14:58:32 +01:00
BeeverTeeth e3ba02281b Doc: Update markdown.md (#6834) 2022-09-10 09:35:46 +01:00
Joplin Bot 295b310079 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-09-09 18:23:10 +00:00
Henry Heino 62346575f8 iOS: Fixes #6805: Add button to reduce space below markdown toolbar (#6823) 2022-09-09 15:11:58 +01:00
chelstad 0a590b7de9 Doc: Update README to work well with Linode (#6830) 2022-09-09 15:11:03 +01:00
Tolulope Malomo dfd95f8385 Mobile: Add note bar (#6772) 2022-09-09 15:06:03 +01:00
Retrove 6efe8c171a Chore: Seperate allPossibleCategories to @joplin/lib (#6754) 2022-09-09 15:05:08 +01:00
Philipp Tschannen a7cdcaf25f Doc: Update e2ee.md (#6833)
Fix typo
2022-09-09 12:40:23 +01:00
Joplin Bot 6277958d6a Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-09-06 18:21:44 +00:00
Laurent Cozic 25bd91bed1 Doc: Added news with link to interview 2022-09-06 16:23:33 +01:00
Laurent Cozic 7974df98ff Desktop: Display default notebook icons when at least one notebook has an icon 2022-09-05 17:26:22 +01:00
Laurent Cozic e37d980453 Chore: Converted desktop Sidebar to React Hooks 2022-09-05 16:21:26 +01:00
Mayank Bondre 597569745c Doc: Add spec for default plugins (#6811) 2022-09-05 12:51:22 +01:00
Henry Heino 6e6275b1b7 Mobile: Resolves #6808: Convert empty bolded regions to bold-italic regions in beta editor (#6807) 2022-09-05 12:50:32 +01:00
Henry Heino cfba73e938 Android: Fixes #6802: Double/triple-tap selection doesn't show context menu (#6803) 2022-09-05 12:47:25 +01:00
Henry Heino 7e1c34b769 Chore: Factor duplicate WebView code into ExtendedWebView.tsx (#6771) 2022-09-05 12:46:13 +01:00
Andrej Lifinzew b5b281c276 CLI: Resolves #1728: Toggle short ids and mv notebooks (#6671) 2022-09-05 12:37:51 +01:00
Mayank Bondre 80906cbdb3 Desktop: Remove demo plugins folder and update pinned version of backup plugin (#6801) 2022-09-05 12:36:21 +01:00
asrient 1504cb71ae Desktop: Added PDF viewer options (#6800) 2022-09-05 12:35:38 +01:00
Self Not Found eb7083d788 All: Fixes #6688: Fix resources sync when proxy is set (#6817) 2022-09-05 10:42:22 +01:00
Laurent Cozic e40d733176 Android 2.9.2 2022-09-01 16:19:45 +01:00
Laurent Cozic 170c669e37 Desktop release v2.9.4 2022-09-01 16:19:44 +01:00
Laurent Cozic 24b4b879f2 Android 2.9.2 2022-09-01 16:19:03 +01:00
Mayank Bondre 3942029c90 Desktop: Bundle default plugins with desktop application (#6679) 2022-09-01 11:53:58 +01:00
Mayank Bondre 01f4bb0591 Desktop: Install default plugins on first app start (#6585) 2022-09-01 11:44:33 +01:00
Laurent Cozic 86fbf82d36 Merge branch 'dev' into release-2.9 2022-09-01 11:05:10 +01:00
Henry Heino 1069d7d6fb Chore: Update ESLint and TypeScript (#6774) 2022-08-31 12:57:28 +01:00
asrient 8d67aefcd5 Chore: Fix yarn install (#6790) 2022-08-31 12:56:58 +01:00
javad mnjd ff90166b6e Android: Fixes #6791: Fixed handling of normal paths in filesystem sync (#6792) 2022-08-31 10:44:32 +01:00
Laurent Cozic 6beaaf75bb Chore: Fixed bug 2022-08-29 16:27:26 +01:00
Laurent Cozic ebf9a9375c Desktop, Cli: Fixes #6704: Fixed names of imported duplicate notebooks 2022-08-29 16:22:13 +01:00
javad mnjd de94c35c0b Android: Fixes #6779: Fixed android filesystem sync (resources) (#6789) 2022-08-29 15:29:28 +01:00
Laurent Cozic 6a4eb33093 Desktop: Fixes #6692: Fixed file and directory paths in plugin setting dialogs 2022-08-29 15:27:19 +01:00
Laurent Cozic 8b91427056 Chore: Added more messages for external editing 2022-08-29 15:09:30 +01:00
Henry Heino b174fcf17b Mobile: Add Markdown toolbar (#6753) 2022-08-29 14:19:04 +01:00
Henry Heino c6b91cdc5d Chore: Force syntax tree generation after creating editor in test units (#6783) 2022-08-29 12:40:19 +01:00
Ivan Piskun e784e8c947 Update uk_UA.po (#6786) 2022-08-28 15:41:04 +01:00
asrient 6498f94c36 Desktop: Add zoom feature on PDF viewer (#6748) 2022-08-28 12:18:51 +01:00
Henry Heino ae300de42f Mobile: Setting to disable spellcheck in beta editor (#6780) 2022-08-27 13:53:46 +01:00
Henry Heino 40e682faae Chore: Fix #6764: Switch from @babel/register to ts-node for mobile TypeScript build scripts (#6765) 2022-08-27 13:41:49 +01:00
Henry Heino 92c24c2129 Chore: Migrate mobile Dropdown, ScreenHeader to TypeScript (#6763) 2022-08-27 13:36:59 +01:00
asrient 3ec3a37603 Desktop: PDF scroll persistence (#6747) 2022-08-27 13:32:20 +01:00
Abu Sahal ed2a328616 All: Translation: Update id_ID.po (#6782) 2022-08-27 08:12:16 -04:00
Retrove 58dc4feee7 Plugins: Add support for media links in plugin manifest.json (#6672) 2022-08-27 12:11:56 +01:00
Anton Tuchkov 0356cbbfab Desktop: Add support for multi-language spell check (#6617) 2022-08-27 12:05:44 +01:00
Tolulope Malomo 8b06cbf04e Mobile: Fix side menu width on wide screen devices (#6662) 2022-08-25 16:59:38 +01:00
Henry Heino fd82758e74 Android: Enable spellcheck by default on beta editor (#6778) 2022-08-24 23:52:34 +01:00
Laurent Cozic c705ec682c Website: Default to yearly subscription 2022-08-24 11:30:39 +01:00
Henry Heino a5e6491cda Mobile: Add long-press tooltips (#6758) 2022-08-21 22:03:41 +01:00
Henry Heino 8ef9804cab iOS: Enable long-press menu (#6738) 2022-08-21 21:58:15 +01:00
Henry Heino 09ec77f904 Android: Fixes #6732: Don't reload the application on screen rotation (#6737) 2022-08-21 21:57:25 +01:00
SeptemberHX 36871d9cb0 Desktop: Fixes #6719: Avoid reloading loaded plugin scripts (#6742) 2022-08-21 21:53:36 +01:00
asrient b4ece67092 Tools: Fix desktop build performance issue (#6762) 2022-08-19 19:10:39 +01:00
Laurent Cozic 7e8a6dfb54 Tools: Add react-hooks/exhaustive-deps eslint rule 2022-08-19 12:10:04 +01:00
Laurent Cozic 549095f0e5 Chore: clean up ignore files 2022-08-19 11:39:15 +01:00
Laurent Cozic 313c05732b Tools: Add eslint-interactive to more easily apply new eslint rules 2022-08-19 11:39:14 +01:00
Joplin Bot 641b0fa9a2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-18 18:19:20 +00:00
Laurent Cozic 96982849ce Desktop release v2.9.4 2022-08-18 16:29:00 +01:00
Laurent Cozic 4b8745c875 Tools: Prevent CI from creating a release if "yarn install" failed 2022-08-18 16:28:17 +01:00
Henry Heino 78f72f33e6 Mobile: Fixes #6759: Fix default font in beta editor (#6760) 2022-08-18 11:43:54 +01:00
Laurent Cozic b4aa418276 Chore: No need to warn about falling back to the default font 2022-08-18 11:42:48 +01:00
Laurent Cozic 8d66322c94 Desktop: Disable publishing recursive notes on Jpolin Cloud (not fully working yet) 2022-08-18 11:39:39 +01:00
Laurent Cozic 6969341745 Desktop release v2.9.3 2022-08-18 11:03:50 +01:00
Laurent Cozic 488f19e3c4 Merge branch 'dev' into release-2.9 2022-08-18 11:03:36 +01:00
Joplin Bot 79889facea Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-17 06:20:19 +00:00
Ji-Hyeon Gim 74f513b082 All: Translation: Update ko.po (#6751)
It updates Korean translation.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2022-08-14 19:24:31 -04:00
Kevin Hsu ab540edacc All: Translation: Update zh_TW (#6727) 2022-08-14 13:51:23 -04:00
Ji-Hyeon Gim 9dedd88989 All: Translation: Update ko.po (#6734)
It updates Korean translation.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2022-08-14 13:50:17 -04:00
Joplin Bot be8ebd9fc5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-12 18:20:29 +00:00
Laurent Cozic 6d41814455 Android 2.9.1 2022-08-12 19:15:40 +02:00
Laurent Cozic 2807a32e64 Desktop release v2.9.2 2022-08-12 19:07:31 +02:00
Laurent Cozic e6b0e20f08 Doc: Add sponsor 2022-08-12 18:37:59 +02:00
Laurent Cozic 0dc92c17f5 Doc: Mention Meetup on readme file 2022-08-11 19:34:46 +02:00
Joplin Bot 308c7b11c2 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-08 16:46:15 +00:00
Laurent Cozic 75be518d8a Doc: Fixed coding style doc 2022-08-08 18:32:09 +02:00
Laurent Cozic 9f97a2e910 Doc: Upload Meetup news 2022-08-08 18:32:08 +02:00
Henry Heino 03c3188a4a Mobile: Add keyboard-activatable markdown commands (e.g. bold, italicize) (#6707) 2022-08-08 16:00:14 +01:00
José Rebelo bd5ce114a1 Desktop: Allow electron flag to disable smooth scrolling (#6712) 2022-08-06 11:01:59 +01:00
Joplin Bot d326700d32 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-06 00:45:43 +00:00
Joplin Bot 5bf949fcb3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-05 18:21:00 +00:00
Joplin Bot 9d6d2f770a Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-05 00:52:30 +00:00
Joplin Bot 3e12313f85 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-04 18:18:43 +00:00
Joplin Bot 358178f83d Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-04 12:24:45 +00:00
asrient 6ea40c9895 Desktop: New Embedded Pdf Viewer (#6681) 2022-08-04 10:12:22 +01:00
Laurent Cozic 0191de8bb4 Doc: update sponsors 2022-08-04 10:50:23 +02:00
Joplin Bot a114e1b5f7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-03 00:51:59 +00:00
Joplin Bot cf22ec0c8b Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-02 18:17:50 +00:00
Joplin Bot e074f099c4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-01 18:17:40 +00:00
Joplin Bot c5ad2975d6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-08-01 12:23:51 +00:00
SFulpius ab5313e37f Desktop: Fixes #6434: Play flac files (#6666) 2022-07-30 13:11:21 +01:00
Henry Heino 54cc7063ad Chore: Migrate from rollup to webpack to build mobile assets (#6705) 2022-07-30 13:07:38 +01:00
Henry Heino 12a510c464 Chore: Fix CI: Use strict equality (#6702) 2022-07-29 09:38:44 +01:00
Henry Heino 21d5800923 iOS: Fixes #6636: Fix occasional overscroll when opening the keyboard (#6700) 2022-07-28 17:05:41 +01:00
Peter Baumgartner 1d5e8e65d9 Doc: Update known problems (#6691) 2022-07-28 17:04:19 +01:00
Henry Heino d2a6d24846 iOS: Resolves #6685: Respect system accessibility font size in rendered markdown (#6686) 2022-07-28 17:02:46 +01:00
Henry Heino fb372723a4 Mobile: Improve syntax highlighting on mobile beta editor (#6684) 2022-07-28 17:01:34 +01:00
Henry Heino b32a341700 Chore: Migrate EventDispatcher to TypeScript, add tests (#6673) 2022-07-28 16:46:52 +01:00
Henry Heino caef5449dc Doc: Document coding style (#6657) 2022-07-28 16:36:39 +01:00
Joplin Bot 864a3a7efe Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-23 12:22:35 +00:00
Laurent Cozic ce02d4c94f Chore: Finished applying eqeqeq rule 2022-07-23 11:33:12 +02:00
Laurent Cozic 052d9f03d6 Chore: Add eslint rule to enforce strict equality (eqeqeq) 2022-07-23 09:31:32 +02:00
Laurent Cozic 8a8def39f0 Doc: Mime type comment 2022-07-23 08:48:40 +02:00
Henry Heino f0831f1d60 Chore: Fixes #6663: Fix watchInjectedJs and support multiple output bundles (#6664) 2022-07-22 18:51:12 +01:00
Henry Heino 0e532fbaf0 Chore: Set up repository for testing/preparation for mobile markdown toolbar PR (#6650) 2022-07-22 10:44:19 +01:00
Joplin Bot 11a1e1cb6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-20 18:17:06 +00:00
Joplin Bot 37b89b5644 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-18 06:19:10 +00:00
Laurent Cozic 520d9746c5 Mobile: Fixes #6515: Note links with HTML notation did not work 2022-07-12 11:52:20 +01:00
SFulpius c3df191a95 Desktop: Fixes #6570: Fixed broken image links (#6590) 2022-07-12 11:34:56 +01:00
Laurent Cozic 06d5feaa63 All: Fixes #6645: Do not encrypt non-owned note if it was not shared encrypted 2022-07-12 11:28:48 +01:00
Laurent Cozic 0b3c4edb92 Chore: Clean up react-native-saf-x 2022-07-11 17:41:44 +01:00
Henry Heino 58045f87d8 Doc: Update outdated path reference in CONTRIBUTING (#6658) 2022-07-11 17:28:14 +01:00
Joplin Bot 28e66e2619 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-11 12:31:33 +00:00
Laurent Cozic c3179a39a4 Desktop release v2.9.1 2022-07-11 10:17:37 +01:00
Laurent Cozic eb71260674 Chore: Setup new release 2.9 2022-07-11 10:07:21 +01:00
Laurent Cozic ed4a013cfc Tools: Fixed /setupNewRelease script 2022-07-11 10:06:15 +01:00
Laurent Cozic 5ffe90c4b0 Chore: Add debug message to try to debug scroll to top issue 2022-07-11 10:00:17 +01:00
Laurent Cozic 8a836ea4f9 Tools: Check licenses for one package 2022-07-11 10:00:16 +01:00
Joplin Bot 1f2930f037 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-11 06:20:21 +00:00
X3NO ef3afb2a01 updated pl_PL.po (#6613)
updated polish translation
2022-07-10 18:05:25 +01:00
Kane 5d873a3264 Update Chinese Simplified (zh_CN) translation (#6634) 2022-07-10 18:05:07 +01:00
jd1378 effba83a0e Android: Fixes #5779: Fixed android filesystem sync (#6395) 2022-07-10 15:26:24 +01:00
Kenichi Kobayashi 55d98346ee Desktop: Fixes #6639: Re-ordering note list items causes unwanted height change (#6640) 2022-07-10 15:10:08 +01:00
Henry Heino d848865b0d Chore: Fix injectedJavaScript not evaluating to true on mobile (#6609) 2022-07-10 15:00:21 +01:00
Tom 879702dadf Mobile: Removes whitespace above navigation component (#6597) 2022-07-10 14:59:33 +01:00
Jason Williams 8bb5b4a557 Desktop: Resolves #164: Add support for proxy (#6537) 2022-07-10 14:54:31 +01:00
Laurent Cozic 2c4cf9fbdb Server: Answer recurrent question 2022-07-05 15:16:33 +01:00
Laurent Cozic 3b35ab6581 Plugins: Added joplin.versionInfo method 2022-07-03 14:32:29 +01:00
Joplin Bot 6744dc3a8a Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-02 00:44:48 +00:00
Joplin Bot 97c6684154 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-07-01 18:17:01 +00:00
Laurent Cozic e797ebb864 Desktop: Security: Fixes XSS in GotoAnything dialog 2022-06-30 18:25:38 +01:00
Laurent Cozic f99b8dfde8 Server: Process user deletions once an hour 2022-06-28 11:05:09 +01:00
Joplin Bot c21b28e6e6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-06-27 00:48:12 +00:00
Joplin Bot c58e9fe346 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-06-26 18:15:45 +00:00
Henry Heino c58ce8e2da Mobile: Add alt text/roles to some buttons to improve accessibility (#6616) 2022-06-26 18:23:41 +01:00
Daeraxa f64d046c62 Docs: Add section to FAQ about appimages not starting (#6614) 2022-06-26 18:22:18 +01:00
Henry Heino c7e3245008 Mobile: Fixes #5949: Scroll selection into view in beta editor when window resizes (#6610) 2022-06-26 18:21:38 +01:00
Eduardo Esparza 8f3fd0bf8b Cli: Resolves #6478: Added note count indicator per notebook (#6526) 2022-06-26 17:55:49 +01:00
Laurent Cozic d293474402 Doc: Disable a-b test 2022-06-24 13:43:04 +01:00
Henry Heino aaa610d5f4 Mobile: Ctrl+F search support in beta editor (#6587) 2022-06-24 10:56:59 +01:00
Joplin Bot 20a7cd2323 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-06-24 00:42:18 +00:00
Laurent Cozic d7af060564 Revert "Mobile: Fixes #3564: "Move Note" dropdown menu can be very narrow (#6306)"
This reverts commit cffea3ea1e.

https://github.com/laurent22/joplin/pull/6306#issuecomment-1161575676
2022-06-21 11:50:10 +01:00
Laurent Cozic d7663212cf Revert "Chore: Fixed mobile dropbown regression"
This reverts commit 671077e1bb.

https://github.com/laurent22/joplin/pull/6306#issuecomment-1161575676
2022-06-21 11:49:38 +01:00
Laurent Cozic 429a49b07e Chore: Fixed database type generation script 2022-06-21 11:48:55 +01:00
Laurent Cozic 124ce342d8 Chore: Fixed database type generation script 2022-06-21 11:48:53 +01:00
Jonatan 19f4139470 Update Swedish translation (#6589) 2022-06-20 14:33:28 +01:00
Henry Heino 21b6564301 Mobile: Fixes #6576: Fix checklist continuation in beta editor (#6577) 2022-06-20 14:31:30 +01:00
SFulpius c8b6122a65 Desktop: Resolves #6172: Checkbox don't function while checkbox format button hidden from toolbar (#6567) 2022-06-20 14:29:32 +01:00
asrient c0bc4c38c3 Clipper: Resolves #6247: Clipper unable to pull and store PDFs (#6384) 2022-06-20 13:56:54 +01:00
Joplin Bot 0c50a5ab9b Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-06-18 06:18:17 +00:00
Laurent Cozic ce6797d842 Server: Fixed recursively sharing note 2022-06-14 18:48:15 +01:00
Laurent Cozic 29a1cc022c Server: Add support for recursively publishing a note 2022-06-14 18:47:43 +01:00
Laurent Cozic af665f247c Server: Fixes #6370: Published note must be scrollable when it contains a large table 2022-06-14 15:39:04 +01:00
Laurent Cozic 8ea32201e7 Server: Fixes #6491: Could not manually start task 2022-06-14 15:30:13 +01:00
Laurent Cozic 4c88376449 Desktop: Fixes #6514: Search field focus is stolen on layout change 2022-06-14 15:25:23 +01:00
Laurent Cozic 0618e9ec90 Server: Fixes #6531: Fixed Unsupported File Type error when sharing certain notes 2022-06-14 14:58:52 +01:00
Laurent Cozic 176c9e0bcf Desktop: Fixes #6557: Search field would not clear as expected 2022-06-14 14:24:51 +01:00
Laurent Cozic c7697b65ca Add resourceService for debugging 2022-06-13 18:08:20 +01:00
Laurent Cozic 3bb00956fe Desktop: Fixes #6506: App can crash with certain combinations of plugins 2022-06-13 18:08:20 +01:00
Arda Kılıçdağı e3695c6a80 Turkish translations updated (#6573) 2022-06-10 09:45:37 +01:00
Kenichi Kobayashi 40bc63e7ea Suppress redundant NoteEditor re-rendering by removing non-changing updates of state.selectedNoteTags (#6470) 2022-06-08 10:34:08 +01:00
Kenichi Kobayashi c320d2364e Performance: suppresses redundant SideBar re-rendering on state.tags (#6451) 2022-06-08 10:33:53 +01:00
Kenichi Kobayashi fb9e78d6c1 Desktop: Fixes #5178: Allow styling note list items using custom CSS (#6542) 2022-06-08 10:33:06 +01:00
alexmo1997 27ef917350 Desktop: Update to Electron 18 (#6496) 2022-06-07 18:23:16 +01:00
Kenichi Kobayashi 2dedede5c3 Removes unnecessary trivial dependencies that causes re-rendering (#6471) 2022-06-07 18:21:55 +01:00
Kenichi Kobayashi 443e049022 Performance: fixes false dependencies in MainScreen (#6444) 2022-06-07 18:09:50 +01:00
Xavi Ivars b4c3ba249d Update ca.po (#6563) 2022-06-07 17:32:43 +01:00
Perkolator 46f146309d Doc: Added links to mobile changelogs in the about section. (#6562) 2022-06-07 17:32:23 +01:00
ScriptInfra 541203f919 Update README.md (#6560) 2022-06-07 17:31:17 +01:00
ScriptInfra 8495045ada Update README.md (#6559) 2022-06-07 17:30:53 +01:00
ScriptInfra 64c3784a8b Update README.md (#6558)
Added a space between "word `office`".
2022-06-07 17:30:35 +01:00
Joplin Bot ff897236f7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-06-06 18:16:48 +00:00
Laurent Cozic 53206d5488 Clipper release v2.8.1 2022-06-06 16:13:54 +01:00
Laurent Cozic 1eeefb942d Fix clipper build 2022-06-06 16:13:03 +01:00
Laurent Cozic 87296a616a Fix clipper build 2022-06-06 16:10:21 +01:00
Laurent Cozic 6c0f3c3578 Tools: Better joplinbot message 2022-06-06 16:07:47 +01:00
Laurent Cozic c1fb9fb3f5 iOS 12.8.1 2022-06-06 16:06:09 +01:00
Joplin Bot 466a534fcd Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-06-06 12:23:06 +00:00
Laurent Cozic 9375fe1323 Doc: Release 2.8 announcement 2022-06-06 11:54:11 +01:00
Laurent Cozic 19b8191712 Doc: Fix RSS dates 2022-06-03 14:03:29 +01:00
Joplin Bot 7111d31813 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-06-03 12:21:36 +00:00
Joplin Bot d97064979f Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-06-03 11:42:42 +00:00
Laurent Cozic 232e0a3a72 Doc: Auto-generate RSS feed from news 2022-06-03 12:32:24 +01:00
Joscha Schmiedt 40d9ccf183 Doc: Fix broken link to Plugin API (#6545) 2022-05-31 11:22:04 +01:00
Laurent Cozic f75a9d4a64 Chore: Fixed tests 2022-05-27 12:02:31 +01:00
Laurent Cozic 7168e0dc90 Chore: Optimize highlight.js package size 2022-05-26 16:46:56 +01:00
Laurent Cozic 91df23e959 Chore: Removed lodash package to save space 2022-05-26 15:57:44 +01:00
Laurent Cozic 63b3115d3b word list 2022-05-24 18:09:45 +01:00
Laurent Cozic 8f0763ed45 Doc: Add GTM tags 2022-05-23 11:34:55 +01:00
Joplin Bot 94ac82d7d9 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-22 13:08:41 +00:00
Laurent Cozic 7c2bb02f9e Doc: Add news item 2022-05-22 13:58:07 +01:00
Joplin Bot 832d1a560a Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-19 12:21:15 +00:00
Joplin Bot 020fd4ad9a Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-19 06:17:25 +00:00
Laurent Cozic e4b150a4cd Android 2.8.1 2022-05-18 14:41:57 +01:00
Laurent Cozic 9ac3b353e7 lock file 2022-05-18 14:31:37 +01:00
Laurent Cozic 84d7f0fd60 Doc: Add yearly-monthly plan A-B testing 2022-05-18 14:16:54 +01:00
Laurent Cozic d4c209e638 CLI v2.8.1 2022-05-18 14:03:43 +01:00
Laurent Cozic 2cbe7be16e Releasing sub-packages 2022-05-18 13:59:47 +01:00
Joplin Bot d2bb2e9df4 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-17 18:18:25 +00:00
Laurent Cozic c2a6a13eb4 Desktop release v2.8.8 2022-05-17 14:13:27 +01:00
Laurent Cozic 6ba5a896e8 Update translations 2022-05-17 14:12:42 +01:00
Daeraxa 6937066c60 Docs: Update plugin readmes (#6502) 2022-05-17 14:10:58 +01:00
Retrove 64ef5ebde4 Desktop: Fixes #6503: Dropbox login button is not visible in dark mode (#6513) 2022-05-17 14:10:31 +01:00
Laurent Cozic 7ec3a7be9f Desktop: Remove plugin backoff handler for now 2022-05-17 14:08:54 +01:00
Joplin Bot 81ea66f4ad Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-17 12:23:02 +00:00
Laurent Cozic 075c4053a8 Doc: Added sponsor 2022-05-17 10:09:22 +01:00
Máté Molnár 17256873dc Updated translations (#6516) 2022-05-14 22:49:33 +01:00
Joplin Bot 6f1a806e5c Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-12 00:40:30 +00:00
Joplin Bot 41e95e81de Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-11 18:18:05 +00:00
Joplin Bot f406d112bd Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-11 12:23:05 +00:00
Laurent Cozic 2151a626cd Doc: Disable linkify to prevent text from being incorrectly converted to a link 2022-05-10 16:01:30 +01:00
kik0220 0fc65acfa2 Translation: Update ja_JP.po (#6504) 2022-05-10 14:41:30 +01:00
Tolulope Malomo 2eddd40667 Mobile: Fixes #6328: Error when pressing undo or redo button while editor is closed (#6426) 2022-05-10 10:23:36 +01:00
Mr-Kanister a8723ea512 Update de_DE.po (#6501) 2022-05-10 09:59:57 +01:00
Laurent Cozic a6c3fbb0ed Revert "Merge branch 'dev' into dev"
This reverts commit 5e0c171099, reversing
changes made to b8aa7d0735.

Was accidentally pushed to dev.
2022-05-09 12:41:55 +01:00
Daeraxa 5e0c171099 Merge branch 'dev' into dev 2022-05-09 11:25:35 +01:00
Joplin Bot b8aa7d0735 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-06 12:20:41 +00:00
Laurent Cozic 91d786ddbe Desktop release v2.8.7 2022-05-06 10:39:57 +01:00
Laurent Cozic 1fc0fb39d3 Merge branch 'dev' into release-2.8 2022-05-06 10:39:37 +01:00
Laurent Cozic afdc7ef141 Update translations 2022-05-06 10:37:39 +01:00
Milo Ivir adf317e16c Update Croatian translation (#6489) 2022-05-05 22:37:31 +01:00
Laurent Cozic 191c49c0cd Desktop: Fixes #6459: Sync config was lost when switching profiles 2022-05-05 18:15:10 +01:00
Laurent Cozic 27118c2d00 Update translations 2022-05-05 17:06:00 +01:00
Laurent Cozic 766d7ebb65 Tools: Add spellchecker to pre-commit hook 2022-05-05 16:36:28 +01:00
Laurent Cozic d99312e06c Desktop: Fixes #6435: Make undo/redo menu items translatable 2022-05-05 16:36:28 +01:00
Joplin Bot b28f069f70 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-05 12:21:22 +00:00
Laurent Cozic 876a67d9b0 Chore: Spell checker 2022-05-05 13:19:57 +01:00
Laurent Cozic 814a5a0cd8 Desktop, Mobile: Sort sync target options 2022-05-05 13:19:23 +01:00
Laurent Cozic 5adee9085c Doc: Added E2EE flowcharts 2022-05-04 17:24:50 +01:00
Joplin Bot c86e7f5eed Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-05-03 12:21:04 +00:00
Laurent Cozic c7444e563b Chore: Removed "canvas" package to fix build using node 18 2022-05-03 11:19:14 +01:00
Laurent Cozic 2486c787a4 Desktop release v2.8.6 2022-05-02 16:04:28 +01:00
Laurent Cozic e518d45719 spell checker 2022-05-02 16:01:27 +01:00
Laurent Cozic 47c3ee0f2c Desktop: Disable crash detection handler for now 2022-05-02 16:01:26 +01:00
Daeraxa f7b5ed9871 Doc: Stale bot - Add link to forum (#6473) 2022-05-02 15:38:22 +01:00
Laurent Cozic 015562c86a Tools: Added cspell config 2022-05-01 19:38:00 +01:00
Daeraxa 7f3e8c5455 test 2022-05-01 16:16:04 +01:00
Mats Estensen cef3eac372 translation: update nb_NO (#6463) 2022-05-01 13:39:26 +01:00
Joplin Bot d97a7bc7ab Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-27 18:17:41 +00:00
Laurent Cozic 9806e3319a Desktop release v2.8.5 2022-04-27 13:21:51 +01:00
Laurent Cozic 22ae50c126 Desktop: More permissive plugin back-off rules 2022-04-27 13:20:25 +01:00
Hieu-Thi Luong 0d4cb5c16a Desktop: Fixed color of links within list in Markdown editor (#6447) 2022-04-27 13:10:28 +01:00
Milo Ivir 0d8c69123b Update Croatian translation (#6441) 2022-04-27 13:08:56 +01:00
Joplin Bot ae5b810bed Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-26 18:17:04 +00:00
Laurent Cozic c95367fbbb Doc: Minor fix on API doc 2022-04-26 17:03:58 +01:00
Laurent Cozic 22c83214be Chore: Disable crash detection in dev mode 2022-04-26 13:26:51 +01:00
Laurent Cozic 86179bd74c Desktop: Fixed getting geolocation for new notes 2022-04-26 13:22:43 +01:00
Laurent Cozic 8abdbfe2bd Fixed MdToHtml regression 2022-04-26 12:52:48 +01:00
Daeraxa 790c98ca40 Docs: Update terminal commands (#6457) 2022-04-25 19:35:50 +01:00
Laurent Cozic 774c20772b Security: Fixed disallowed tag XSS 2022-04-25 17:18:27 +01:00
Laurent Cozic d9a4a9cb30 Desktop: Ask to start in safe mode when the application has crashed 2022-04-25 17:18:26 +01:00
Joplin Bot bd917ae09c Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-21 00:41:59 +00:00
Joplin Bot a7c0e926cf Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-20 18:14:32 +00:00
Laurent Cozic 8a65bb5818 Tools: Add commit links to changelog 2022-04-20 17:01:40 +01:00
Laurent Cozic aa503aee3e Plugin Generator release v2.8.1 2022-04-20 16:31:49 +01:00
Laurent Cozic 373cd805dc Chore: Updated plugin types 2022-04-20 16:30:28 +01:00
Laurent Cozic fc095986b0 Plugins: Add support for file and directory selector in Settings API 2022-04-20 16:21:57 +01:00
Joplin Bot 8e5d862c36 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-19 18:18:20 +00:00
Laurent Cozic 2399ca6321 Tools: Added precommit hook script to check lib paths 2022-04-19 18:57:59 +01:00
Laurent Cozic 889aecc8d4 Desktop release v2.8.4 2022-04-19 18:03:06 +01:00
Laurent Cozic 36e75310bf fix paths 2022-04-19 18:02:31 +01:00
Laurent Cozic d3d944d52b Desktop release v2.8.3 2022-04-19 15:55:00 +01:00
Laurent Cozic 89a498b886 Merge branch 'dev' into release-2.8 2022-04-19 15:54:35 +01:00
Laurent Cozic b7167552ec Desktop: Enabled plugin throttling logic to prevent certain plugins from freezing the app 2022-04-19 15:53:13 +01:00
Joplin Bot 627b16728d Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-19 06:17:18 +00:00
Mr-Kanister 18a7b1a69f Update de_DE.po (#6425) 2022-04-18 10:36:04 +01:00
Joplin Bot 1b1e060226 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-17 18:18:32 +00:00
Laurent Cozic ebbb1d6d37 Doc: Add new sponsor 2022-04-17 18:07:57 +01:00
Laurent Cozic dabd0e1d3b Chore: Fixed yarn.lock 2022-04-17 17:54:36 +01:00
Laurent Cozic 64377cd3c9 Tools: Also update mobile package number when creating a new release 2022-04-17 16:42:12 +01:00
asrient be8001857e Desktop: Fixes #6126: Editor context menu was broken (regression) (#6422) 2022-04-17 16:20:47 +01:00
Kenichi Kobayashi 5d9b43ee31 Desktop: Resolves #5770: Performance improvement when switching note while plugins are running (#6409) 2022-04-17 12:41:27 +01:00
Laurent Cozic 1797e847aa Desktop: Multi-profiles: Automatically restart the app when switching profiles on Linux 2022-04-17 12:26:58 +01:00
Laurent Cozic fd9fe5c931 Desktop: Multi-profiles: Added profile ID in CSS root class so that different profiles can have different styles 2022-04-16 15:13:17 +01:00
Laurent Cozic b4a6e17090 Desktop: Multi-profiles: Assign an ID to profiles and remove path 2022-04-16 15:04:06 +01:00
Laurent Cozic 0cdef66816 Desktop: Multi-profiles: Share custom CSS between profiles 2022-04-16 13:51:17 +01:00
Laurent Cozic a111531810 Desktop: Multi-profiles: Share UI layout between profiles 2022-04-16 13:37:04 +01:00
Laurent Cozic 510df43d8d Desktop: Multi-profiles: Share plugins between profiles 2022-04-16 13:36:14 +01:00
Laurent Cozic 845ac19f0d Desktop: Fixes #6411: Locale was not being preserved when creating a new profile 2022-04-16 13:29:14 +01:00
Elaborendum 01ee178566 Update es_ES.po (#6418) 2022-04-16 11:51:47 +01:00
mrkaato0 3f4e7ff74e Update Finnish translation (#6415) 2022-04-16 11:51:19 +01:00
Laurent Cozic 65ad6543a2 fixed ignored files 2022-04-15 17:49:44 +01:00
Laurent Cozic f27d15a5a7 Desktop: Fixes #6145: Opening a file with ctrl-click in the editor results in a 'network error' dialogue 2022-04-15 17:48:01 +01:00
Laurent Cozic 7c619df2ce Merge branch 'release-2.7' into dev 2022-04-15 15:04:44 +01:00
Laurent Cozic 546447b09b iOS 12.7.2 2022-04-15 12:07:54 +01:00
Laurent Cozic 7ef9d87e76 iOS: Fixes #6375: iOS and Dropbox synchronisation not working on iOS 15 2022-04-15 12:06:24 +01:00
Laurent Cozic 8019306247 Tools: Add React Native HTTP debugging function 2022-04-15 12:04:40 +01:00
Laurent Cozic 818ad62fbe iOS: Fixes #6375: iOS and Dropbox synchronisation not working on iOS 15 2022-04-15 12:03:48 +01:00
Laurent Cozic 671077e1bb Chore: Fixed mobile dropbown regression 2022-04-15 12:02:10 +01:00
Laurent 1b043d856d Chore: Refactor note list on desktop using React Hooks (#6410) 2022-04-14 16:50:42 +01:00
Joplin Bot 7e1ee40333 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-14 12:21:57 +00:00
Laurent Cozic 343b81ad09 Desktop: Resolves #6394: Improve performance when switching notes, when multiple plugins are loaded
By preventing the menu bar to needlessly re-render
2022-04-14 12:27:19 +01:00
Laurent Cozic 7b7e53f3b2 Desktop release v2.8.2 2022-04-14 10:02:15 +01:00
Laurent Cozic 95d5866955 Merge branch 'dev' into release-2.8 2022-04-14 10:02:03 +01:00
Laurent Cozic 39efc88059 Chore: Fixed lib imports 2022-04-14 09:58:34 +01:00
Laurent Cozic 558e55090f Desktop: Resovles #6194: Improved handling of ENTER and ESCAPE keys in dialogs 2022-04-13 14:44:52 +01:00
Laurent Cozic ff066baa26 Desktop, Mobile: Automatically start sync after setting the sync parameters 2022-04-13 12:40:52 +01:00
Laurent e5313a9719 Desktop: Resolves #6338: Improve E2EE usability when accidentally creating multiple keys (#6399) 2022-04-13 12:18:38 +01:00
Joplin Bot 376019b540 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-13 00:39:11 +00:00
Joplin Bot c28979e620 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-12 18:17:04 +00:00
MHolkamp 7e9c7a5954 Update nl_NL.po (#6397)
Translated and corrected the last items in the file.
2022-04-12 17:34:20 +01:00
Laurent Cozic 55db877f85 Tools: Use simpler test passwords 2022-04-12 17:06:53 +01:00
Laurent Cozic f24750f7b4 Tools: Command to merge release version update 2022-04-12 16:46:53 +01:00
Laurent Cozic cfd5416b73 Desktop release v2.8.1 2022-04-12 16:40:41 +01:00
Laurent Cozic ea2418d018 Doc: Fixed typo 2022-04-12 16:12:22 +01:00
Laurent Cozic e8d704f13a Desktop release v2.8.1 2022-04-12 15:32:14 +01:00
Laurent Cozic c94a98b841 Chore: Setup new release 2.8 2022-04-12 15:30:37 +01:00
Laurent Cozic 4fd19d6970 Desktop release v2.7.15 2022-04-12 15:27:05 +01:00
Laurent 6f249c3008 Tools: Fixed Windows app build on CI (#6398) 2022-04-12 15:15:06 +01:00
Laurent Cozic 0374505212 Chore: Fixed CI tests 2022-04-12 12:42:21 +01:00
Laurent Cozic 21706fa00a Desktop: Fixed color of published note on Light theme 2022-04-11 17:46:33 +01:00
Laurent Cozic 74273cd570 Plugins: Allow updating a resource via the data API 2022-04-11 17:01:01 +01:00
Laurent 6458ad0540 Desktop: Resolves #591: Add support for multiple profiles (#6385) 2022-04-11 16:49:32 +01:00
Henry Heino 58bf93a112 iOS: Fixes #6318: Remove white border around Beta Editor (#6326) 2022-04-11 11:57:49 +01:00
Henry Heino 5962b0813e Mobile: Fixes #6324: Support inserting attachments from Beta Editor (#6325) 2022-04-11 11:56:45 +01:00
Ayush Srivastava cffea3ea1e Mobile: Fixes #3564: "Move Note" dropdown menu can be very narrow (#6306) 2022-04-11 11:53:20 +01:00
Kenichi Kobayashi f6e21e0180 Desktop: Fixes #6074: Scroll jumps when typing if heavy scripts or many large elements are used (#6383) 2022-04-10 11:31:17 +01:00
reportxx e02422070e Update Swedish translation (#6382) 2022-04-10 11:30:03 +01:00
Tolulope Malomo 727d64b646 Android: Fixes #6026: Long path in "Export profile" prevents tapping OK button (#6359) 2022-04-10 11:22:30 +01:00
Henry Heino 23e54a60d9 Android: Fixes #5987: Cursor hard to see in dark mode (#6307) 2022-04-10 10:58:11 +01:00
ScriptInfra 0d4978223e Update README.md (#6295) 2022-04-10 10:53:44 +01:00
Mayank Bondre 0b32a29cce Plugins: Resolves #5867: Add support for "categories" manifest field (#6109) 2022-04-10 10:52:31 +01:00
Laurent Cozic a0d77d10ba Tools: Allow setting website build environment from config file 2022-04-09 14:43:59 +01:00
Joplin Bot bdd9c6cf35 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-09 12:19:45 +00:00
Laurent Cozic f2bfa30e04 Api: Fixed updating resource content 2022-04-09 11:58:08 +01:00
Laurent Cozic 8077117e65 Doc: Ignore latest post in updateNews script 2022-04-08 13:16:43 +01:00
Laurent Cozic 7e8927398a Doc: Fixed typo 2022-04-07 19:19:53 +01:00
Laurent Cozic 09dcee876c Doc: Fixed env 2022-04-07 19:04:36 +01:00
Laurent Cozic 23b56f4f70 Tools: Fixed script name 2022-04-07 16:00:00 +01:00
Laurent Cozic b3d09ce776 Doc: Add Joplin Cloud Teams offer to website 2022-04-07 15:35:15 +01:00
Laurent Cozic 84d40b805e Tools: Added tool to automatically post news from local Markdown folder to forum 2022-04-07 15:15:48 +01:00
Laurent Cozic c097a82b7b Doc: Fixed news title 2022-04-07 11:07:48 +01:00
Joplin Bot dfa22b560e Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-06 06:17:47 +00:00
Joplin Bot 7d31a3fe90 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-04-06 00:38:27 +00:00
妙呀 79aabc2d06 updata zh_CN.po (#6355) 2022-04-05 19:17:20 +01:00
rnbastos 70e82ca64f Update pt_BR.po (#6353) 2022-04-05 19:16:56 +01:00
Laurent Cozic a0662412b2 Tools: Removed Windows build from CI for now - discontinued by GitHub 2022-04-05 17:30:27 +01:00
Laurent Cozic 220b48ef02 Doc: Add news about GSoC Contributor Proposals phase 2022-04-05 15:47:22 +01:00
Laurent Cozic cb637e817b Server: Do not make checkboxes in published notes clickable 2022-04-05 15:42:06 +01:00
Laurent Cozic 27198a16a4 Chore: Make it easier to test note publishing on desktop 2022-04-05 15:37:57 +01:00
Laurent Cozic 1a5bff3bf4 Doc: Move info to Joplin Cloud FAQ 2022-04-05 15:16:48 +01:00
Laurent Cozic 571147acbb Tools: Fixed git changelog tool 2022-04-03 19:27:10 +01:00
Laurent Cozic 9d9420a35c Desktop: Support for Joplin Cloud recursive linked notes 2022-04-03 19:19:24 +01:00
kik0220andkik0220 a79bc69604 Translation: Update ja_JP.po (#6345)
Co-authored-by: kik0220 <kik0220@gmail.com>
2022-03-31 10:50:29 +01:00
Bernard Tyers 3153d3a1b6 Doc: Improve debugging.md (#6342) 2022-03-29 19:25:27 +01:00
Joplin Bot df8c265ee4 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-28 18:20:22 +00:00
Laurent Cozic 3725b14e04 Revert "Desktop: Fixes #5686: Fixed Tags Order (#6136)"
This reverts commit 07f128ae95.

Due to regression: https://github.com/laurent22/joplin/issues/6301
2022-03-28 17:40:51 +01:00
Retrove a73d822998 Desktop, Cli: Fixes #6197: Fixed creation of empty notebooks when importing directory of files (#6274) 2022-03-28 17:13:13 +01:00
asrient a62e1fba96 Desktop: Resolves #6100: Allow saving a Mermaid graph as a PNG or SVG via context menu (#6126) 2022-03-28 17:10:29 +01:00
Laurent Cozic 37d51c3b58 Plugins: Allow updating a resource via the data API 2022-03-28 16:35:41 +01:00
Laurent Cozic d5dfecc19f Server: Automatically delete expired sessions 2022-03-28 15:51:44 +01:00
Laurent Cozic 8f8cc12d79 Server: Fixed removal of user deletion tasks 2022-03-28 15:51:43 +01:00
Laurent Cozic 8e1802409f Server: Cannot sort user deletions by email 2022-03-28 15:51:43 +01:00
reportxx 42b2f2146c Update Swedish translation (#6331)
* Update Swedish translation

Please merge to update the Swedish translation.

* Update sv.po
2022-03-27 14:19:10 +01:00
mrkaato0 2ba1563d92 Update fi_FI.po (#6323) 2022-03-27 14:19:02 +01:00
Milo Ivir a679b21119 Update Crotian translation (#6319) 2022-03-27 14:18:53 +01:00
Xavi Ivars dd10b6ac65 Update ca.po (#6308) 2022-03-23 19:54:22 +00:00
Laurent 32600df7ce Update pull_request_guidelines.md 2022-03-23 18:24:58 +00:00
Laurent 8a1cfabfc6 Doc: Allow plugins for GSoC 2022-03-23 18:17:43 +00:00
Joplin Bot 1b2046f2fa Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-20 00:37:39 +00:00
Laurent Cozic a1d5168918 Doc: Updated PR guideline for GSoC 2022-03-18 11:44:49 +00:00
Bishoy 047c1fb1a5 Desktop: Fixes right click menu on Markdown Editor (#6132) 2022-03-18 11:07:59 +00:00
Andrew e83d662555 Doc: Update docker-compose.server.yml (#6283) 2022-03-18 11:06:40 +00:00
Joplin Bot 5c3b2671bf Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-17 18:17:04 +00:00
Laurent 02a2dce605 Update pull_request_guidelines.md 2022-03-16 12:07:35 +00:00
Laurent c4e158d0fb Doc: Slightly relaxed rule 5 of GSoC guidelines 2022-03-16 12:04:40 +00:00
Daniel Aleksandersen fa8a1c2122 Desktop: Resolves #4155: Don’t unpin app from taskbar on update (#6271) 2022-03-15 10:06:00 +00:00
JackGruber 3f732939d0 All: Resolves #6266: Make search engine filter keywords case insensitive (#6267) 2022-03-15 10:03:56 +00:00
Ayush Srivastava fb8886db4b Mobile: Color of Date-Time text changed to match theme (#6279) 2022-03-15 10:00:17 +00:00
Laurent Cozic eb86e9c896 Doc: Fixed GSoC links 2022-03-14 11:02:03 +00:00
PackElend 85e3a44276 Doc: fixed link togeneral Summer of Code introduction (#6269) 2022-03-13 14:44:31 +00:00
Laurent Cozic 8352e23bdf Desktop release v2.7.15 2022-03-12 16:27:06 +00:00
Laurent Cozic 96137d74f0 Merge branch 'dev' into release-2.7 2022-03-12 16:25:11 +00:00
Laurent Cozic addcfb0129 All: Fixes #6261: Ensure that note revision markup type is set correctly 2022-03-12 16:24:07 +00:00
Laurent Cozic f4ec73ab0e Desktop release v2.7.14 2022-03-12 15:59:09 +00:00
Laurent Cozic 19ba939f0f Doc: Added doc about desktop application styling 2022-03-12 13:38:52 +00:00
Laurent Cozic 780b58ada4 Doc: Remove option to create a plugin as first GSoC contribution 2022-03-12 10:33:03 +00:00
Joplin Bot b3aed81bea Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-11 12:19:26 +00:00
Laurent Cozic 74dd2d1194 Doc: Fixed Twitter OpenGraph tags 2022-03-10 17:49:50 +00:00
Laurent Cozic 3c11445db0 Doc: Fixed news dates 2022-03-10 17:43:06 +00:00
Laurent Cozic 50890a7b2b Tools: Added tool to get the list of package licenses 2022-03-10 17:29:28 +00:00
Laurent dc60da219a Update CONTRIBUTING.md 2022-03-09 14:56:55 +00:00
Laurent Cozic bef93e1375 Doc: Update test unit documentation 2022-03-09 14:51:05 +00:00
Daeraxa 45e02a6b3f Doc: Update theme of index and a typo correction (#6245) 2022-03-08 22:52:33 +00:00
Laurent 0c5f64207f Update technical_spec.md 2022-03-08 22:50:21 +00:00
Laurent 8e88686bb1 Doc: Make it clear that test units are not optional for GSoC 2022-03-08 22:49:10 +00:00
Joplin Bot 9594508c73 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-08 14:38:05 +00:00
Laurent Cozic de7d3b6b8a Doc: Update for GSoC 2022 2022-03-08 14:27:00 +00:00
Laurent Cozic f5b6398d07 Doc: Add GSoC 2O22 annoucement 2022-03-08 14:27:00 +00:00
Joplin Bot 62a5cf520a Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-08 14:10:52 +00:00
Laurent Cozic 90bfffed0f Doc: Add GSoC 2O22 annoucement 2022-03-08 13:58:41 +00:00
Laurent Cozic a5b0d594c3 Doc: Updated GSoC 2022 mentors 2022-03-07 12:02:00 +00:00
Laurent Cozic 1547256af4 Doc: Update GSoC 2022 themes 2022-03-07 11:44:36 +00:00
Shing Lyu c3e7fcb471 Mobile: Fix: the camera button remains clickable after taking a photo bug (#6222) 2022-03-07 10:25:08 +00:00
Roman Musin 261302d5c4 Doc: Update BUILD.md (#6241)
Add a note that the path may not contain spaces
2022-03-07 10:23:06 +00:00
Laurent 38e65253ad Tools: Add fastlane structure for F-Droid support (#6224) 2022-03-07 10:22:27 +00:00
Laurent Cozic eb8d0daa3d Fixed tests 2022-03-07 10:19:47 +00:00
Joplin Bot 5a6c03fbac Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-06 18:15:01 +00:00
Laurent Cozic 21f9dab908 Doc: add sponsor 2022-03-06 12:37:05 +00:00
Harris Arvanitis 6dba4730b0 Translation: Update el_GR.po (#6229) 2022-03-03 18:22:40 +00:00
Laurent Cozic 9599d4ef7e Doc: Fixed news 2022-03-03 14:09:03 +00:00
Laurent Cozic 252f08e828 Doc: Improved rendering of news items 2022-03-03 14:06:37 +00:00
Laurent Cozic 94dc216add Desktop: Fixes #6214: Undo and redo on note title did not work in some cases 2022-03-03 13:53:11 +00:00
Laurent Cozic 32de63fad3 Desktop: Fixes #5584: Clicking on folder button was no longer jumping to the right folder
Regression introduced by https://github.com/laurent22/joplin/issues/4697
2022-03-03 13:33:52 +00:00
Laurent Cozic 299a14755a All: Resolves #6209: Handle invalid revision patches 2022-03-03 13:20:29 +00:00
Laurent Cozic 053dbabf74 Server: Add support for sidebar in user pages 2022-03-03 11:33:46 +00:00
OmGole 07f128ae95 Desktop: Fixes #5686: Fixed Tags Order (#6136) 2022-03-02 18:11:14 +00:00
Shing Lyu 98f9ed641c Clipper: Add a button to open the newly clipped note (#6204) 2022-03-02 17:42:29 +00:00
Shing Lyu d814fd6965 Mobile: Allow filtering tags in tag dialog (#6221) 2022-03-02 17:41:07 +00:00
Shunya Ueta d44aade075 Doc: update pre-release docs (#6225) 2022-03-02 17:34:34 +00:00
Joplin Bot 4884c9ef87 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-03-01 18:14:23 +00:00
Daeraxa 3e518ff2c7 Doc: Replaced Privacy welcome note with website privacy md (#6208) 2022-03-01 15:07:29 +00:00
Alexander Hagen Huse 195c84ff59 Update translation [nb_NO] (#6220)
Update nb_NO.po
2022-03-01 14:51:06 +00:00
asahiocean 6881259501 Update ru_RU.po (#6215) 2022-03-01 14:50:43 +00:00
reportxx 6d7f6e29bd Update the Swedish translation (#6207) 2022-03-01 14:50:14 +00:00
Joplin Bot dc991d4c0f Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-27 12:17:53 +00:00
Laurent Cozic 75cc9d7f9b Desktop release v2.7.14 2022-02-27 10:51:37 +00:00
Laurent Cozic 693e52a1fd Merge branch 'dev' into release-2.7 2022-02-27 10:51:12 +00:00
Laurent Cozic 88ac664e37 Deskop, Cli: Fixes #6203: Note export could fail in some cases (regression) 2022-02-27 10:49:18 +00:00
Laurent Cozic 20784b0e99 Desktop: Resolves #5531: Prevent certain errors from stopping the revision service 2022-02-27 10:30:40 +00:00
Laurent Cozic a325bf6dc6 All: Improve error message when revision metadata cannot be decoded, to improve debugging 2022-02-26 18:20:23 +00:00
Laurent Cozic ff79745d28 Doc: Added missing hours on GSoC idea list 2022-02-26 10:03:06 +00:00
Laurent Cozic 82109a3132 Doc: Add mentors and complete expected outcomes and project sizes for GSoC 2022 ideas 2022-02-26 09:45:18 +00:00
Helmut K. C. Tessarek 4e901436cc All: Translation: Update da_DK.po (thanks ERYpTION) 2022-02-24 21:03:14 -05:00
Laurent Cozic f0113c0673 Tools: Add Open Graph tags to website 2022-02-24 19:37:34 +00:00
Joplin Bot 0a1947a712 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-24 18:16:25 +00:00
Laurent Cozic 39aee65eee Doc: Add release 2.7 news item 2022-02-24 17:25:49 +00:00
Laurent Cozic d37b820bd3 Desktop release v2.7.13 2022-02-24 17:11:14 +00:00
Laurent Cozic 5b5165dbcd Desktop release v2.7.13 2022-02-24 15:10:49 +00:00
Laurent Cozic 06b95bb718 Update translations 2022-02-24 15:10:03 +00:00
Laurent Cozic 8e87e64dea Tools: Fixed changelog tool 2022-02-23 14:20:38 +00:00
Laurent Cozic 422a5bfa91 Server: Fixed sidebar menu selection 2022-02-23 14:03:02 +00:00
Laurent Cozic bfe5ee8ba3 Server: Fixed user deletion schedule 2022-02-23 14:03:01 +00:00
Daeraxa 00e0f6b97c Docs: Updated GSoC to replace student refs with contributor (#6180) 2022-02-23 13:44:43 +00:00
Laurent Cozic 46490113a2 Tools: Make server build more configurable 2022-02-23 09:02:13 +00:00
Laurent Cozic cc69cabf9b Doc: Fixed minor website issues and added Twitter link in mobile view 2022-02-22 19:08:23 +00:00
Laurent Cozic da88ddb6bd Doc: tweak 2022-02-22 09:35:40 +00:00
Miucci 554fd73054 All: Translation: Update fi_FI.po (#6178) 2022-02-20 14:29:02 -05:00
Laurent c48a0c6e79 Update CONTRIBUTING.md 2022-02-20 11:21:20 +00:00
Erik Thomsen f8b7db40c7 Server: Use apt to install tini to enable multi-platform support (#6097) 2022-02-20 11:14:42 +00:00
Laurent 051eac09ec Update ideas.md 2022-02-18 12:23:23 +00:00
Joplin Bot 7584b203fc Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-17 18:19:23 +00:00
Laurent Cozic 440618ef71 Desktop: Fixed search marker background color in Markdown editor 2022-02-16 15:52:23 +00:00
Laurent 166d8da81b Doc: Add news item 2022-02-15 14:21:18 +00:00
Joplin Bot 6b7fd24f9e Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-14 18:12:54 +00:00
Laurent Cozic 41dd93bc24 iOS 12.7.1 2022-02-14 14:11:23 +00:00
Laurent Cozic 4906087649 Desktop release v2.7.12 2022-02-14 14:08:29 +00:00
Daeraxa fe95926fa2 Docs: Removed unsupported installation methods and added link to community wiki page (#6158) 2022-02-14 12:32:21 +00:00
Daeraxa a0fcd240b0 Docs: Add settings sync idea for GSoC 2022 (#6159) 2022-02-14 12:27:13 +00:00
Daeraxa ae3a4a3027 Mobile: Fixes #5482: Prevent multiline note titles (#6144) 2022-02-13 15:01:43 +00:00
Joplin Bot 5252fdc8ce Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-12 18:15:36 +00:00
Laurent Cozic fe787d1257 Chore: clean up 2022-02-12 17:46:32 +00:00
Laurent Cozic a70f9b1a13 Desktop: Fixes #6129: Exported JEX notebook should not contain share metadata 2022-02-12 17:44:07 +00:00
Laurent Cozic ed20604ad2 Android 2.7.2 2022-02-12 12:58:28 +00:00
Laurent Cozic 105a61c1ee Desktop release v2.7.11 2022-02-12 12:26:51 +00:00
Laurent Cozic 38fbaa9acf Update translations 2022-02-12 12:21:40 +00:00
Joplin Bot 0d0231e82c Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-12 00:31:27 +00:00
Laurent Cozic b79270990b Tools: Fixed tests 2022-02-11 19:53:42 +00:00
Laurent Cozic 064891d097 Desktop: Resize custom icon down to 256px when it is too large 2022-02-11 19:24:37 +00:00
Laurent Cozic 9036bc4fd1 Android 2.7.1 2022-02-11 18:24:59 +00:00
Laurent Cozic 0f41a2d00a Desktop release v2.7.10 2022-02-11 11:21:21 +00:00
Laurent Cozic 3ee0c7f440 Desktop release v2.7.9 2022-02-11 11:19:59 +00:00
Laurent Cozic 89ada6432b Desktop: Fixes #6075: Login field was sometimes disabled on Sync Wizard dialog 2022-02-11 11:04:10 +00:00
Laurent Cozic 445d691103 Doc: Update readme intro 2022-02-11 10:38:45 +00:00
Laurent Cozic de757026d4 All: Fixes #6092: Shared resource was not encrypted with correct encryption key 2022-02-11 10:38:45 +00:00
Helmut K. C. Tessarek 5e8ed8bc24 Desktop: Fixes #6108: Add "Other applications" import menu item (#6118) 2022-02-10 10:54:23 +00:00
Laurent Cozic 0a739e099d Doc: Fixed website links 2022-02-09 15:24:08 +00:00
Laurent Cozic f3b1f07a75 Doc: Added GSoC 2022 documents 2022-02-09 15:14:57 +00:00
Laurent Cozic 1b91646d92 Doc: Added GSoC 2022 documents 2022-02-09 15:14:00 +00:00
Laurent Cozic 885f0e1557 Desktop: Improved custom icon selection 2022-02-07 17:23:20 +00:00
Peng Ding 2933b7eb2a All: Translation: Update zh_CN.po 2022-02-06 16:32:22 -05:00
Laurent 9f252ea673 Desktop: Add support for custom notebook icons (#6110) 2022-02-06 16:42:00 +00:00
Laurent Cozic db497ee0a5 Tools: Fixed fork-uslug issue for mobile app 2022-02-06 16:40:28 +00:00
Laurent Cozic 31fcd0ed1d Server: Only use Stripe "customer.subscription.created" event to provision subscriptions 2022-02-05 18:32:45 +00:00
Joplin Bot 5d7d597147 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-05 18:12:49 +00:00
Laurent 6ebec0cbf8 Update sponsors.json 2022-02-05 14:39:10 +00:00
Laurent f4b39633ea Delete style.min.css 2022-02-05 14:38:30 +00:00
Mr-Kanister 4c8e2fba7d All: Translation: Update de_DE.po (#6102) 2022-02-04 18:26:08 -05:00
Vincent Jo 288ae1b463 All: Add additional time format HH.mm (#6086) 2022-02-03 18:52:24 +00:00
Laurent Cozic e3c9bcbec6 Server: Improve admin email UI 2022-02-03 11:25:13 +00:00
Laurent Cozic 49180fbf88 Remove printing of version numbers in Docker image 2022-02-03 11:25:12 +00:00
Helmut K. C. Tessarek 486ac6db7b Update translations 2022-02-02 18:42:45 -05:00
Laurent Cozic b3fc8fbc93 Server v2.7.4 2022-02-02 19:24:50 +00:00
Laurent Cozic 980190ec09 Merge branch 'dev' into release-2.7 2022-02-02 19:22:49 +00:00
Laurent Cozic cebf043284 Desktop release v2.7.8 2022-02-02 19:21:07 +00:00
Laurent Cozic 4c11bbf0da Server: Disable session expiration logic for now
As we do not know how many people have version 2.5+
2022-02-02 19:17:50 +00:00
Laurent Cozic 69170dd362 Server: Enabled task to automatically delete sessions every 6 hours 2022-02-01 17:57:01 +00:00
Laurent Cozic 1afcb27601 Server: Add task to automate deletion of disabled accounts 2022-02-01 17:55:14 +00:00
Laurent Cozic 68469bc1a5 Server: Temporarily save user info before deleting account 2022-02-01 15:39:25 +00:00
Laurent Cozic a4e279270b Chore: Fixed server db types 2022-02-01 14:40:02 +00:00
Laurent Cozic 2f7ab7e92e Server: Set a timestamp when disabling a user
So that it can be used later on to decide if user data
should be automatically deleted or not.
2022-01-31 19:52:30 +00:00
Daeraxa 46202beb9b Doc: Add rich text editor limitation - lists within tables (#6072) 2022-01-30 17:16:37 -05:00
Laurent Cozic dd705680f1 Doc: Update help 2022-01-29 19:37:27 +00:00
Laurent Cozic 00163f58d0 Server: Always display Help link even when not logged in 2022-01-29 19:31:48 +00:00
Laurent Cozic df9c460363 Server: Make page wider only when displaying admin pages 2022-01-29 19:21:37 +00:00
Laurent Cozic 603c8338c0 Doc: Fixed news image width on mobile 2022-01-29 16:07:25 +00:00
Laurent Cozic fca5875c21 All: Make heading 4, 5 and 6 styling more consistent 2022-01-29 15:52:32 +00:00
Laurent Cozic 2941ee0590 Doc: Fixed link 2022-01-29 12:44:49 +00:00
Dirag Biswas 5d71787835 Doc: Fixes #5947: Incorrect build instruction in documentation (#6068) 2022-01-28 18:37:31 +00:00
Caleb John 2b2070aabe All: Resolves #5808: Fixed sync scroll issue (#6059)
Remove patch for multimd, and update package instead
2022-01-28 10:36:02 +00:00
Laurent Cozic bb464d8a59 Doc: Added document on how to write a technical spec 2022-01-27 15:13:24 +00:00
Arda Kılıçdağı 00a3014131 All: Translation: Update tr_TR.po (#6053) 2022-01-25 14:03:59 -05:00
Laurent Cozic f51b0c6d06 Doc: Added GSoC idea "Desktop application integration testing" 2022-01-24 19:08:33 +00:00
Laurent Cozic 01825e6d3e Tools: Fixed tests 2022-01-24 19:08:32 +00:00
Aaron b7bb5acd41 Server: Fixes #5397: Use multi-stage builds and smaller base image (#6048) 2022-01-24 18:50:01 +00:00
Kenichi Kobayashi 638905e1b8 Desktop: Fixes #6042: Scroll position is not remembered (regression) (#6043) 2022-01-24 09:55:46 +00:00
Laurent e05c89aa11 Tools: Don't auto-close issues with "enhancement" label 2022-01-24 09:24:52 +00:00
Laurent Cozic f5f7981dba Server: View sent emails from admin dashboard 2022-01-22 17:29:09 +00:00
qcol 23d9ba7bf1 All: Translation: Update pl_PL.po (#6046)
typo
2022-01-21 13:20:37 -05:00
Laurent Cozic 095db5d0d2 Doc: Added trademark info 2022-01-21 15:12:45 +00:00
Helmut K. C. Tessarek 5718001a33 All: Translation: Update da_DK.po (thanks ERYpTION) 2022-01-20 13:55:07 -05:00
Helmut K. C. Tessarek 91907aa5dd All: Update Mermaid 8.13.5 -> 8.13.9 and Katex dependencies (#6039) 2022-01-20 11:54:01 +00:00
Caleb JohnandKenichi Kobayashi d70dca3139 Desktop: Fixes #6035: Global search focuses text in notes so that edits overwrite highlighted text (#6040)
Co-authored-by: Kenichi Kobayashi <ken1kob@users.noreply.github.com>
2022-01-20 11:52:32 +00:00
Helmut K. C. Tessarek 630584c80e Doc: remove redundant and obsolete privacy section (from README.md)
The privacy document can be found:

- https://joplinapp.org/privacy/
- https://github.com/laurent22/joplin/blob/dev/readme/privacy.md
2022-01-19 15:01:55 -05:00
Joplin Bot b152879086 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-19 12:16:54 +00:00
Laurent Cozic 2238ef5fd0 Desktop release v2.7.8 2022-01-19 09:05:15 +00:00
Laurent Cozic 6bb0318c2f Desktop: Disable plugin throttling for now 2022-01-19 09:03:36 +00:00
Laurent Cozic c668bb0370 Revert "Desktop: Fixes #5850: Editor loses cursor focus when Ctrl+F search is closed (#5919)"
This reverts commit b98e64c881.

Ref: https://github.com/laurent22/joplin/issues/6035
2022-01-19 09:03:35 +00:00
Helmut K. C. Tessarek 360293949c Doc: fixed a wrong term (on-time -> app) 2022-01-18 13:17:13 -05:00
Joplin Bot 8289ce3749 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-18 18:14:50 +00:00
Laurent Cozic 1bb4c38699 Desktop release v2.7.7 2022-01-18 11:12:47 +00:00
Mayank Bondre bc977bf43f Desktop: Fixes #5803: Fixes alt text not appearing in html (#6017) 2022-01-18 11:11:21 +00:00
HoraceYoung c98edf89fa Update zh_CN.po (#6032) 2022-01-18 11:10:20 +00:00
Laurent Cozic c6b67126fb Desktop: Disable plugin throttling mechanism for now 2022-01-18 11:07:19 +00:00
Laurent Cozic c1aa57a72c Doc: Update Joplin Cloud cancellation policy 2022-01-18 11:05:37 +00:00
Joplin Bot fdba6c076e Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-17 18:17:39 +00:00
Laurent Cozic f8d0bb472e Desktop release v2.7.6 2022-01-17 16:24:01 +00:00
Laurent Cozic 3a18da49f3 Tools: Fix Windows build and improve CI error handling 2022-01-17 14:09:02 +00:00
Kenichi Kobayashi 5143a81749 Desktop: Fixes #5981: Scroll positions are not preserved when layout changes (#6021) 2022-01-17 10:30:09 +00:00
Laurent f283970186 Update privacy.md 2022-01-16 17:06:25 +00:00
Laurent Cozic abf50565cb typo 2022-01-16 17:05:13 +00:00
Laurent Cozic 287057fea6 Doc: Also mention plugin repository request in privacy policy 2022-01-16 17:03:50 +00:00
Laurent Cozic 8ac6017c02 Doc: Mention spellchecker dictionary request in privacy policy 2022-01-16 16:57:31 +00:00
Laurent Cozic 8cdb73bd65 Doc: Mention that E2EE works with the notebook sharing feature 2022-01-16 16:57:31 +00:00
Laurent Cozic 35e6aaceb7 Merge branch 'dev' into release-2.7 2022-01-16 13:09:46 +00:00
Laurent Cozic 52287c30bf Desktop release v2.7.5 2022-01-16 13:09:02 +00:00
Laurent Cozic a9daa4f772 Desktop release v2.7.4 2022-01-16 12:37:11 +00:00
Laurent Cozic 316e31f937 Desktop release v2.7.4 2022-01-16 12:36:25 +00:00
Laurent Cozic 94f4ba3053 Merge branch 'dev' into release-2.7 2022-01-16 12:36:07 +00:00
Kenichi Kobayashi 8825133675 Desktop: Fixes #5968: Default sort order lost on exit (#6022) 2022-01-16 11:49:16 +00:00
Benjamin Weis 2fd724911d All: Translation: Update de_DE.po (#6019) 2022-01-15 18:59:33 -05:00
Laurent Cozic 12704bfb4d Desktop release v2.7.3 2022-01-15 19:27:01 +00:00
Laurent Cozic 070fd0434b Desktop release v2.7.3 2022-01-15 19:22:36 +00:00
Joplin Bot a105306dc7 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-15 18:13:48 +00:00
Laurent Cozic 70035f49d1 Desktop release v2.7.2 2022-01-15 17:22:50 +00:00
Laurent Cozic 066dcbc6e4 Merge branch 'dev' into release-2.7 2022-01-15 17:22:34 +00:00
Laurent Cozic 597454d39d Desktop release v2.7.1 2022-01-15 17:20:38 +00:00
Laurent Cozic 6bc70ed8dc Desktop: Fixed order of editor search buttons 2022-01-15 17:18:52 +00:00
Laurent Cozic cfce397df8 Update translations 2022-01-15 17:16:16 +00:00
Laurent Cozic 0274fd1790 Tools: Ignore some files when building translations 2022-01-15 17:16:04 +00:00
JCardoen 47da47e12d Translation of nl_BE.po (#6013) 2022-01-15 17:06:02 +00:00
asrient 7088be01c8 Desktop: Fixes #5953: Note list buttons do not reappear after changing app layout (#5994) 2022-01-15 17:05:31 +00:00
Stephan Dev 6a1f3ace67 Doc: Clarify where to go to enable markdown plugins (#6007) 2022-01-15 17:03:11 +00:00
Krishna Kumar 4ae3bec7e4 Desktop: Fix white space in the bottom of Add Tag Prompt dialog (#5998) 2022-01-15 17:00:42 +00:00
Felipe Kinoshita 970c1fb423 Desktop: Prevent Desktop Environments to launch a new window (#5984) 2022-01-15 16:59:50 +00:00
Laurent Cozic 810018b41f Desktop: Security: Fixes #6004: Prevent XSS in Goto Anything 2022-01-15 16:53:24 +00:00
Laurent Cozic e0bfa0dbe6 Doc: Add sponsor 2022-01-15 16:15:25 +00:00
Laurent ca7e68ba4b Server: Move admin pages under /admin (#6006) 2022-01-14 10:14:43 +00:00
Laurent 3fcdeb08d9 Server: Simplify Docker image (#6010)
- Removed complicated optimisation steps that didn't seem to optimise anything
- Delete Yarn cache after installation

After this, it should be back to the previous pre-Yarn size.
2022-01-13 17:39:58 +00:00
Roman Musin ebaddfa4a8 Doc: GSoC 22 - email plugin idea (#6009) 2022-01-13 10:47:19 +00:00
Hieu-Thi Luong 2ab049305e Doc: Use correct flag for Vietnam (#5991)
Use correct Vietnam flag when build translation
2022-01-12 12:21:25 -05:00
Laurent Cozic 98bfb65ead Server: Improved string localization in views 2022-01-11 15:11:37 +00:00
Laurent Cozic 09cbe3cb7c Server: Put admin pages under /admin 2022-01-11 15:09:53 +00:00
Laurent Cozic fd322edaab Server: Improved env variable validation and support true-false as boolean values 2022-01-11 15:02:53 +00:00
Laurent 09ed92bc26 Tools: Run stale action once a day at 16:00 2022-01-10 15:20:50 +00:00
Laurent Cozic fb6069de6d Doc: Add Twitter link in header and fixed donate links 2022-01-10 12:56:25 +00:00
Laurent 39056ae1aa Added idea: 11. Improve plugin search and discoverability 2022-01-09 16:15:38 +00:00
Laurent Cozic d031a04a2c Desktop: Adjusted styling to make it more consistent across app
There was two types of styling - the new one done using SCSS, which had
a 16px font, and the old one done js-in-css, which had a 13px font. Both
now have a 13px font. Also fixed margins on certain config screens.
2022-01-09 15:42:27 +00:00
Laurent Cozic ed0f0fae01 Server: Set NODE_ENV to "production" in Docker image 2022-01-09 15:36:41 +00:00
Laurent Cozic c185f00006 Server: Call server start command directly, without going through npm 2022-01-09 15:36:21 +00:00
Laurent Cozic 3117133be2 Desktop: Focus notebook title when opening Notebook dialog 2022-01-09 15:30:21 +00:00
Laurent Cozic b92c650f5d Server: Fixes #5958: Fixed sharing notebook with a user that does not have E2EE enabled 2022-01-09 15:20:23 +00:00
Laurent Cozic 9dbf5e02eb Server: Remove uneeded CSS file 2022-01-09 12:04:54 +00:00
reportxx e1016b8af4 Update Swedish translation (#5985) 2022-01-09 11:35:40 +00:00
Thibault Jan Beyer 3ba4a1de72 Doc: Update editorCommandDeclarations link (#5976) 2022-01-09 11:32:53 +00:00
Kenichi Kobayashi a683f12622 Desktop: Clickable tags in Tag Bar (#5956) 2022-01-09 11:32:21 +00:00
Nicholas Hobbs 89184a3f9f Doc: Add libvips dependency for Apple Silicon build instructions (#5966) 2022-01-09 11:28:13 +00:00
Kenichi Kobayashi 24dbede6c1 Desktop: Fixes #5890: Scroll jump when checkbox is toggled in Viewer (#5941) 2022-01-09 11:26:40 +00:00
Kenichi Kobayashi 70e623e741 Desktop: Fixes #5918: Scroll jumps when images are rendered in Markdown Editor (#5929) 2022-01-09 11:26:03 +00:00
Jonathan Heard 5c77317735 All: Show login prompt for OneDrive (#5933) 2022-01-09 11:25:24 +00:00
Shing Lyu 9684b38f7e Desktop: Fixes #5875: Show error on sync if S3 region is not set (#5923) 2022-01-09 11:24:24 +00:00
Helmut K. C. Tessarek 3dfe43204d Desktop: Fix wording "Check for updates" in settings (#5832) 2022-01-09 11:23:24 +00:00
Caleb John 16148b2255 Desktop: Fixes #5808: Scrolling was out of sync when a Multi Markdown Table was being used (#5815) 2022-01-09 11:22:22 +00:00
Laurent Cozic df14ffdee2 Server: Resolves #5222: Fixed handling of mailer security settings, and changed env variable name MAILER_SECURE => MAILER_SECURITY, and default port 587 => 465 (Breaking change) 2022-01-09 11:14:16 +00:00
Laurent f6ed5eb064 Update close-stale-issues.yml 2022-01-08 21:51:28 +00:00
Zander Hill a14115bfd7 Generator: When publishing a plugin, only include files in the "publish" directory (#5971) 2022-01-08 19:18:49 +00:00
Krishna Kumar dd68d6cf2c Desktop: Fixes #5916: Fixed search icon when note list is resized (#5974) 2022-01-08 19:12:18 +00:00
Laurent Cozic 7d3555d62c Doc: Fix email address 2022-01-08 17:19:21 +00:00
Laurent Cozic af472528a2 Doc: Add CLA document for Joplin Server 2022-01-08 17:18:30 +00:00
Ilia Kondrashov 5c8b0ec1cb Doc: Remove unsupported AWS IAM policy statement (#5982) 2022-01-08 17:02:45 +00:00
Laurent 5e20e890d8 Tools: Use GitHub Actions to close stale issues (#5979)
Stale bot appears to be broken and discontinued.
2022-01-08 12:50:37 +00:00
Laurent Cozic 50dc656f65 Doc: Move faq entry to correct document 2022-01-07 18:12:47 +00:00
Laurent Cozic b36cf46a06 Plugin Repo: Improved error message when plugin "publish" directory is missing 2022-01-07 18:12:47 +00:00
Roman Musin 1781334374 Doc: A few more GSoC ideas (#5959) 2022-01-06 16:42:13 -05:00
Laurent Cozic 71140a638f Minor clipper tweaks 2022-01-06 15:46:28 +00:00
Laurent Cozic 6ba0fce237 Doc: Update Joplin Cloud FAQ 2022-01-06 12:22:23 +00:00
Laurent Cozic c033a343c1 Doc: Update Joplin Server license 2022-01-06 12:00:54 +00:00
Daeraxa 898c96a566 Tools: Fix desktop app build (#5960) 2022-01-06 10:54:10 +00:00
CandleCandle b83fa133b2 Doc: Default S3 permissions require 'GetObject' (#5957) 2022-01-05 16:46:41 +00:00
reportxx ec7fec8b59 All: Translation: Update sv.po (#5950) 2022-01-03 18:14:37 -05:00
Fusion future b2fb4f2ea2 Desktop: Add "X-GNOME-SingleWindow=true" to the desktop file (#5948)
Since this commit (https://github.com/KDE/plasma-workspace/commit/ebd2acd98ecdb9d115b01bd01f532390376152f7),
Plasma Desktop will check "X-GNOME-SingleWindow" property to determine
whether to show "Open New Window" action in the context menu of a task.

Joplin cannot launch a new instance or open a new window, so add the
property and set it to true to hide the action.
2022-01-02 21:15:08 -07:00
Laurent Cozic c74e51a58e Tools: Apply "withRetry" technique to copyPluginAssets too to try to fix CI 2022-01-02 18:38:06 +01:00
Daeraxa 7cba4be498 Doc: update e2ee spec paths and links (#5938) 2022-01-02 12:03:07 -05:00
giorgi shengelaia 19b396f2ec Doc: fix grammar and typos (#5946) 2022-01-02 11:57:30 -05:00
Laurent 4ed7c340a0 Tools: Fixed Docker image building and make it more stable (#5942) 2022-01-02 12:48:03 +00:00
Laurent Cozic fe770917fd Tools: Also build Docker image using sequential build 2022-01-01 15:28:33 +01:00
Laurent Cozic f2168d3bca Tools: Also build Docker image using sequential build 2022-01-01 15:24:56 +01:00
Laurent Cozic 5d4ebc6e14 Tools: Build package sequentially on CI to try to prevent various file access errors 2022-01-01 15:06:57 +01:00
Laurent Cozic 3cf0841775 Desktop: Fixes #5707: Add back text editor commands to Command Palette 2021-12-31 09:20:29 +01:00
Laurent Cozic e5b6ecc50b Chore: Added back accidentally ignored file (loadEmojiLib.js) 2021-12-31 08:40:54 +01:00
Laurent Cozic f451633a51 Desktop: Fixes #5927: Update menu item labels when the language changes 2021-12-31 07:50:32 +01:00
Laurent Cozic e813d15ef2 Desktop: Resolves #5934: Use same notebook dialog when creating a new notebook too 2021-12-31 07:26:06 +01:00
Laurent Cozic b5b02d8d7b Chore: Removed unused method 2021-12-30 12:11:23 +01:00
Laurent Cozic 2660ff3af6 Plugins: Adds joplin.workspace.onResourceChange 2021-12-30 12:11:22 +01:00
Xavi Ivars 59cdcaf8d1 All: Translation: Update ca.po (#5928)
* Update ca.po

* Update ca.po
2021-12-29 18:30:22 -05:00
Laurent Cozic d6f4ebfff5 Server v2.7.3 2021-12-29 14:35:39 +01:00
Laurent Cozic e03655bc4d Merge branch 'dev' into release-2.7 2021-12-29 14:34:51 +01:00
Laurent Cozic 9426a2170c Server v2.7.2 2021-12-29 14:34:28 +01:00
Laurent Cozic b47a541976 Server v2.7.1 2021-12-29 14:34:28 +01:00
Laurent Cozic 4df5ad5c7a Tools: Trying to fix Docker image building 2021-12-29 14:34:07 +01:00
Laurent Cozic b214c8e42a Server v2.7.2 2021-12-29 12:21:20 +01:00
Laurent Cozic 360ac40f50 Merge branch 'dev' into release-2.7 2021-12-29 12:20:47 +01:00
Laurent Cozic 7c00bc5d0e Server v2.7.1 2021-12-29 12:20:41 +01:00
Laurent Cozic 6f0f3d586e Fixed starting Joplin Server 2021-12-29 12:20:16 +01:00
Laurent Cozic 863d894af1 Tools: Test migration upgrade and downgrade on Joplin Server 2021-12-29 11:54:27 +01:00
Laurent Cozic 2748df7c61 Server v2.7.1 2021-12-29 10:51:24 +01:00
Laurent Cozic a595b8f250 Tools: Fixed git-changelog 2021-12-29 10:48:34 +01:00
Laurent Cozic a6ff60aa99 Tools: Add doc for CI fix 2021-12-28 20:57:51 +01:00
Laurent Cozic aaf5d74b94 Tools: Trying to fix CI 2021-12-28 14:52:39 +01:00
Laurent Cozic c7d0d659a0 Tools: Fixed linter and tsc errors 2021-12-28 14:17:59 +01:00
Laurent Cozic 57e46711f6 Tools: Trying to fix CI 2021-12-28 12:19:09 +01:00
Laurent Cozic 297b992944 Desktop: Right click on image to copy it to clipboard 2021-12-28 12:00:40 +01:00
Laurent Cozic 3b05e7ec5f Tools: Trying to fix CI 2021-12-28 11:43:15 +01:00
Kenichi Kobayashi b98e64c881 Desktop: Fixes #5850: Editor loses cursor focus when Ctrl+F search is closed (#5919) 2021-12-28 10:26:33 +00:00
Hieu-Thi Luong 46438a5888 Desktop: Better handling of bold text to simplify customisation (#5732) 2021-12-28 09:57:34 +00:00
Laurent d1e02fd5f0 Server: Allow deleting complete user data (#5824) 2021-12-28 09:55:01 +00:00
Laurent Cozic b41a3d7f8d Tools: Trying to fix CI 2021-12-28 10:46:58 +01:00
Shing Lyu 88b56a2abd Doc: Add yarn installation instruction (#5920)
Although it obvious to Node.js developers how to install yarn, people from other languages might need a little hint.
2021-12-27 17:42:40 -05:00
Laurent Cozic c898214e7e Tools: Trying to fix CI 2021-12-27 19:47:17 +01:00
Kenichi Kobayashi 852e6c141b Desktop: Fixes #5549: cannot jump if local search count is one (#5894) 2021-12-27 18:13:09 +00:00
Laurent fa868297a2 Plugins: Throttle plugins that make too many API calls (#5895) 2021-12-27 18:12:21 +00:00
Laurent Cozic 3744e08335 Plugin Generator release v2.7.3 2021-12-27 18:23:50 +01:00
Laurent Cozic ea56d020e9 Tools: Improve plugin generator release script 2021-12-27 18:22:19 +01:00
Laurent Cozic a6174c89a9 Plugin Generator release v2.7.2 2021-12-27 18:10:59 +01:00
Laurent Cozic c423551723 Plugins: Added ModelType type 2021-12-27 18:10:07 +01:00
Laurent Cozic 3c07241f5b Plugin Generator release v2.7.1 2021-12-27 18:02:54 +01:00
Laurent Cozic 9a7ee239d0 Tools: Fixed npm publish 2021-12-27 18:02:18 +01:00
Laurent Cozic 7b90c586cd Tools: Switched to npm version patch since it is not available in yarn 2021-12-27 18:00:01 +01:00
Laurent Cozic 26883d31da Setup new release 2.7 2021-12-27 17:56:59 +01:00
Laurent Cozic de569bd995 Plugins: Updated types 2021-12-27 17:46:46 +01:00
Laurent Cozic 83c0c48c83 Plugins: Added "openItem" command 2021-12-27 17:44:53 +01:00
Laurent Cozic 27b62bf129 Plugins: Add utility functions joplin.data.itemType() and joplin.data.resourcePath() 2021-12-27 17:42:43 +01:00
Laurent Cozic 6e6432bfee Plugins: Added revealResourceFile command 2021-12-27 17:40:46 +01:00
Laurent Cozic d0b969372d Generator: Fixed JS and TS files loading order 2021-12-27 17:39:27 +01:00
Laurent Cozic 960863fb75 Plugins: Add support for joplin.workspace.filterEditorContextMenu to allow dynamically setting editor menu items depending on context 2021-12-27 17:38:21 +01:00
darkdragon-001 941445a238 Doc: Add inofficial Flatpak to installation instructions (#5912) 2021-12-26 22:30:48 +00:00
Helmut K. C. Tessarek 562d687489 All: Translation: Update da_DK.po (thanks ERYpTION) 2021-12-23 18:59:25 -05:00
Laurent Cozic 3f330921d4 Tools: Exclude file to fix linter 2021-12-23 21:21:14 +01:00
Hamish Mcintyre-Bhatty 4ea4021d1b Doc: Add note about pCloud WebDAV not being supported. (#5903) 2021-12-23 14:41:58 +00:00
Laurent Cozic 9ca298f500 Tools: Fixes #5902: Correctly load external resources when bundling desktop app 2021-12-23 12:04:09 +01:00
Laurent Cozic e65d06fbf5 Tools: Trying to fix copyApplicationAssets race condition 2021-12-22 18:20:50 +01:00
Laurent Cozic cb3828150e Chore: Remove docs directory, now moved to joplin/website repository 2021-12-22 12:12:21 +01:00
Laurent cf05daffd4 Delete CNAME 2021-12-22 11:11:18 +00:00
Laurent Cozic ec2870e3d5 Plugin Repo CLI v2.6.9 2021-12-22 12:03:41 +01:00
Laurent Cozic af344601ec Plugin repo: Fixing fetch tool 2021-12-22 12:01:51 +01:00
Laurent Cozic bc9dac2feb Plugin Repo: Add support for source maps 2021-12-22 11:32:56 +01:00
Laurent 780f2ea12b Update CNAME 2021-12-21 19:09:19 +00:00
Laurent Cozic 58d0dc4b0b Tools: Fixed website builder 2021-12-21 19:53:36 +01:00
Laurent Cozic d458bd115e Fixed share service on CLI 2021-12-21 18:52:27 +01:00
Laurent Cozic 6b6574e7c9 Desktop: Resolves #5893: Expand search field when clicking on search button 2021-12-21 18:29:47 +01:00
Laurent Cozic 1ad5638ade Update translations 2021-12-21 18:16:25 +01:00
Laurent Cozic 32ffbe7d70 Tools: Ignore certain files for translation 2021-12-21 18:10:59 +01:00
Laurent Cozic e08359f7e0 Tools: Removed no longer needed double-dash and fixed CI 2021-12-21 17:55:30 +01:00
Laurent Cozic 106ce4b09d Tools: Do not clear output of tsc watch 2021-12-21 12:43:12 +01:00
Laurent Cozic 7ca75718c3 Plugin Repo: Simplify publishing script 2021-12-21 12:38:05 +01:00
Laurent Cozic 721d00874f All: Do no duplicate resources when duplicating a note 2021-12-21 11:03:55 +01:00
Laurent Cozic ab5d799f3d Tools: Maybe more stable with only up to 2 jobs 2021-12-21 11:00:32 +01:00
Laurent Cozic bbe4d09260 Plugin Repo: Disallow invalid plugin version numbers 2021-12-21 10:51:37 +01:00
Joplin Bot cf661b454b Doc: Updated Markdown files
Auto-updated using release-website.sh
2021-12-21 00:29:37 +00:00
Laurent Cozic 8f17fb7f71 Tools: Fixed tests 2021-12-20 17:24:45 +01:00
Laurent Cozic a7a2dfbbd0 Tools: Allow the server clean command to run on Windows 2021-12-20 16:48:40 +01:00
Laurent 7f64fbfd9b Tools: Use Yarn 3 to manage monorepo (#5833) 2021-12-20 15:08:43 +00:00
Laurent Cozic dea79fa3b7 Merge branch 'release-2.6' into dev 2021-12-20 16:03:14 +01:00
Laurent Cozic 51cc458e55 Android 2.6.9 2021-12-20 15:59:32 +01:00
Laurent Cozic 667d6420f2 All: Fixed issue where synchroniser would try to update a shared folder that is not longer accessible 2021-12-20 15:47:50 +01:00
Laurent Cozic 3316b9f880 Doc: Do not shuffle sponsors 2021-12-19 22:13:54 +01:00
Kenichi Kobayashi 8685bfaa18 Doc: Synchronous Scroll documentation/spec (#5883) 2021-12-19 14:35:51 -05:00
Laurent Cozic ebaf565117 Tools: Automatically update stats every 30 days 2021-12-19 18:26:30 +01:00
Joplin Bot 45f2faa641 Doc: Updated Markdown files
Auto-updated using release-website.sh
2021-12-19 11:33:45 +00:00
Laurent Cozic 98fba37cd3 Desktop release v2.6.10 2021-12-19 11:58:42 +01:00
Laurent Cozic 5f1c78c0c1 Merge branch 'dev' into release-2.6 2021-12-19 11:58:15 +01:00
Laurent Cozic 2db2a1ccac Desktop: Fixes #5879 (Regression): Fixed exporting notes that contain Mermaid diagrams as PDF or HTML 2021-12-19 11:55:18 +01:00
Laurent Cozic 78d2190767 Tools: Update release-website.sh 2021-12-19 10:49:00 +01:00
Laurent Cozic 2788521607 Tools: Update release-website.sh 2021-12-19 10:39:40 +01:00
Joplin Bot 2de344eeca Doc: Updated Markdown files
Auto-updated using release-website.sh
2021-12-19 09:34:43 +00:00
Laurent Cozic 19dba16099 Tools: Update release-website.sh 2021-12-19 10:25:34 +01:00
Laurent Cozic d1c77bdcfa Tools: Update release-website.sh 2021-12-19 10:23:49 +01:00
Laurent Cozic b14956afbd Tools: Build website to separate repository 2021-12-19 08:53:19 +01:00
Elaborendum 250e97247f All: Translation: Update es_ES.po (#5880) 2021-12-19 02:43:56 -05:00
NiceYoyo 41cb47b6c8 All: Translation: Update de_DE.po (#5877)
Added new translations and edited one or two.
2021-12-18 18:40:24 -05:00
Laurent Cozic 2171132555 Doc: Add "discuss" link to news posts 2021-12-18 16:45:59 +01:00
Laurent Cozic 3e1b1ae749 Doc: Fixed width of news items 2021-12-18 16:31:08 +01:00
Laurent Cozic 8297d5a5c7 Tools: Fixed CLI tcp-port-used dependency 2021-12-18 16:25:59 +01:00
Daniel Landau 79a930597d Doc: Add instructions for Docker on Linux (#5864) 2021-12-18 15:16:57 +00:00
Kenichi Kobayashi 3a6380fa92 Doc: Fix sync-scroll comment to refer a correct URL (#5868) 2021-12-18 15:16:00 +00:00
Kenichi Kobayashi fe2eb25acb Desktop: Fixes #5872: Markdown search no longer scrolls to result (#5876) 2021-12-18 15:14:57 +00:00
Laurent Cozic 5462ee635c Desktop: Fixes #5873 (Regression): Fixed export of HTML files on Linux 2021-12-18 13:50:24 +01:00
Laurent Cozic 80ae845741 Update website 2021-12-17 18:59:44 +01:00
Laurent Cozic 5f4192e180 Doc: Fixed news page layout 2021-12-17 18:58:49 +01:00
Laurent Cozic e1db70d45e Update website 2021-12-17 18:39:16 +01:00
Laurent Cozic a41994bfe9 Doc: Added "What's new" section to website 2021-12-17 18:37:01 +01:00
Laurent Cozic 2f1047e3eb Doc: Import Patreon posts 2021-12-17 15:35:26 +01:00
Laurent Cozic 90363ec233 Tools: Set error code when building website fails 2021-12-17 15:08:52 +01:00
Laurent Cozic 14bef3a149 Update website 2021-12-17 13:35:57 +01:00
Laurent Cozic db44b14aa4 title 2021-12-17 13:35:20 +01:00
Laurent Cozic c3f5fad15c Update website 2021-12-17 13:03:17 +01:00
Laurent Cozic 0e9dc0f272 CLI v2.6.2 2021-12-17 13:02:10 +01:00
Laurent Cozic c0fd2274ee Releasing sub-packages 2021-12-17 13:02:09 +01:00
Laurent Cozic 5cfdb8d39b Desktop release v2.6.9 2021-12-17 13:02:09 +01:00
Laurent Cozic 64bd7bf994 timesteamp 2021-12-17 13:02:08 +01:00
Laurent Cozic bca25c2d4c fix iOS build 2021-12-17 13:02:05 +01:00
Laurent Cozic b08fee3919 lock file 2021-12-17 13:01:39 +01:00
Laurent Cozic 7c3cf8ce84 Merge branch 'dev' into release-2.6 2021-12-17 12:59:03 +01:00
Laurent Cozic c8f4c3f4ee CLI v2.6.2 2021-12-17 12:20:13 +01:00
Laurent Cozic 95e79d5dc0 Releasing sub-packages 2021-12-17 12:17:21 +01:00
Laurent Cozic 58654d35a2 Desktop release v2.6.9 2021-12-17 12:11:59 +01:00
Laurent Cozic 14bef046f9 timesteamp 2021-12-17 12:11:45 +01:00
Laurent Cozic 7f169807ca Android 2.6.8 2021-12-17 11:15:33 +01:00
Laurent Cozic 514c3437b3 iOS 12.6.2 2021-12-17 11:04:24 +01:00
Laurent Cozic 552e78c4cd Set iOS min supported version to 11.0 2021-12-17 11:04:23 +01:00
Laurent Cozic c7031f29d0 Desktop release v2.6.8 2021-12-17 11:04:23 +01:00
Laurent Cozic db3fc3a827 fix iOS build 2021-12-17 11:04:23 +01:00
Laurent Cozic 6e133b0725 lock file 2021-12-17 11:04:22 +01:00
Laurent Cozic 9e0bbdf912 iOS 12.6.2 2021-12-17 10:59:27 +01:00
Laurent Cozic 9eacb6eb1b Set iOS min supported version to 11.0 2021-12-17 10:59:07 +01:00
Laurent Cozic 97c5493bc1 Desktop release v2.6.8 2021-12-17 01:21:04 +01:00
Laurent Cozic eb960a516c Merge branch 'dev' into release-2.6 2021-12-17 01:19:45 +01:00
Laurent Cozic 3200224b6f fix iOS build 2021-12-17 01:18:28 +01:00
Laurent Cozic 98b55cbe73 lock file 2021-12-17 01:18:28 +01:00
Laurent Cozic 87e44e9381 ios-v12.6.1 2021-12-17 01:18:27 +01:00
Laurent Cozic fb5ffa562f fix iOS build 2021-12-17 01:18:08 +01:00
Laurent Cozic 1cb62d8357 Update translations 2021-12-17 01:16:46 +01:00
Laurent Cozic 4faba40b1e translations 2021-12-17 01:12:30 +01:00
Laurent Cozic d1508ce8f2 Update translations 2021-12-17 00:47:01 +01:00
Laurent Cozic c26ce462e8 Fix AWS string names 2021-12-17 00:45:00 +01:00
Laurent Cozic f761e9021b Tools: Auto-create iOS changelog 2021-12-16 17:10:17 +01:00
Laurent Cozic 586542e15e Tools: Throw an error if IPHONEOS_DEPLOYMENT_TARGET versions do not match in pbxproj file 2021-12-16 17:04:52 +01:00
Laurent Cozic 864b3c710c lock file 2021-12-16 14:02:19 +01:00
Laurent Cozic 198287f86a ios-v12.6.1 2021-12-16 13:55:54 +01:00
Laurent Cozic b903542aed Merge branch 'dev' into release-2.6 2021-12-16 13:54:32 +01:00
Laurent Cozic 10c6af8aa7 Fixed tests 2021-12-16 11:42:33 +01:00
Laurent Cozic e9ce3d194c Server: Changed ID length from 32 to 22 characters
Should still prevent collisions for 60 times the age of the Universe
2021-12-16 11:27:22 +01:00
Laurent Cozic 83a46e563d Server: Disable logs and items pages for end-user
These pages don't provide very useful information, even possibly
confusing and could probably be used to DoS the server since the
associated requests are not optimised.
2021-12-16 11:18:35 +01:00
Laurent Cozic aa42cebbca Server: Setup localisation 2021-12-16 11:08:43 +01:00
Laurent Cozic 9c0982dcab Android 2.6.7 2021-12-16 11:08:32 +01:00
Laurent Cozic 23de363548 Desktop release v2.6.7 2021-12-16 11:08:32 +01:00
Laurent Cozic bda4c3a667 Android 2.6.7 2021-12-16 11:08:08 +01:00
Laurent Cozic 4a1bc075ac Server: Display NTP server domain and port when there is an error, and display message when NTP check is skipped 2021-12-16 10:53:28 +01:00
Laurent Cozic 23617c9409 Desktop release v2.6.7 2021-12-16 10:34:49 +01:00
Laurent Cozic 39196fa582 lock file 2021-12-16 10:34:26 +01:00
Gen Neko 28c6f91ac3 All: Translation: Update ja_JP.po (#5862) 2021-12-16 02:55:37 -05:00
Kenichi Kobayashi 5c82e439a7 Desktop: Fixes #5708: Scroll positions are preserved (#5826)
Features:
- Scroll position is preserved when the editor layout changes.
- Scroll position is remembered when a note selection changes.

Modifications:
- The current Sync Scroll feature (in v2.6.2) is modified to use line-percent-based scroll positions.
- Scroll position translation functions, Viewer-to-Editor and Editor-to-Viewer, are separated into V2L / L2E and E2L / L2V respectively.
- The scrollmap is moved from gui/utils/SyncScrollMap.ts to note-viewer/scrollmap.js.
- IPC Protocol about the scrollmap becomes not necessary and is removed.
- Ignores non-user scroll events to avoid sync with incorrect scroll positions.
- When CodeMirror is not ready, setEditorPercentScroll() is waited.
- Fixes the bug: An incorrect scroll position is sometimes recorded.
- Since scroll positions become line-percent-based, the following incompatibilities of scroll positions are fixed:
  - Between Editor and Viewer.
  - Between Viewer Layout and Split Layout of Viewer
  - Between Editor Layout and Split Layout of Editor
2021-12-15 18:03:20 +00:00
Helmut K. C. Tessarek a4aa40dde8 Update translations 2021-12-14 17:44:19 -05:00
Laurent b40d9bd8a1 Doc: Removed sponsor 2021-12-14 12:27:01 +00:00
Laurent Cozic 4ad4fdee49 Doc: Update Discord link 2021-12-13 16:53:26 +01:00
Kenichi Kobayashi 7ce9ae11c7 Desktop: Added detailed tooltip for 'Toggle Sort Order Field' button (#5854) 2021-12-13 15:29:23 +00:00
Laurent Cozic deb300326b Android 2.6.6 2021-12-13 13:32:34 +01:00
Laurent Cozic 227c9dcfee Desktop release v2.6.6 2021-12-13 11:52:48 +01:00
Laurent Cozic 28c7b717f3 lock file 2021-12-13 11:52:35 +01:00
Helmut K. C. Tessarek c499473467 All: fixes #5801: Links in flowchart Mermaid diagrams (#5830) 2021-12-13 10:38:12 +00:00
xaa 7fa278f875 Update fr_FR.po (#5750) 2021-12-13 10:36:07 +00:00
Helmut K. C. Tessarek 06e427fc5a All: Update Mermaid: 8.12.1 -> 8.13.5 (#5831) 2021-12-13 10:35:21 +00:00
Daeraxa 51f7dc9ab8 Desktop: Changed note sort buttons to 3px radius (#5771) 2021-12-13 10:34:54 +00:00
Laurent Cozic eca964b03b Android 2.6.5 2021-12-13 10:41:32 +01:00
Laurent Cozic bfcc02a769 Desktop release v2.6.5 2021-12-13 10:34:21 +01:00
Laurent Cozic 7c42688072 Merge branch 'dev' into release-2.6 2021-12-13 10:34:01 +01:00
Laurent Cozic e0e93c436b All: Fixed "Invalid lock client type" error when migrating sync target 2021-12-13 10:32:22 +01:00
Daeraxa 78c5877c65 Docs: Added richtext editor improvement ideas (#5848) 2021-12-10 18:34:55 +00:00
Laurent Cozic 9767b659c2 Desktop release v2.6.4 2021-12-09 20:18:39 +01:00
Laurent Cozic 4b6210802b Tools: Trying to go back to windows-2016 to fix CI build 2021-12-09 20:18:38 +01:00
Laurent Cozic 9f0def64f3 Desktop release v2.6.3 2021-12-09 20:18:38 +01:00
Laurent Cozic 16c94d95cb Desktop release v2.6.4 2021-12-09 20:18:17 +01:00
Laurent Cozic 03c8942a74 Tools: Trying to go back to windows-2016 to fix CI build 2021-12-09 20:18:04 +01:00
Laurent Cozic 1626170ea6 Desktop release v2.6.3 2021-12-09 10:22:32 +01:00
Laurent Cozic fd03ab4f47 Merge branch 'dev' into release-2.6 2021-12-09 10:22:09 +01:00
Laurent Cozic 684857752f Server v2.6.14 2021-12-09 10:20:47 +01:00
NiceYoyo 95f88d0f2c All: Translation: Update de_DE.po (#5829)
Added some translations and edited flagged ones. I also changed some translations from formal "Sie" to informal "Du", as it is used more often through the translation.
2021-12-05 22:28:16 -05:00
Laurent Cozic 3ddfa0b774 Doc: Added GSoC idea: Implement a toolbar for the mobile beta code editor 2021-12-03 19:15:16 +00:00
Laurent Cozic 35f684a1ee Server: Increase default MAX_TIME_DRIFT to 2000 2021-12-03 12:24:29 +00:00
Caleb John aac044fc9c Desktop: Fixes #5311: Rich text editor flashing white when switching notes/editor (#5793) 2021-12-03 12:23:31 +00:00
Laurent Cozic 9cbc3b3096 Server v2.6.14 2021-12-02 16:30:06 +00:00
Laurent Cozic 122afd6d46 Server: Improved storage command 2021-12-02 11:27:22 +00:00
Laurent Cozic 75c67b7d78 Tools: Fixed getting the latest release from GitHub 2021-12-01 16:17:04 +00:00
Amin Vakil 33822295ef Tools: Use latest minor release of Postgres 13 in sample docker-compose files (#5797) 2021-12-01 13:52:38 +00:00
Stephanos Komnenos a5b1255f45 Desktop: Allow flags for native wayland (#5804) 2021-12-01 13:51:42 +00:00
Laurent 62f4396ffe Tools: Use windows-latest to build desktop app on CI (#5809) 2021-12-01 13:51:11 +00:00
Laurent Cozic 7384ad0001 Android 2.6.4 2021-12-01 11:45:46 +00:00
Laurent Cozic 6361ae3736 Tools: Fixed Android build 2021-12-01 11:09:16 +00:00
Laurent 6bbf053a4f Tools: Run Joplin Server Postgres tests on CI (#5807) 2021-11-30 15:37:07 +00:00
Laurent Cozic 6eec0dd58e Server v2.6.13 2021-11-29 18:41:53 +00:00
Laurent Cozic dc67eace24 Server: Allow disabling NTP time drift check 2021-11-29 18:39:07 +00:00
Laurent Cozic 4fecb083a7 Server: Optimise reading from external storage when fallback driver is not present 2021-11-29 18:28:39 +00:00
Laurent Cozic ef23d99b47 Added tests 2021-11-29 17:51:41 +00:00
Laurent Cozic 01048f5971 Server: Added command to delete database item content 2021-11-29 17:27:40 +00:00
Laurent Cozic 06ce4adc20 iOS: Resolves #5705 (partially): Ping joplinapp.org domain instead of Google when doing the WiFi connection check 2021-11-29 12:51:11 +00:00
Laurent Cozic 2fd8f39293 Update clipper button text 2021-11-29 11:24:34 +00:00
Laurent Cozic 3627fa14e1 Clipper: Fixes #5675: Notebook selection list could be too wide 2021-11-29 11:14:41 +00:00
Laurent Cozic 6950c40b12 Android: Fixed opening attachments 2021-11-29 10:37:06 +00:00
Laurent Cozic a6884a2ee4 Server: Remove unique constraint errors from the log when they are already handled by the application 2021-11-29 10:17:13 +00:00
Laurent Cozic 7eb1d89d66 Server: Retry NTP request up to three times when it fails 2021-11-29 10:17:12 +00:00
MovingEarth 920847245f Server: Do not set the SMTP auth option when user or password are not set (#5791) 2021-11-28 19:45:07 +00:00
Laurent Cozic 605f12552e All: Fixes #5796: Handle duplicate attachments when the parent notebook is shared 2021-11-28 16:46:44 +00:00
Laurent 0689db48de Doc: Added GSoC idea: Implement default plugins on desktop application 2021-11-28 15:16:36 +00:00
Roman Musin f224282a27 Android: Fixes #5216: Alarms were not being triggered in some cases (#5798) 2021-11-27 16:22:30 +00:00
Laurent Cozic c0a8c330a9 All: Also duplicate resources when duplicating a note
Ref: https://github.com/laurent22/joplin/issues/5796
2021-11-27 16:05:28 +00:00
Laurent Cozic 4ce58fa486 Mobile: Fixes #5777: Alarm setting buttons were no longer visible 2021-11-27 15:22:14 +00:00
Rishabhraghwendra18 171b4b126d Doc: Update build doc (#5795) 2021-11-27 10:30:45 +00:00
Laurent Cozic e4742f8b6a Update website 2021-11-26 18:15:05 +00:00
Laurent Cozic a3703cc895 lock files 2021-11-26 18:13:23 +00:00
Laurent Cozic ab6aeb7455 Doc: Fixed Android download links 2021-11-26 12:17:25 +00:00
Aryan d96f8ee228 Doc: Updated dependencies for Linux (#5743) 2021-11-24 23:07:26 +00:00
Lee Matos 5981227c06 All: Improved S3 sync error handling and reliability, and upgraded S3 SDK (#5312) 2021-11-24 23:03:03 +00:00
Laurent Cozic 8e54a65ca5 Server: Increase default MAX_TIME_DRIFT to 100ms 2021-11-24 10:57:38 +00:00
Laurent Cozic 7985958f03 Server v2.6.12 2021-11-23 16:31:11 +00:00
Laurent Cozic 1e4cc16770 Exclude generated files 2021-11-23 16:29:22 +00:00
Laurent Cozic 75f729620e Server: Added task to compress changes older than 6 months 2021-11-23 16:25:36 +00:00
Laurent Cozic 799fe81449 Tools: Add missing package to Docker image 2021-11-23 16:09:09 +00:00
Laurent Cozic 080c3cc7dc Server: Allow specifying a max content size when importing content to new storage 2021-11-23 16:06:56 +00:00
Laurent Cozic 82defbdd7b Chore: Fixed mobile build 2021-11-23 12:12:27 +00:00
Laurent Cozic c19e59f5da Cli: Ask for master password when encryption or decryption fails 2021-11-22 17:57:02 +00:00
Laurent Cozic 0e11273c45 Desktop: Fixes #5693: Opening a file with ctrl and click leads to an error in the Rich Text editor 2021-11-22 17:20:48 +00:00
Laurent Cozic 73737ce776 Android 2.6.3 2021-11-21 17:08:17 +00:00
Laurent Cozic bffd181f51 Tools: Fixed Android build 2021-11-21 16:38:56 +00:00
Laurent Cozic c972da1b15 Merge branch 'dev' into release-2.6 2021-11-21 15:36:24 +00:00
Laurent Cozic 1bb7bbb9e5 Desktop: Fixed sharing notebook when recipient is not allowed to share 2021-11-21 14:35:01 +00:00
Filip Stanis 8b68da4040 Android: Makes it impossible to have multiple instances of the app open (#5587) 2021-11-20 16:58:03 +00:00
Laurent Cozic 16d5047379 Server: Perform storage checks before starting services 2021-11-20 15:20:10 +00:00
Helmut K. C. Tessarek 8bebf99950 All: Add date format YYYY/MM/DD (#5759) 2021-11-19 17:29:27 +00:00
Laurent Cozic 42c32c13e7 Update website 2021-11-19 13:06:17 +00:00
Laurent Cozic e8894d486e Tools: Fixed tests 2021-11-19 12:56:39 +00:00
Laurent Cozic a03ef8d18a Tools: Fixed tests 2021-11-19 12:16:07 +00:00
Rob Stevenson de50010b15 Doc: Update terminal.md (#5748) 2021-11-19 11:41:05 +00:00
Laurent Cozic 0ec0d87e71 All: Resolves #5754: Improved error message when synchronising with Joplin Server 2021-11-19 11:26:01 +00:00
Rishabhraghwendra18 c0b76cbd55 Desktop: Fixes #5373: Sync wizard is displayed incorrectly in dev mode (#5749) 2021-11-18 15:36:21 +00:00
Laurent Cozic 98ed2be518 Desktop, CLI: When exporting as HTML, pack all images, styles and scripts inside the HTML file 2021-11-18 15:08:13 +00:00
Laurent Cozic 2b66759e3a Doc: Added document for next GSoC to start collecting ideas 2021-11-18 14:29:55 +00:00
Laurent Cozic 5a82f5db93 Desktop release v2.6.2 2021-11-17 19:48:50 +00:00
Laurent Cozic 8c1a3d0ac1 Desktop: Resolves #5740: Make code blocks horizontally scrollable on note viewer 2021-11-17 19:46:00 +00:00
Laurent Cozic c759982890 Desktop: Fixes #5710: Text was unreadable in dark mode when dropping a note on Rich Text editor 2021-11-17 19:44:08 +00:00
Laurent Cozic c48d92b18b Desktop: Fixes #5726: OneDrive login screen was not readable in dark mode 2021-11-17 19:35:23 +00:00
Laurent Cozic e53da58602 Desktop: Fixes #5666: Message in search box dialog was not readable in dark mode 2021-11-17 19:32:27 +00:00
Laurent Cozic fc419d98c4 Server: Fixed HandleOversizedAccounts task interval 2021-11-17 18:41:26 +00:00
Laurent Cozic 0bf323dc63 Server: Resolves #5738: Check for time drift when the server starts 2021-11-17 18:41:25 +00:00
Helmut K. C. Tessarek 483b2e769f DO NOT create screenshots of text !!!
If there's text to select, do it. Why create a screenshot? Screenshots are helpful for GUI/UI/UX elements, but useless and highly annoting for text. Is copying text really that hard and complicated?

Oce upon a time I asked a customer to send me an error message (so that I could search for it in the code base and in traces). That customer created a screenshot of a terminal, with only half the error message and then put that image into a word document and sent that to me. Besides the fact that I did not have Word, what would I have done with an image? Argh!!!!!!!
2021-11-17 09:25:34 -05:00
Xie Yanbo e114a44d7b All: Translation: Update zh_CN.po (#5737)
* fix Chinese translation

* complete translated
2021-11-17 09:12:07 -05:00
reportxx 254f16207e All: Translation: Update sv.po (#5733)
* Update Swedish translation

Please merge to update the Swedish translation.

* Small fix

Just a small fix
2021-11-17 09:09:53 -05:00
muelli ddd8ee16ee Android: Remove non-OSS dependencies (#5735)
This disables certain features for the camera, but it allegedly affects the test suite only.
This will hopefully remove non-free dependencies so that the app can be shipped by F-Droid: https://gitlab.com/fdroid/rfp/-/issues/434
2021-11-16 15:11:46 +00:00
Roman Musin d4c3b51046 Linux: Fix .desktop file to make external links work on Ubuntu (#5736) 2021-11-16 12:08:19 +00:00
Laurent Cozic 42a4edb19c Server: Display more detailed error messages on SQL query errors 2021-11-16 11:31:13 +00:00
Laurent Cozic 3716972829 Server: Display more debug info in error log 2021-11-16 10:51:56 +00:00
Helmut K. C. Tessarek ed31778e2b All: Translation: Update da_DK.po (thanks ERYpTION) 2021-11-15 16:53:14 -05:00
Laurent Cozic fc1c974c79 fixed tests 2021-11-15 19:27:31 +00:00
Laurent Cozic e97bb78ce4 Desktop, Mobile: Added support for notebook icons 2021-11-15 17:19:51 +00:00
Laurent Cozic 79d97f2ba7 Desktop: Allow showing passwords in Master Password dialog 2021-11-15 12:10:47 +00:00
nzlov 90957e5a34 Doc: Server: fix type File -> Filesystem (#5730)
update  `STORAGE_DRIVER` type . From `File` to `Filesystem`
2021-11-15 00:50:30 -05:00
milotype 6bdd8f5d42 All: Translation: Update hr_HR.po (#5729) 2021-11-15 00:41:05 -05:00
Laurent Cozic 405b49569c Desktop: Fixes #5720: Plugin secure settings would be lost if keychain is not enabled 2021-11-14 19:06:48 +00:00
Laurent Cozic 0a4c43631d All: Fixes #5721: Sharing multiple notebooks via Joplin Server with the same user results in an error 2021-11-14 18:34:58 +00:00
Laurent Cozic c908347cec Server v2.6.11 2021-11-14 17:15:03 +00:00
Laurent Cozic 567ba06b55 Desktop: Improved error message when a file cannot be uploaded or downloaded 2021-11-14 16:50:23 +00:00
Laurent Cozic 5eb3a926db Server: Prevent large data blobs from crashing the application
Ref: https://github.com/brianc/node-postgres/issues/2653
2021-11-14 16:47:16 +00:00
Laurent Cozic 73b702b8dc typo 2021-11-13 17:27:45 +00:00
Laurent Cozic 4b23d6c1f5 Doc: Add section on how to setup Joplin Server storage 2021-11-13 17:25:05 +00:00
Laurent Cozic 61df69f609 Server v2.6.10 2021-11-13 12:48:36 +00:00
Laurent Cozic 7605ebd3ec Merge branch 'dev' into release-2.6 2021-11-13 12:47:44 +00:00
Laurent Cozic 76d95a9e18 Server v2.6.9 2021-11-13 12:47:08 +00:00
Laurent Cozic b248e6d96e Doc: Disabled GA Optimize rule on website 2021-11-13 12:32:32 +00:00
Laurent Cozic 5a41d80b75 Server: Improved storage migration error handling, and improved storage test units 2021-11-13 11:50:33 +00:00
Laurent Cozic 5cd4537044 Server: Rename "ReadOnly" mode to "ReadAndClear" to avoid any confusion 2021-11-11 17:31:24 +00:00
Kenichi Kobayashi ec8b9b8ea8 Desktop: Fixes #5694: Sync-scroll support for HTML notes (#5695) 2021-11-11 17:28:32 +00:00
Laurent Cozic 1d035fcb37 Server v2.6.9 2021-11-11 16:38:37 +00:00
Laurent Cozic 4bfb4db5f1 Server: Fixed S3 connection string record in db 2021-11-11 16:36:43 +00:00
Laurent Cozic 4fc3bcbfd7 Server: Fixed S3 storage connection and improved connectiob checks 2021-11-11 16:32:34 +00:00
Laurent Cozic 01826d9eb1 ignore files 2021-11-11 16:31:37 +00:00
Laurent Cozic 73137cfb27 Server: Hide credentials from the log 2021-11-11 16:13:36 +00:00
Helmut K. C. Tessarek b58ea0f202 Desktop: Add shortcut for bulleted list (#5698)
Ref: https://discourse.joplinapp.org/t/shortcut-for-lists/21646
2021-11-11 15:50:15 +00:00
Kenichi Kobayashi d7e08770bd Desktop: Resolves #4827, Resolves #5652: Fixed and improve laggy scroll in text editor (#5606) 2021-11-11 15:43:32 +00:00
Kenichi Kobayashi f495db1391 Desktop: Sort Order Buttons and Per-Notebook Sort Order (#5437) 2021-11-11 15:33:37 +00:00
Kenichi Kobayashi e4d5e9cefb Desktop: Fixes #5582: Currently opened note is not updated after sync (5582) (#5711) 2021-11-11 15:31:20 +00:00
Laurent Cozic 72f336a5af Server v2.6.8 2021-11-11 15:24:21 +00:00
Laurent Cozic dfa5f8b357 Server: Fixed S3 configuration 2021-11-11 15:22:30 +00:00
Laurent Cozic 3cdbd6dd15 Server v2.6.7 2021-11-11 14:44:06 +00:00
Laurent Cozic c6dec0a045 Server: Added command to test a storage connection 2021-11-11 14:42:22 +00:00
Laurent Cozic 4879edc59a Server v2.6.6 2021-11-11 14:06:27 +00:00
Laurent Cozic 005f720f7b Server: Added command to migrate content to different storage 2021-11-11 13:59:05 +00:00
Laurent Cozic 725c79d1ec Desktop: Fixed button to upgrade a master key 2021-11-10 15:40:32 +00:00
Laurent Cozic 0de6e9ed11 All: Fixed issue that could cause application to needlessly lock the sync target 2021-11-10 14:47:26 +00:00
Laurent Cozic 7c3785e89d Doc: Update privacy policy 2021-11-10 12:51:41 +00:00
Laurent Cozic 5c2a0ed033 Doc: Update privacy policy 2021-11-10 12:20:43 +00:00
Laurent Cozic fc64c8264c Server v2.6.5 2021-11-10 12:08:10 +00:00
Laurent Cozic 08f420ce06 Merge branch 'dev' into release-2.6 2021-11-10 12:07:32 +00:00
Laurent Cozic cc23a8b70b Server v2.6.4 2021-11-10 12:07:06 +00:00
Laurent Cozic 9ffa29f658 Chore: Add tests for storage driver loading 2021-11-10 12:03:45 +00:00
Laurent Cozic 7431da9f3a Server: Lazy-load storage drivers 2021-11-10 11:48:06 +00:00
Laurent Cozic 4deeed0d5c Desktop, Mobile: Fixes #5687: Fixed issue with parts of HTML notes not being displayed in some cases 2021-11-09 18:33:28 +00:00
Laurent Cozic f8d9601ff7 Tools: Restored HTML to ENEX tests that had been deleted in a refactoring 2021-11-09 17:49:05 +00:00
Laurent Cozic 89179c2776 Desktop, Cli: Add support for more style of highlighted texts when importing ENEX files 2021-11-09 16:42:50 +00:00
Laurent Cozic d76646a609 Server v2.6.4 2021-11-09 16:12:29 +00:00
Laurent 485c0d0314 Server: Allow storing item content in database, filesystem or S3 (depending on config) (#5602) 2021-11-09 16:05:42 +00:00
agerardin 6b31609338 Plugins: Allow posting messages from plugin to webview (#5569) 2021-11-09 15:50:50 +00:00
Kenichi Kobayashi 200ba858dd Deskop: Fixes flickering when switching notes while the Note Search Bar is visible (#5548) 2021-11-09 15:47:25 +00:00
Laurent Cozic 7b3ad32103 Update translations 2021-11-09 15:28:38 +00:00
Laurent Cozic 3745cd7cb0 Tools: Do not process context when running build-translation tool 2021-11-09 15:26:45 +00:00
Laurent Cozic 920f2d9655 Revert "Update translations"
This reverts commit f800ca0269.

Reverting for now due to some translations being incorrectly marked as
fuzzy.
2021-11-09 13:49:20 +00:00
Laurent Cozic f800ca0269 Update translations 2021-11-09 13:16:09 +00:00
Laurent Cozic 33be306d01 Tools: Fixed missing translations when running build-translation tool 2021-11-09 13:14:41 +00:00
Laurent Cozic 3782255c27 Tools: Fixed build-translation script to handle .ts and .tsx files directly 2021-11-09 12:20:07 +00:00
Laurent 0ab235273b Tools: Detect missing translation strings on CI (#5688) 2021-11-08 17:10:33 +00:00
Laurent Cozic 75256613cc Security: Ensure Markdown links that contain single quotes are correctly escaped 2021-11-08 15:39:45 +00:00
Helmut K. C. Tessarek b328094033 update en_US.po 2021-11-08 10:30:18 -05:00
Helmut K. C. Tessarek 4f0f1af5d1 Update translations 2021-11-08 10:22:16 -05:00
Laurent Cozic 021ce14348 Server v2.6.3 2021-11-08 15:21:20 +00:00
Laurent Cozic c4017e52dc Fixed a few strings 2021-11-08 10:00:11 +00:00
Laurent Cozic ec2c1741a2 Tools: Fixed package version numbers 2021-11-07 17:36:48 +00:00
Laurent Cozic 3e5ad0a374 Desktop, Cli: Fixes #5653: Long resource filenames were being incorrectly cut 2021-11-07 16:41:39 +00:00
Laurent Cozic 05e390d48b Tools: Fixed build-translation script 2021-11-07 15:41:04 +00:00
Laurent Cozic 31ce0f46e0 Tools: Show more info in IOS release script 2021-11-07 11:55:34 +00:00
Laurent Cozic d19551b984 Chore: Set correct iOS version ID 2021-11-07 11:55:11 +00:00
Laurent Cozic dacd697f80 iOS: Fixes #5671: Fixed iOS 12 crash that prevents the app from starting 2021-11-07 11:53:39 +00:00
Laurent Cozic 70d5c7a648 Server: Set resource content size when viewing published note 2021-11-07 11:47:37 +00:00
Daniel Bretoi 42caab6bde Doc: CLI: update to include local filesystem sync (#5684)
* terminal doc update to include local filesystem sync

* fix typo
2021-11-07 00:32:18 -04:00
NiceYoyo 01b63ad263 All: Translation: Update de_DE.po (#5682)
* Update de_DE.po

* Update de_DE.po
2021-11-07 00:30:04 -04:00
felipeviggiano ae4013d2f7 All: Translation: Update pt_BR.po (#5680)
* Updates on pt_BR.po file

* Updates on pt_BR.po file
2021-11-07 00:29:38 -04:00
Laurent Cozic 298e85f115 iOS: Set min supported iOS version to 13.0 2021-11-04 16:43:34 +00:00
Laurent Cozic 9e1cb9db2c Server: Immediately ask user to set password after Stripe checkout 2021-11-04 12:49:51 +00:00
Laurent Cozic 373c041aa6 Doc: Fixed H3 header size 2021-11-03 17:39:30 +00:00
Laurent af19865865 All, Server: Add support for sharing notes when E2EE is enabled (#5529) 2021-11-03 16:24:40 +00:00
Laurent Cozic a0d23046bf Migration can be null 2021-11-03 15:20:17 +00:00
Laurent Cozic 7ad73df170 Server: Display latest migration name after auto-migration 2021-11-03 15:18:20 +00:00
Laurent Cozic ce5c5d6042 Server: Disable mailer service if no-reply email is not set 2021-11-03 14:11:13 +00:00
Laurent Cozic 8c6d78e01c Merge branch 'dev' into release-2.6 2021-11-03 12:55:28 +00:00
Laurent Cozic a65c424233 Server v2.6.2 2021-11-03 12:55:01 +00:00
Laurent Cozic e6d3396f42 lock files 2021-11-03 12:54:08 +00:00
Laurent Cozic 190550fe8e Tools: Fixed server tests 2021-11-03 12:53:25 +00:00
Laurent Cozic 030b18d7c7 Desktop release v2.6.1 2021-11-03 12:27:39 +00:00
Laurent Cozic f1bfcfde81 Server v2.6.1 2021-11-03 12:27:28 +00:00
Laurent 47a31c4ef1 All, Server: Add support for faster built-in sync locks (#5662) 2021-11-03 12:26:26 +00:00
Kenichi Kobayashi 630a400181 Desktop: Resolves #2242: Implements Sync-Scroll for Markdown Editor and Viewer (#5512) 2021-11-03 12:10:46 +00:00
Laurent Cozic 725abbc167 Update website 2021-11-03 11:44:43 +00:00
Laurent Cozic 84ec845499 CLI v2.6.1 2021-11-03 11:34:14 +00:00
Laurent Cozic 5892a0678b Releasing sub-packages 2021-11-03 11:18:03 +00:00
Laurent Cozic cb26ab414d Tools: Trying to fix Lerna publishing with automation token 2021-11-03 11:15:51 +00:00
Laurent Cozic 74fcd474af Releasing sub-packages 2021-11-03 11:10:06 +00:00
Laurent Cozic c7406f397c Android 2.6.1 2021-11-02 20:56:26 +00:00
Laurent Cozic d22a29ee3d ios-v12.5.1 2021-11-02 20:19:43 +00:00
Laurent Cozic bcd568a496 Setup new release 2.6 2021-11-02 20:07:13 +00:00
Laurent Cozic 66e79ccb23 Mobile: Upgraded React Native from 0.64 to 0.66 2021-11-02 16:33:53 +00:00
Laurent Cozic 08ee2b200f Merge branch 'release-2.5' into dev 2021-11-02 14:47:19 +00:00
Laurent Cozic 57b8aa1789 Server v2.5.10 2021-11-02 14:46:52 +00:00
Laurent Cozic b5d792c606 Server: Improved env variable handling to make it self documenting and enforce type checking 2021-11-02 12:51:59 +00:00
Laurent Cozic 370441333f Server: Improved logging and rendering of low level middleware errors 2021-11-01 19:20:36 +00:00
3592 changed files with 408131 additions and 536423 deletions

No files matched your search

+16 -9
View File
@@ -1,12 +1,19 @@
_mydocs/
_releases/
.git/
.yarn/cache/
**/.DS_Store
**/node_modules
Assets/
.git/
_releases/
packages/app-desktop
packages/app-cli
packages/app-mobile
packages/app-clipper
packages/generator-joplin
packages/plugin-repo-cli
docs/
lerna-debug.log
packages/app-cli/
packages/app-clipper/
packages/app-desktop/
packages/app-mobile/
packages/generator-joplin/
packages/plugin-repo-cli/
packages/server/db-*.sqlite
packages/server/temp
packages/server/dist/
packages/server/logs/
packages/server/temp/
+339 -1305
View File
File diff suppressed because it is too large. Load diff
+61 -8
View File
@@ -42,6 +42,8 @@ module.exports = {
'zxcvbn': 'readonly',
'tinymce': 'readonly',
'JSX': 'readonly',
},
'parserOptions': {
'ecmaVersion': 2018,
@@ -76,17 +78,29 @@ module.exports = {
'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
'react-hooks/rules-of-hooks': 'error',
'@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'],
// -------------------------------
// Formatting
// -------------------------------
@@ -96,14 +110,18 @@ module.exports = {
'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': 'never',
'functions': 'always-multiline',
}],
'comma-spacing': ['error', { 'before': false, 'after': true }],
'no-trailing-spaces': 'error',
'linebreak-style': ['error', 'unix'],
'prefer-template': ['error'],
@@ -124,19 +142,45 @@ module.exports = {
'named': 'never',
'asyncArrow': 'always',
}],
'multiline-comment-style': ['error', 'separate-lines'],
'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'],
},
'plugins': [
'react',
'@typescript-eslint',
'react-hooks',
// 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'],
@@ -145,10 +189,18 @@ module.exports = {
'project': './tsconfig.eslint.json',
},
'rules': {
// Warn only because it would make it difficult to convert JS classes to TypeScript, unless we
// make everything public which is not great. New code however should specify member accessibility.
'@typescript-eslint/explicit-member-accessibility': ['warn'],
'@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',
@@ -157,8 +209,9 @@ module.exports = {
'enums': 'always-multiline',
'generics': 'always-multiline',
'tuples': 'always-multiline',
'functions': 'never',
'functions': 'always-multiline',
}],
'@typescript-eslint/object-curly-spacing': ['error', 'always'],
'@typescript-eslint/semi': ['error', 'always'],
'@typescript-eslint/member-delimiter-style': ['error', {
'multiline': {
+2 -1
View File
@@ -9,7 +9,8 @@ assignees: ''
<!--
Please provide a clear and concise description of what the bug is. (In the section Steps To Reproduce.)
Include screenshots if needed.
Include screenshots for UI problems if needed.
DO NOT create screenshots of text !!! Copy and paste the text into a code block.
Please test using the latest Joplin release to make sure your issue has not already been fixed.
-->
+125 -13
View File
@@ -37,6 +37,9 @@ echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
echo "GITHUB_REF=$GITHUB_REF"
echo "RUNNER_OS=$RUNNER_OS"
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 "IS_CONTINUOUS_INTEGRATION=$IS_CONTINUOUS_INTEGRATION"
echo "IS_PULL_REQUEST=$IS_PULL_REQUEST"
@@ -46,13 +49,19 @@ echo "IS_MACOS=$IS_MACOS"
echo "Node $( node -v )"
echo "Npm $( npm -v )"
echo "Yarn $( yarn -v )"
# =============================================================================
# Install packages
# =============================================================================
cd "$ROOT_DIR"
npm install
yarn install
testResult=$?
if [ $testResult -ne 0 ]; then
echo "Yarn installation failed. Search for 'exit code 1' in the log for more information."
exit $testResult
fi
# =============================================================================
# Run test units. Only do it for pull requests and dev branch because we don't
@@ -62,6 +71,15 @@ npm install
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
echo "Step: Running tests..."
# 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
export JOPLIN_TESTS_SERVER_DB=pg
else
echo "Running Joplin Server tests using SQLite..."
fi
# Need this because we're getting this error:
#
# @joplin/lib: FATAL ERROR: Ineffective mark-compacts near heap limit
@@ -69,7 +87,7 @@ if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
#
# https://stackoverflow.com/questions/38558989
export NODE_OPTIONS="--max-old-space-size=4096"
npm run test-ci
yarn run test-ci
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
@@ -81,10 +99,16 @@ fi
# release randomly fail.
# =============================================================================
if [ "$IS_PULL_REQUEST" == "1" ]; then
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
echo "Step: Running linter..."
npm run linter-ci ./
yarn run linter-ci ./
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
fi
yarn run packageJsonLint
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
@@ -109,6 +133,59 @@ if [ "$IS_PULL_REQUEST" == "1" ]; then
fi
fi
# =============================================================================
# Check that we didn't lose any string due to gettext not being able to parse
# newly modified or added scripts. This is convenient to quickly view on GitHub
# what commit may have broken translation building.
# =============================================================================
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
if [ "$IS_LINUX" == "1" ]; then
echo "Step: Checking for lost translation strings..."
xgettext --version
node packages/tools/build-translation.js --missing-strings-check-only
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
fi
fi
fi
# =============================================================================
# Check .gitignore and .eslintignore files - they should be updated when
# new TypeScript files are added by running `yarn run updateIgnored`.
# See coding_style.md
# =============================================================================
if [ "$IS_PULL_REQUEST" == "1" ]; then
if [ "$IS_LINUX" == "1" ]; then
echo "Step: Checking for files that should have been ignored..."
node packages/tools/checkIgnoredFiles.js
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
fi
fi
fi
# =============================================================================
# Check that the website still builds
# =============================================================================
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
echo "Step: Check that the website still builds..."
mkdir -p ../joplin-website/docs
SKIP_SPONSOR_PROCESSING=1 yarn run buildWebsite
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
fi
fi
# =============================================================================
# Find out if we should run the build or not. Electron-builder gets stuck when
# building PRs so we disable it in this case. The Linux build should provide
@@ -124,25 +201,60 @@ if [ "$IS_PULL_REQUEST" == "1" ]; then
fi
# =============================================================================
# Prepare the Electron app and build it
# Build the Electron app or Docker image depending on the current tag.
#
# If the current tag is a desktop release tag (starts with "v", such as
# "v1.4.7"), we build and publish to github
#
# Otherwise we only build but don't publish to GitHub. It helps finding
# out any issue in pull requests and dev branch.
# "v1.4.7"), we build and publish to GitHub. Otherwise we only build but don't
# publish to GitHub. It helps finding out any issue in pull requests and dev
# branch.
# =============================================================================
cd "$ROOT_DIR/packages/app-desktop"
if [[ $GIT_TAG_NAME = v* ]]; then
echo "Step: Building and publishing desktop application..."
USE_HARD_LINKS=false npm run dist
elif [[ $GIT_TAG_NAME = server-v* ]] && [[ $IS_LINUX = 1 ]]; then
# cd "$ROOT_DIR/packages/tools"
# node bundleDefaultPlugins.js
cd "$ROOT_DIR/packages/app-desktop"
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
#
# It can be removed once we upgrade to electron-builder@23, however we
# cannot currently do this due to this error:
# https://github.com/laurent22/joplin/issues/8149
#
# electron-builder@24, however, still expects the python binary to be named
# "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 run dist
else
USE_HARD_LINKS=false yarn run dist
fi
elif [[ $IS_LINUX = 1 ]] && [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
echo "Step: Building Docker Image..."
cd "$ROOT_DIR"
npm run buildServerDocker -- --tag-name $GIT_TAG_NAME --push-images
yarn run buildServerDocker --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
else
echo "Step: Building but *not* publishing desktop application..."
USE_HARD_LINKS=false npm run dist -- --publish=never
if [ "$IS_MACOS" == "1" ]; then
# See above why we need to specify Python
alias python=$(which python3)
# We also want to disable signing the app in this case, because
# it randomly fails and we don't even need it
# 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 run dist --publish=never
else
USE_HARD_LINKS=false yarn run dist --publish=never
fi
fi
-25
View File
@@ -1,25 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "good first issue"
- "upstream"
- "backlog"
- "high"
- "medium"
- "spec"
- "cannot reproduce"
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs.
You may comment on the issue and I will leave it open.
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information.
only: issues
+46
View File
@@ -0,0 +1,46 @@
# The goal of this action is to compile the Android debug build. That should
# tell us automatically if something got broken when a dependency was changed.
name: react-native-android-build-apk
on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
BuildAndroidDebug:
needs: pre_job
if: github.repository == 'laurent22/joplin' && needs.pre_job.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- name: Install Linux dependencies
run: |
sudo apt-get update || true
sudo apt-get install -y libsecret-1-dev
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
- name: Install Yarn
run: |
corepack enable
- name: Install
run: yarn install
- name: Build Android Release
run: |
cd packages/app-mobile/android && ./gradlew assembleDebug
+73
View File
@@ -0,0 +1,73 @@
name: Build macOS M1
on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
Main:
needs: pre_job
# We always process desktop release tags, because they also publish the release
if: github.repository == 'laurent22/joplin' && (needs.pre_job.outputs.should_skip != 'true' || startsWith(github.ref, 'refs/tags/v'))
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
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'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- name: Build macOS M1 app
env:
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
run: |
export npm_config_arch=arm64
export npm_config_target_arch=arm64
yarn install
cd packages/app-desktop
npm pkg set 'build.mac.artifactName'='${productName}-${version}-${arch}.${ext}'
npm pkg set 'build.mac.target.target'='dmg'
npm pkg set 'build.mac.target.arch[0]'='arm64'
if [[ $GIT_TAG_NAME = v* ]]; then
echo "Building and publishing desktop application..."
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn run dist --mac --arm64
yarn renameReleaseAssets --repo="$GH_REPO" --tag="$GIT_TAG_NAME" --token="$GITHUB_TOKEN"
else
echo "Building but *not* publishing desktop application..."
# 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
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm pkg set 'build.mac.identity'=null --json
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn run dist --mac --arm64 --publish=never
fi
+37
View File
@@ -0,0 +1,37 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]
jobs:
CLAAssistant:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
steps:
- 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.0
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
PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
with:
path-to-signatures: 'readme/cla_signatures.json'
path-to-document: 'https://github.com/laurent22/joplin/blob/dev/readme/cla.md' # e.g. a CLA or a DCO document
# branch should not be protected
branch: 'dev'
allowlist: joplinbot,renovate[bot]
# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
#remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)
#remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)
#create-file-commit-message: 'For example: Creating file for storing CLA Signatures'
#signed-commit-message: 'For example: $contributorName has signed the CLA in #$pullRequestNo'
#custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign'
#custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'
#custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'
lock-pullrequest-aftermerge: false
#use-dco-flag: true - If you are using DCO instead of CLA
+24
View File
@@ -0,0 +1,24 @@
name: 'Close stale issues'
on:
schedule:
- cron: '0 16 * * *'
permissions:
issues: write
jobs:
ProcessStaleIssues:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v4
with:
# Use this to do a dry run from a pull request
# debug-only: true
stale-issue-message: "Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? If you require support or are requesting an enhancement or feature then please create a topic on the [Joplin forum](https://discourse.joplinapp.org/). This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions."
days-before-stale: 30
days-before-close: 7
operations-per-run: 1000
exempt-issue-labels: 'good first issue,upstream,backlog,high,medium,spec,cannot reproduce,enhancement'
stale-issue-label: 'stale'
close-issue-message: 'Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, feel free to create a new issue with up-to-date information.'
# Don't process pull requests at all
days-before-pr-stale: -1
+143 -7
View File
@@ -1,13 +1,43 @@
name: Joplin Continuous Integration
on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
Main:
needs: pre_job
# We always process server or desktop release tags, because they also publish the release
if: github.repository == 'laurent22/joplin' && (needs.pre_job.outputs.should_skip != 'true' || startsWith(github.ref, 'refs/tags/server-v') || startsWith(github.ref, 'refs/tags/v'))
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-2016]
os: [macos-latest, ubuntu-latest, windows-2019]
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'
run: Disable-NetAdapterChecksumOffload -Name * -TcpIPv4 -UdpIPv4 -TcpIPv6 -UdpIPv6
- name: Disable TCP/UDP offload on Linux
if: runner.os == 'Linux'
run: sudo ethtool -K eth0 tx off rx off
- name: Disable TCP/UDP offload on macOS
if: runner.os == 'macOS'
run: |
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 -
@@ -19,9 +49,12 @@ jobs:
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
- name: Install Docker Engine
if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
# if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
if: runner.os == 'Linux'
run: |
sudo apt-get install -y apt-transport-https
sudo apt-get install -y ca-certificates
@@ -39,12 +72,20 @@ jobs:
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
with:
node-version: '16'
# 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'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
# 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@v1
- uses: docker/login-action@v2
if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -56,10 +97,14 @@ jobs:
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
SERVER_REPOSITORY: joplin/server
SERVER_TAG_PREFIX: server
run: |
"${GITHUB_WORKSPACE}/.github/scripts/run_ci.sh"
@@ -70,7 +115,98 @@ jobs:
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.
run: |
npm install
cd packages/app-desktop
npm run dist
yarn install && cd packages/app-desktop && yarn run dist
# Build and package the Windows app, without publishing it, just to
# verify that the build process hasn't been broken.
- name: Build Windows app (no publishing)
if: runner.os == 'Windows' && !startsWith(github.ref, 'refs/tags/v')
env:
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
SERVER_REPOSITORY: joplin/server
SERVER_TAG_PREFIX: server
run: |
yarn install && cd packages/app-desktop && yarn run dist --publish=never
ServerDockerImage:
needs: pre_job
if: github.repository == 'laurent22/joplin' && needs.pre_job.outputs.should_skip != 'true'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- name: Install Docker Engine
run: |
sudo apt-get install -y apt-transport-https
sudo apt-get install -y ca-certificates
sudo apt-get install -y curl
sudo apt-get install -y gnupg
sudo apt-get install -y lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update || true
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- name: Build Docker Image
env:
BUILD_SEQUENCIAL: 1
run: |
yarn install
yarn run buildServerDocker --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:0.0.0-beta node dist/app.js migrate list
- name: Check HTTP request
run: |
# Need to pass environment variables:
docker run -p 22300:22300 joplin/server:0.0.0-beta node dist/app.js --env dev &
# Wait for server to start
sleep 30
# Check if status code is correct
# if the actual_status DOES NOT include the expected_status
# it exits the process with code 1
expected_status="HTTP/1.1 200 OK"
actual_status=$(curl -I -X GET http://localhost:22300/api/ping | head -n 1)
if [[ ! "$actual_status" =~ "$expected_status" ]]; then
echo 'Failed while checking the status code after request to /api/ping'
echo 'expected: ' $expected_status
echo 'actual: ' $actual_status
exit 1;
fi
# Check if the body response is correct
# if the actual_body is different of expected_body exit with code 1
expected_body='{"status":"ok","message":"Joplin Server is running"}'
actual_body=$(curl http://localhost:22300/api/ping)
if [[ "$actual_body" != "$expected_body" ]]; then
echo 'Failed while checking the body response after request to /api/ping'
exit 1;
fi
+342 -1304
View File
File diff suppressed because it is too large. Load diff
+2
View File
@@ -0,0 +1,2 @@
packages/app-clipper/popup/
packages/app-cli/tests/support/plugins/
+24
View File
@@ -0,0 +1,24 @@
{
"rules": {
"prefer-absolute-version-dependencies": ["error",
{
"exceptions": [
"@joplin/lib",
"@joplin/renderer",
"@joplin/pdf-viewer",
"@joplin/fork-htmlparser2",
"@joplin/fork-sax",
"@joplin/fork-uslug",
"@joplin/htmlpack",
"@joplin/turndown",
"@joplin/turndown-plugin-gfm",
"@joplin/tools",
"@joplin/react-native-saf-x",
"@joplin/react-native-alarm-notification",
"@joplin/utils"
]
}
]
}
}
@@ -0,0 +1,13 @@
diff --git a/templates/nsis/include/allowOnlyOneInstallerInstance.nsh b/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
index a1fd1875d852ff69c087a3103eff827c20d37ca5..5222614ddad3276876857e7a9dde4017a6b9fc85 100644
--- a/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
+++ b/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
@@ -42,7 +42,7 @@
${nsProcess::FindProcess} "${_FILE}" ${_ERR}
!else
# find process owned by current user
- nsExec::Exec `cmd /c tasklist /FI "USERNAME eq %USERNAME%" /FI "IMAGENAME eq ${_FILE}" | %SYSTEMROOT%\System32\find.exe "${_FILE}"`
+ nsExec::Exec `cmd /c tasklist /FI "USERNAME eq %USERNAME%" /FI "PID ne $pid" /FI "IMAGENAME eq ${_FILE}" | %SYSTEMROOT%\System32\find.exe "${_FILE}"`
Pop ${_ERR}
!endif
!macroend
@@ -0,0 +1,15 @@
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,25 @@
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 0f52b73c61625db2a3081c0950b6bdd2b06e3d40..b0fc3de4be0b3a26b638683613c63c783c2739bb 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java
@@ -38,7 +38,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;
/**
@@ -151,7 +151,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,20 @@
diff --git a/src/RNCamera.js b/src/RNCamera.js
index b7a271ad64771c0f654dbd5fe3c0d9e0d2e2c4ef..1182a40ace081a32fbaefe2bc4a499b79c2e7dac 100644
--- a/src/RNCamera.js
+++ b/src/RNCamera.js
@@ -5,7 +5,6 @@ import {
findNodeHandle,
Platform,
NativeModules,
- ViewPropTypes,
requireNativeComponent,
View,
ActivityIndicator,
@@ -14,6 +13,7 @@ import {
PermissionsAndroid,
} from 'react-native';
+import ViewPropTypes from 'deprecated-react-native-prop-types';
import type { FaceFeature } from './FaceDetector';
const Rationale = PropTypes.shape({
@@ -0,0 +1,209 @@
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
@@ -0,0 +1,28 @@
/* 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;
}
};
+874
View File
@@ -0,0 +1,874 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var Dge=Object.create;var lS=Object.defineProperty;var kge=Object.getOwnPropertyDescriptor;var Rge=Object.getOwnPropertyNames;var Fge=Object.getPrototypeOf,Nge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Tge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Lge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rge(e))!Nge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=kge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Dge(Fge(r)):{},Lge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var PK=w((z7e,xK)=>{xK.exports=vK;vK.sync=ife;var QK=J("fs");function rfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function SK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:rfe(e,t)}function vK(r,e,t){QK.stat(r,function(i,n){t(i,i?!1:SK(n,r,e))})}function ife(r,e){return SK(QK.statSync(r),r,e)}});var NK=w((V7e,FK)=>{FK.exports=kK;kK.sync=nfe;var DK=J("fs");function kK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:RK(n,e))})}function nfe(r,e){return RK(DK.statSync(r),e)}function RK(r,e){return r.isFile()&&sfe(r,e)}function sfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var LK=w((Z7e,TK)=>{var X7e=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=PK():lI=NK();TK.exports=SS;SS.sync=ofe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function ofe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=w((_7e,GK)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),afe=Dg?";":":",OK=LK(),KK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),UK=(r,e)=>{let t=e.colon||afe,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},HK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=UK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(KK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=MK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];OK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Afe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=UK(r,e),s=[];for(let o=0;o<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 f=u+i[g];try{if(OK.sync(f,{pathExt:n}))if(e.all)s.push(f);else return f}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw KK(r)};GK.exports=HK;HK.sync=Afe});var qK=w(($7e,vS)=>{"use strict";var jK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=jK;vS.exports.default=jK});var VK=w((eZe,zK)=>{"use strict";var JK=J("path"),lfe=YK(),cfe=qK();function WK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=lfe.sync(r.command,{path:t[cfe({env:t})],pathExt:e?JK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=JK.resolve(n?r.options.cwd:"",o)),o}function ufe(r){return WK(r)||WK(r,!0)}zK.exports=ufe});var XK=w((tZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function gfe(r){return r=r.replace(xS,"^$1"),r}function ffe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=gfe;PS.exports.argument=ffe});var _K=w((rZe,ZK)=>{"use strict";ZK.exports=/^#!(.*)/});var eU=w((iZe,$K)=Line truncated
`,Nn=me(`\\
`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),Bo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=me("\\a",!1),hg=function(){return"a"},Ml="\\b",Qp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),IA=function(){return"\f"},zi="\\n",Ol=me("\\n",!1),Xe=function(){return`
`},pa="\\r",pg=me("\\r",!1),ME=function(){return"\r"},Dp="\\t",OE=me("\\t",!1),ar=function(){return" "},Tn="\\v",Kl=me("\\v",!1),kp=function(){return"\v"},Us=/^[\\'"?]/,da=Je(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},Le="\\x",dg=me("\\x",!1),Ul="\\u",Hs=me("\\u",!1),Hl="\\U",yA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,Ca=Je([["0","7"]],!1,!1),ma=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),bo=nt(),wA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),KE=".",Rp=me(".",!1),Eg=function(m,Q,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+N.join(""))}},Fp=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},UE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",BA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,Q,N){return{type:Q==="*"?"multiplication":"division",right:N}},js=function(m,Q){return Q.reduce((N,U)=>({left:N,...U}),m)},yg=function(m,Q,N){return{type:Q==="+"?"addition":"subtraction",right:N}},bA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),JQ=":-",k1=me(":-",!1),R1=function(m,Q){return{name:m,defaultValue:Q}},WQ=":-}",F1=me(":-}",!1),N1=function(m){return{name:m,defaultValue:[]}},zQ=":+",T1=me(":+",!1),L1=function(m,Q){return{name:m,alternativeValue:Q}},VQ=":+}",M1=me(":+}",!1),O1=function(m){return{name:m,alternativeValue:[]}},XQ=function(m){return{name:m}},K1="$",U1=me("$",!1),H1=function(m){return e.isGlobPattern(m)},G1=function(m){return m},ZQ=/^[a-zA-Z0-9_]/,_Q=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return L()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Y1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),b=0,Oe=0,QA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function L(){return r.substring(Oe,b)}function Z(){return Et(Oe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Ri([lt(m)],r.substring(Oe,b),Q)}function we(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Mn(m,Q)}function me(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Je(m,Q,N){return{type:"class",parts:m,inverted:Q,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var Q=QA[m],N;if(Q)return Q;for(N=m-1;!QA[N];)N--;for(Q=QA[N],Q={line:Q.line,column:Q.column};N<m;)r.charCodeAt(N)===10?(Q.line++,Q.column=1):Q.column++,N++;return QA[m]=Q,Q}function Et(m,Q){var N=it(m),U=it(Q);return{start:{offset:m,line:N.line,column:N.column},end:{offset:Q,line:U.line,column:U.column}}}function be(m){b<d||(b>d&&(d=b,E=[]),E.push(m))}function Mn(m,Q){return new Zl(m,null,null,Q)}function Ri(m,Q,N){return new Zl(Zl.buildMessage(m,Q),m,Q,N)}function SA(){var m,Q;return m=b,Q=Or(),Q===t&&(Q=null),Q!==t&&(Oe=m,Q=s(Q)),m=Q,m}function Or(){var m,Q,N,U,ce;if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Oe=m,Q=o(Q,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U===t&&(U=null),U!==t?(Oe=m,Q=a(Q,U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function os(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=Or(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=l(N),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Ea(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&be(f))),m}function Kr(){var m,Q,N;return m=b,Q=j1(),Q!==t?(N=fge(),N===t&&(N=null),N!==t?(Oe=m,Q=h(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function fge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=hge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=p(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function hge(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&be(y)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&be(v))),m}function j1(){var m,Q,N;return m=b,Q=Cge(),Q!==t?(N=pge(),N===t&&(N=null),N!==t?(Oe=m,Q=D(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function pge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=dge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=j1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=T(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;retLine truncated
\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;o<this.buffer.length&&`\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),IU.repeat(" ",e)+i+a+s+`
`+IU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`:
`+t)),i};yU.exports=HS});var si=w((vZe,bU)=>{"use strict";var BU=Ng(),Mfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ofe=["scalar","sequence","mapping"];function Kfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Ufe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Mfe.indexOf(t)===-1)throw new BU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Kfe(e.styleAliases||null),Ofe.indexOf(this.kind)===-1)throw new BU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}bU.exports=Ufe});var rc=w((xZe,SU)=>{"use strict";var QU=tc(),dI=Ng(),Hfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Gfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<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 dI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=GS(this,"implicit",[]),this.compiledExplicit=GS(this,"explicit",[]),this.compiledTypeMap=Gfe(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 dI("Wrong number of arguments for Schema.create function")}if(e=QU.toArray(e),t=QU.toArray(t),!e.every(function(i){return i instanceof Tg}))throw new dI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Hfe}))throw new dI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Tg({include:e,explicit:t})};SU.exports=Tg});var xU=w((PZe,vU)=>{"use strict";var Yfe=si();vU.exports=new Yfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var DU=w((DZe,PU)=>{"use strict";var jfe=si();PU.exports=new jfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var RU=w((kZe,kU)=>{"use strict";var qfe=si();kU.exports=new qfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((RZe,FU)=>{"use strict";var Jfe=rc();FU.exports=new Jfe({explicit:[xU(),DU(),RU()]})});var TU=w((FZe,NU)=>{"use strict";var Wfe=si();function zfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Vfe(){return null}function Xfe(r){return r===null}NU.exports=new Wfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:zfe,construct:Vfe,predicate:Xfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var MU=w((NZe,LU)=>{"use strict";var Zfe=si();function _fe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function $fe(r){return r==="true"||r==="True"||r==="TRUE"}function ehe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}LU.exports=new Zfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_fe,construct:$fe,predicate:ehe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var KU=w((TZe,OU)=>{"use strict";var the=tc(),rhe=si();function ihe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function nhe(r){return 48<=r&&r<=55}function she(r){return 48<=r&&r<=57}function ohe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<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(!ihe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!nhe(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(!she(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 Qhe(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 She(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),ic?ic.from?ic.from(a):new ic(a):a}function vhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<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 xhe(r){return ic&&ic.isBuffer(r)}_U.exports=new bhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Qhe,construct:She,predicate:xhe,represent:vhe})});var t2=w((YZe,e2)=>{"use strict";var Phe=si(),Dhe=Object.prototype.hasOwnProperty,khe=Object.prototype.toString;function Rhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,khe.call(n)!=="[object Object]")return!1;for(s in n)if(Dhe.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 Fhe(r){return r!==null?r:[]}e2.exports=new Phe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Rhe,construct:Fhe})});var i2=w((jZe,r2)=>{"use strict";var Nhe=si(),The=Object.prototype.toString;function Lhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],The.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function Mhe(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}r2.exports=new Nhe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Lhe,construct:Mhe})});var s2=w((qZe,n2)=>{"use strict";var Ohe=si(),Khe=Object.prototype.hasOwnProperty;function Uhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Khe.call(t,e)&&t[e]!==null)return!1;return!0}function Hhe(r){return r!==null?r:{}}n2.exports=new Ohe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Uhe,construct:Hhe})});var Lg=w((JZe,o2)=>{"use strict";var Ghe=rc();o2.exports=new Ghe({include:[jS()],implicit:[zU(),XU()],explicit:[$U(),t2(),i2(),s2()]})});var A2=w((WZe,a2)=>{"use strict";var Yhe=si();function jhe(){return!0}function qhe(){}function Jhe(){return""}function Whe(r){return typeof r>"u"}a2.exports=new Yhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:jhe,construct:qhe,predicate:Whe,represent:Jhe})});var c2=w((zZe,l2)=>{"use strict";var zhe=si();function Vhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Xhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Zhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function _he(r){return Object.prototype.toString.call(r)==="[object RegExp]"}l2.exports=new zhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Vhe,construct:Xhe,predicate:_he,represent:Zhe})});var f2=w((VZe,g2)=>{"use strict";var mI;try{u2=J,mI=u2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var u2,$he=si();function epe(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function tpe(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function rpe(r){return r.toString()}function ipe(r){return Object.prototype.toString.call(r)==="[object Function]"}g2.exports=new $he("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var Xp=w((ZZe,p2)=>{"use strict";var h2=rc();p2.exports=h2.DEFAULT=new h2({include:[Lg()],explicit:[A2(),c2(),f2()]})});var N2=w((_Ze,Zp)=>{"use strict";var Ba=tc(),w2=Ng(),npe=wU(),B2=Lg(),spe=Xp(),kA=Object.prototype.hasOwnProperty,EI=1,b2=2,Q2=3,II=4,JS=1,ope=2,d2=3,ape=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\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 fpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var x2=new Array(256),P2=new Array(256);for(nc=0;nc<256;nc++)x2[nc]=m2(nc)?1:0,P2[nc]=m2(nc);var nc;function hpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||spe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function D2(r,e){return new w2(e,new npe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw D2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,D2(r,e))}var E2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],S2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),v2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function DA(r,e,t,i){var n,s,o,a;if(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||ft(r,"expected valid JSON character");else ape.test(a)&&ft(r,"the stream contains non-printable characters");r.result+=a}}function I2(r,e,t,i){var n,s,o,a;for(Ba.isObject(t)||ft(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 Og(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])&&ft(r,"nested arrays are not supported inside keys"),typeof n=="object"&&C2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&C2(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)I2(r,e,s[l],t);else I2(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,ft(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++):ft(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function zr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;sc(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(xo(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&&yI(r,"deficient indentation"),i}function wI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||fn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=Ba.repeat(`
`,e-1))}function ppe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||Mg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Mg(h))break;if(xo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(DA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return DA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function dpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(DA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else xo(t)?(DA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function Cpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return DA(r,t,r.position,!0),r.position++,!0;if(a===92){if(DA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),xo(a))zr(r,!1,e);else if(a<256&&x2[a])r.result+=P2[a],r.position++;else if((o=upe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=cpe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=fpe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else xo(a)?(DA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function mpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Kg(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Kg(r,e,EI,!1,!0),C=r.result),g?Og(r,s,f,p,h,C):c?s.push(Og(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function Epe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?d2:ope:ft(r,"repeat of a chomping mode identifier");else if((u=gpe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!xo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),xo(g)){l++;continue}if(r.lineIndent<a){n===d2?r.result+=Ba.repeat(`
`,s?1+l:l):n===JS&&s&&(r.result+=`
`);break}for(i?sc(g)?(c=!0,r.result+=Ba.repeat(`
`,s?1+l:l)):c?(c=!1,r.result+=Ba.repeat(`
`,l+1)):l===0?s&&(r.result+=" "):r.result+=Ba.repeat(`
`,l):r.result+=Ba.repeat(`
`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!xo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);DA(r,t,r.position,!1)}return!0}function y2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!fn(o)));){if(a=!0,r.position++,zr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,Q2,!1,!0),s.push(r.result),zr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)ft(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 Ipe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,f=null,h=null,p=!1,C=!1,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)&&fn(i))y===63?(p&&(Og(r,c,u,g,f,null),g=f=h=null),C=!0,p=!0,n=!0):p?(p=!1,n=!0):ft(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,b2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);sc(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),fn(y)||ft(r,"a whitespace character is expected after the key-value separator within a block mapping"),p&&(Og(r,c,u,g,f,null),g=f=h=null),C=!0,p=!1,n=!1,g=r.tag,f=r.result;else if(C)ft(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(C)ft(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,II,!0,n)&&(p?f=r.result:h=r.result),p||(Og(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return p&&Og(r,c,u,g,f,null),C&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),C}function ype(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&&ft(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)):ft(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!fn(o);)o===33&&(i?ft(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),S2.test(n)||ft(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),lpe.test(s)&&ft(r,"tag suffix cannot contain flow indicator characters")}return s&&!v2.test(s)&&ft(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:ft(r,'undeclared tag handle "'+n+'"'),!0}function wpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&&ft(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!fn(t)&&!Mg(t);)t=r.input.charCodeAt(++r.position);return r.position===e&&ft(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Bpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!fn(i)&&!Mg(i);)i=r.input.charCodeAt(++r.position);return r.position===e&&ft(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||ft(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],zr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,f,h,p,C;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=II===t||Q2===t,i&&zr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;ype(r)||wpe(r);)zr(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||II===t)&&(EI===t||b2===t?p=e:p=e+1,C=r.position-r.lineStart,l===1?a&&(y2(r,C)||Ipe(r,C,p))||mpe(r,p)?u=!0:(o&&Epe(r,p)||dpe(r,p)||Cpe(r,p)?u=!0:Bpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&&ft(r,"alias node should not have any properties")):ppe(r,p,EI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&y2(r,C))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&&ft(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g<f;g+=1)if(h=r.implicitTypes[g],h.resolve(r.result)){r.result=h.construct(r.result),r.tag=h.tag Line truncated
`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new hpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,ft(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;)bpe(t);return t.documents}function R2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=k2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function F2(r,e){var t=k2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new w2("expected a single document in the stream, but found more")}}function Qpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),R2(r,e,Ba.extend({schema:B2},t))}function Spe(r,e){return F2(r,Ba.extend({schema:B2},e))}Zp.exports.loadAll=R2;Zp.exports.load=F2;Zp.exports.safeLoadAll=Qpe;Zp.exports.safeLoad=Spe});var iH=w(($Ze,_S)=>{"use strict";var $p=tc(),ed=Ng(),vpe=Xp(),xpe=Lg(),G2=Object.prototype.toString,Y2=Object.prototype.hasOwnProperty,Ppe=9,_p=10,Dpe=13,kpe=32,Rpe=33,Fpe=34,j2=35,Npe=37,Tpe=38,Lpe=39,Mpe=42,q2=44,Ope=45,J2=58,Kpe=61,Upe=62,Hpe=63,Gpe=64,W2=91,z2=93,Ype=96,V2=123,jpe=124,X2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var qpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Jpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;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&&Y2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function T2(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 ed("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+$p.repeat("0",i-e.length)+e}function Wpe(r){this.schema=r.schema||vpe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=$p.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=Jpe(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 L2(r,e){for(var t=$p.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`
`+$p.repeat(" ",r.indent*e)}function zpe(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===Ppe}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 Vpe(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Dpe&&r!==_p}function M2(r,e){return Ug(r)&&r!==65279&&r!==q2&&r!==W2&&r!==z2&&r!==V2&&r!==X2&&r!==J2&&(r!==j2||e&&Vpe(e))}function Xpe(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Ope&&r!==Hpe&&r!==J2&&r!==q2&&r!==W2&&r!==z2&&r!==V2&&r!==X2&&r!==j2&&r!==Tpe&&r!==Mpe&&r!==Rpe&&r!==jpe&&r!==Kpe&&r!==Upe&&r!==Lpe&&r!==Fpe&&r!==Npe&&r!==Gpe&&r!==Ype}function Z2(r){var e=/^\n* /;return e.test(r)}var _2=1,$2=2,eH=3,tH=4,BI=5;function Zpe(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,f=Xpe(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 BI;a=s>0?r.charCodeAt(s-1):null,f=f&&M2(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 BI;a=s>0?r.charCodeAt(s-1):null,f=f&&M2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?_2:$2:t>9&&Z2(r)?BI:c?tH:eH}function _pe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&qpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return zpe(r,l)}switch(Zpe(e,o,r.indent,s,a)){case _2:return e;case $2:return"'"+e.replace(/'/g,"''")+"'";case eH:return"|"+O2(e,r.indent)+K2(L2(e,n));case tH:return">"+O2(e,r.indent)+K2(L2($pe(e,s),n));case BI:return'"'+ede(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function O2(r,e){var t=Z2(r)?String(e):"",i=r[r.length-1]===`
`,n=i&&(r[r.length-2]===`
`||r===`
`),s=n?"+":i?"":"-";return t+s+`
`}function K2(r){return r[r.length-1]===`
`?r.slice(0,-1):r}function $pe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(`
`);return c=c!==-1?c:r.length,t.lastIndex=c,U2(r.slice(0,c),e)}(),n=r[0]===`
`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?`
`:"")+U2(l,e),n=s}return i}function U2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=`
`+r.slice(n,s),n=s+1),o=a;return l+=`
`,r.length-n>e&&o>n?l+=r.slice(n,o)+`
`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function ede(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+=T2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||T2(t)}return e}function tde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)oc(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function rde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)oc(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 ide(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],oc(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function nde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)f="",(!i||a!==0)&&(f+=VS(r,e)),c=o[a],u=t[c],oc(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)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function H2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<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,G2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(Y2.call(a.represent,l))i=a.represent[l](e,l);else throw new ed("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,H2(r,t,!1)||H2(r,t,!0);var o=G2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(nde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ide(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(rde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(tde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&_pe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function sde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<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 rH(r,e){e=e||{};var t=new Wpe(e);return t.noRefs||sde(r,t),oc(t,0,r,!0,!0)?t.dump+`
`:""}function ode(r,e){return rH(r,$p.extend({schema:xpe},e))}_S.exports.dump=rH;_S.exports.safeDump=ode});var sH=w((e_e,Fr)=>{"use strict";var bI=N2(),nH=iH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=bI.load;Fr.exports.loadAll=bI.loadAll;Fr.exports.safeLoad=bI.safeLoad;Fr.exports.safeLoadAll=bI.safeLoadAll;Fr.exports.dump=nH.dump;Fr.exports.safeDump=nH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=QI("scan");Fr.exports.parse=QI("parse");Fr.exports.compose=QI("compose");Fr.exports.addConstructor=QI("addConstructor")});var aH=w((t_e,oH)=>{"use strict";var ade=sH();oH.exports=ade});var lH=w((r_e,AH)=>{"use strict";function Ade(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}Ade(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,f;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,f=1;g<u.length;g++)u[g-1]!==u[g]&&(u[f]=u[g],f++);u.length=f}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function lde(r,e){e=e!==void 0?e:{};var t={},i={Start:Hs},n=Hs,s=function(R){return[].concat(...R)},o="-",a=ar("-",!1),l=function(R){return R},c=function(R){return Object.assign({},...R)},u="#",g=ar("#",!1),f=Kl(),h=function(){return{}},p=":",C=ar(":",!1),y=function(R,q){return{[R]:q}},B=",",v=ar(",",!1),D=function(R,q){return q},T=function(R,q,Ce){return Object.assign({},...[R].concat(q).map(Ke=>({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Us("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===bA*yg},A=function(R){return R.length===(bA+1)*yg},Ae=function(){return bA++,!0},ge=function(){return bA--,!0},re=function(){return pg()},M=Us("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Tn(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,ke=Tn(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return pg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,Be=Tn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,ae=Tn(["\r",`
`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Mr=Us("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ks=/^[^"\\\0-\x1F\x7F]/,pr=Tn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),fa=function(){return'"'},dA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},CA="\\/",ha=ar("\\/",!1),wp=function(){return"/"},mA="\\b",EA=ar("\\b",!1),wr=function(){return"\b"},Tl="\\f",ug=ar("\\f",!1),yo=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),bp=function(){return`
`},vr="\\r",se=ar("\\r",!1),wo=function(){return"\r"},Fn="\\t",fg=ar("\\t",!1),bt=function(){return" "},Ll="\\u",Nn=ar("\\u",!1),ns=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},ss=/^[0-9a-fA-F]/,gt=Tn([["0","9"],["a","f"],["A","F"]],!1,!1),Bo=Us("blank space"),At=/^[ \t]/,ln=Tn([" "," "],!1,!1),S=Us("white space"),Lt=/^[ \t\n\r]/,hg=Tn([" "," ",`
`,"\r"],!1,!1),Ml=`\r
`,Qp=ar(`\r
`,!1),Sp=`
`,vp=ar(`
`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,IA=[{line:1,column:1}],zi=0,Ol=[],Xe=0,pa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function ME(){return cn(yt,G)}function Dp(R,q){throw q=q!==void 0?q:cn(yt,G),Ul([Us(R)],r.substring(yt,G),q)}function OE(R,q){throw q=q!==void 0?q:cn(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Tn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Kl(){return{type:"any"}}function kp(){return{type:"end"}}function Us(R){return{type:"other",description:R}}function da(R){var q=IA[R],Ce;if(q)return q;for(Ce=R-1;!IA[Ce];)Ce--;for(q=IA[Ce],q={line:q.line,column:q.column};Ce<R;)r.charCodeAt(Ce)===10?(q.line++,q.column=1):q.column++,Ce++;return IA[R]=q,q}function cn(R,q){var Ce=da(R),Ke=da(q);return{start:{offset:R,line:Ce.line,column:Ce.column},end:{offset:q,line:Ke.line,column:Ke.column}}}function Le(R){G<zi||(G>zi&&(zi=G,Ol=[]),Ol.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Ul(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=yA();Ce!==t;)q.push(Ce),Ce=yA();return q!==t&&(yt=R,q=s(q)),R=q,R}function yA(){var R,q,Ce,Ke,Re;return R=G,q=ma(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Le(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=Ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Le(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ys(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ys();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ma(),q!==t?(Ce=Gl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ma(),q!==t?(Ce=Gs(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=KE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Le(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=Ca(),Ft!==t?(yt=R,q=T(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=js(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Le(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ke=bo(),Ke!==t?(Re=Hl(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=bo(),Ce!==t?(Ke=Cg(),Ke!==t?(Re=wA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ke=Ys(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ma(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Le($)),R}function rt(){var R,q,Ce;for(RLine truncated
`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(`
`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case`
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value<y.value)throw Error("Range out of order in character class");p.push({from:y.value,to:v.value})}else s(y.value,p),p.push(n("-")),s(v.value,p)}else s(y.value,p)}return this.consumeChar("]"),{type:"Set",complement:C,value:p}},r.prototype.classAtom=function(){switch(this.peekChar()){case"]":case`
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}},r.prototype.classEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:n("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.group=function(){var p=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),p=!1;break;default:this.groupIdx++;break}var C=this.disjunction();this.consumeChar(")");var y={type:"Group",capturing:p,value:C};return p&&(y.idx=this.groupIdx),y},r.prototype.positiveInteger=function(){var p=this.popChar();if(i.test(p)===!1)throw Error("Expecting a positive integer");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.integerIncludingZero=function(){var p=this.popChar();if(t.test(p)===!1)throw Error("Expecting an integer");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.patternCharacter=function(){var p=this.popChar();switch(p){case`
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:n(p)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(p){switch(p===void 0&&(p=0),this.peekChar(p)){case"]":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},r.prototype.isQuantifier=function(){var p=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(p)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.parseHexDigits=function(p){for(var C="",y=0;y<p;y++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");C+=B}var v=parseInt(C,16);return{type:"Character",value:v}},r.prototype.peekChar=function(p){return p===void 0&&(p=0),this.input[this.idx+p]},r.prototype.popChar=function(){var p=this.peekChar(0);return this.consumeChar(),p},r.prototype.consumeChar=function(p){if(p!==void 0&&this.input[this.idx]!==p)throw Error("Expected: '"+p+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(`
`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var IEe=$I(),ey={},yEe=new IEe.RegExpParser;function wEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=yEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=wEe;function BEe(){ey={}}Xg.clearRegExpParserCache=BEe});var qY=w(Cn=>{"use strict";var bEe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var GY=$I(),gs=Gt(),YY=ty(),xa=Rv(),jY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations:
`;function QEe(r,e){e===void 0&&(e=!1);try{var t=(0,YY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===jY)e&&(0,gs.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` >
`)+` Complement Sets cannot be automatically optimized.
This will disable the lexer's first char optimizations.
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=`
This will disable the lexer's first char optimizations.
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,gs.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+`
`+(" Failed parsing: < "+r.toString()+` >
`)+(" Using the regexp-to-ast library version: "+GY.VERSION+`
`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=QEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)iy(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ry(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(jY);(0,gs.forEach)(o.value,function(c){if(typeof c=="number")ry(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ry(g,e,t);else{for(var g=u.from;g<=u.to&&g<xa.minOptimizationVal;g++)ry(g,e,t);if(u.to>=xa.minOptimizationVal)for(var f=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,h=u.to,p=(0,xa.charCodeToOptimizedIndex)(f),C=(0,xa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}Cn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&SEe(r,e)}function SEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function HY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var vEe=function(r){bEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?HY(t,this.targetCharCodes)===void 0&&(this.found=!0):HY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(GY.BaseRegExpVisitor);function xEe(r,e){if(e instanceof RegExp){var t=(0,YY.getRegExpAst)(e),i=new vEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=xEe});var Rv=w(Ve=>{"use strict";var JY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var WY=$I(),ir=Bd(),xe=Gt(),Zg=qY(),zY=ty(),ko="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function PEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=PEe;function DEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=DEe;function kEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){HEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[ko]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[ko];if((0,xe.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Tv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return T}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=Aj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(oj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Mv),h=(0,xe.map)(s,sj),p=(0,xe.reduce)(i,function(v,D){var T=D.GROUP;return(0,xe.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Lv(H);Fv(v,j,C[T])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Lv(_);$!==A&&($=A,Fv(v,A,C[T]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern.
`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library.
This will disable the lexer's first char optimizations.
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[T])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing <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 v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=kEe;function REe(r,e){var t=[],i=VY(r);t=t.concat(i.errors);var n=XY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(FEe(s)),t=t.concat(rj(s)),t=t.concat(ij(s,e)),t=t.concat(nj(s)),t}Ve.validatePatterns=REe;function FEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[ko])});return e=e.concat(ZY(t)),e=e.concat($Y(t)),e=e.concat(ej(t)),e=e.concat(tj(t)),e=e.concat(_Y(t)),e}function VY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,ko)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=VY;function XY(r){var e=(0,xe.filter)(r,function(n){var s=n[ko];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=XY;var NEe=/[^\\][\$]/;function ZY(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return NEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error:
Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=_Y;var TEe=/[^\\[][\^]|^\^/;function $Y(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return TEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error:
Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=$Y;function ej(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=ej;function tj(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=tj;function rj(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=rj;function ij(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=ij;function nj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&MEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&LEe(o,i.PATTERN)){var c="Token: ->"+l.name+`<- can never be matched.
`+("Because it appears AFTER the Token Type ->"+i.name+"<-")+`in the lexer's definition.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=nj;function LEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function MEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Tv;function OEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist
`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`>
`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=OEe;function KEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[ko]===ir.Lexer.NA}),a=Aj(t);return e&&(0,xe.forEach)(o,function(l){var c=oj(l,a);if(c!==!1){var u=aj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found.
This Lexer has been defined to track line and column information,
But none of the Token Types can be identified as matching a line terminator.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=KEe;function UEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=UEe;function Mv(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Mv;function sj(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=sj;Ve.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 oj(r,e){if((0,xe.has)(r,"LINE_BREAKS"))return!1;if((0,xe.isRegExp)(r.PATTERN)){try{(0,Zg.canMatchCharCode)(e,r.PATTERN)}catch(t){return{issue:ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if((0,xe.isString)(r.PATTERN))return!1;if(Mv(r))return{issue:ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function aj(r,e){if(e.issue===ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
`+(" The problem is in the <"+r.name+`> Token Type
`)+(" Root cause: "+e.errMsg+`.
`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
`+(" The problem is in the <"+r.name+`> Token Type
`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=aj;function Aj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Lv(r){return r<Ve.minOptimizationVal?r:ny[r]}Ve.charCodeToOptimizedIndex=Lv;function HEe(){if((0,xe.isEmpty)(ny)){ny=new Array(65536);for(var r=0;r<65536;r++)ny[r]=r>255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function GEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=GEe;function YEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=YEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function jEe(r){var e=lj(r);cj(e),gj(e),uj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=jEe;function lj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=lj;function cj(r){(0,Zr.forEach)(r,function(e){fj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Ov(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ov(e)||(e.CATEGORIES=[]),hj(e)||(e.categoryMatches=[]),pj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=cj;function uj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=uj;function gj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=gj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function fj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=fj;function Ov(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Ov;function hj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=hj;function pj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=pj;function qEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=qEe});var Uv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),JEe=_g(),WEe=Uv(),zEe=ty(),VEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(VEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:WEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var XEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=_s.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,JEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`-----------------------
`);throw new Error(`Errors detected in definition of Lexer:
`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(_s.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid <positionTracking> config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized.
Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,zEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`-----------------------
`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,M=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var fa=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&fa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;j<H;){c=null;var qe=T.charCodeAt(j),ne=Ne(qe),Y=ne.length;for(n=0;n<Y;n++){ae=ne[n];var he=ae.pattern;u=null;var ie=ae.short;if(ie!==!1?qe===ie&&(c=he):ae.isCustom===!0?(D=he.exec(T,j,W,ge),D!==null?(c=D[0],D.payload!==void 0&&(u=D.payload)):c=null):(this.updateLastIndex(he,j),c=this.match(he,e,j)),c!==null){if(l=ae.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var _e=ue[l[o]],Pt=_e.pattern;if(g=null,_e.isCustom===!0?(D=Pt.exec(T,j,W,ge),D!==null?(a=D[0],D.payload!==void 0&&(g=D.payload)):a=null):(this.updateLastIndex(Pt,j),a=this.match(Pt,e,j)),a&&a.length>c.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Mr=void 0,ii=void 0;M.lastIndex=0;do Mr=M.test(c),Mr===!0&&(ii=M.lastIndex-1,It++);while(Mr===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j<H;)for(B=T.charCodeAt(j),e=this.chopInput(e,1),j++,s=0;s<F;s++){var Ks=ue[s],he=Ks.pattern,ie=Ks.short;if(ie!==!1?T.charCodeAt(j)===ie&&(ni=!0):Ks.isCustom===!0?ni=he.exec(T,j,W,ge)!==null:(this.updateLastIndex(he,j),ni=he.exec(e)!==null),ni===!0)break}y=j-gi,v=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(T,gi,y,hr,fi),_.push({offset:gi,line:hr,column:fi,length:y,message:v})}}return this.hasCustom||(W.length=$),{tokens:W,groups:ge,errors:_}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, thi Line truncated
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,dj)&&(t.CATEGORIES=r[dj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,Cj)&&(t.LABEL=r[Cj]),(0,$s.has)(r,mj)&&(t.GROUP=r[mj]),(0,$s.has)(r,Ij)&&(t.POP_MODE=r[Ij]),(0,$s.has)(r,Ej)&&(t.PUSH_MODE=r[Ej]),(0,$s.has)(r,yj)&&(t.LONGER_ALT=r[yj]),(0,$s.has)(r,wj)&&(t.LINE_BREAKS=r[wj]),(0,$s.has)(r,Bj)&&(t.START_CHARS_HINT=r[Bj]),t}Qi.EOF=Qj({name:"EOF",pattern:ZEe.Lexer.NA});(0,Hv.augmentTokenTypes)([Qi.EOF]);function rIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=rIe;function iIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=iIe});var mn=w(zt=>{"use strict";var Pa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),nIe=TA(),Ro=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=Ro;var Sj=function(r){Pa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ro);zt.NonTerminal=Sj;var vj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Rule=vj;var xj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Alternative=xj;var Pj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Option=Pj;var Dj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatory=Dj;var kj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatoryWithSeparator=kj;var Rj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Repetition=Rj;var Fj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionWithSeparator=Fj;var Nj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ro);zt.Alternation=Nj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function sIe(r){return(0,Ar.map)(r,Qd)}zt.serializeGrammar=sIe;function Qd(r){function e(s){return(0,Ar.map)(s,Qd)}if(r instanceof Sj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof xj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Pj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Dj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceo Line truncated
but found: '`+a+"'";if(n)return o+n+l;var c=(0,eo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,eo.map)(c,function(h){return"["+(0,eo.map)(h,function(p){return(0,ef.tokenLabel)(p)}).join(", ")+"]"}),g=(0,eo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences:
`+g.join(`
`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,eo.first)(t).image,a=`
but found: '`+o+"'";if(i)return s+i+a;var l=(0,eo.map)(e,function(u){return"["+(0,eo.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences::
`+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,Jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+`
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,eo.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,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in <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,Jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens.
This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in <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=IIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar.
`+("rule: <"+e+`> can be invoked from itself (directly or indirectly)
`)+(`without consuming any Tokens. The grammar path that causes this is:
`+i+`
`)+` To fix this refactor your grammar to remove the left recursion.
see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Vj=w(LA=>{"use strict";var yIe=LA&&LA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(LA,"__esModule",{value:!0});LA.GastRefResolverVisitor=LA.resolveGrammar=void 0;var wIe=jn(),Wj=Gt(),BIe=$g();function bIe(r,e){var t=new zj(r,e);return t.resolveRefs(),t.errors}LA.resolveGrammar=bIe;var zj=function(r){yIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Wj.forEach)((0,Wj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:wIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(BIe.GAstVisitor);LA.GastRefResolverVisitor=zj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var Xj=Ay(),Kt=Gt(),QIe=qv(),kt=mn(),Zj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Xj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Zj;var SIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,QIe.first)(o),this.found=!0}},e}(Zj);Nr.NextAfterTokenWalker=SIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Xj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var vIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.r Line truncated
`+(""+s.join(`
`).replace(/\n/g,`
`)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=mye;function Eye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=Pq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=Eye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function Dq(r,e){var t=kq(r,e),i=Rq(r,e);return t.concat(i)}Si.validateVisitor=Dq;function kq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=kq;var Iye=["constructor","visit","validateVisitor"];function Rq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(Iye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor
There is no Grammar Rule corresponding to this method's name.
`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Rq});var Tq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=Sq(),_r=Gt(),Nq=Fq(),yye=jn(),wye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:yye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid <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,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Nq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Nq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=wye});var Mq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Lq=jn(),Bye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <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)),Td.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Gq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Td.tokenStructuredMatcherNoCategories:Td.tokenStructuredMatcher,(0,Td.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called'
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Hq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Hq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<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(f){return this.invokeRuleCatch(f,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,wy.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,Uq.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,Uq.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(tJ);var Oye={name:`This CSTNode indicates the Parser is in Recording Phase
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Kye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Lye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Mo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+`
This error was thrown during the "grammar recording phase" For more info see:
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Ld.call(this,Mo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatoryWithSeparator,t,e,Vq)},r.prototype.manyInternalRecord=function(e,t){Ld.call(this,Mo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionWithSeparator,t,e,Vq)},r.prototype.orInternalRecord=function(e,t){return Uye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+Zq(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,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Mo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Oye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,_q.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+Zq(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,yn.peek)(this.recordingProdStack),o=new Mo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),tJ},r}();xy.GastRecorder=Kye;function Ld(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Uye(r,e){var t=this;Sy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Mo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Mo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Zq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>Xq){var e=new Error("Invalid DSL Method idx value: <"+r+`>
`+("Idx value must be a none negative value smaller than "+(Xq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var nJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var iJ=Gt(),Hye=jn(),Gye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,iJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Hye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,iJ.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}();Py.PerformanceTracer=Gye});var sJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Yye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Yye});var jn=w(dr=>{"use strict";var AJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var en=Gt(),jye=qj(),oJ=TA(),lJ=xd(),aJ=Cq(),qye=sx(),Jye=Qq(),Wye=Tq(),zye=Mq(),Vye=Kq(),Xye=Yq(),Zye=qq(),_ye=zq(),$ye=rJ(),ewe=nJ(),twe=sJ();dr.END_OF_FILE=(0,oJ.createTokenInstance)(oJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:lJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var rwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(rwe=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function iwe(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=iwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <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:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,aJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,aJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:lJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,jye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected:
`+t.join(`
-------------------------------
`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,twe.applyMixins)(ky,[qye.Recoverable,Jye.LooksAhead,Wye.TreeBuilder,zye.LexerAdapter,Xye.RecognizerEngine,Vye.RecognizerApi,Zye.ErrorHandler,_ye.ContentAssist,$ye.GastRecorder,ewe.PerformanceTracer]);var nwe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=nwe;var swe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=swe});var uJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var cJ=Dv();function owe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/diagrams.css":s,a=`
<!-- This is a generated file -->
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
background-color: hsl(30, 20%, 95%)
}
</style>
`,l=`
<link rel='stylesheet' href='`+o+`'>
`,c=`
<script src='`+n+`vendor/railroad-diagrams.js'><\/script>
<script src='`+n+`src/diagrams_builder.js'><\/script>
<script src='`+n+`src/diagrams_behavior.js'><\/script>
<script src='`+n+`src/main.js'><\/script>
`,u=`
<div id="diagrams" align="center"></div>
`,g=`
<script>
window.serializedGrammar = `+JSON.stringify(r,null," ")+`;
<\/script>
`,f=`
<script>
var diagramsDiv = document.getElementById("diagrams");
main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv);
<\/script>
`;return a+l+c+u+g+f}Ry.createSyntaxDiagramsCode=owe});var hJ=w(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Parser=We.createSyntaxDiagramsCode=We.clearCache=We.GAstVisitor=We.serializeProduction=We.serializeGrammar=We.Terminal=We.Rule=We.RepetitionWithSeparator=We.RepetitionMandatoryWithSeparator=We.RepetitionMandatory=We.Repetition=We.Option=We.NonTerminal=We.Alternative=We.Alternation=We.defaultLexerErrorProvider=We.NoViableAltException=We.NotAllInputParsedException=We.MismatchedTokenException=We.isRecognitionException=We.EarlyExitException=We.defaultParserErrorProvider=We.tokenName=We.tokenMatcher=We.tokenLabel=We.EOF=We.createTokenInstance=We.createToken=We.LexerDefinitionErrorType=We.Lexer=We.EMPTY_ALT=We.ParserDefinitionErrorType=We.EmbeddedActionsParser=We.CstParser=We.VERSION=void 0;var awe=Dv();Object.defineProperty(We,"VERSION",{enumerable:!0,get:function(){return awe.VERSION}});var Fy=jn();Object.defineProperty(We,"CstParser",{enumerable:!0,get:function(){return Fy.CstParser}});Object.defineProperty(We,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Fy.EmbeddedActionsParser}});Object.defineProperty(We,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Fy.ParserDefinitionErrorType}});Object.defineProperty(We,"EMPTY_ALT",{enumerable:!0,get:function(){return Fy.EMPTY_ALT}});var gJ=Bd();Object.defineProperty(We,"Lexer",{enumerable:!0,get:function(){return gJ.Lexer}});Object.defineProperty(We,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return gJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(We,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(We,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(We,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(We,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(We,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(We,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var Awe=xd();Object.defineProperty(We,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Awe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(We,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(We,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(We,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(We,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(We,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var lwe=Uv();Object.defineProperty(We,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return lwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(We,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(We,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(We,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(We,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(We,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(We,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(We,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(We,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(We,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(We,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var fJ=mn();Object.defineProperty(We,"serializeGrammar",{enumerable:!0,get:function(){return fJ.serializeGrammar}});Object.defineProperty(We,"serializeProduction",{enumerable:!0,get:function(){return fJ.serializeProduction}});var cwe=$g();Object.defineProperty(We,"GAstVisitor",{enumerable:!0,get:function(){return cwe.GAstVisitor}});function uwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API.
It performs no action other than printing this message.
Please avoid using it as it will be completely removed in the future`)}We.clearCache=uwe;var gwe=uJ();Object.defineProperty(We,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return gwe.createSyntaxDiagramsCode}});var fwe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();We.Parser=fwe});var CJ=w((Jet,dJ)=>{var Ny=hJ(),Fa=Ny.createToken,pJ=Ny.tokenMatcher,ux=Ny.Lexer,hwe=Ny.EmbeddedActionsParser;dJ.exports=r=>{let e=Fa({name:"LogicalOperator",pattern:ux.NA}),t=Fa({name:"Or",pattern:/\|/,categories:e}),i=Fa({name:"Xor",pattern:/\^/,categories:e}),n=Fa({name:"And",pattern:/&/,categories:e}),s=Fa({name:"Not",pattern:/!/}),o=Fa({name:"LParen",pattern:/\(/}),a=Fa({name:"RParen",pattern:/\)/}),l=Fa({name:"Query",pattern:r}),u=[Fa({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class f extends hwe{constructor(p){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,v=this.CONSUME(e),D=this.SUBRULE2(this.atomicExpression);pJ(v,t)?y=T=>B(T)||D(T):pJ(v,i)?y=T=>!!(B(T)^D(T)):y=T=>B(T)&&D(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:C}=this.CONSUME(l);return y=>y(C)}},{ALT:()=>{this.CONSUME(s);let C=this.SUBRULE(this.atomicExpression);return y=>!C(y)}}])),this.RULE("parenthesisExpression",()=>{let C;return this.CONSUME(o),C=this.SUBRULE(this.expression),this.CONSUME(a),C}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var mJ=w(Ty=>{var pwe=CJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=pwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var IJ=w((zet,EJ)=>{"use strict";EJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke Line truncated
`:`
`)+t,n=i+1,i=r.indexOf(`
`,n)}while(i!==-1);return s+=r.substr(n),s};OJ.exports={stringReplaceAll:xwe,stringEncaseCRLFWithFirstIndex:Pwe}});var jJ=w((rtt,YJ)=>{"use strict";var Dwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,UJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Rwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Fwe=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Fwe.get(r)||r}function Nwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(kwe))t.push(n[2].replace(Rwe,(a,l,c)=>l?GJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Twe(r){UJ.lastIndex=0;let e=[],t;for(;(t=UJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=Nwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function HJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}YJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Dwe,(s,o,a,l,c,u)=>{if(o)n.push(GJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:HJ(r,t)(g)),t.push({inverse:a,styles:Twe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(HJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=w((itt,zJ)=>{"use strict";var Kd=RJ(),{stdout:mx,stderr:Ex}=MJ(),{stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Mwe}=KJ(),qJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Owe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return JJ(e)}},JJ=r=>{let e={};return Owe(e,r),e.template=(...t)=>Hwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return JJ(r)}for(let[r,e]of Object.entries(Kd))uf[r]={get(){let t=Ky(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=Ky(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var WJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of WJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Kd.color[qJ[e]][r](...t),Kd.color.close,this._styler);return Ky(this,i,this._isEmpty)}}};for(let r of WJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Kd.bgColor[qJ[t]][r](...i),Kd.bgColor.close,this._styler);return Ky(this,n,this._isEmpty)}}}}var Kwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},Ky=(r,e,t)=>{let i=(...n)=>Uwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Kwe,i._generator=r,i._styler=e,i._isEmpty=t,i},Uwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Lwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(`
`);return s!==-1&&(e=Mwe(e,n,i,s)),i+e+n},Cx,Hwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=jJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Ud=Oy();Ud.supportsColor=mx;Ud.stderr=Oy({level:Ex?Ex.level:0});Ud.stderr.supportsColor=Ex;Ud.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};zJ.exports=Ud});var Uy=w(Cs=>{"use strict";Cs.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Cs.find=(r,e)=>r.nodes.find(t=>t.type===e);Cs.exceedsLimit=(r,e,t=1,i)=>i===!1||!Cs.isInteger(r)||!Cs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Cs.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Cs.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;Cs.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Cs.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Cs.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Cs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<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 Hy=w((stt,XJ)=>{"use strict";var VJ=Uy();XJ.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&VJ.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&VJ.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var _J=w((ott,ZJ)=>{"use strict";ZJ.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var aW=w((att,oW)=>{"use strict";var $J=_J(),Ic=(r,e,t)=>{if($J(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if($J(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(Ic.cache.hasOwnProperty(l))return Ic.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let C=r+"|"+e;return i.capture?`(${C})`:i.wrap===!1?C:`(?:${C})`}let g=sW(r)||sW(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let C=u<0?Math.abs(u):1;p=eW(C,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=eW(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Gwe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Ic.cache[l]=f,f.result};function Gwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Ywe(r,e){let t=1,i=1,n=rW(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=rW(r,t);for(n=iW(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=iW(e+1,i)-1;return s=[...s],s.sort(Jwe),s}function jwe(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=qwe(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+=Wwe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function eW(r,e,t,i){let n=Ywe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=jwe(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+nW(a.count),o=c+1;continue}t.isPadded&&(g=zwe(c,t,i)),u.string=g+u.pattern+nW(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!tW(e,"string",a)&&s.push(t+a),i&&tW(e,"string",a)&&s.push(t+a)}return s}function qwe(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function Jwe(r,e){return r>e?1:e>r?-1:0}function tW(r,e,t){return r.some(i=>i[e]===t)}function rW(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function iW(r,e){return r-r%Math.pow(10,e)}function nW(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function Wwe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function sW(r){return/^-?(0+)\d/.test(r)}function zwe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Ic.cache={};Ic.clearCache=()=>Ic.cache={};oW.exports=Ic});var Sx=w((Att,pW)=>{"use strict";var Vwe=J("util"),cW=aW(),AW=r=>r!==null&&typeof r=="object"&&!Array.isArray(r 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 xW=w((gtt,vW)=>{"use strict";var aBe=Hy(),{MAX_LENGTH:bW,CHAR_BACKSLASH:vx,CHAR_BACKTICK:ABe,CHAR_COMMA:lBe,CHAR_DOT:cBe,CHAR_LEFT_PARENTHESES:uBe,CHAR_RIGHT_PARENTHESES:gBe,CHAR_LEFT_CURLY_BRACE:fBe,CHAR_RIGHT_CURLY_BRACE:hBe,CHAR_LEFT_SQUARE_BRACKET:QW,CHAR_RIGHT_SQUARE_BRACKET:SW,CHAR_DOUBLE_QUOTE:pBe,CHAR_SINGLE_QUOTE:dBe,CHAR_NO_BREAK_SPACE:CBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:mBe}=BW(),EBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(bW,t.maxLength):bW;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],C=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(C({type:"bos"});u<c;)if(o=s[s.length-1],f=p(),!(f===mBe||f===CBe)){if(f===vx){C({type:"text",value:(e.keepEscaping?f:"")+p()});continue}if(f===SW){C({type:"text",value:"\\"+f});continue}if(f===QW){l++;let y=!0,B;for(;u<c&&(B=p());){if(f+=B,B===QW){l++;continue}if(B===vx){f+=p();continue}if(B===SW&&(l--,l===0))break}C({type:"text",value:f});continue}if(f===uBe){o=C({type:"paren",nodes:[]}),s.push(o),C({type:"text",value:f});continue}if(f===gBe){if(o.type!=="paren"){C({type:"text",value:f});continue}o=s.pop(),C({type:"text",value:f}),o=s[s.length-1];continue}if(f===pBe||f===dBe||f===ABe){let y=f,B;for(e.keepQuotes!==!0&&(f="");u<c&&(B=p());){if(B===vx){f+=B+p();continue}if(B===y){e.keepQuotes===!0&&(f+=B);break}f+=B}C({type:"text",value:f});continue}if(f===fBe){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=C(B),s.push(o),C({type:"open",value:f});continue}if(f===hBe){if(o.type!=="brace"){C({type:"text",value:f});continue}let y="close";o=s.pop(),o.close=!0,C({type:y,value:f}),g--,o=s[s.length-1];continue}if(f===lBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:aBe(o)}]}C({type:"comma",value:f}),o.commas++;continue}if(f===cBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){C({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+f,a=B,o.ranges--;continue}C({type:"dot",value:f});continue}C({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return C({type:"eos"}),n};vW.exports=EBe});var kW=w((ftt,DW)=>{"use strict";var PW=Hy(),IBe=mW(),yBe=yW(),wBe=xW(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>wBe(r,e);Jn.stringify=(r,e={})=>PW(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),IBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=yBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);DW.exports=Jn});var Gd=w((htt,LW)=>{"use strict";var BBe=J("path"),Ko="\\\\/",RW=`[^${Ko}]`,Na="\\.",bBe="\\+",QBe="\\?",Yy="\\/",SBe="(?=.)",FW="[^/]",xx=`(?:${Yy}|$)`,NW=`(?:^|${Yy})`,Px=`${Na}{1,2}${xx}`,vBe=`(?!${Na})`,xBe=`(?!${NW}${Px})`,PBe=`(?!${Na}{0,1}${xx})`,DBe=`(?!${Px})`,kBe=`[^.${Yy}]`,RBe=`${FW}*?`,TW={DOT_LITERAL:Na,PLUS_LITERAL:bBe,QMARK_LITERAL:QBe,SLASH_LITERAL:Yy,ONE_CHAR:SBe,QMARK:FW,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:vBe,NO_DOTS:xBe,NO_DOT_SLASH:PBe,NO_DOTS_SLASH:DBe,QMARK_NO_DOT:kBe,STAR:RBe,START_ANCHOR:NW},FBe={...TW,SLASH_LITERAL:`[${Ko}]`,QMARK:RW,STAR:`${RW}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Ko}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Ko}])${Na}{1,2}(?:[${Ko}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Ko}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Ko}]|$))`,QMARK_NO_DOT:`[^.${Ko}]`,START_ANCHOR:`(?:^|[${Ko}])`,END_ANCHOR:`(?:[${Ko}]|$)`},NBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",spaceLine truncated
Please report this to https://github.com/szmarczak/http2-wrapper/`);p(C)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=aPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});f[on]=0,f[Uf]=!1;let h=()=>f[on]<f.remoteSettings.maxConcurrentStreams,p=!0;f.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let C=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Bs])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&h();)B.shift().resolve(f);let v=this.queue[o];if(v[y].listeners.length===0&&(delete v[y],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Bs]=f.originSet,h()&&(C(),Uk(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);f.destroy();return}f[Bs]=f.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(cPe(B,f,uPe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),C(),l(),f[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{C(),Uk(this.sessions[o],f)})}),f[C5]=f.request,f.request=(y,B)=>{if(f[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[C5](y,B);return f.ref(),++f[on],f[on]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[on],!f.destroyed&&!f.closed&&(gPe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let D=f[on]===0;D&&f.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||f[Uf])?f.close():(Uk(this.sessions[o],f),C())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return zo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),oPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return m5({agent:this,isFree:!0})}get busySessions(){return m5({agent:this,isFree:!1})}};zo.kCurrentStreamsCount=on;zo.kGracefullyClosing=Uf;I5.exports={Agent:zo,globalAgent:new zo}});var Yk=w((vnt,y5)=>{"use strict";var{Readable:fPe}=J("stream"),Gk=class extends fPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};y5.exports=Gk});var jk=w((xnt,w5)=>{"use strict";w5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var b5=w((Pnt,B5)=>{"use strict";B5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var S5=w((Dnt,Q5)=>{"use strict";Q5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var x5=w((Rnt,v5)=>{"use strict";var Hf=(r,e,t)=>{v5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${su Line truncated
`).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(`
`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(`
`)}${a.reverse().join(`
`)}`}}};Yt.RequestError=ei;var oB=class extends ei{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Yt.MaxRedirectsError=oB;var aB=class extends ei{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Yt.HTTPError=aB;var AB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Yt.CacheError=AB;var lB=class extends ei{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Yt.UploadError=lB;var cB=class extends ei{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Yt.TimeoutError=cB;var bC=class extends ei{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Yt.ReadError=bC;var uB=class extends ei{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Yt.UnsupportedProtocolError=uB;var IDe=["socket","connect","continue","information","upgrade","timeout"],gB=class extends c6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Yf]=0,this[qf]=0,this.requestInitialized=!1,this[iB]=new Set,this.redirects=[],this[Jf]=!1,this[nB]=!1,this[BC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Yt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ee.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof $Pe.ReadStream&&await CDe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[BC])g();this[BC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof ei){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ee.default.object(e)&&!Ee.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ee.default.urlInstance(t.url)&&(t.url=new VA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.method),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.headers),Ee.assert.any([Ee.default.string,Ee.default.urlInstance,Ee.default.undefined],t.prefixUrl),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cookieJar),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.searchParams),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.cache),Ee.assert.any([Ee.default.object,Ee.default.number,Ee.default.undefined],t.timeout),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.context),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.hooks),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.decompress),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.ignoreInvalidCookies),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.followRedirect),Ee.assert.any([Ee.default.number,Ee.default.undefined],t.maxRedirects),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.throwHttpErrors),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.http2),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.allowGetBody),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.localAddress),Ee.assert.any([d6.isDnsLookupIpVersion,Ee.default.undefined],t.dnsLookupIpVersion),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.https),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.rejectUnauthorized),t.https&&(Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.https.rejectUnauthorized),Ee.assert.any([Ee.default.function_,Ee.default.undefined],t.https.checkServerIdentity),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificateAuthority),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.key),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificate),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.https.passphrase),Ee.assert.any([Ee.default.string,Ee.default.buffer,Ee.default.array,Ee.default.undefined],t.https.Line truncated
`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};qa.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function G6(r,e){var t=this;qa.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=JDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function Y6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<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 J6=w((lst,q6)=>{q6.exports=j6()});var iV=w((IB,FR)=>{var rV=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,C,y,B;g&&(u?f=J("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var k=Ca(E);return k?I?k:k.toString():(y||(y=rV),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,I?null:"utf8"))},C=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),re(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return"[Emscripten Module object]"});var v=t.print||console.log.bind(console),D=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var T=16;function H(d,E){return E||(E=T),Math.ceil(d/E)*E}var j=0,$=function(d){j=d},V;t.wasmBinary&&(V=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&wr("no native wasm support detected");function _(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ne[d>>0];case"i8":return ne[d>>0];case"i16":return he[d>>1];case"i32":return de[d>>2];case"i64":return de[d>>2];case"float":return Pt[d>>2];case"double":return It[d>>3];default:wr("invalid type for getValue: "+E)}return null}var A,Ae=!1,ge;function re(d,E){d||wr("Assertion failed: "+E)}function M(d){var E=t["_"+d];return re(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function F(d,E,I,k,L){var Z={string:function(it){var Et=0;if(it!=null&&it!==0){var be=(it.length<<2)+1;Et=b(be),oe(it,Et,be)}return Et},array:function(it){var Et=b(it.length);return fe(it,Et),Et}};function te(it){return E==="string"?Fe(it):E==="boolean"?Boolean(it):it}var we=M(d),me=[],Je=0;if(k)for(var nt=0;nt<k.length;nt++){var wt=Z[I[nt]];wt?(Je===0&&(Je=YE()),me[nt]=wt(k[nt])):me[nt]=k[nt]}var lt=we.apply(null,me);return lt=te(lt),Je!==0&&jE(Je),lt}function ue(d,E,I,k){I=I||[];var L=I.every(function(te){return te==="number"}),Z=E!=="string";return Z&&L&&!k?M(d):function(){return F(d,E,I,arguments,k)}}var pe=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function ke(d,E,I){for(var k=E+I,L=E;d[L]&&!(L>=k);)++L;if(L-E>16&&d.subarray&&pe)return pe.decode(d.subarray(E,L));for(var Z="";E<L;){var te=d[E++];if(!(te&128)){Z+=String.fromCharCode(te);continue}var we=d[E++]&63;if((te&224)==192){Z+=String.fromCharCode((te&31)<<6|we);continue}var me=d[E++]&63;if((te&240)==224?te=(te&15)<<12|we<<6|me:te=(te&7)<<18|we<<12|me<<6|d[E++]&63,te<65536)Z+=String.fromCharCode(te);else{var Je=te-65536;Z+=String.fromCharCode(55296|Je>>10,56320|Je&1023)}}return Z}function Fe(d,E){return d?ke(Y,d,E):""}function Ne(d,E,I,k){if(!(k>0))return 0;for(var L=I,Z=I+k-1,te=0;te<d.length;++te){var we=d.charCodeAt(te);if(we>=55296&&we<=57343){var me=d.charCodeAt(++te);we=65536+((we&1023)<<10)|me&1023}if(we<=127){if(I>=Z)break;E[I++]=we}else if(we<=2047){if(I+1>=Z)break;E[I++]=192|we>>6,E[I++]=128|we&63}else if(we<=65535){if(I+2>=Z)break;E[I++]=224|we>>12,E[I++]=128|we>>6&63,E[I++]=128|we&63}else{if(I+3>=Z)break;E[I++]=240|we>>18,E[I++]=128|we>>12&63,E[I++]=128|we>>6&63,E[I++]=128|we&63}}return E[I]=0,I-L}function oe(d,E,I){return Ne(d,Y,E,I)}function le(d){for(var E=0,I=0;I<d.length;++I){var k=d.charCodeAt(I);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|d.charCodeAt(++I)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function Be(d){var E=le(d)+1,I=dt(E);return I&&Ne(d,ne,I,E),I}funct Line truncated
`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=`
`));if(!E)return null;d.input=yA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(ke(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(D(ke(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(D(ke(d.output,0)),d.output=[])}}};function ss(d){for(var E=H(d,65536),I=dt(E);d<E;)ne[I+d++]=0;return I}var gt={ops_table:null,mount:function(d){return gt.createNode(null,"/",16895,0)},createNode:function(d,E,I,k){if(S.isBlkdev(I)||S.isFIFO(I))throw new S.ErrnoError(63);gt.ops_table||(gt.ops_table={dir:{node:{getattr:gt.node_ops.getattr,setattr:gt.node_ops.setattr,lookup:gt.node_ops.lookup,mknod:gt.node_ops.mknod,rename:gt.node_ops.rename,unlink:gt.node_ops.unlink,rmdir:gt.node_ops.rmdir,readdir:gt.node_ops.readdir,symlink:gt.node_ops.symlink},stream:{llseek:gt.stream_ops.llseek}},file:{node:{getattr:gt.node_ops.getattr,setattr:gt.node_ops.setattr},stream:{llseek:gt.stream_ops.llseek,read:gt.stream_ops.read,write:gt.stream_ops.write,allocate:gt.stream_ops.allocate,mmap:gt.stream_ops.mmap,msync:gt.stream_ops.msync}},link:{node:{getattr:gt.node_ops.getattr,setattr:gt.node_ops.setattr,readlink:gt.node_ops.readlink},stream:{}},chrdev:{node:{getattr:gt.node_ops.getattr,setattr:gt.node_ops.setattr},stream:S.chrdev_stream_ops}});var L=S.createNode(d,E,I,k);return S.isDir(L.mode)?(L.node_ops=gt.ops_table.dir.node,L.stream_ops=gt.ops_table.dir.stream,L.contents={}):S.isFile(L.mode)?(L.node_ops=gt.ops_table.file.node,L.stream_ops=gt.ops_table.file.stream,L.usedBytes=0,L.contents=null):S.isLink(L.mode)?(L.node_ops=gt.ops_table.link.node,L.stream_ops=gt.ops_table.link.stream):S.isChrdev(L.mode)&&(L.node_ops=gt.ops_table.chrdev.node,L.stream_ops=gt.ops_table.chrdev.stream),L.timestamp=Date.now(),d&&(d.contents[E]=L,d.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(d){return d.contents?d.contents.subarray?d.contents.subarray(0,d.usedBytes):new Uint8Array(d.contents):new Uint8Array(0)},expandFileStorage:function(d,E){var I=d.contents?d.contents.length:0;if(!(I>=E)){var k=1024*1024;E=Math.max(E,I*(I<k?2:1.125)>>>0),I!=0&&(E=Math.max(E,256));var L=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(L.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&gt.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,k){return gt.createNode(d,E,I,k)},rename:function(d,E,I){if(S.isDir(d.mode)){var k;try{k=S.lookupNode(E,I)}catch{}if(k)for(var L in k.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var k in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var k=gt.createNode(d,E,41471,0);return k.link=I,k},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,k,L){var Z=d.node.contents;if(L>=d.node.usedBytes)return 0;var te=Math.min(d.node.usedBytes-L,k);if(te>8&&Z.subarray)E.set(Z.subarray(L,L+te),I);else for(var we=0;we<te;we++)E[I+we]=Z[L+we];return te},write:function(d,E,I,k,L,Z){if(E.buffer===ne.buffer&&(Z=!1),!k)return 0;var te=d.node;if(te.timestamp=Date.now(),E.subarray&&(!te.contents||te.contents.subarray)){if(Z)return te.contents=E.subarray(I,I+k),te.usedBytes=k,k;if(te.usedBytes===0&&L===0)return te.contents=E.slice(I,I+k),te.usedBytes=k,k;if(L+k<=te.usedBytes)return te.contents.set(E.subarray(I,I+k),L),k}if(gt.expandFileStorage(te,L+k),te.contents.subarray&&E.subarray)te.contents.set(E.subarray(I,I+k),L);else for(var we=0;we<k;we++)te.contents[L+we]=E[I+we];return te.usedBytes=Math.max(te.usedBytes,L+k),k},llseek:function(d,E,I){var k=E;if(I===1?k+=d.position:I===2&&S.isFile(d.node.mode)&&(k+=d.node.usedBytes),k<0)throw new S.ErrnoError(28);return k},allocate:function(d,E,I){gt.expandFileStorage(d.node,E+I) Line truncated
`,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};OC.parse=(r,e,t)=>new OC($Re(eFe(r),e),t);var $Re=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,eFe=r=>r.replace(/\n$/,"").split(`
`).reduce(tFe,Object.create(null)),tFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};j9.exports=OC});var nh=w((Mot,q9)=>{q9.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var zB=w((Oot,J9)=>{"use strict";J9.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=w((Uot,W9)=>{"use strict";var VB=["|","<",">","?",":"],QF=VB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),rFe=new Map(VB.map((r,e)=>[r,QF[e]])),iFe=new Map(QF.map((r,e)=>[r,VB[e]]));W9.exports={encode:r=>VB.reduce((e,t)=>e.split(t).join(rFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(iFe.get(t)),r)}});var vF=w((Hot,V9)=>{var{isAbsolute:nFe,parse:z9}=J("path").win32;V9.exports=r=>{let e="",t=z9(r);for(;nFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=z9(r)}return[e,r]}});var Z9=w((Got,X9)=>{"use strict";X9.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var MF=w((qot,uX)=>{"use strict";var nX=_f(),sX=WB(),oX=ih(),Zo=J("fs"),_9=J("path"),Xo=th(),sFe=nh(),aX=(r,e)=>e?(r=Xo(r).replace(/^\.(\/|$)/,""),sFe(e)+"/"+r):Xo(r),oFe=16*1024*1024,$9=Symbol("process"),eX=Symbol("file"),tX=Symbol("directory"),PF=Symbol("symlink"),rX=Symbol("hardlink"),KC=Symbol("header"),XB=Symbol("read"),DF=Symbol("lstat"),ZB=Symbol("onlstat"),kF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),ol=Symbol("close"),_B=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),_o=Symbol("prefix"),iX=Symbol("hadError"),AX=zB(),aFe=SF(),lX=vF(),cX=Z9(),$B=AX(class extends nX{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Xo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||oFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Xo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Xo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=lX(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=aFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Xo(t.absolute||_9.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[ZB](this.statCache.get(this.absolute)):this[DF]()}emit(e,...t){return e==="error"&&(this[iX]=!0),super.emit(e,...t)}[DF](){Zo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[ZB](t)})}[ZB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=lFe(e),this.emit("stat",e),this[$9]()}[$9](){switch(this.type){case"File":return this[eX]();case"Directory":return this[tX]();case"SymbolicLink":return this[PF]();default:return this.end()}}[_B](e){return cX(e,this.type==="Directory",this.portable)}[_o](e){return aX(e,this.prefix)}[KC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new oX({path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,mode:this[_B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new sX({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[_o](this.path),linkpath:this.type==="Link"?this[_o](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portabl Line truncated
`}),a},i})});var K0=w((Uat,BZ)=>{var fTe=vs(),hTe=gC(),pTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,dTe=/^\w*$/;function CTe(r,e){if(fTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||hTe(r)?!0:dTe.test(r)||!pTe.test(r)||e!=null&&r in Object(e)}BZ.exports=CTe});var U0=w((Hat,bZ)=>{var mTe=Fc(),ETe=vn(),ITe="[object AsyncFunction]",yTe="[object Function]",wTe="[object GeneratorFunction]",BTe="[object Proxy]";function bTe(r){if(!ETe(r))return!1;var e=mTe(r);return e==yTe||e==wTe||e==ITe||e==BTe}bZ.exports=bTe});var SZ=w((Gat,QZ)=>{var QTe=ys(),STe=QTe["__core-js_shared__"];QZ.exports=STe});var PZ=w((Yat,xZ)=>{var MN=SZ(),vZ=function(){var r=/[^.]+$/.exec(MN&&MN.keys&&MN.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function vTe(r){return!!vZ&&vZ in r}xZ.exports=vTe});var ON=w((jat,DZ)=>{var xTe=Function.prototype,PTe=xTe.toString;function DTe(r){if(r!=null){try{return PTe.call(r)}catch{}try{return r+""}catch{}}return""}DZ.exports=DTe});var RZ=w((qat,kZ)=>{var kTe=U0(),RTe=PZ(),FTe=vn(),NTe=ON(),TTe=/[\\^$.*+?()[\]{}|]/g,LTe=/^\[object .+?Constructor\]$/,MTe=Function.prototype,OTe=Object.prototype,KTe=MTe.toString,UTe=OTe.hasOwnProperty,HTe=RegExp("^"+KTe.call(UTe).replace(TTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function GTe(r){if(!FTe(r)||RTe(r))return!1;var e=kTe(r)?HTe:LTe;return e.test(NTe(r))}kZ.exports=GTe});var NZ=w((Jat,FZ)=>{function YTe(r,e){return r==null?void 0:r[e]}FZ.exports=YTe});var pl=w((Wat,TZ)=>{var jTe=RZ(),qTe=NZ();function JTe(r,e){var t=qTe(r,e);return jTe(t)?t:void 0}TZ.exports=JTe});var _C=w((zat,LZ)=>{var WTe=pl(),zTe=WTe(Object,"create");LZ.exports=zTe});var KZ=w((Vat,OZ)=>{var MZ=_C();function VTe(){this.__data__=MZ?MZ(null):{},this.size=0}OZ.exports=VTe});var HZ=w((Xat,UZ)=>{function XTe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}UZ.exports=XTe});var YZ=w((Zat,GZ)=>{var ZTe=_C(),_Te="__lodash_hash_undefined__",$Te=Object.prototype,eLe=$Te.hasOwnProperty;function tLe(r){var e=this.__data__;if(ZTe){var t=e[r];return t===_Te?void 0:t}return eLe.call(e,r)?e[r]:void 0}GZ.exports=tLe});var qZ=w((_at,jZ)=>{var rLe=_C(),iLe=Object.prototype,nLe=iLe.hasOwnProperty;function sLe(r){var e=this.__data__;return rLe?e[r]!==void 0:nLe.call(e,r)}jZ.exports=sLe});var WZ=w(($at,JZ)=>{var oLe=_C(),aLe="__lodash_hash_undefined__";function ALe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=oLe&&e===void 0?aLe:e,this}JZ.exports=ALe});var VZ=w((eAt,zZ)=>{var lLe=KZ(),cLe=HZ(),uLe=YZ(),gLe=qZ(),fLe=WZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=lLe;Eh.prototype.delete=cLe;Eh.prototype.get=uLe;Eh.prototype.has=gLe;Eh.prototype.set=fLe;zZ.exports=Eh});var ZZ=w((tAt,XZ)=>{function hLe(){this.__data__=[],this.size=0}XZ.exports=hLe});var Ih=w((rAt,_Z)=>{function pLe(r,e){return r===e||r!==r&&e!==e}_Z.exports=pLe});var $C=w((iAt,$Z)=>{var dLe=Ih();function CLe(r,e){for(var t=r.length;t--;)if(dLe(r[t][0],e))return t;return-1}$Z.exports=CLe});var t_=w((nAt,e_)=>{var mLe=$C(),ELe=Array.prototype,ILe=ELe.splice;function yLe(r){var e=this.__data__,t=mLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():ILe.call(e,t,1),--this.size,!0}e_.exports=yLe});var i_=w((sAt,r_)=>{var wLe=$C();function BLe(r){var e=this.__data__,t=wLe(e,r);return t<0?void 0:e[t][1]}r_.exports=BLe});var s_=w((oAt,n_)=>{var bLe=$C();function QLe(r){return bLe(this.__data__,r)>-1}n_.exports=QLe});var a_=w((aAt,o_)=>{var SLe=$C();function vLe(r,e){var t=this.__data__,i=SLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}o_.exports=vLe});var em=w((AAt,A_)=>{var xLe=ZZ(),PLe=t_(),DLe=i_(),kLe=s_(),RLe=a_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=xLe;yh.prototype.delete=PLe;yh.prototype.get=DLe;yh.prototype.has=kLe;yh.prototype.set=RLe;A_.exports=yh});var H0=w((lAt,l_)=>{var FLe=pl(),NLe=ys(),TLe=FLe(NLe,"Map");l_.exports=TLe});var g_=w((cAt,u_)=>{var c_=VZ(),LLe=em(),MLe=H0();function OLe(){this.size=0,this.__data__={hash:new c_,map:new(MLe||LLe),string:new c_}}u_.exports=OLe});var h_=w((uAt,f_)=>{function KLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}f_.exports=KLe});var tm=w((gAt,p_)=>{var ULe=h_();function HLe(r,e){var t=r.__data__;return ULe(e)?t[typeof e=="string"?"string":"hash"]:t.map}p_.exports=HLe});var C_=w((fAt,d_)=>{var GLe=tm();function YLe(r){var e=GLe(this,r).delete(r);return this.size-=e?1:0,e}d_.exports=YLe});var E_=w((hAt,m_)=>{var jLe=tm();function qLe(r){return jLe(this,r).get(r)}m_.exports=qLe});var y_=w((pAt,I_)=>{var JLe=tm();function WLe(r){return JLe(this,r).has(r)}I_.exports=WLe});var B_=w((dAt,w_)=>{var zLe=tm();function VLe(r,e){var t=zLe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}w_.exports=VLe});var G0=w((CAt,b_)=>{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,Fs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Cre.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,Cre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Fs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Fs({},t,{value:e})),n;return i._validate(e,Fs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Ere.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Ere.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,dre.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,db.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,HHe.default)(e).map(s=>new KHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new OHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,db.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,db.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,db.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};Cb.default=uo;uo.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])uo.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,UHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Fs({},i,{parent:n,path:e}))};for(let r of["equals","is"])uo.prototype[r]=uo.prototype.oneOf;for(let r of["not","nope"])uo.prototype[r]=uo.prototype.notOneOf;uo.prototype.optional=uo.prototype.notRequired});var wre=w(Im=>{"use strict";Object.defineProperty(Im,"__esModule",{value:!0});Im.create=yre;Im.default=void 0;var GHe=YHe(sA());function YHe(r){return r&&r.__esModule?r:{default:r}}var LT=GHe.default,jHe=LT;Im.default=jHe;function yre(){return new LT}yre.prototype=LT.prototype});var Lh=w(mb=>{"use strict";Object.defineProperty(mb,"__esModule",{value:!0});mb.default=void 0;var qHe=r=>r==null;mb.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=nje,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!ije(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=_ie(),r.define=n,r};ZT.exports=$ie();ZT.exports.create=$ie});var ji=w(Tt=>{"use strict";var sje=Object.prototype.toString,Ns=go(),ene=!1,_T=[],tne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Tt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Tt.hasColor=r=>!!r&&Ns.hasColor(r);var bb=Tt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Tt.nativeType=r=>sje.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Tt.isAsyncFn=r=>Tt.nativeType(r)==="asyncfunction";Tt.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Tt.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Tt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Tt.scrollUp=(r=[])=>[r.pop(),...r];Tt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Tt.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Tt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Tt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Tt.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=`
`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Tt.unmute=r=>{let e=r.stack.find(i=>Ns.keys.color.includes(i));return e?Ns[e]:r.stack.find(i=>i.slice(2)==="bg")?Ns[e.slice(2)]:i=>i};Tt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Tt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i));if(e){let i=Ns["bg"+Tt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Ns[t.slice(2).toLowerCase()]||r:Ns.none};Tt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ns.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Ns[tne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=tne[i];return n&&Ns["bg"+Tt.pascal(n)]||r}return Ns.none};Tt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Tt.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Tt.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Tt.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Tt.mixin=(r,e)=>{if(!bb(r))return e;if(!bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);bb(n.value)?r[t]=Tt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Tt.merge=(...r)=>{let e={};for(let t of r)Tt.mixin(e,t);return e};Tt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Tt.define(r,i,n.bind(e)):Tt.define(r,i,n)}};Tt.onExit=r=>{let e=(t,i)=>{ene||(ene=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Tt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Tt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var rne=w(Gh=>{"use strict";Gh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Gh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Gh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Gh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Gh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var sne=w((Qgt,nne)=>{"use strict";var ine=J("readline"),oje=rne(),aje=/^(?:\x1b)([a-zA-Z0-9])$/,Aje=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,lje={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function cje(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function uje(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var Qb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===`
`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=aje.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=Aje.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=lje[s],i.shift=cje(s)||i.shift,i.ctrl=uje(s)||i.ctrl}return i};Qb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ine.createInterface({terminal:!0,input:t});ine.emitKeypressEvents(t,i);let n=(a,l)=>e(a,Qb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};Qb.action=(r,e,t)=>{let i={...oje,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};nne.exports=Qb});var ane=w((Sgt,one)=>{"use strict";one.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),gje(r,t,i)}};function gje(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var lne=w((vgt,Ane)=>{"use strict";var{define:fje,width:hje}=ji(),$T=class{constructor(e){let t=e.options;fje(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=hje(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Ane.exports=$T});var une=w((xgt,cne)=>{"use strict";var eL=ji(),Di=go(),tL={default:Di.noop,noop:Di.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:Di.cyan,success:Di.green,danger:Di.magenta,strong:Di.bold,warning:Di.yellow,muted:Di.dim,disabled:Di.gray,dark:Di.dim.gray,underline:Di.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(Di.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(Di.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(Di))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});for(let t of Object.keys(Di.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Di[t]});return e};cne.exports=tL});var fne=w((Pgt,gne)=>{"use strict";var rL=process.platform==="win32",aA=go(),pje=ji(),iL={...aA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electr Line truncated
`),c=l[0],u=l[l.length-1],f=(i+(t?" "+t:"")).length,h=f<c.length?c.slice(f+1):"";return{header:o,prompt:c,after:h,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=`
`+this.symbols.pointer+" ";typeof e=="string"?t+=e.trim():t+="Invalid input",this.state.error=`
`+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(ou.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,kn.isObject(e)&&(e=e[i.status]||e.pending),kn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return kn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return kn.isObject(s)&&(s=s[i.status]||s.pending),kn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=kn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&kn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return kn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return kn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return kn.resolve(this,e,...t)}get base(){return Lm.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||kn.height(this.stdout,25)}get width(){return this.options.columns||kn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function bje(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function Qje(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?`
`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}wne.exports=Lm});var Qne=w((Rgt,bne)=>{"use strict";var Sje=ji(),Bne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return Bne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};bne.exports=(r,e={})=>{let t=Sje.merge({},Bne,e.roles);return t[r]||t.default}});var Mm=w((Fgt,xne)=>{"use strict";var vje=go(),xje=Yh(),Pje=Qne(),Sb=ji(),{reorder:AL,scrollUp:Dje,scrollDown:kje,isObject:Sne,swap:Rje}=Sb,lL=class extends xje{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Sne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<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=Pje(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Sb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,vje.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.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()}};Pne.exports=uL});var kne=w((Tgt,Dne)=>{"use strict";var Nje=Cl(),Tje=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends Nje{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=Tje(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Dne.exports=gL});var hL=w((Lgt,Rne)=>{"use strict";var fL=ji();Rne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=C=>l(r.styles.black(C)),u=t,g=" ",f=c(g);if(r.blink&&r.blink.off===!0&&(c=C=>C,f=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=""),s===!1&&(p=""),h){let C=r.styles.unstyle(u+p);return u+p+a(i.slice(C.length))}return u+p}});var vb=w((Mgt,Fne)=>{"use strict";var Lje=go(),Mje=Cl(),Oje=hL(),pL=class extends Mje{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,C=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),v=e.message;this.align==="right"&&(v=v.padStart(this.longest+1," ")),this.align==="left"&&(v=v.padEnd(this.longest+1," "));let D=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,D,this.s Line truncated
`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Kne.exports=CL});var Hne=w((Hgt,Une)=>{"use strict";var Jje=xb(),mL=class extends Jje{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Une.exports=mL});var Yne=w((Ggt,Gne)=>{"use strict";var Wje=Cl(),zje=vb(),jh=zje.prototype,EL=class extends Wje{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():jh.dispatch.call(this,e,t)}append(e,t){return jh.append.call(this,e,t)}delete(e,t){return jh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?jh.next.call(this):super.next()}prev(){return this.focused.editable?jh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?jh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Gne.exports=EL});var au=w((Ygt,jne)=>{"use strict";var Vje=Yh(),Xje=hL(),{isPrimitive:Zje}=ji(),IL=class extends Vje{constructor(e){super(e),this.initial=Zje(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(`
`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):Xje(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(`
`)),this.restore()}};jne.exports=IL});var Jne=w((jgt,qne)=>{"use strict";var _je=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Pb=r=>_je(r).filter(Boolean);qne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:Pb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Pb([...s,t]),present:o};case"save":return{past:Pb([...i,t]),present:""};case"remove":return o=Pb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=w((qgt,zne)=>{"use strict";var $je=au(),Wne=Jne(),yL=class extends $je{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Wne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Wne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};zne.exports=yL});var Xne=w((Jgt,Vne)=>{"use strict";var eqe=au(),BL=class extends eqe{format(){return""}};Vne.exports=BL});var _ne=w((Wgt,Zne)=>{"use strict";var tqe=au(),bL=class extends tqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Zne.exports=bL});var ese=w((zgt,$ne)=>{"use strict";var rqe=Cl(),QL=class extends rqe{constructor(e){super({...e,multiple:!0})}};$ne.exports=QL});var vL=w((Vgt,tse)=>{"use strict";var iqe=au(),SL=class extends iqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return 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()}};tse.exports=SL});var ise=w((Xgt,rse)=>{rse.exports=vL()});var sse=w((Zgt,nse)=>{"use strict";var nqe=au(),xL=class extends nqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};nse.exports=xL});var Ase=w((_gt,ase)=>{"use strict";var sqe=go(),oqe=Mm(),ose=ji(),PL=class extends oqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||`
`;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i<this.scale.length;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&&!ose.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=sqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=ose.wordWrap(c,{width:this.widths[0],newline:a}).split(`
`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(`
`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(`
`)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(t),this.write([a,o,c,g,f].filter(Boolean).join(`
`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};ase.exports=PL});var use=w(($gt,cse)=>{"use strict";var lse=go(),aqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",kL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=aqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Aqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});u<s.length-1;){let p=g();if(/^[^\S\n ]$/.test(p)){h({type:"text",value:p});continue}if(p===`
`){h({type:"newline",value:p}),c++;continue}if(p==="\\"){p+=g(),h({type:"text",value:p});continue}if((p==="$"||p==="#"||p==="{")&&f()==="{"){let y=g();p+=y;let B={type:"template",open:p,inner:"",close:"",value:p},v;for(;v=g();){if(v==="}"){f()==="}"&&(v+=g()),B.value+=v,B.close=v;break}v===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=v),B.value+=v,B.inner+=v}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),h(B),l.push(B.key),i.add(B.key);let D=a.find(T=>T.name===B.key);B.field=n.find(T=>T.name===B.key),D||(D=new kL(B),a.push(D)),D.lines.push(B.line-1);continue}let C=o[o.length-1];C.type==="text"&&C.line===c?C.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};cse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Aqe(e,i),a=DL("result",r,e),l=DL("format",r,e),c=DL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output="";let p=async(v,D,T,H)=>{let j=await c(v,D,T,H);return j===!1?"Invalid field "+T.name:j};for(let v of n){let D=v.value,T=v.key;if(v.type!=="template"){D&&(g.output+=D);continue}if(v.type==="template"){let H=s.find(_=>_.name===T);e.required===!0&&g.required.add(H.name);let j=[H.input,g.values[H.value],H.value,D].find(u),V=(H.field||{}).message||v.inner;if(f){let _=await p(g.values[T],g,H,h);if(_&&typeof _=="string"||_===!1){g.invalid.set(T,_);continue}g.invalid.delete(T);let A=await a(g.values[T],g,H,h);g.output+=lse.unstyle(A);continue}H.placeholder=!1;let W=D;D=await l(D,g,H,h),j!==D?(g.values[T]=j,D=r.styles.typing(j),g.missing.delete(V)):(g.values[T]=void 0,j=`<${V}>`,D=r.styles.primary(j),H.placeholder=!0,g.required.has(T)&&g.missing.add(V)),g.missing.has(V)&&g.validating&&(D=r.styles.warning(j)),g.invalid.has(T)&&g.validating&&(D=r.styles.danger(j)),h===g.index&&(W!==D?D=r.styles.underline(D):D=r.styles.heading(lse.unstyle(D))),h++}D&&(g.output+=D)}let C=g.output.split(`
`).map(v=>" "+v),y=s.length,B=0;for(let v of s)g.invalid.has(v.name)&&v.lines.forEach(D=>{C[D][0]===" "&&(C[D]=g.styles.danger(g.symbols.bullet)+C[D].slice(1))}),r.isValue(g.values[v.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=C.join(`
`),g.output}};function DL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var fse=w((eft,gse)=>{"use strict";var lqe=go(),cqe=use(),uqe=Yh(),RL=class extends uqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await cqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,`
`].find(v=>v!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=t[e]||"",C=await this.format(p),y=await this.footer();C&&(c+=" "+C),f&&!C&&this.state.completed===0&&(c+=" "+f),this.clear(n);let B=[u,c,h,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c}
`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=lqe.unstyle(i).split(`
`).map(a=>a.slice(1)).join(`
`);return this.value={values:n,result:o},super.submit()}};gse.exports=RL});var pse=w((tft,hse)=>{"use strict";var gqe="(Use <shift>+<up/down> to sort)",fqe=Cl(),FL=class extends fqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,gqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};hse.exports=FL});var Cse=w((rft,dse)=>{"use strict";var hqe=Mm(),NL=class extends hqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(`
`)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=pqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=D=>(D?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((D,T)=>c(T===e.scaleIdx)).join(a),C=D=>D===e.scaleIdx?g(D):D,y=h+e.scale.map((D,T)=>C(T)).join(l),B=()=>[u,f].filter(Boolean).join(" "),v=()=>[B(),p,y," "].filter(Boolean).join(`
`);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),v()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(`
`)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(`
`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function pqe(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}dse.exports=NL});var Ese=w((ift,mse)=>{mse.exports=wL()});var yse=w((nft,Ise)=>{"use strict";var dqe=xb(),TL=class extends dqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};Ise.exports=TL});var Bse=w((sft,wse)=>{"use strict";var Cqe=Cl(),LL=class extends Cqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};wse.exports=LL});var Qse=w(ML=>{"use strict";var bse=ji(),ui=(r,e)=>{bse.defineExport(ML,r,e),bse.defineExport(ML,r.toLowerCase(),e)};ui("AutoComplete",()=>kne());ui("BasicAuth",()=>One());ui("Confirm",()=>Hne());ui("Editable",()=>Yne());ui("Form",()=>vb());ui("Input",()=>wL());ui("Invisible",()=>Xne());ui("List",()=>_ne());ui("MultiSelect",()=>ese());ui("Numeral",()=>ise());ui("Password",()=>sse());ui("Scale",()=>Ase());ui("Select",()=>Cl());ui("Snippet",()=>fse());ui("Sort",()=>pse());ui("Survey",()=>Cse());ui("Text",()=>Ese());ui("Toggle",()=>yse());ui("Quiz",()=>Bse())});var vse=w((aft,Sse)=>{Sse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:xb(),NumberPrompt:vL(),StringPrompt:au()}});var Km=w((Aft,Pse)=>{"use strict";var xse=J("assert"),KL=J("events"),ml=ji(),ho=class extends KL{constructor(e,t){super(),this.options=ml.merge({},e),this.answers={...t}}register(e,t){if(ml.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}xse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(ml.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=ml.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=ml;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];xse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Yh()}static get prompts(){return Qse()}static get types(){return vse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return ml.mixinEmitter(e,new KL),e}};ml.mixinEmitter(ho,new KL);var OL=ho.prompts;for(let r of Object.keys(OL)){let e=r.toLowerCase(),t=i=>new OL[r](i).run();ho.prompt[e]=t,ho[e]=t,ho[r]||Reflect.defineProperty(ho,r,{get:()=>OL[r]})}var Om=r=>{ml.defineExport(ho,r,()=>ho.types[r])};Om("ArrayPrompt");Om("AuthPrompt");Om("BooleanPrompt");Om("NumberPrompt");Om("StringPrompt");Pse.exports=ho});var Kse=w((Vft,Ose)=>{function wqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}Ose.exports=wqe});var Jh=w((Xft,Use)=>{var Bqe=Y0(),bqe=bh();function Qqe(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?bqe(t,a,l):Bqe(t,a,l)}return t}Use.exports=Qqe});var Gse=w((Zft,Hse)=>{var Sqe=Jh(),vqe=Rh();function xqe(r,e){return r&&Sqe(e,vqe(e),r)}Hse.exports=xqe});var jse=w((_ft,Yse)=>{function Pqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Yse.exports=Pqe});var Jse=w(($ft,qse)=>{var Dqe=vn(),kqe=ab(),Rqe=jse(),Fqe=Object.prototype,Nqe=Fqe.hasOwnProperty;function Tqe(r){if(!Dqe(r))return Rqe(r);var e=kqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Nqe.call(r,i))||t.push(i);return t}qse.exports=Tqe});var Wh=w((eht,Wse)=>{var Lqe=lT(),Mqe=Jse(),Oqe=gm();function Kqe(r){return Oqe(r)?Lqe(r,!0):Mqe(r)}Wse.exports=Kqe});var Vse=w((tht,zse)=>{var Uqe=Jh(),Hqe=Wh();function Gqe(r,e){return r&&Uqe(e,Hqe(e),r)}zse.exports=Gqe});var qL=w((Ym,zh)=>{var Yqe=ys(),$se=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,Xse=$se&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,jqe=Xse&&Xse.exports===$se,Zse=jqe?Yqe.Buffer:void 0,_se=Zse?Zse.allocUnsafe:void 0;function qqe(r,e){if(e)return r.slice();var t=r.length,i=_se?_se(t):new r.constructor(t);return r.copy(i),i 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 Rze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lO(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")
case \`uname\` in
*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 Fze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lO(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let f=t.progArgs?`${t.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
${t.nodePath?`$env_node_path=$env:NODE_PATH
$env:NODE_PATH="${u}"
`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}`;return t.nodePath&&(h+=` else {
$env:NODE_PATH="${g}"
}`),o?h+=`
$ret=0
if (Test-Path ${o}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${o} ${l} ${i} ${f}$args
} else {
& ${o} ${l} ${i} ${f}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${f}$args
} else {
& ${s} ${l} ${i} ${f}$args
}
$ret=$LASTEXITCODE
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:h+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${s} ${l} ${i} ${f}$args
} else {
& ${s} ${l} ${i} ${f}$args
}
${t.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,h}function Nze(r,e){return e.fs_.chmod(r,493)}function lO(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=xle()?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}Dle.exports=AO});var yO=w(($bt,Zle)=>{Zle.exports=J("stream")});var tce=w((eQt,ece)=>{"use strict";function _le(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function e5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?_le(Object(t),!0).forEach(function(i){t5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):_le(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function t5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function r5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function $le(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 i5e(r,e,t){return e&&$le(r.prototype,e),t&&$le(r,t),r}var n5e=J("buffer"),pQ=n5e.Buffer,s5e=J("util"),wO=s5e.inspect,o5e=wO&&wO.custom||"inspect";function a5e(r,e,t){pQ.prototype.copy.call(r,e,t)}ece.exports=function(){function r(){r5e(this,r),this.head=null,this.tail=null,this.length=0}return i5e(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 pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)a5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return 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=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:o5e,value:function(t,i){return wO(this,e5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bO=w((tQt,ice)=>{"use strict";function A5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BO,this,r)):process.nextTick(BO,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(rce,t,s)):process.nextTick(rce,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function rce(r,e){BO(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function l5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BO(r,e){r.emit("error",e)}function c5e(r,e){var t=r._readableState,i=r._writableState;t&&t.a Line truncated
`)),r.linkname&&(e+=_O(" linkpath="+r.linkname+`
`));var t=r.pax;if(t)for(var i in t)e+=_O(" "+i+"="+t[i]+`
`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;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=rVe(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(Rl(r.mode&AVe,6),100),e.write(Rl(r.uid,6),108),e.write(Rl(r.gid,6),116),e.write(Rl(r.size,11),124),e.write(Rl(r.mtime.getTime()/1e3|0,11),136),e[156]=iue+uVe(r.type),r.linkname&&e.write(r.linkname,157),nue.copy(e,QE),sVe.copy(e,$O),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Rl(r.devmajor||0,6),329),e.write(Rl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Rl(oue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-iue,n=fp(r,0,100,e),s=Fl(r,100,8),o=Fl(r,108,8),a=Fl(r,116,8),l=Fl(r,124,12),c=Fl(r,136,12),u=cVe(i),g=r[157]===0?null:fp(r,157,100,e),f=fp(r,265,32),h=fp(r,297,32),p=Fl(r,329,8),C=Fl(r,337,8),y=oue(r);if(y===8*32)return null;if(y!==Fl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(nue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(oVe.compare(r,QE,QE+6)===0&&aVe.compare(r,$O,$O+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:C}}});var fue=w((yQt,gue)=>{var Aue=J("util"),fVe=rue(),SE=e1(),lue=gp().Writable,cue=gp().PassThrough,uue=function(){},aue=function(r){return r&=511,r&&512-r},hVe=function(r,e){var t=new kQ(r,e);return t.end(),t},pVe=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},kQ=function(r,e){this._parent=r,this.offset=e,cue.call(this,{autoDestroy:!1})};Aue.inherits(kQ,cue);kQ.prototype.destroy=function(r){this._parent.destroy(r)};var pA=function(r){if(!(this instanceof pA))return new pA(r);lue.call(this,r),r=r||{},this._offset=0,this._buffer=fVe(),this._missing=0,this._partial=!1,this._onparse=uue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=aue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(aue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=SE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit("error",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=pVe(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,hVe(e,f),n);return}e._stream=new kQ(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Aue.inherits(pA,lue);pA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};pA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};pA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=uue,this._overflow?this._write(this._overflow,void 0,r):r()}};pA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t Line truncated
Wanted: ${t.size}
Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ga.exports.checkStream=JVe;function JVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ga.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&ua(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new MVe({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=ua(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}.
Wanted: ${r.size}
Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=r.size,f.sri=e,l.emit("error",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ga.exports.create=WVe;function WVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Nl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new Zu)}}}var zVe=new Set(PE.getHashes()),Tue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>zVe.has(r));function VVe(r,e){return Tue.indexOf(r.toLowerCase())>=Tue.indexOf(e.toLowerCase())?r:e}});var sm={};ut(sm,{BuildType:()=>M0,Cache:()=>Rt,Configuration:()=>ye,DEFAULT_LOCK_FILENAME:()=>ok,DEFAULT_RC_FILENAME:()=>sk,FormatType:()=>xi,InstallMode:()=>ts,LightReport:()=>ra,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>Ct,MultiFetcher:()=>Df,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>je,ProjectLookup:()=>ck,Report:()=>vi,ReportError:()=>at,SettingsType:()=>ak,StreamReport:()=>Ge,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>ti,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Yr,YarnVersion:()=>Tr,execUtils:()=>Cr,folderUtils:()=>Tw,formatUtils:()=>ee,hashUtils:()=>li,httpUtils:()=>Xt,miscUtils:()=>Ie,nodeUtils:()=>ws,parseMessageName:()=>LI,scriptUtils:()=>Wt,semverUtils:()=>vt,stringifyMessageName:()=>FA,structUtils:()=>P,tgzUtils:()=>mi,treeUtils:()=>es});var Cr={};ut(Cr,{EndStrategy:()=>hk,ExecError:()=>Yw,PipeError:()=>dC,execvp:()=>tk,pipevp:()=>oo});var Wp={};ut(Wp,{AliasFS:()=>So,CustomDir:()=>Hp,CwdFS:()=>qt,DEFAULT_COMPRESSION_LEVEL:()=>Xl,FakeFS:()=>ya,Filename:()=>xt,JailFS:()=>vo,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>jp,NodeFS:()=>$t,PortablePath:()=>Me,PosixFS:()=>vg,ProxiedFS:()=>pi,VirtualFS:()=>Br,ZipFS:()=>Wr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>AI,normalizeLineEndings:()=>Vl,npath:()=>K,opendir:()=>tI,patchFs:()=>bS,ppath:()=>x,statUtils:()=>Mp,toFilename:()=>Jr,xfs:()=>O});var xr={};ut(xr,{SAFE_TIME:()=>sK,S_IFDIR:()=>Jl,S_IFLNK:()=>zl,S_IFMT:()=>qs,S_IFREG:()=>Wl});var qs=61440,Jl=16384,Wl=32768,zl=40960,sK=456789e3;var Mp={};ut(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Tp,DirEntry:()=>cS,StatEntry:()=>Ia,areStatsEqual:()=>gS,clearStats:()=>WE,convertToBigIntStats:()=>zE,makeDefaultStats:()=>Lp,makeEmptyStats:()=>Mge});var uS=Pe(J("util"));var Tp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Ia=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Tp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Tp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Lp(){return new Ia}function Mge(){return WE(Lp())}function WE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function zE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigI 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)}},xA=class extends ya{constructor(){super(x)}};function Wge(r){let e=r.match(/\r?\n/g);if(e===null)return gK.EOL;let t=e.filter(n=>n===`\r
`).length,i=e.length-t;return t>i?`\r
`:`
`}function Vl(r,e){return e.replace(/\r?\n/g,Wge(r))}var Qg=J("fs"),IS=J("stream"),dK=J("util"),yS=Pe(J("zlib"));var fK=Pe(J("fs"));var $t=class extends xA{constructor(t=fK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Me.root}resolve(t){return x.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let Line truncated
`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()}
`;if(typeof r=="string")return`${uH(r)}
`;if(Array.isArray(r)){if(r.length===0)return`[]
`;let i=" ".repeat(e);return`
${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof SI?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=cH.indexOf(l),g=cH.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=>!fH(i[l])).map((l,c)=>{let u=i[l],g=uH(l),f=$S(u,e+1,!0),h=c>0||t?s:"",p=g.length>1024?`? ${g}
${h}:`:`${g}:`,C=f.startsWith(`
`)?f:` ${f}`;return`${h}${p}${C}`}).join(e===0?`
`:"")||`
`;return t?`
${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==`
`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=SI;function ude(r){return r.endsWith(`
`)||(r+=`
`),(0,gH.parse)(r)}var gde=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function fde(r){if(gde.test(r))return ude(r);let e=(0,vI.safeLoad)(r,{schema:vI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function yi(r){return fde(r)}var mz=Pe(pH()),Kw=Pe(Ac());var ud={};ut(ud,{Builtins:()=>hv,Cli:()=>Gn,Command:()=>ve,Option:()=>z,UsageError:()=>Qe,formatMarkdownish:()=>Ti});var tv="",wi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,xI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,EH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var Qe=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i}
${this.candidates.map(({usage:n})=>`$ ${n}`).join(`
`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean:
$ ${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)}`}},PI=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!==wi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var rd=Symbol("clipanion/isOption");function Xi(r){return{...r,[rd]:!0}}function Do(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function DI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function id(r,e){return e.length===1?new Qe(`${r}: ${DI(e[0],!0)}`):new Qe(`${r}:
${e.map(t=>`
- ${DI(t)}`).join("")}`)}function nd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw id(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var ve=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(ls(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw id("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};ve.isOption=rd;ve.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},PH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function Xde(r){let e=r.split(`
`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(`
`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,`
`),r=Xde(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(`
`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(`
`)}).join(`
`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r}
`:""}var fv=Pe(J("tty"),1);function pn(r){nv&&console.log(r)}var DH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function kH(){return{nodes:[_i(),_i(),_i()]}}function Zde(r){let e=kH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)NH(s)||e.nodes.push(oCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)Gg(e,0,n);return e}function Xs(r,e){return r.nodes.push(e),r.nodes.length-1}function _de(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function $de(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)pn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function RH(r,e,t=!1){pn(`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}}];$de(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];pn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){pn(` 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 f=u.statics[o];for(let{to:h,reducer:p}of f)a.push({node:h,state:typeof p<"u"?RI(uv,p,c,o):c}),pn(` Static transition to ${h} found`)}else pn(" No static transition found");else{let f=!1;for(let h of Object.keys(u.statics))if(!!h.startsWith(o)){if(o===h)for(let{to:p,reducer:C}of u.statics[h])a.push({node:p,state:typeof C<"u"?RI(uv,C,c,o):c}),pn(` Static transition to ${p} found`);else for(let{to:p}of u.statics[h])a.push({node:p,state:{...c,remainder:h.slice(o.length)}}),pn(` Static transition to ${p} found (partial match)`);f=!0}f||pn(" No partial static transition found")}if(o!==wi)for(let[f,{to:h,reducer:p}]of u.dynamics)RI(NI,f,c,o)&&(a.push({node:h,state:typeof p<"u"?RI(uv,p,c,o):c}),pn(` Dynamic transition to ${h} found (via ${f})`))}if(a.length===0&&o===wi&&e.length===1)return[{node:0,state:DH}];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=iCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function eCe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,wi)){for(let{to:t}of r.statics[wi])if(t===1)return!0}return!1}function tCe(r,e,t){let i=t&&e.length>0?[""]:[],n=RH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],y=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=y[0];for(let{to:D,reducer:T}of C.statics[v])T==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=eCe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==wi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===2)continue;let p=aCe(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function rCe(r,e){let t=RH(r,[...e,wi]);return nCe(e,t.map(({state:i})=>i))}function iCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function nCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=sCe(c);if(u.length>1)throw new PI(r,u.map(g=>g.candidateUsage));return u[0]}function sCe(r){let 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 TH=Symbol("clipanion/errorCommand");function ACe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Gn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new jg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Gn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[ve.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[TH]=a,l}}break}}async run(e,t){var i;let n,s={...Gn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?lCe(s):MH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[Ti(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof ve?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=`
`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")}
`,a+=`
`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g}
`,f.length>0){a+=`
`,a+=`${lv.header("Options")}
`;let h=f.reduce((p,C)=>Math.max(p,C.definition.length),0);a+=`
`;for(let{definition:p,description:C}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${Ti(C,{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[h,p]of u)a+=`
`,a+=Ti(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)}
`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l}
`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>"u")continue;let p=typeof f.usage.category<"u"?Ti(f.usage.category,{format:this.format(t),paragraphs:!1}):null,C=l.get(p);typeof C>"u"&&l.set(p,C=[]);let{usage:y}=this.getUsageByIndex(h);C.push({commandClass:f,usage:y})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)}
`:a+=`${this.format(t).header(`${this.binaryVersion}`)}
`,a+=` ${this.format(t).bold(n)}${this.binaryName} <command>
`):a+=`${this.format(t).bold(n)}${this.binaryName} <command>
`;for(let f of c){let h=l.get(f).slice().sort((C,y)=>C.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=`
`,a+=`${this.format(t).header(`${p}`)}
`;for(let{commandClass:C,usage:y}of h){let B=C.usage.description||"undocumented";a+=`
`,a+=` ${this.format(t).bold(y)}
`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=`
`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[TH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message}
`;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=`
`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")}
`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Gn.defaultContext.colorDepth>1)?lv:PH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Gn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():ACe()};var LH;function lCe(r){let e=LH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return MH;let{AsyncLocalStorage:t}=J("async_hooks");e=LH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function MH(r){return r()}var hv={};ut(hv,{DefinitionsCommand:()=>Ad,HelpCommand:()=>ld,VersionCommand:()=>cd});var Ad=class extends ve{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};Ad.paths=[["--clipanion=definitions"]];var ld=class extends ve{async execute(){this.context.stdout.write(this.cli.usage())}};ld.paths=[["-h"],["--help"]];var cd=class extends ve{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
`)}};cd.paths=[["-v"],["--version"]];var z={};ut(z,{Array:()=>OH,Boolean:()=>KH,Counter:()=>UH,Proxy:()=>HH,Rest:()=>GH,String:()=>YH,applyValidator:()=>nd,cleanValidationError:()=>DI,formatError:()=>id,isOptionSymbol:()=>rd,makeCommandOption:()=>Xi,rerouteArguments:()=>Do});function OH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function KH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function UH(r,e,t){let[i,n]=Do(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function HH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function GH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&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 cCe(r,e,t){let[i,n]=Do(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?nd(g!=null?g:c,f,n.validator):f}})}function uCe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<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 nd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function YH(r,...e){return typeof r=="string"?cCe(r,...e):uCe(r)}var Ez=Pe(Jg()),nk=J("stream");var Ct=(se=>(se[se.UNNAMED=0]="UNNAMED",se[se.EXCEPTION=1]="EXCEPTION",se[se.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",se[se.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",se[se.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",se[se.BUILD_DISABLED=5]="BUILD_DISABLED",se[se.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",se[se.MUST_BUILD=7]="MUST_BUILD",se[se.MUST_REBUILD=8]="MUST_REBUILD",se[se.BUILD_FAILED=9]="BUILD_FAILED",se[se.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",se[se.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",se[se.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",se[se.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",se[se.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",se[se.REMOTE_INVALID=15]="REMOTE_INVALID",se[se.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",se[se.RESOLUTION_PACK=17]="RESOLUTION_PACK",se[se.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",se[se.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",se[se.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",se[se.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",se[se.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",se[se.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",se[se.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",se[se.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",se[se.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",se[se.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",se[se.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",se[se.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",se[se.FETCH_FAILED=30]="FETCH_FAILED",se[se.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",se[se.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",se[se.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",se[se.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",se[se.NETWORK_ERROR=35]="NETWORK_ERROR",se[se.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",se[se.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",se[se.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",se[se.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",se[se.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",se[se.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",se[se.PROLOG_UNKNOWN_ 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 Df=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new at(11,`${mt(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var kf=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${tr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${mt(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var pz=Pe(Xr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Nw=class{supportsDescriptor(e,t){return!!(so(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(pz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return tC(i,e)}forwardDescriptor(e,t){return _t(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Br.makeVirtualPath(s,o,n),l=new So(a,{baseFs:t.packageFs,pathUtils:x});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},fC=Nf;fC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Yr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new qt(i),prefixPath:Me.dot,localPath:i}}getWorkspace(e,t){return t.project.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 kf([new fC,new Yr,new Nw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new Df([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=pC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Ho(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Ho.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!so(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:f,value:h})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(WA(i,!0),Jy(n),{userProvided:!0})}normalizePackage(e){let t=rC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!kc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",Ta(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,_t(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Jo("types",o),l=Mt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,_t(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return Ta(this.limits,e,()=>(0,Ez.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},ye=Ha;ye.telemetry=null;var hk=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hk||{}),dC=class extends at{constructor({fileName:t,code:i,signal:n}){let s=ye.create(x.cwd()),o=$e(s,t,Ue.PATH);super(1,`Child ${o} reported an error`,a=>{qve(i,n,{configuration:s,report:a})});this.code=pk(i,n)}},Yw=class extends dC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Nc(r){return r!==null&&typeof r.fd=="number"}var Tc=new Set;function uk(){}function gk(){for(let r of Tc)r.kill()}async function oo(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Nc(s)&&(c[0]=s),Nc(o)&&(c[1]=o),Nc(a)&&(c[2]=a);let u=(0,fk.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Tc.add(u),Tc.size===1&&(process.on("SIGINT",uk),process.on("SIGTERM",gk)),!Nc(s)&&s!==null&&s.pipe(u.stdin),Nc(o)||u.stdout.pipe(o,{end:!1}),Nc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))Nc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Tc.delete(u),Tc.size===0&&(process.off("SIGINT",uk),process.off("SIGTERM",gk)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,C)=> 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=>{Oc.delete(l),Oc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",MR)),c(u!==null?u:129)})})}}}function pV(r){return e=>{let t=e[0]==="pipe"?new Vo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Ss=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},OR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new OR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function bB(r,e){return zf.start(r,e)}function uV(r,e=null){let t=new Vo.PassThrough,i=new fV.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(`
`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function dV(r,{prefix:e}){return{stdout:uV(t=>r.stdout.write(`${t}
`),r.stdout.isTTY?e:null),stderr:uV(t=>r.stderr.write(`${t}
`),r.stderr.isTTY?e:null)}}var Ake=(0,BV.promisify)(setTimeout);function CV(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function SB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var lke=new Map([["cd",async([r=(0,wV.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)}
`),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")}
`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await Ake(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await bB(i,{stdin:new Ss(t.stdin),stdout:new Ss(t.stdout),stderr:new Ss(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},C=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(r[c++]),B=c+y;for(let v=c;v<B;++c,++v)switch(f){case"<":p(()=>e.baseFs.createReadStream(x.resolve(t.cwd,K.toPortablePath(r[v]))));break;case"<<<":p(()=>{let D=new Vn.PassThrough;return process.nextTick(()=>{D.write(`${r[v]}
`),D.end()}),D});break;case"<&":p(()=>CV(Number(r[v]),1,t));break;case">":case">>":{let D=x.resolve(t.cwd,K.toPortablePath(r[v]));C(D==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(T,H,j){setImmediate(j)}}):e.baseFs.createWriteStream(D,f===">>"?{flags:"a"}:void 0))}break;case">&":C(CV(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await bB(DC(r.slice(c+1),e,t),{stdin:new Ss(i),stdout:new Ss(n),stderr:new Ss(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function cke(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await vB(r,e,SB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function mV(r,e,t){let i=r.map(async s=>{let o=await Kc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function bV(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a<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 Kc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Kc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var uke={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function PC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await bV({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?PC({type:"variable",name:i.join(" ")},e,t):PC({type:"number",value:n},e,t)}else return uke[r.type](await PC(r.left,e,t),await PC(r.right,e,t))}async function Kc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p>"u"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let f=await Kc(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await cke(f.shell,e,t);if(f.quoted)o(h);else{let p=QB(h);for(let C=0;C<p.length-1;++C)l(p[C]);o(p[p.length-1])}}break;case"variable":await bV(f,e,t,o,l);break;case"arithmetic":o(String(await PC(f.arithmetic,e,t)));break}break}if(a(),g){let f=n.pop();if(typeof f>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let h=await e.glob.match(f,{cwd:t.cwd,baseFs:e.baseFs});if(h.length===0){let p=TR(f)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${f}"${p}`)}for(let p of h.sort())l(p)}}if(i.size>0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return hV(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return pV(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function gke(r,e,t){return i=>{let n=new Vn.PassThrough,s=vB(r,e,SB(t,{stdin:n}));return{stdin:n,promise:s Line truncated
`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended
`)})),0}return await IV(r,e,t)}async function pke(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await hke(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message}
`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function vB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await pke(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function QV(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>kC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>kC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function kC(r){switch(r.type){case"redirection":return r.args.some(e=>kC(e));case"argument":return r.segments.some(e=>QV(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return QV(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>kC(s)))||t.args.some(n=>kC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function xB(r,e=[],{baseFs:t=new $t,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=BB}={}){let g={};for(let[p,C]of Object.entries(s))typeof C<"u"&&(g[p]=C);let f=new Map(lke);for(let[p,C]of Object.entries(i))f.set(p,C);o===null&&(o=new Vn.PassThrough,o.end());let h=uI(r,u);if(!UR(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let C=p.chain;for(;C.then;)C=C.then.chain;C.type==="command"&&(C.args=C.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await vB(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var u9=Pe(PB()),g9=Pe(Jg()),tl=J("stream");var l9=Pe(s9()),FB=Pe(Ac());var o9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],a9=80,fRe=new Set([13,19]),hRe=5,RB=FB.default.GITHUB_ACTIONS?{start:r=>`::group::${r}
`,end:r=>`::endgroup::
`}:FB.default.TRAVIS?{start:r=>`travis_fold:start:${r}
`,end:r=>`travis_fold:end:${r}
`}:FB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r}
`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,A9=new Date,pRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,dRe=r=>r,NB=dRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),CRe=pRe&&Object.keys(NB).find(r=>{let e=NB[r];return!(e.date&&(e.date[0]!==A9.getDate()||e.date[1]!==A9.getMonth()+1))})||"default";function c9(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=FA(r===null?0:r);return!t&&r===null?$e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=c9(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=Ct[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var Ge=class extends vi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=hRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Xd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...fRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let f=t.get("progressBarStyle")||CRe;if(!Object.prototype.hasOwnProperty.call(NB,f))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=NB[f];let h=12,p=Math.max(0,Math.min(i.columns-h,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*p/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,RB!==null&&!this.json&&this.includeInfos&&this.stdout.write(RB.start(t))},reportFooter:a=>{if(this.indent-=1,RB!==null&&!this.json&&this.includeInfos){this.stdout.write(RB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${$e(this.configuration,a,Ue.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;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 (${mt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>a9&&(this.progressFrame=(this.progressFrame+1)%o9.length,this.progressTime=t);let i=o9[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${$e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l}
`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},a9)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,l9.default)(t,0,this.stdout.columns-1)),t}formatName(t){return c9(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${$e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Tr="3.6.3";var f9=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(f9||{});async function el(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await O.writeFilePromise(x.format({dir:r,name:e,ext:".cmd"}),n)}await O.writeFilePromise(x.join(r,e),`#!/bin/sh
exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function h9(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=vw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await O.readFilePromise(x.join(r,xt.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:O.existsSync(x.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:O.existsSync(x.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function FC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,f]of Object.entries(process.env))typeof f<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=f);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([el(t,"node",process.execPath),...Tr!==null?[el(t,"run",process.execPath,[a,"run"]),el(t,"yarn",process.execPath,[a]),el(t,"yarnpkg",process.execPath,[a]),el(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),f=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Mt(e),s.npm_package_version=f;let h;if(g)h=g.cwd;else{let p=r.storedPackages.get(e.locatorHash);if(!p)throw new Error(`Package for ${mt(r.configuration,e)} not found in the project`);let C=r.configuration.getLinkers(),y={project:r,report:new Ge({stdout:new tl.PassThrough,configuration:r.configuration})},B=C.find(v=>v.supportsPackage(p,y));if(!B)throw new Error(`The package ${mt(r.configuration,p)} isn't supported by any of the available linkers`);h=await B.findPackageLocation(p,y)}s.npm_package_json=K.fromPortablePath(x.join(h,xt.manifest))}let l=Tr!==null?`yarn/${Tr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,f,h)=>await el(t,Jr(g),f,h)),s}var mRe=2,ERe=(0,g9.default)(mRe);async function IRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await ERe(async()=>{await O.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&qo(s)?nC(s):s,f=g?Es(g):"an external project";c.write(`Packing ${f} from sources
`);let h=await h9(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason}
`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn
`),p="Yarn");let C=p==="Yarn"&&!(h!=null&&h.packageManagerField);await O.mktempPromise(async y=>{let B=await FC({binFolder:y,ignoreCorepack:C}),D=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],j=x.join(r,xt.manifest),$=await O.readFilePromise(j),V=await oo(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(V.code!==0)return V.code;await O.writeFilePromise(j,$),await O.appendFilePromise(x.join(r,".npmignore"),`/.yarn
`),c.write(`
`),delete B.NODE_ENV;let W=await oo("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(`
`);let _=await oo("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let j=x.join(r,xt.lockfile);await O.existsPromise(j)||await O.writeFilePromise(j,"");let $=await oo("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return $.code!==0?$.code:0}],["npm",async()=>{if(n!==null){let Ae=new tl.PassThrough,ge=Cf(Ae);Ae.pipe(c,{end:!1});let re=await oo("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:Ae,stderr:u,end:0});if(Ae.end(),re.code!==0)return c.end(),u.end(),re.code;let M=(await ge).toString().trim();if(!kc(M,">=7.x")){let F=Jo(null,"npm"),ue=_t(F,M),pe=_t(F,">=7.x");throw new Error(`Workspaces aren't supported by ${tr(t,ue)}; please upgrade to ${tr(t,pe)} (npm has been detected as the primary package manager for ${$e(t,r,Ue.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let j=await oo("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(j.code!==0)return j.code;let $=new tl.PassThrough,V=Cf($);$.pipe(c);let W=await oo("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:$,stderr:u});if(W.code!==0)return W.code;let _=(await V).toString().trim().replace(/^.*\n/s,""),A=x.resolve(r,K.toPortablePath(_));return await O.renamePromise(A,e),0}]]).get(p);if(typeof D>"u")throw new Error("Assertion failed: Unsupported workflow");let T=await D();if(!(T===0||typeof T>"u"))throw O.detachTemp(o),new at(58,`Packing the package failed (exit code ${T}, logs can be found here: ${$e(t,a,Ue.PATH)})`)})})})}async function yRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Ge({stdout:new tl.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${mt(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new qt(u,{baseFs:s});return(await ot.find(Me.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await p9(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f>"u")return 1;let h=async()=>await xB(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(C=>C.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await O.mktempPromise(async l=>{let{env:c,cwd:u}=await p9(r,{project:n,binFolder:l,cwd:i});return await xB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function wRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await FC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await m9(r)),typeof t>"u"&&(t=x.dirname(await O.realpathPromise(x.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function p9(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return wRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${mt(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Ge({stdout:new tl.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${mt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await FC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await LB(r,{project:e}));let h=await g.findPackageLocation(o,u),p=new qt(h,{baseFs:a}),C=await ot.find(Me.dot,{baseFs:p});return typeof i>"u"&&(i=h),{manifest:C,binFolder:t,env:f,cwd:i}},{libzip:await an()})}async function d9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function C9(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await O.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}")
`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:mt(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await d9(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw O.detachTemp(o),new at(36,`${(0,u9.default)(e)} script failed (exit code ${$e(n,g,Ue.NUMBER)}, logs can be found here: ${$e(n,a,Ue.PATH)}); run ${$e(n,`yarn ${e}`,Ue.CODE)} to investigate`)})}async function BRe(r,e,t){WR(r,e)&&await C9(r,e,t)}function zR(r){let e=x.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=O.openSync(r,"r")}catch{return!0}try{O.readSync(i,t,0,t.length,0)}finally{O.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function LB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t,r)} not found in the project`);let s=new tl.Writable,o=t.getLinkers(),a={project:e,report:new Ge({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${tr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Ho.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Ho.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return Ho.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Ho.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin){let C=x.resolve(f,p);i.set(h,[g,K.fromPortablePath(C),zR(C)])}}return i}async function m9(r){return await LB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?el(r,Jr(t),process.execPath,[i]):el(r,Jr(t),i,[])))}async function E9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await LB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${mt(n.configuration,r)}`);return await O.mktempPromise(async g=>{let[,f]=u,h=await FC({project:n,locator:r,binFolder:g});await VR(h.BERRY_BIN_FOLDER,c);let p=zR(K.toPortablePath(f))?oo(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a}):oo(f,t,{cwd:i,env:h,stdin:s,stdout:o,stderr:a}),C;try{C=await p}finally{await O.removePromise(h.BERRY_BIN_FOLDER)}return C.code})}async function bRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await E9(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var mi={};ut(mi,{convertToZip:()=>ZNe,extractArchiveTo:()=>$Ne,makeArchiveFromDirectory:()=>XNe});var lZ=J("stream"),cZ=Pe(iZ());var nZ=Pe(Jg()),sZ=J("worker_threads");var hl=Symbol("kTaskInfo"),L0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,nZ.default)(ek());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new sZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[hl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[hl].resolve(t),e[hl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[hl])==null||i.reject(t),e[hl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[hl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[hl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[hl]={resolve:n,reject:s},t.postMessage(e)})})}};var uZ=Pe(aZ());async function XNe(r,{baseFs:e=new $t,prefixPath:t=Me.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new Wr(null,{libzip:s,level:i});else{let l=await O.mktempPromise(),c=x.join(l,"archive.zip");o=new Wr(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Me.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var AZ;async function ZNe(r,e){let t=await O.mktempPromise(),i=x.join(t,"archive.zip");return AZ||(AZ=new L0((0,uZ.getContent)())),await AZ.run({tmpFile:i,tgz:r,opts:e}),new Wr(i,{libzip:await an(),level:e.compressionLevel})}async function*_Ne(r){let e=new cZ.default.Parse,t=new lZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function $Ne(r,e,{stripComponents:t=0,p Line truncated
`);return}let s=(0,hZ.asTree)(pZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502
$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502
$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var mZ=J("crypto"),kN=Pe(J("fs"));var tTe=8,Rt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,mZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==Xl?`c${o}`:"";this.cacheKey=[tTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Rt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=rTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):t===null||DN(t)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?x.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await O.existsPromise(this.cwd))throw new at(56,"Cache path does not exist.")}else{await O.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await O.changeFilePromise(e,`/.gitignore
*.flock
*.tmp
`)}(this.mirrorCwd||!this.immutable)&&await O.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new $t,c=()=>{let _=new Wr(null,{libzip:D}),A=x.join(Me.root,qD(e));return _.mkdirSync(A,{recursive:!0}),_.writeJsonSync(x.join(A,xt.manifest),{name:Mt(e),mocked:!0}),_},u=async(_,A=null)=>{var ge;if(A===null&&((ge=o.unstablePackages)==null?void 0:ge.has(e.locatorHash)))return{isValid:!0,hash:null};let Ae=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(_)}`:t;if(A!==null){let re=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await bw(A)}`:t;if(Ae!==re)throw new at(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&Ae!==t){let re;switch(this.check?re="throw":DN(t)!==DN(Ae)?re="update":re=this.configuration.get("checksumBehavior"),re){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:Ae};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new at(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:Ae}},g=async _=>{if(!s)throw new Error(`Cache check required but no loader configured for ${mt(this.configuration,e)}`);let A=await s(),Ae=A.getRealPath();A.saveAndClose(),await O.chmodPromise(Ae,420);let ge=await u(_,Ae);if(!ge.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ge.hash},f=async()=>{if(a===null||!await O.existsPromise(a)){let _=await s(),A=_.getRealPath();return _.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},h=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${mt(this.configuration,e)}`);if(this.immutable)throw new at(56,`Cache entry required but missing for ${mt(this.configuration,e)}`);let{path:_,source:A}=await f(),Ae=(await u(_)).hash,ge=this.getLocatorPath(e,Ae,o);if(!ge)throw new Error("Assertion failed: Expected the cache path to be available");let re=[];A!=="mirror"&&a!==null&&re.push(async()=>{let F=`${a}${this.cacheId}`;await O.copyFilePromise(_,F,kN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,a)}),(!o.mirrorWriteOnly||a===null)&&re.push(async()=>{let F=`${ge}${this.cacheId}`;await O.copyFilePromise(_,F,kN.default.constants.COPYFILE_FICLONE),await O.chmodPromise(F,420),await O.renamePromise(F,ge)});let M=o.mirrorWriteOnly&&a!=null?a:ge;return await Promise.all(re.map(F=>F())),[!1,M,Ae]},p=async()=>{let A=(async()=>{var ue;let Ae=this.getLocatorPath(e,t,o),ge=Ae!==null?await l.existsPromise(Ae):!1,re=!!((ue=o.mockedPackages)!=null&&ue.has(e.locatorHash))&&(!this.check||!ge),M=re||ge,F=M?i:n;if(F&&F(),M){let pe=null,ke=Ae;if(!re)if(this.check)pe=await g(ke);else{let Fe=await u(ke);if(Fe.isValid)pe=Fe.hash;else return h()}return[re,ke,pe]}else return h()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let _;_=this.mutexes.get(e.locatorHash);)await _;let[C,y,B]=await p();this.markedFiles.add(y);let v,D=await an(),T=C?()=>c():()=>new Wr(y,{baseFs:l,libzip:D,readOnly:!0}),H=new Sg(()=>Jx(()=>v=T(),_=>`Failed to open the cache entry for ${mt(this.configuration,e)}: ${_}`),x),j=new So(y,{baseFs:H,pathUtils:x}),$=()=>{v==null||v.discardAndClose()},V=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[j,$,V]}};function DN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function rTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var M0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(M0||{});var ra=class extends vi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Xd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i}
`)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(`
`),this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${$e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var X0=J("crypto");function rA(){}rA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(C){return n?(setTimeout(function(){n(void 0,C)},0),!0):C}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var C=-1*c;C<=c;C+=2){var y=void 0,B=g[C-1],v=g[C+1],D=(v?v.newPos:0)-C;B&&(g[C-1]=void 0);var T=B&&B.newPos+1<a,H=v&&0<=D&&D<l;if(!T&&!H){g[C]=void 0;continue}if(!T||H&&B.newPos<v.newPos?(y=nTe(v),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),D=s.extractCommon(y,t,e,C),y.newPos+1>=a&&D+1>=l)return o(iTe(s,y.components,t,e,s.useLongestToken));g[C]=y}c++}if(n)(function C(){setTimeout(function(){if(c>u)return n();h()||C()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+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 iTe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(h,p){var C=i[l+p];return C.length>h.length?C:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&r.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function nTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Oat=new rA;var EZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,IZ=/\S/,yZ=new rA;yZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!IZ.test(r)&&!IZ.test(e)};yZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&EZ.test(e[t])&&EZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LN=new rA;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 sTe(r,e,t){return LN.diff(r,e,t)}var oTe=new rA;oTe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var aTe=new rA;aTe.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 ATe(r)||lTe(r)||cTe(r)||uTe()}function ATe(r){if(Array.isArray(r))return FN(r)}function lTe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function cTe(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 uTe(){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 gTe=Object.prototype.toString,ZC=new rA;ZC.useLongestToken=!0;ZC.tokenize=LN.tokenize;ZC.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," ")};ZC.equals=function(r,e){return rA.prototype.equals.call(ZC,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(gTe.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 rA;TN.tokenize=function(r){return r.slice()};TN.join=TN.removeEmpty=function(r){return r};function wZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=sTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(v){return" "+v})}for(var c=[],u=0,g=0,f=[],h=1,p=1,C=function(v){var D=a[v],T=D.lines||D.value.replace(/\n$/,"").split(`
`);if(D.lines=T,D.added||D.removed){var H;if(!u){var j=a[v-1];u=h,g=p,j&&(f=o.context>0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,RN(T.map(function(re){return(D.added?"+":"-")+re}))),D.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v<a.length-2){var $;($=f).push.apply($,RN(l(T)))}else{var V,W=Math.min(T.length,o.context);(V=f).push.apply(V,RN(l(T.slice(0,W))));var _={oldStart:u,oldLines:h-u+W,newStart:g,newLines:p-g+W,lines:f};if(v>=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),Ae=/\n$/.test(i),ge=T.length==0&&f.length>_.oldLines;!A&&ge&&t.length>0&&f.splice(_.oldLines,0,"\\ No newline at end of file"),(!A&&!ge||!Ae)&&f.push("\\ No newline at end of file")}c.push(_),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y<a.length;y++)C(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var Z0=Pe(x$()),_0=Pe(Jg()),F$=Pe(Xr()),zN=J("util"),WN=Pe(J("v8")),VN=Pe(J("zlib"));var UOe=[[/^(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)=>xw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],W0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!O.existsSync(i))return;let n=await O.readFilePromise(i,"utf8"),s=yi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=aC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=so(l.range)?_t(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let f;for(let[p,C]of UOe){let y=g.match(p);if(y){f=C(u,...y);break}}if(!f){t.reportWarning(14,`${tr(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let h=c;try{let p=vf(c.range),C=aC(p.selector,!0);C&&(h=C)}catch{}o.set(c.descriptorHash,nn(h,f))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(HD(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Sw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Sw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var V0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.re Line truncated
`;await O.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var D$=6,HOe=1,GOe=/ *, */g,k$=/\/$/,YOe=32,jOe=(0,zN.promisify)(VN.default.gzip),qOe=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},R$=r=>rn(`${HOe}`,r),je=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,C,y;if(!e.projectCwd)throw new Qe(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,O.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new je(e.projectCwd,{configuration:e});(p=ye.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(C=ye.telemetry)==null||C.reportWorkspaceCount(o.workspaces.length),(y=ye.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,v)=>B+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=$e(e,o.cwd,Ue.PATH),u=$e(e,x.relative(o.cwd,i),Ue.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Qe(`The nearest package directory (${$e(e,i,Ue.PATH)}) doesn't seem to be part of the project declared in ${$e(e,o.cwd,Ue.PATH)}.
${[g,f,h].join(`
`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(O.existsSync(e)){let n=await O.readFilePromise(e,"utf8");this.lockFileChecksum=R$(n);let s=yi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<D$;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=Dc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let f=g.version,h=g.languageName||t,p=c.linkType.toUpperCase(),C=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,v=g.dependenciesMeta,D=g.peerDependenciesMeta,T=g.bin;if(c.checksum!=null){let j=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,j)}let H={...u,version:f,languageName:h,linkType:p,conditions:C,dependencies:y,peerDependencies:B,dependenciesMeta:v,peerDependenciesMeta:D,bin:T};this.originalPackages.set(H.locatorHash,H);for(let j of l.split(GOe)){let $=WA(j);this.storedDescriptors.set($.descriptorHash,$),this.storedResolutions.set($.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,_0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${Ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${Ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(JA(e)&&(e=iC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${tr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qo(e)&&(e=nC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${mt(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${lC(this.configuration,e)} (${$e(this.configuration,x.join(e.cwd,xt.manifest),Ue.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorLine truncated
`;switch(le){case 0:fe+=`# Script name: ${Be}
`;break;case 1:fe+=`# Script code: ${Be}
`;break}let ae=null;if(!await O.mktempPromise(async ne=>{let Y=x.join(ne,"build.log"),{stdout:he,stderr:ie}=this.configuration.getSubprocessStreams(Y,{header:fe,prefix:mt(this.configuration,pe),report:t}),de;try{switch(le){case 0:de=await TB(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break;case 1:de=await JR(pe,Be,[],{cwd:oe,project:this,stdin:ae,stdout:he,stderr:ie});break}}catch(Pt){ie.write(Pt.stack),de=1}if(he.end(),ie.end(),de===0)return!0;O.detachTemp(ne);let _e=`${mt(this.configuration,pe)} couldn't be built successfully (exit code ${$e(this.configuration,de,Ue.NUMBER)}, logs can be found here: ${$e(this.configuration,Y,Ue.PATH)})`;return this.optionalBuilds.has(pe.locatorHash)?(t.reportInfo(9,_e),!0):(t.reportError(9,_e),!1)}))return!1}return!0});F.push(...Ne,Promise.allSettled(Ne).then(oe=>{D.delete(ue),oe.every(le=>le.status==="fulfilled"&&le.value===!0)&&W.set(pe.locatorHash,Fe)}))}if(await io(F),M===D.size){let ue=Array.from(D).map(pe=>{let ke=this.storedPackages.get(pe);if(!ke)throw new Error("Assertion failed: The package should have been registered");return mt(this.configuration,ke)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ue})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=ye.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await O.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new at(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=$e(this.configuration,g,Ue.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Vl(n,this.generateLockfile());if(c!==n){let u=wZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(28,$e(this.configuration,f,Ue.ADDED)):f.startsWith("-")?e.report.reportError(28,$e(this.configuration,f,Ue.REMOVED)):e.report.reportInfo(null,$e(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new at(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=ye.telemetry)==null||l.reportPackageExtension(Bc(g,Ue.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${$e(this.configuration,"mode=update-lockfile",Ue.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;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:D$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Sn(f)).sort().join(", "),c=new ot;c.version=o. Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+ba(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await O.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Vl(t,i);n!==t&&(await O.writeFilePromise(e,n),this.lockFileChecksum=R$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,Z0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await O.mkdirPromise(x.dirname(s),{recursive:!0}),await O.writeFilePromise(s,await jOe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await qOe(await O.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,Z0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,Z0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ti}),await this.persistInstallStateFile()}async persist(){let e=(0,_0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!ZD(e.cwd,this.cwd)||!await O.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await O.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${$e(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await O.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function JOe({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var V;let c=new Map,u=[],g=new Map,f=new Map,h=new Map,p=new Map,C=new Map,y=new Map(r.workspaces.map(W=>{let _=W.anchoredLocator.locatorHash,A=i.get(_);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[_,rC(A)]})),B=()=>{let W=O.mktempSync(),_=x.join(W,"stacktrace.log"),A=String(u.length+1).length,Ae=u.map((ge,re)=>`${`${re+1}.`.padStart(A," ")} ${Es(ge)}
`).join("");throw O.writeFileSync(_,Ae),O.detachTemp(W),new at(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(_)}`)},v=W=>{let _=t.get(W.descriptorHash);if(typeof _>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(_);if(!A)throw new Error("Assertion failed: The package could not be found");return A},D=(W,_,A,{top:Ae,optional:ge})=>{u.length>1e3&&B(),u.push(_);let re=T(W,_,A,{top:Ae,optional:ge});return u.pop(),re},T=(W,_,A,{top:Ae,optional:ge})=>{if(n.has(_.locatorHash))return;n.add(_.locatorHash),ge||s.delete(_.locatorHash);let re=i.get(_.locatorHash);if(!re)throw new Error(`Assertion failed: The package (${mt(r.configuration,_)}) should have been registered`);let M=[],F=[],ue=[],pe=[],ke=[];for(let Ne of Array.from(re.dependencies.values())){if(re.peerDependencies.has(Ne.identHash)&&re.locatorHash!==Ae)continue;if(JA(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Ne.descriptorHash);let oe=ge;if(!oe){let Y=re.dependenciesMeta.get(Mt(Ne));if(typeof Y<"u"){let he=Y.get(null);typeof he<"u"&&he.optional&&(oe=!0)}}let le=t.get(Ne.descriptorHash);if(!le)throw new Error(`Assertion failed: The resolution (${tr(r.configuration,Ne)}) should have been registered`);let Be=y.get(le)||i.get(le);if(!Be)throw new Error(`Assertion failed: The package (${le}, resolved from ${tr(r.configuration,Ne)}) should have been registered`);if(Be.peerDependencies.size===0){D(Ne,Be,new Map,{top:Ae,optional:oe});continue}let fe,ae,qe=new Set,ne;F.push(()=>{fe=GD(Ne,_.locatorHash),ae=YD(Be,_.locatorHash),re.dependencies.delete(Ne.identHash),re.dependencies.set(fe.identHash,fe),t.set(fe.descriptorHash,ae.locatorHash),e.set(fe.descriptorHash,fe),i.set(ae.locatorHash,ae),M.push([Be,fe,ae])}),ue.push(()=>{var Y;ne=new Map;for(let he of ae.peerDependencies.values()){let ie=re.dependencies.get(he.identHash);if(!ie&&sC(_,he)&&(W.identHash===_.identHash?ie=W:(ie=_t(_,W.range),e.set(ie.descriptorHash,ie),t.set(ie.descriptorHash,_.locatorHash),a.delete(ie.descriptorHash))),(!ie||ie.range==="missing:")&&ae.dependencies.has(he.identHash)){ae.peerDependencies.delete(he.identHash);continue}ie||(ie=_t(he,"missing:")),ae.dependencies.set(ie.identHash,ie),JA(ie)&&wc(h,ie.descriptorHash).add(ae.locatorHash),g.set(ie.identHash,ie),ie.range==="missing:"&&qe.add(ie.identHash),ne.set(he.identHash,(Y=A.get(he.identHash))!=null?Y:ae.locatorHash)}ae.dependencies=new Map(bn(ae.dependencies,([he,ie])=>Mt(ie)))}),pe.push(()=>{if(!i.has(ae.locatorHash))return;let Y=c.get(Be.locatorHash);typeof Y=="number"&&Y>=2&&B();let he=c.get(Be.locatorHash),ie=typeof he<"u"?he+1:1;c.set(Be.locatorHash,ie),D(fe,ae,ne,{top:Ae,optional:oe}),c.set(Be.locatorHash,ie-1)}),ke.push(()=>{let Y=re.dependencies.get(Ne.identHash);if(typeof Y>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let he=t.get(Y.descriptorHash);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(wc(C,he).add(_.locatorHash),!!i.has(ae.locatorHash)){for(let ie of ae.peerDependencies.values()){let de=ne.get(ie.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(p,de),Mt(ie)).push(ae.locatorHash)}for(let ie of qe)ae.dependencies.delete(ie)}})}for(let Ne of[...F,...ue])Ne();let Fe;do{Fe=!0;for(let[Ne,oe,le]of M){let Be=pf(f,Ne.locatorHash),fe=rn(...[...le.dependencies.values()].map(Y=>{let he=Y.range!=="missing:"?t.get(Y.descriptorHash):"missing:";if(typeof he>"u")throw new Error(`Assertion failed: Expected the resolution for ${tr(r.configuration,Y)} to have been registered`);return he===Ae?`${he} (top)`:he}),oe.identHash),ae=Be.get(fe);if(typeof ae>"u"){Be.set(fe,oe);continue}if(ae===oe)continue;i.delete(le.locatorHash),e.delete(oe.descriptorHash),t.delete(oe.descriptorHash),n.delete(le.locatorHash);let qe=h.get(oe.descriptorHash)||[],ne=[re.locatorHash,...qe];h.delete(oe.descriptorHash);for(let Y of ne){let he=i.get(Y);typeof he>"u"||(he.dependencies.get(oe.identHash).descriptorHash!==ae.descriptorHash&&(Fe=!1),he.dependencies.set(oe.identHash,ae))}}}while(!Fe);for(let Ne of[...pe,...ke])Ne()};for(let W of r.workspaces){let _=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),D(W.anchoredDescriptor,_,new Map,{top:_.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let j=[];for(let[W,_]of C){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let Ae=p.get(W);if(!(typeof Ae>"u"))for(let ge of _){let re=i.get(ge);if(!(typeof re>"u"))for(let[M,F]of Ae){let ue=tn(M);if(re.peerDependencies.has(ue.identHash))continue;let pe=`p${rn(ge,M,W).slice(0,5)}`;o.set(pe,{subject:ge,requested:ue,rootRequester:W,allRequesters:F});let ke=A.dependencies.get(ue.identHash);if( Line truncated
Try running the command again with the package name prefixed: ${ee.pretty(t,"yarn add",xi.CODE)} ${ee.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${D[0]}...`),xi.DESCRIPTOR)}`);if(!v)throw new Qe(`The ${ee.pretty(t,B,xi.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let T=yqe(n,v,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(T.map(async j=>{let $=await Gm(v,{project:i,workspace:n,cache:s,target:j,modifier:a,strategies:l,maxResults:c});return{request:v,suggestedDescriptors:$,target:j}}))})).then(B=>B.flat()),g=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let{request:v,suggestedDescriptors:{suggestions:D,rejections:T}}of u)if(D.filter(j=>j.descriptor!==null).length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),B.reportSeparator(),B.reportExceptionOnce(j)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[],p=[];for(let{suggestedDescriptors:{suggestions:B},target:v}of u){let D,T=B.filter(V=>V.descriptor!==null),H=T[0].descriptor,j=T.every(V=>P.areDescriptorsEqual(V.descriptor,H));T.length===1||j?D=H:(f=!0,{answer:D}=await(0,Lse.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:B.map(({descriptor:V,name:W,reason:_})=>V?{name:W,hint:_,descriptor:V}:{name:W,hint:_,disabled:!0}),onCancel:()=>process.exit(130),result(V){return this.find(V,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=n.manifest[v].get(D.identHash);(typeof $>"u"||$.descriptorHash!==D.descriptorHash)&&(n.manifest[v].set(D.identHash,D),this.optional&&(v==="dependencies"?n.manifest.ensureDependencyMeta({...D,range:"unknown"}).optional=!0:v==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...D,range:"unknown"}).optional=!0)),typeof $>"u"?h.push([n,v,D,l]):p.push([n,v,$,D]))}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyAddition,h),await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),f&&this.context.stdout.write(`
`),(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};Au.paths=[["add"]],Au.usage=ve.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<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 yqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"Line truncated
`),0}return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Wt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,f]]of a)o.reportJson({name:u,source:P.stringifyIdent(g),path:f});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${P.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};lu.paths=[["bin"]],lu.usage=ve.Usage({description:"get the path to a binary script",details:`
When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.
When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.
`,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var cu=class extends De{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=await Rt.find(t);return(await Ge.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await O.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await O.removePromise(i.cwd)})).exitCode()}};cu.paths=[["cache","clean"],["cache","clear"]],cu.usage=ve.Usage({description:"remove the shared cache files",details:`
This command will remove all the files from the cache.
`,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Mse=Pe(ub()),jL=J("util"),uu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new Qe(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=Ie.convertMapsToIndexableObjects(o),l=n?(0,Mse.default)(a,n):a,c=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l}
`),c.exitCode();jL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,jL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})}
`)}return c.exitCode()}};uu.paths=[["config","get"]],uu.usage=ve.Usage({description:"read a configuration settings",details:`
This command will print a configuration setting.
Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value.
`,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Voe=Pe(XL()),Xoe=Pe(ub()),Zoe=Pe(zoe()),ZL=J("util"),gu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new Qe("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?p=>ye.updateHomeConfiguration(p):p=>ye.updateConfiguration(i(),p))(p=>{if(s){let C=(0,Voe.default)(p);return(0,Zoe.default)(C,this.name,a),C}else return{...p,[n]:a}});let u=(await ye.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=Ie.convertMapsToIndexableObjects(u),f=s?(0,Xoe.default)(g,s):g;return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async p=>{ZL.inspect.styles.name="cyan",p.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(f,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};gu.paths=[["config","set"]],gu.usage=ve.Usage({description:"change a configuration settings",details:`
This command will set a configuration setting.
When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).
When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.
`,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var oae=Pe(XL()),aae=Pe(am()),Aae=Pe(sae()),fu=class extends De{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Qe("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Qe(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>ye.updateHomeConfiguration(c):c=>ye.updateConfiguration(i(),c);return(await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,aae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let f=s?(0,oae.default)(g):{...g};return(0,Aae.default)(f,this.name),f}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};fu.paths=[["config","unset"]],fu.usage=ve.Usage({description:"unset a configuration setting",details:`
This command will unset a configuration setting.
`,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),hu=class extends De{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=Ie.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=Ie.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let f=this.why?t.sources.get(u)||"<default>":g.description;return[u,f]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};hu.paths=[["config"]],hu.usage=ve.Usage({description:"display the current configuration",details:`
This command prints the current active configuration settings.
`,examples:[["Print the active configuration settings","$0 config"]]});ls();var Nb={};ut(Nb,{Strategy:()=>jm,acceptedStrategies:()=>b3e,dedupe:()=>$L});var lae=Pe(Bn()),jm=(e=>(e.HIGHEST="highest",e))(jm||{}),b3e=new Set(Object.values(jm)),Q3e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Ie.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!lae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h>"u")return null;let p=h.locatorHash,C=r.originalPackages.get(p);if(typeof C>"u")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:C}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new ti,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=Q3e[e],f=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=vi.progressViaCounter(f.length);await n.reportProgress(h);let p=0;await Promise.all(f.map(B=>B.then(v=>{if(v===null)return;p++;let{descriptor:D,currentPackage:T,updatedPackage:H}=v;n.reportInfo(0,`${P.prettyDescriptor(s,D)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(D),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(D.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let C;switch(p){case 0:C="No packages";break;case 1:C="One package";break;default:C=`${p} packages`}let y=ee.pretty(s,e,ee.Type.CODE);return n.reportInfo(0,`${C} can be deduped using the ${y} strategy`),p})}var pu=class extends De{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(jm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=await Rt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await Ge.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await Ge.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};pu.paths=[["dedupe"]],pu.usage=ve.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `Line truncated
`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends De{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var qm=class extends De{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=x.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends De{async execute(){this.context.stdout.write(`${Tr||"<unknown>"}
`)}};Zh.paths=[["-v"],["--version"]];var du=class extends De{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);return await i.restoreInstallState(),await Wt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};du.paths=[["exec"]],du.usage=ve.Usage({description:"execute a shell script",details:`
This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.
It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
`,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});ls();var Cu=class extends De{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:od(sd(),[ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await v3e(this.hash,i,{stdout:this.context.stdout}):(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of Ie.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let f=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,h=ee.pretty(t,l,ee.Type.CODE),p=P.prettyLocator(t,u),C=P.prettyIdent(t,c.requested),y=P.prettyIdent(t,g),B=c.allRequesters.length-1,v=`descendant${B===1?"":"s"}`,D=B>0?` and ${B} ${v}`:"",T=f!==null?"provides":"doesn't provide";s.reportInfo(null,`${h} \u2192 ${p} ${T} ${C} to ${y}${D}`)}})).exitCode()}};Cu.paths=[["explain","peer-requirements"]],Cu.usage=ve.Usage({description:"explain a set of peer requirements",details:`
A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants.
When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not.
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 v3e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await Ge.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,v;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(D=>{let T=e.storedPackages.get(D);if(typeof T>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=P.devirtualizeLocator(T),j=e.storedPackages.get(H.locatorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the package to be registered");let $=j.peerDependencies.get(n.requested.identHash);if(typeof $>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:$}});if(g!==null){let D=f.every(({peerDependency:T})=>vt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:"<missing>")}, which ${D?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ee.mark(i),p=[];for(let{pkg:D,peerDependency:T}of Ie.sortMap(f,H=>P.stringifyLocator(H.pkg))){let j=(g!==null?vt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(D),prettyLocator:P.prettyLocator(i,D),prettyRange:P.prettyRange(i,T.range),mark:j})}let C=Math.max(...p.map(({stringifiedLocator:D})=>D.length)),y=Math.max(...p.map(({prettyRange:D})=>D.length));for(let{stringifiedLocator:D,prettyLocator:T,prettyRange:H,mark:j}of Ie.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(C+(T.length-D.length)," ")} \u2192 ${H.padEnd(y," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}ls();var uae=Pe(Xr()),mu=class extends De{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await ye.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(x.contains(l,a))return 0}let i=()=>{if(typeof Tr>"u")throw new Qe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Jm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Jm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(vt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(vt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(vt.validRange(this.version))n=`https://repo.yarnpkg.com/${await x3e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Qe(`Invalid version descriptor "${this.version}"`);return(await Ge.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${ee.pretty(t,n,xi.URL)}`),c=await O.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${ee.pretty(t,n,xi.PATH)}`),c=await Xt.get(n,{configuration:t})),await eM(t,null,c,{report:a})})).exitCode( Line truncated
${e}`)});let n=(h=r.projectCwd)!=null?h:r.startingCwd,s=x.resolve(n,".yarn/releases"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(r.startingCwd,o),l=x.relative(n,o);i.reportInfo(0,`Saving the new release in ${ee.pretty(r,a,"magenta")}`),await O.removePromise(x.dirname(o)),await O.mkdirPromise(x.dirname(o),{recursive:!0}),await O.writeFilePromise(o,t,{mode:493}),await ye.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&Ie.isTaggedYarnVersion(e)?e:await Jm(r,"stable")}`;let u={};c.exportTo(u);let g=x.join(n,ot.fileName),f=`${JSON.stringify(u,null,c.indent)}
`;await O.changeFilePromise(g,f,{automaticNewlines:!0})}function gae(r){return Ct[LI(r)]}var P3e=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function D3e(r){let t=`https://repo.yarnpkg.com/${Ie.isTaggedYarnVersion(Tr)?Tr:await Jm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Xt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(P3e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=gae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var Eu=class extends De{constructor(){super(...arguments);this.code=z.String({required:!1,validator:od(sd(),[ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=gae(this.code),n=ee.pretty(t,i,ee.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await D3e(t)).get(this.code),l=typeof a<"u"?ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description.
You can help us by editing this page on GitHub \u{1F642}:
${ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))}
`;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:Ie.mapAndFilter(Object.entries(Ct),([n,s])=>Number.isNaN(Number(n))?Ie.mapAndFilter.skip:{label:FA(Number(n)),value:ee.tuple(ee.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};Eu.paths=[["explain"]],Eu.usage=ve.Usage({description:"explain an error code",details:`
When the code argument is specified, this command prints its name and its details.
When used without arguments, this command lists all error codes and their names.
`,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var fae=Pe(Bn()),Iu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n&&!this.all)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(T,{recursive:H})=>{let j=T.anchoredLocator.locatorHash,$=new Map,V=[j];for(;V.length>0;){let W=V.shift();if($.has(W))continue;let _=i.storedPackages.get(W);if(typeof _>"u")throw new Error("Assertion failed: Expected the package to be registered");if($.set(W,_),P.isVirtualLocator(_)&&V.push(P.devirtualizeLocator(_).locatorHash),!(!H&&W!==j))for(let A of _.dependencies.values()){let Ae=i.storedResolutions.get(A.descriptorHash);if(typeof Ae>"u")throw new Error("Assertion failed: Expected the resolution to be registered");V.push(Ae)}}return $.values()},l=({recursive:T})=>{let H=new Map;for(let j of i.workspaces)for(let $ of a(j,{recursive:T}))H.set($.locatorHash,$);return H.values()},c=({all:T,recursive:H})=>T&&H?i.storedPackages.values():T?l({recursive:H}):a(n,{recursive:H}),u=({all:T,recursive:H})=>{let j=c({all:T,recursive:H}),$=this.patterns.map(_=>{let A=P.parseLocator(_),Ae=fae.default.makeRe(P.stringifyIdent(A)),ge=P.isVirtualLocator(A),re=ge?P.devirtualizeLocator(A):A;return M=>{let F=P.stringifyIdent(M);if(!Ae.test(F))return!1;if(A.reference==="unknown")return!0;let ue=P.isVirtualLocator(M),pe=ue?P.devirtualizeLocator(M):M;return!(ge&&ue&&A.reference!==M.reference||re.reference!==pe.reference)}}),V=Ie.sortMap([...j],_=>P.stringifyLocator(_));return{selection:V.filter(_=>$.length===0||$.some(A=>A(_))),sortedLookup:V}},{selection:g,sortedLookup:f}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new Qe("No package matched your request");let h=new Map;if(this.dependents)for(let T of f)for(let H of T.dependencies.values()){let j=i.storedResolutions.get(H.descriptorHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the resolution to be registered");Ie.getArrayWithDefault(h,j).push(T)}let p=new Map;for(let T of f){if(!P.isVirtualLocator(T))continue;let H=P.devirtualizeLocator(T);Ie.getArrayWithDefault(p,H.locatorHash).push(T)}let C={},y={children:C},B=t.makeFetcher(),v={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new ti,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},D=[async(T,H,j)=>{var W,_;if(!H.has("manifest"))return;let $=await B.fetch(T,v),V;try{V=await ot.find($.prefixPath,{baseFs:$.packageFs})}finally{(W=$.releaseFs)==null||W.call($)}j("Manifest",{License:ee.tuple(ee.Type.NO_HINT,V.license),Homepage:ee.tuple(ee.Type.URL,(_=V.raw.homepage)!=null?_:null)})},async(T,H,j)=>{var Ae;if(!H.has("cache"))return;let $={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},V=(Ae=i.storedChecksums.get(T.locatorHash))!=null?Ae:null,W=s.getLocatorPath(T,V,$),_;if(W!==null)try{_=O.statSync(W)}catch{}let A=typeof _<"u"?[_.size,ee.Type.SIZE]:void 0;j("Cache",{Checksum:ee.tuple(ee.Type.NO_HINT,V),Path:ee.tuple(ee.Type.PATH,W),Size:A})}];for(let T of g){let H=P.isVirtualLocator(T);if(!this.virtuals&&H)continue;let j={},$={value:[T,ee.Type.LOCATOR],children:j};if(C[P.stringifyLocator(T)]=$,this.nameOnly){delete $.children;continue}let V=p.get(T.locatorHash);typeof V<"u"&&(j.Instances={label:"Instances",value:ee.tuple(ee.Type.NUMBER,V.length)}),j.Version={label:"Version",value:ee.tuple(ee.Type.NO_HINT,T.version)};let W=(A,Ae)=>{let ge={};if(j[A]=ge,Array.isArray(Ae))ge.children=Ae.map(re=>({value:re}));else{let re={};ge.children=re;for(let[M,F]of Object.entries(Ae))typeof F>"u"||(re[M]={label:M,value:F})}};if(!H){for(let A of D)await A(T,o,W);await t.triggerHook(A=>A.fetchPackageInfo,T,o,W)}T.bin.size>0& 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 k3e="|||||||",R3e=">>>>>>>",F3e="=======",hae="<<<<<<<";async function N3e(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get("lockfileFilename"));if(!await O.existsPromise(t))return!1;let i=await O.readFilePromise(t,"utf8");if(!i.includes(hae))return!1;if(e)throw new at(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=T3e(i),o,a;try{o=yi(n),a=yi(s)}catch{throw new at(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await O.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function T3e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(hae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===F3e){i=!1;break}else if(i||s.startsWith(k3e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(R3e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(`
`),e[1].join(`
`)]}var wu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=x.resolve(this.context.cwd,K.toPortablePath(this.destination)),a=await ye.find(o,this.context.plugins,{useRc:!1,strict:!1}),{project:l,workspace:c}=await je.find(a,o);if(i.cwd===l.cwd)throw new Qe("Invalid destination; Can't link the project to itself");if(!c)throw new ct(l.cwd,o);let u=i.topLevelWorkspace,g=[];if(this.all){for(let h of l.workspaces)h.manifest.name&&(!h.manifest.private||this.private)&&g.push(h);if(g.length===0)throw new Qe("No workspace found to be linked in the target project")}else{if(!c.manifest.name)throw new Qe("The target workspace doesn't have a name and thus cannot be linked");if(c.manifest.private&&!this.private)throw new Qe("The target workspace is marked private - use the --private flag to link it anyway");g.push(c)}for(let h of g){let p=P.stringifyIdent(h.locator),C=this.relative?x.relative(i.cwd,h.cwd):h.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:p}},reference:`portal:${C}`})}return(await Ge.start({configuration:t,stdout:this.context.stdout},async h=>{await i.install({cache:s,report:h})})).exitCode()}};wu.paths=[["link"]],wu.usage=ve.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Bu=class extends De{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Bu.paths=[["node"]],Bu.usage=ve.Usage({description:"run node with the hook already setup",details:`
This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.
`,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Iae=J("os");var pae=J("os");var L3e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Qu(r){let e=await Xt.get(L3e,{configuration:r});return yi(e.toString())}var bu=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await Qu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};bu.paths=[["plugin","list"]],bu.usage=ve.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var M3e=/^[0-9]+$/;function dae(r){return M3e.test(r)?`pull/${r}/head`:r}var O3e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",dae(e)],["git","reset","--hard","FETCH_HEAD"]],K3e=({branch:r})=>[["git","fetch","origin","--depth=1",dae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],U3e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",x.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Su=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,pae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async o=>{await tM(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await Wm(U3e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=x.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await O.readFilePromise(a);await eM(t,"sources",l,{report:o}),this.skipPlugins||await H3e(this,{project:i,report:o,target:n})})).exitCode()}};Su.paths=[["set","version","from","sources"]],Su.usage=ve.Usage({description:"build Yarn from master",details:`
This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.
By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag.
`,examples:[["Build Yarn from master","$0 set version from sources"]]});async function Wm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Cr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${ee.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")}
`);try{await Cr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tM(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&O.existsSync(x.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await Wm(K3e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await O.removePromise(i),await O.mkdirPromise(i,{recursive:!0}),await Wm(O3e(r,i),{configuration:e,context:r.context,target:i}))}async function H3e(r,{project:e,report:t,target:i}){let n=await Qu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rM(o,r,{project:e,report:t,target:i})}var Cae=Pe(Xr()),mae=J("url"),Eae=J("vm");var vu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await je.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=x.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${ee.pretty(t,l,ee.Type.PATH)}`),o=x.relative(s.cwd,l),a=await O.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new mae.URL(this.name)}catch{throw new at(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!Cae.default.valid(c.reference))throw new at(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=P.stringifyIdent(c),g=await Qu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new at(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Tr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Tr}/`))}n.reportInfo(0,`Downloading ${ee.pretty(t,l,"green")}`),a=await Xt.get(l,{configuration:t})}await iM(o,a,{project:s,report:n})})).exitCode()}};vu.paths=[["plugin","import"]],vu.usage=ve.Usage({category:"Plugin-related commands",description:"download a plugin",details:`
This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.
Three types of plugin references are accepted:
- 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 iM(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Eae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${ee.pretty(n,l,"magenta")}`),await O.mkdirPromise(x.dirname(c),{recursive:!0}),await O.writeFilePromise(c,e);let u={path:l,spec:r};await ye.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let C=typeof p!="string"?p.path:p,y=x.resolve(t.cwd,K.toPortablePath(C)),{name:B}=Ie.dynamicRequire(y);B!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),{...g,plugins:f}})}var G3e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],xu=class extends De{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,Iae.tmpdir)()),"yarnpkg-sources",li.makeHash(this.repository).slice(0,6));return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await je.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await Qu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new at(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tM(this,{configuration:t,report:s,target:i}),await rM(u,this,{project:o,report:s,target:i})})).exitCode()}};xu.paths=[["plugin","import","from","sources"]],xu.usage=ve.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:`
This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.
The plugins can be referenced by their short name if sourced from the official Yarn repository.
`,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rM(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await Wm(G3e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${r}.js`),c=await O.readFilePromise(l);await iM(r,c,{project:i,report:n})}var Pu=class extends De{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new Qe(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=x.resolve(i.cwd,l);O.existsSync(c)&&(s.reportInfo(0,`Removing ${ee.pretty(t,l,ee.Type.PATH)}...`),await O.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await ye.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(f=>f.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Pu.paths=[["plugin","remove"]],Pu.usage=ve.Usage({category:"Plugin-related commands",description:"remove a plugin",details:`
This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.
**Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed.
`,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 Du=class extends De{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins);return(await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{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()}};Du.paths=[["plugin","runtime"]],Du.usage=ve.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 ku=class extends De{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(P.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new ti}),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 Ge.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};ku.paths=[["rebuild"]],ku.usage=ve.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 nM=Pe(Bn());ls();var Ru=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let p of this.patterns){let C=!1,y=P.parseIdent(p);for(let B of o){let v=[...B.manifest.peerDependenciesMeta.keys()];for(let D of(0,nM.default)(v,p))B.manifest.peerDependenciesMeta.delete(D),c=!0,C=!0;for(let D of a){let T=B.manifest.getForScope(D),H=[...T.values()].map(j=>P.stringifyIdent(j));for(let j of(0,nM.default)(H,P.stringifyIdent(y))){let{identHash:$}=P.parseIdent(j),V=T.get($);if(typeof V>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[D].delete($),u.push([B,D,V]),c=!0,C=!0}}}C||l.push(p)}let g=l.length>1?"Patterns":"Pattern",f=l.length>1?"don't":"doesn't",h=this.all?"any":"this";if(l.length>0)throw new Qe(`${g} ${ee.prettyList(t,l,xi.CODE)} ${f} match any packages referenced by ${h} workspace`);return c?(await t.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,u),(await Ge.start({configuration:t,stdout:this.context.stdout},async C=>{await i.install({cache:s,report:C,mode:this.mode})})).exitCode()):0}};Ru.paths=[["remove"]],Ru.usage=ve.Usage({description:"remove dependencies from the project",details:`
This command will remove the packages matching the specified patterns from the current workspace.
If the \`--mode=<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 yae=J("util"),_h=class extends De{async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await je.find(e,this.context.cwd);if(!i)throw new ct(t.cwd,this.context.cwd);return(await Ge.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Ie.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,yae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Fu=class extends De{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await je.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Wt.hasPackageScript(o,this.scriptName,{project:i}))return await Wt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Wt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),await Wt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Wt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Qe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new Qe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let f of g)if(c.length>=f.length&&JSON.stringify(c.slice(0,f.length))===JSON.stringify(f))throw new Qe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new Qe(`Couldn't find a script named "${this.scriptName}".`)}}};Fu.paths=[["run"]],Fu.usage=ve.Usage({description:"run a script defined in the package.json",details:`
This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:
- If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed.
- 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 Nu=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new ct(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Nu.paths=[["set","resolution"]],Nu.usage=ve.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var wae=Pe(Bn()),Tu=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=x.resolve(this.context.cwd,K.toPortablePath(c));if(Ie.isPathLike(c)){let g=await ye.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:f,workspace:h}=await je.find(g,u);if(!h)throw new ct(f.cwd,u);if(this.all){for(let p of f.workspaces)p.manifest.name&&a.add(P.stringifyIdent(p.locator));if(a.size===0)throw new Qe("No workspace found to be unlinked in the target project")}else{if(!h.manifest.name)throw new Qe("The target workspace doesn't have a name and thus cannot be unlinked");a.add(P.stringifyIdent(h.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:f})=>f.descriptor.fullName)];for(let f of(0,wae.default)(g,c))a.add(f)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await Ge.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Tu.paths=[["unlink"]],Tu.usage=ve.Usage({description:"disconnect the local project from another one",details:`
This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.
`,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var Bae=Pe(Km()),sM=Pe(Bn());ls();var El=class extends De{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!=="unknown")throw new Qe("Ranges aren't allowed when using --recursive");for(let f of(0,sM.default)(a,g)){let h=P.parseIdent(f);l.add(h.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await Ge.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Rt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Hm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let v=!1,D=P.parseDescriptor(B);for(let T of i.workspaces)for(let H of["dependencies","devDependencies"]){let $=[...T.manifest.getForScope(H).values()].map(V=>P.stringifyIdent(V));for(let V of(0,sM.default)($,P.stringifyIdent(D))){let W=P.parseIdent(V),_=T.manifest[H].get(W.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=P.makeDescriptor(W,D.range);c.push(Promise.resolve().then(async()=>[T,H,_,await Gm(A,{project:i,workspace:T,cache:s,target:H,modifier:a,strategies:l})])),v=!0}}v||u.push(B)}if(u.length>1)throw new Qe(`Patterns ${ee.prettyList(t,u,xi.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new Qe(`Pattern ${ee.prettyList(t,u,xi.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),f=await ra.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,v,{suggestions:D,rejections:T}]of g){let H=D.filter(j=>j.descriptor!==null);if(H.length===0){let[j]=T;if(typeof j>"u")throw new Error("Assertion failed: Expected an error to have been set");let $=this.cli.error(j);i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range
${$}`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)
${$}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,v)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(f.hasErrors())return f.exitCode();let h=!1,p=[];for(let[B,v,,{suggestions:D}]of g){let T,H=D.filter(W=>W.descriptor!==null),j=H[0].descriptor,$=H.every(W=>P.areDescriptorsEqual(W.descriptor,j));H.length===1||$?T=j:(h=!0,{answer:T}=await(0,Bae.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(t,B)} \u276F ${v}?`,choices:D.map(({descriptor:W,name:_,reason:A})=>W?{name:_,hint:A,descriptor:W}:{name:_,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let V=B.manifest[v].get(T.identHash);if(typeof V>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(V.descriptorHash!==T.descriptorHash)B.manifest[v].set(T.identHash,T),p.push([B,v,V,T]);else{let W=t.makeResolver(),_={project:i,resolver:W},A=W.bindDescriptor(V,B.anchoredLocator,_);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),h&&this.context.stdout.write(`
`),(await Ge.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};El.paths=[["up"]],El.usage=ve.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),El.schema=[av("recursive",lc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Lu=class extends De{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?j3e(i,s,{configuration:t,peers:this.peers}):Y3e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Lu.paths=[["why"]],Lu.usage=ve.Usage({description:"display the reason why a package is needed",details:`
This command prints the exact reasons why a package appears in the dependency tree.
If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.
`,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function Y3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=r.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;{let p=P.stringifyLocator(a);s[p]={value:[a,ee.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ee.Type.DEPENDENT]}}}return o}function j3e(r,e,{configuration:t,peers:i}){let n=Ie.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let C=r.storedResolutions.get(p.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(C);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let C=p!==null?ee.tuple(ee.Type.DEPENDENT,{locator:f,descriptor:p}):ee.tuple(ee.Type.LOCATOR,f),y={},B={value:C,children:y},v=P.stringifyLocator(f);if(h[v]=B,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let D of f.dependencies.values()){if(!i&&f.peerDependencies.has(D.identHash))continue;let T=r.storedResolutions.get(D.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(T);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,D)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var dM={};ut(dM,{default:()=>c4e,gitUtils:()=>AA});var AA={};ut(AA,{TreeishProtocols:()=>Lb,clone:()=>pM,fetchBase:()=>qae,fetchChangedFiles:()=>Jae,fetchChangedWorkspaces:()=>A4e,fetchRoot:()=>jae,isGitUrl:()=>ep,lsRemote:()=>Yae,normalizeLocator:()=>fM,normalizeRepoUrl:()=>Vm,resolveUrl:()=>hM,splitRepoUrl:()=>zm});var gM=Pe(Mae()),Hae=Pe(PB()),$h=Pe(J("querystring")),cM=Pe(Xr());var Kae=J("url");function lM(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function Oae(r){try{return new Kae.URL(r)}catch{return}}function o4e(r){let e=lM(r,"@","#"),t=lM(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lM(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Uae(r){return Oae(r)||Oae(o4e(r))}function Gae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var a4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Lb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Lb||{});function ep(r){return r?a4e.some(e=>!!r.match(e)):!1}function zm(r){r=Vm(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Lb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s<"u"?(o=s,a=n[s]):(o="head",a="HEAD");for(let l of Object.values(Lb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Vm(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Uae(r);t&&(r=t.href),r=r.replace(/^gi Line truncated
- ${l.join(`
- `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Ou.paths=[["workspace"]],Ou.usage=ve.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:`
This command will run a given sub-command on a single workspace.
`,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var u4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Wae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"}},commands:[cu,uu,gu,fu,Nu,Su,mu,Mu,Vh,Xh,qm,Zh,Au,lu,hu,pu,du,Cu,Eu,Iu,yu,wu,Tu,Bu,xu,vu,Pu,bu,Du,ku,Ru,_h,Fu,El,Lu,Ou]},g4e=u4e;var wM={};ut(wM,{default:()=>h4e});var Te={optional:!0},mM=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Te,zenObservable:Te}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Te}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Te,["postcss-jsx"]:Te,["postcss-less"]:Te,["postcss-markdown"]:Te,["postcss-scss"]:Te}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Te}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Te}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Te,"vue-template-compiler":Te}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Te,"utf-8-validate":Te}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te,"vuetify-loader":Te}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Te}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-lo Line truncated
`),await O.writeFilePromise(x.join(i,"yarn.lock"),"");let n=x.join(i,".yarnrc.yml"),s=await ye.findProjectCwd(this.context.cwd,xt.lockfile),o=!(await ye.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?x.join(s,".yarnrc.yml"):null;a!==null&&O.existsSync(a)?(await O.copyFilePromise(a,n),await ye.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(v=>{let D=typeof v=="string"?v:v.path,T=K.isAbsolute(D)?D:K.resolve(K.fromPortablePath(s),D);return typeof v=="string"?T:{path:T,spec:v.spec}})),B})):await O.writeFilePromise(n,`enableGlobalCache: ${o}
enableTelemetry: false
`);let l=(C=this.packages)!=null?C:[this.command],c=P.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(`
`);let g=await ye.find(i,this.context.plugins),{project:f,workspace:h}=await je.find(g,i);if(h===null)throw new ct(f.cwd,i);await f.restoreInstallState();let p=await Wt.getWorkspaceAccessibleBinaries(h);return p.has(c)===!1&&p.size===1&&typeof this.packages>"u"&&(c=Array.from(p)[0][0]),await Wt.executeWorkspaceAccessibleBinary(h,c,this.args,{packageAccessibleBinaries:p,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Ku.paths=[["dlx"]],Ku.usage=ve.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var p4e={commands:[tp,Ku]},d4e=p4e;var vM={};ut(vM,{default:()=>E4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ut(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SM,makeLocator:()=>QM,makeSpec:()=>_ae,parseSpec:()=>bM});function bM(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function _ae({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QM(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,_ae({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Ie.releaseAfterUseAsync(async()=>await mi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SM(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:jr});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:jr,fetchOptions:t})}};var C4e=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${jr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bM(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SM(P.makeLocator(e,P.makeRange({protocol:jr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=li.makeHash(`${C4e}`,o).slice(0,6);return[QM(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie. Line truncated
`);let a=x.join(this.context.cwd,ot.fileName);await O.changeFilePromise(a,`${JSON.stringify(o,null,2)}
`,{automaticNewlines:!0});let l=x.join(this.context.cwd,"README.md");if(O.existsSync(l)||await O.writeFilePromise(l,`# ${P.stringifyIdent(n.name)}
`),!i||i.cwd===this.context.cwd){let u=x.join(this.context.cwd,xt.lockfile);O.existsSync(u)||await O.writeFilePromise(u,"");let f=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(T=>`${T}
`).join(""),h=x.join(this.context.cwd,".gitignore");O.existsSync(h)||await O.writeFilePromise(h,f);let C=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(T=>`${T}
`).join(""),y=x.join(this.context.cwd,".gitattributes");O.existsSync(y)||await O.writeFilePromise(y,C);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,PAe.default)(B,t.get("initEditorConfig"));let v=`root = true
`;for(let[T,H]of Object.entries(B)){v+=`
[${T}]
`;for(let[j,$]of Object.entries(H)){let V=j.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);v+=`${V} = ${$}
`}}let D=x.join(this.context.cwd,".editorconfig");O.existsSync(D)||await O.writeFilePromise(D,v),O.existsSync(x.join(this.context.cwd,".git"))||await Cr.execvp("git",["init"],{cwd:this.context.cwd})}}};Uu.paths=[["init"]],Uu.usage=ve.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var Q8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[Uu]},S8e=Q8e;var NM={};ut(NM,{default:()=>x8e});var lA="portal:",cA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(lA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:lA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:lA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,localPath:l}:{packageFs:new vo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(lA)}supportsLocator(e,t){return!!e.reference.startsWith(lA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(lA.length);return[P.makeLocator(e,`${lA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ie.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=x.isAbsolute(n)?{packageFs:new qt(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new qt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0,localPath:l}:{packageFs:new vo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor( Line truncated
${u}, next tree:
${eE(a)}`);let f=NAe(a);if(f)throw new Error(`${f}, after hoisting finished:
${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),L8e(a)},P8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},D8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},kAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:C}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(C)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},k8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TM=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},MM=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=M8e(o),l=k8e(o,a),c=r==o?new Map:n.fastLookupPossible?P8e(e):D8e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([C,y])=>[C,y[0]])),p=new Map;do{let C=N8e(r,e,t,c,h,l,i,p,n);C.isGraphChanged&&(f=!0),C.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(h.delete(y),B.shift(),h.set(y,B[0]),u=!0)}while(u);for(let C of o.dependencies.values())if(!o.peerNames.has(C.name)&&!t.has(C.locator)){t.add(C.locator);let y=MM(r,[...e,C],t,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),t.delete(C.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},R8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},F8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>ki(y)).join("\u2192")}`);let h=t[t.length-1],C=!(i.ident===h.ident);if(l&&!C&&(g="- self-reference"),C&&(C=i.dependencyKind!==1,l&&!C&&(g="- workspace")),C&&i.dependencyKind===2&&(C=!R8e(i),l&&!C&&(g="- external soft link with unhoisted dependencies")),C&&(C=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!C&&(g=h.reasons.get(i.name))),C&&(C=!r.peerNames.has(i.name),l&&!C&&(g=`- cannot shadow peer: ${ki(r.originalDependencies.get(i.name).locator)} at ${u}`)),C){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${ki(B.locator)} at ${u}`),y)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${ki(T.locator)} at ${t.slice(0,v).map(j=>ki(j.locator)).join("\u2192")}`);break}}C=y}if(C&&(C=s.get(i.name)===i.ident,l&&!C&&(g=`- filled by: ${ki(o.get(i.name)[0])} at ${u}`)),C){let y=!0,B=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let D=t[v];for(let T of B){if(D.peerNames.has(T)&&D.originalDependencies.has(T))continue;let H=D.dependencies.get(T);H&&r.dependencies.get(T)!==H&&(v===t.length-1?f.add(H):(f=null,y=!1,l&&(g=`- peer dependency ${ki(H.locator)} from parent ${ki(D.locator)} was not hoisted to ${u}`))),B.delete(T)}if(!y)break}C=y}if(C&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){C=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${ki(y.locator)}, available: ${ki(B==null?void 0:B.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:C?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,N8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(B,v,D,T,H)=>{if(u.has(T))return;let j=[...v,Zb(T)],$=[...D,Zb(T)],V=new Map,W=new Map;for(let re of TM(T)){let M=F8e(c,t,[c,...B,T],re,i,n,s,a,{outputReason:l.debugLevel>=2,fastLooku Line truncated
${eE(r)}`)}let ge=TM(T);for(let re of ge)if(_.has(re)){let M=W.get(re);if((n.get(re.name)===re.ident||!T.reasons.has(re.name))&&M.isHoistable!==0&&T.reasons.set(re.name,M.reason),!re.isHoistBorder&&$.indexOf(Zb(re))<0){u.add(T);let ue=kAe(T,re);h([...B,T],j,$,ue,C),u.delete(T)}}},p,C=new Set(TM(c)),y=Array.from(e).map(B=>Zb(B));do{p=C,C=new Set;for(let B of p){if(B.locator===c.locator||B.isHoistBorder)continue;let v=kAe(c,B);h([],Array.from(t),y,v,C)}}while(C.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},NAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>ki(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,C=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${C}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${C} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(`
`)},T8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LM(t,n),ident:DAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:C,peerNames:y,hoistPriority:B,dependencyKind:v}=c,D=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([C]),locator:LM(p,C),ident:DAe(p,C),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:D?D.has(h):!1,hoistPriority:B||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=C=>{if(!h.has(C)){h.add(C),C.decoupled=!1;for(let y of C.dependencies.values())C.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},OM=r=>r.substring(0,r.indexOf("@",1)),L8e=r=>{let e={name:r.name,identName:OM(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:OM(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},M8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},ki=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},RAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>RAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),f=OM(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(f!==u.name?`a:${u.name}:`:"")+ki(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>RAe?`
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||{}),TAe="node_modules",Hu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=K8e(r,e),o=null;if(n.length===0){let a=FAe(t,{hoistingLimits:i});o=H8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},sa=r=>`${r.name}@${r.reference}`,UM=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},LAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},KM=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},O8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=sa(f);if(l.has(p))return;l.add(p);let C=r.getPackageInformation(f);if(C){let y=h?sa(h):"";if(sa(f)!==y&&C.linkType==="SOFT"&&!KM(C,f,r,i)){let B=MAe(C,f,r);(!a.get(B)||f.reference.startsWith("workspace:"))&&a.set(B,f)}for(let[B,v]of C.packageDependencies)v!==null&&(C.packagePeers.has(B)||c(r.getLocator(B,v),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=r.getPackageInformation(f),C=K.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let B of C){let v=y.children.get(B);v||(v={children:new Map},y.children.set(B,v)),y=v}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=sa(h),C=n.get(p);C||(C=new Set,n.set(p,C)),C.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},K8e=(r,e)=>{let t=[],i=!1,n=new Map,s=O8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(h,p)=>`${sa(p)}:${h}`,f=(h,p,C,y,B,v,D,T)=>{var re,M;let H=g(h,C),j=u.get(H),$=!!j;!$&&C.name===a.name&&C.reference===a.reference&&(j=c,u.set(H,c));let V=KM(p,C,r,l);if(!j){let F=0;V?F=2:p.linkType==="SOFT"&&C.name.endsWith(Hu)&&(F=1),j={name:h,identName:C.name,reference:C.reference,dependencies:new Set,peerNames:F===1?new Set:p.packagePeers,dependencyKind:F},u.set(H,j)}let W;if(V?W=2:B.linkType==="SOFT"?W=1:W=0,j.hoistPriority=Math.max(j.hoistPriority||0,W),T&&!V){let F=sa({name:y.identName,reference:y.reference}),ue=n.get(F)||new Set;n.set(F,ue),ue.add(j.name)}let _=new Map(p.packageDependencies);if(e.project){let F=e.project.workspacesByCwd.get(K.toPortablePath(p.packageLocation.slice(0,-1)));if(F){let ue=new Set([...Array.from(F.manifest.peerDependencies.values(),pe=>P.stringifyIdent(pe)),...Array.from(F.manifest.peerDependenciesMeta.keys())]);for(let pe of ue)_.has(pe)||(_.set(pe,v.get(pe)||null),j.peerNames.add(pe))}}let A=sa({name:C.name.replace(Hu,""),reference:C.reference}),Ae=s.get(A);if(Ae)for(let F of Ae)_.set(`${F.name}${Hu}`,F.reference);(p!==B||p.linkType!=="SOFT"||!V&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(D)))&&y.dependencies.add(j);let ge=C!==a&&p.linkType==="SOFT"&&!C.name.endsWith(Hu)&&!V;if(!$&&!ge){let F=new Map;for(let[ue,pe]of _)if(pe!==null){let ke=r.getLocator(ue,pe),Fe=r.getLocator(ue.replace(Hu,""),pe),Ne=r.getPackageInformation(Fe);if(Ne===null)throw new Error("Assertion failed: Expected the package to have been registered");let oe=KM(Ne,ke,r,l);if(e.validateExternalSoftLinks&&e.project&&oe){Ne.packageDependencies.size>0&&(i=!0);for(let[qe,ne]of Ne.packageDependencies)if(ne!==null){let Y=P.parseLocator(Array.isArray(ne)?`${ne[0]}@${ne[1]}`:`${qe}@${ne}`);if(sa(Y)!==sa(ke)){let he=_.get(qe);if(he){let ie=P.parseLocator(Array.isArray(he)?`${he[0]}@${he[1]}`:`${qe}@${he}`);LAe(ie,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(ke.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.referenceLine truncated
`;for(let s=0,o=r.length;s<o;++s)n+=i+_b(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=`
`;return n+=t,n+="]",n}function j8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function q8e(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{
`;let o=0;for(let a=0,l=i.length;a<l;++a){let c=i[a],u=r[c];typeof u>"u"||(o!==0&&(s+=",",s+=`
`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=`
`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=OAe[t],s=n[r]||n["*"];return KAe(e,s,i)}function KAe(r,e,t){let{collapsed:i}=OAe[e];return Array.isArray(r)?i?G8e(r,e,t):Y8e(r,e,t):typeof r=="object"&&r!==null?i?j8e(r,e,t):q8e(r,e,t):JSON.stringify(r)}function UAe(r){return KAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function J8e(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function W8e(r){return iE(r.fallbackPool||[],([e])=>e)}function z8e(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,C]of iE(a.entries(),([y])=>y))g.push([p,C]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:J8e(r),fallbackPool:W8e(r),packageRegistryData:z8e(r)}}var YAe=Pe(GAe());function jAe(r,e){return[r?`${r}
`:"",`/* eslint-disable */
`,`"use strict";
`,`
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,e.replace(/^/gm," "),`}
`,`
`,(0,YAe.default)()].join("")}function V8e(r){return JSON.stringify(r,null,2)}function X8e(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function Z8e(r){return[`return hydrateRuntimeState(JSON.parse(${X8e(UAe(r))}), {basePath: basePath || __dirname});
`].join("")}function _8e(r){return[`var path = require('path');
`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)});
`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});
`].join("")}function qAe(r){let e=nE(r),t=Z8e(e);return jAe(r.shebang,t)}function JAe(r){let e=nE(r),t=_8e(r.dataLocation),i=jAe(r.shebang,t);return{dataFile:V8e(e),loaderFile:i}}var dle=J("fs");var Cle=J("util");function GM(r,{basePath:e}){let t=K.toPortablePath(e),i=x.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var D;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let C=(D=p.discardFromLookup)!=null?D:!1,y={name:g,reference:h},B=s.get(p.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&C,C||(B.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:C});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:C,get packageLocation(){return v||(v=x.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),uA=J("url"),_M=J("util");var qi=J("url");var XAe=Pe(J("assert"));var YM=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Gu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),jM=(r,e)=>RegExp.prototype.exec.call(r,e),qM=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),Il=(r,...e)=>String.prototype.endsWith.apply(r,e),JM=(r,...e)=>String.prototype.includes.apply(r,e),WM=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),WAe=(r,...e)=>String.prototype.replace.apply(r,e),yl=(r,...e)=>String.prototype.slice.apply(r,e),oa=(r,...e)=>String.prototype.startsWith.apply(r,e),zAe=Map,VAe=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var ZAe=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zM=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),_Ae=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!oa(t,"./");return e==="."?((0,XAe.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),$Ae=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function ele(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Gu(r,n)&&(t[n]=r[n])}return t}var $b=new zAe;function $8e(r,e,t,i){let n=$b.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let h={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(r,h),h}let o;try{o=VAe(s)}catch(h){throw new lE(r,(t?`"${e}" from `:"")+(0,eQ.fileURLToPath)(t||e),h.message)}let{imports:a,main:l,name:c,type:u}=ele(o,["imports","main","name","type"]),g=Gu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let f={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $b.set(r,f),f}function tle(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(Il(s,"node_modules/package.json"))break;let o=$8e((0,eQ.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,eQ.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(i,n),n}function eze(r,e,t){throw new ZAe(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function tze(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 zM(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 _Ae((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var rle=/(^|\\|\/)((\.|%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 hle=J("module");var[Ji,aa]=process.versions.node.split(".").map(r=>parseInt(r,10)),aBt=Ji>16||Ji===16&&aa>=12,ABt=Ji>17||Ji===17&&aa>=5||Ji===16&&aa>=15,lBt=Ji>17||Ji===17&&aa>=1||Ji===16&&aa>14,fle=Ji>19||Ji===19&&aa>=2||Ji===18&&aa>=13,cBt=Ji>19||Ji===19&&aa>=3,uBt=Ji>18||Ji===18&&aa>=1||Ji===16&&aa>=17;var cze=new Set(hle.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||cze.has(r);function ple(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(Br.resolveVirtual(K.toPortablePath(e)))),fle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $M(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let oe of["react-scripts","gatsby"]){let le=r.packageRegistry.get(oe);if(le)for(let Be of le.keys()){if(Be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:oe,reference:Be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(oe,le){return{fn:oe,args:le,error:null,result:null}}function C(oe){var qe,ne,Y,he,ie,de;let le=(Y=(ne=(qe=process.stderr)==null?void 0:qe.hasColors)==null?void 0:ne.call(qe))!=null?Y:process.stdout.isTTY,Be=(_e,Pt)=>`\x1B[${_e}m${Pt}\x1B[0m`,fe=oe.error;console.error(fe?Be("31;1",`\u2716 ${(he=oe.error)==null?void 0:he.message.replace(/\n.*/s,"")}`):Be("33;1","\u203C Resolution")),oe.args.length>0&&console.error();for(let _e of oe.args)console.error(` ${Be("37;1","In \u2190")} ${(0,_M.inspect)(_e,{colors:le,compact:!0})}`);oe.result&&(console.error(),console.error(` ${Be("37;1","Out \u2192")} ${(0,_M.inspect)(oe.result,{colors:le,compact:!0})}`));let ae=(de=(ie=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:ie.slice(2))!=null?de:[];if(ae.length>0){console.error();for(let _e of ae)console.error(` ${Be("38;5;244",_e)}`)}console.error()}function y(oe,le){if(e.allowDebug===!1)return le;if(Number.isFinite(i)){if(i>=2)return(...Be)=>{let fe=p(oe,Be);try{return fe.result=le(...Be)}catch(ae){throw fe.error=ae}finally{C(fe)}};if(i>=1)return(...Be)=>{try{return le(...Be)}catch(fe){let ae=p(oe,Be);throw ae.error=fe,C(ae),fe}}}return le}function B(oe){let le=A(oe);if(!le)throw ri("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return le}function v(oe){if(oe.name===null)return!0;for(let le of r.dependencyTreeRoots)if(le.name===oe.name&&le.reference===oe.reference)return!0;return!1}let D=new Set(["node","require",...gle("--conditions")]);function T(oe,le=D,Be){let fe=re(x.join(oe,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(fe===null)throw ri("INTERNAL",`The locator that owns the "${oe}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ae}=B(fe),qe=x.join(ae,xt.manifest);if(!e.fakeFs.existsSync(qe))return null;let ne=JSON.parse(e.fakeFs.readFileSync(qe,"utf8"));if(ne.exports==null)return null;let Y=x.contains(ae,oe);if(Y===null)throw ri("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Y!=="."&&!a.test(Y)&&(Y=`./${Y}`);try{let he=ole({packageJSONUrl:(0,uA.pathToFileURL)(K.fromPortablePath(qe)),packageSubpath:Y,exports:ne.exports,base:Be?(0,uA.pathToFileURL)(K.fromPortablePath(Be)):null,conditions:le});return K.toPortablePath((0,uA.fileURLToPath)(he))}catch(he){throw ri("EXPORTS_RESOLUTION_FAILED",he.message,{unqualifiedPath:po(oe),locator:fe,pkgJson:ne,subpath:po(Y),conditions:le},he.code)}}function H(oe,le,{extensions:Be}){let fe;try{le.push(oe),fe=e.fakeFs.statSync(oe)}catch{}if(fe&&!fe.isDirectory())return e.fakeFs.realpathSync(oe);if(fe&&fe.isDirectory()){let ae;try{ae=JSON.parse(e.fakeFs.readFileSync(x.join(oe,xt.manifest),"utf8"))}catch{}let qe;if(ae&&ae.main&&(qe=x.resolve(oe,ae.main)),qe&&qe!==oe){let ne=H(qe,le,{extensions:Be});if(ne!==null)return ne}}for(let ae=0,qe=Be.length;ae<qe;ae++){let ne=`${oe}${Be[ae]}`;if(le.push(ne),e.fakeFs.existsSync(ne))return ne}if(fe&&fe.isDirectory())for(let ae=0,qe=Be.length;ae<qe;ae++){let ne=x.format({dir:oe,name:"index",ext:Be[ae]});if(le.push(ne),e.fakeFs.existsSync(ne))return ne}return null}function j(oe){let le=new gE.Module(oe,null);return le.filename=oe,le.paths=gE.Module._nodeModulePaths(oe),le}function $(oe,le){return le.endsWith("/")&&(le=x.join(le,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(oe),j(K.fromPortablePath(le)),!1,{plugnplay:!1})}function V(oe){if(g===null)return!1;let le=x.contains(r.basePath,oe);return le===null?!1:!!g.test(le.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},_=l;function A(Line truncated
Require request: "${fe}"
Required by: ${ae}
`,{request:fe,issuer:ae});return K.toPortablePath(Y)}let qe,ne=oe.match(n);if(ne){if(!le)throw ri("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:ae});let[,Y,he]=ne,ie=re(le);if(!ie){let hr=$(oe,le);if(hr===!1)throw ri("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).
Require path: "${fe}"
Required by: ${ae}
`,{request:fe,issuer:ae});return K.toPortablePath(hr)}let _e=B(ie).packageDependencies.get(Y),Pt=null;if(_e==null&&ie.name!==null){let hr=r.fallbackExclusionList.get(ie.name);if(!hr||!hr.has(ie.reference)){for(let ni=0,Ks=c.length;ni<Ks;++ni){let Ii=B(c[ni]).packageDependencies.get(Y);if(Ii!=null){t?Pt=Ii:_e=Ii;break}}if(r.enableTopLevelFallback&&_e==null&&Pt===null){let ni=r.fallbackPool.get(Y);ni!=null&&(Pt=ni)}}}let It=null;if(_e===null)if(v(ie))It=ri("MISSING_PEER_DEPENDENCY",`Your application tried to access ${Y} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ae}
`,{request:fe,issuer:ae,dependencyName:Y});else{let hr=ge(Y,ie);hr.every(fi=>v(fi))?It=ri("MISSING_PEER_DEPENDENCY",`${ie.name} tried to access ${Y} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ie.name}@${ie.reference} (via ${ae})
${hr.map(fi=>`Ancestor breaking the chain: ${fi.name}@${fi.reference}
`).join("")}
`,{request:fe,issuer:ae,issuerLocator:Object.assign({},ie),dependencyName:Y,brokenAncestors:hr}):It=ri("MISSING_PEER_DEPENDENCY",`${ie.name} tried to access ${Y} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ie.name}@${ie.reference} (via ${ae})
${hr.map(fi=>`Ancestor breaking the chain: ${fi.name}@${fi.reference}
`).join("")}
`,{request:fe,issuer:ae,issuerLocator:Object.assign({},ie),dependencyName:Y,brokenAncestors:hr})}else _e===void 0&&(!Be&&tQ(oe)?v(ie)?It=ri("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ae}
`,{request:fe,issuer:ae,dependencyName:Y}):It=ri("UNDECLARED_DEPENDENCY",`${ie.name} tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in ${ie.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ae}
`,{request:fe,issuer:ae,issuerLocator:Object.assign({},ie),dependencyName:Y}):v(ie)?It=ri("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ae}
`,{request:fe,issuer:ae,dependencyName:Y}):It=ri("UNDECLARED_DEPENDENCY",`${ie.name} tried to access ${Y}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${Y}${Y!==fe?` (via "${fe}")`:""}
Required by: ${ie.name}@${ie.reference} (via ${ae})
`,{request:fe,issuer:ae,issuerLocator:Object.assign({},ie),dependencyName:Y}));if(_e==null){if(Pt===null||It===null)throw It||new Error("Assertion failed: Expected an error to have been set");_e=Pt;let hr=It.message.replace(/\n.*/g,"");It.message=hr,!u.has(hr)&&i!==0&&(u.add(hr),process.emitWarning(It))}let Mr=Array.isArray(_e)?{name:_e[0],reference:_e[1]}:{name:Y,reference:_e},ii=B(Mr);if(!ii.packageLocation)throw ri("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: ${Mr.name}@${Mr.reference}${Mr.name!==fe?` (via "${fe}")`:""}
Required by: ${ie.name}@${ie.reference} (via ${ae})
`,{request:fe,issuer:ae,dependencyLocator:Object.assign({},Mr)});let gi=ii.packageLocation;he?qe=x.join(gi,he):qe=gi}else if(x.isAbsolute(oe))qe=x.normalize(oe);else{if(!le)throw ri("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:fe,issuer:ae});let Y=x.resolve(le);le.match(o)?qe=x.normalize(x.join(Y,oe)):qe=x.normalize(x.join(x.dirname(Y),oe))}return x.normalize(qe)}function ue(oe,le,Be=D,fe){if(s.test(oe))return le;let ae=T(le,Be,fe);return ae?x.normalize(ae):le}function pe(oe,{extensions:le=Object.keys(gE.Module._extensions)}={}){var ae,qe;let Be=[],fe=H(oe,Be,{extensions:le});if(fe)return x.normalize(fe);{ple(Be.map(he=>K.fromPortablePath(he)));let ne=po(oe),Y=re(oe);if(Y){let{packageLocation:he}=B(Y),ie=!0;try{e.fakeFs.accessSync(he)}catch(de){if((de==null?void 0:de.code)==="ENOENT")ie=!1;else{let _e=((qe=(ae=de==null?void 0:de.message)!=null?ae:de)!=null?qe:"empty exception thrown").replace(/^[A-Z]/,Pt=>Pt.toLowerCase());throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${_e}).
Missing package: ${Y.name}@${Y.reference}
Expected package location: ${po(he)}
`,{unqualifiedPath:ne,extensions:le})}}if(!ie){let de=he.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`${de}
Missing package: ${Y.name}@${Y.reference}
Expected package location: ${po(he)}
`,{unqualifiedPath:ne,extensions:le})}}throw ri("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${ne}
${Be.map(he=>`Not found: ${po(he)}
`).join("")}`,{unqualifiedPath:ne,extensions:le})}}function ke(oe,le,Be){var ae;if(!le)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let fe=ale({name:oe,base:(0,uA.pathToFileURL)(K.fromPortablePath(le)),conditions:(ae=Be.conditions)!=null?ae:D,readFileSyncFn:M});if(fe instanceof uA.URL)return pe(K.toPortablePath((0,uA.fileURLToPath)(fe)),{extensions:Be.extensions});if(fe.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Fe(fe,le,Be)}function Fe(oe,le,Be={}){try{if(oe.startsWith("#"))return ke(oe,le,Be);let{considerBuiltins:fe,extensions:ae,conditions:qe}=Be,ne=F(oe,le,{considerBuiltins:fe});if(oe==="pnpapi")return ne;if(ne===null)return null;let Y=()=>le!==null?V(le):!1,he=(!fe||!tQ(oe))&&!Y()?ue(oe,ne,qe,le):ne;return pe(he,{extensions:ae})}catch(fe){throw Object.prototype.hasOwnProperty.call(fe,"pnpCode")&&Object.assign(fe.data,{request:po(oe),issuer:le&&po(le)}),fe}}function Ne(oe){let le=x.normalize(oe),Be=Br.resolveVirtual(le);return Be!==le?Be:null}return{VERSIONS:W,topLevel:_,getLocator:(oe,le)=>Array.isArray(le)?{name:le[0],reference:le[1]}:{name:oe,reference:le},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let oe=[];for(let[le,Be]of f)for(let fe of Be.keys())le!==null&&fe!==null&&oe.push({name:le,reference:fe});return oe},getPackageInformation:oe=>{let le=A(oe);if(le===null)return null;let Be=K.fromPortablePath(le.packageLocation);return{...le,packageLocation:Be}},findPackageLocator:oe=>re(K.toPortablePath(oe)),resolveToUnqualified:y("resolveToUnqualified",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=F(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveUnqualified:y("resolveUnqualified",(oe,le)=>K.fromPortablePath(pe(K.toPortablePath(oe),le))),resolveRequest:y("resolveRequest",(oe,le,Be)=>{let fe=le!==null?K.toPortablePath(le):null,ae=Fe(K.toPortablePath(oe),fe,Be);return ae===null?null:K.fromPortablePath(ae)}),resolveVirtual:y("resolveVirtual",oe=>{let le=Ne(K.toPortablePath(oe));return le!==null?K.fromPortablePath(le):null})}}var xBt=(0,Cle.promisify)(dle.readFile);var mle=(r,e,t)=>{let i=nE(r),n=GM(i,{basePath:e}),s=K.join(e,xt.pnpCjs);return $M(n,{fakeFs:t,pnpapiResolution:s})};var tO=Pe(Ile());var Co={};ut(Co,{checkAndReportManifestCompatibility:()=>wle,checkManifestCompatibility:()=>yle,extractBuildScripts:()=>rQ,getExtractHint:()=>rO,hasBindingGyp:()=>iO});function yle(r){return P.isPackageCompatible(r,ws.getArchitectureSet())}function wle(r,e,{configuration:t,report:i}){return yle(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${ws.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):wle(r,"build",{configuration:i,report:n})?s:[]}var gze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rO(r){return r.packageFs.getExtractHint({relevantExtensions:gze})}function iO(r){let e=x.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ut(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var fze=new Set([P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),wl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Bl(t.project).cjs;if(!O.existsSync(i))throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Ie.getFactoryWithDefault(this.pnpCache,i,()=>Ie.dynamicRequire(i,{cachingStrategy:Ie.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnableLine truncated
`,s+=`# cause your node_modules installation to become invalidated.
`,s+=`
`,s+=`__metadata:
`,s+=` version: ${Lle}
`,s+=` nmMode: ${i.value}
`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=`
`,s+=`${JSON.stringify(u)}:
`,s+=` locations:
`;for(let f of g.locations){let h=x.contains(r.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)}
`}if(g.aliases.length>0){s+=` aliases:
`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)}
`}if(u===a&&t.size>0){s+=` bin:
`;for(let[f,h]of t){let p=x.contains(r.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}:
`;for(let[C,y]of h){let B=x.relative(x.join(f,kr),y);s+=` ${JSON.stringify(C)}: ${JSON.stringify(B)}
`}}}}let l=r.cwd,c=x.join(l,kr,Mle);n&&await O.removePromise(c),await O.changeFilePromise(c,s,{automaticNewlines:!0})}async function uO(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,kr,Mle),n;try{n=await O.statPromise(i)}catch{}if(!n)return null;let s=yi(await O.readFilePromise(i,"utf8"));if(s.__metadata.version>Lle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let C=x.join(t,K.toPortablePath(h)),y=Ie.getMapWithDefault(l,C);for(let[B,v]of Object.entries(p))y.set(Jr(B),K.toPortablePath([C,kr,v].join(x.sep)))}if(a.set(c,{target:Me.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:C}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,C),h),B=P.stringifyLocator(y);a.set(B,{target:Me.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Ole(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(x.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await O.statPromise(r):await O.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await O.unlinkPromise(r);return}}let t=await O.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Jr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await O.unlinkPromise(n)}e.contentsOnly||await O.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Rle=4,sQ=(r,{skipPrefix:e})=>{let t=x.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(x.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Ole=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&x.contains(e,s.target)!==null){let a=Ie.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=Ie.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let f=Ie.getFactoryWithDefault(c.children,g,i);c.children.set(g,f),c=f}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fO=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await O.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await O.symlinkPromise(r,e,"junction"):await O.symlinkPromise(x.relative(x.dirname(e),r),e)};async function Kle(r,e,t){let i=x.join(r,Jr(`${gO.default.randomBytes(16).toString("hex")}.tmp`));try{await O.writeFilePromise(i,t);try{await O.linkPromise(i,e)}catch{}}finally{await O.unlinkPromise(i)}}async function Oze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===Ule.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=x.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await O.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Tze))if(await li.checksumFile(a,{baseFs:O,algorithm:"sha1"})!==t.digest){let g=x.join(i,Jr(`${gO.default.randomBytes(16).toString("hex")}.tmp`));await O.renamePromise(a,g);let f=await n.readFilePromise(r);await O.writeFilePromise(g,f);try{await O.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await O.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await O.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Kle(i,a,c),t.mtimeMs=new Date().getTime();try{await O.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 O.chmodPromise(e,o)}}var Ule=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(Ule||{}),Kze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await O.mkdirPromise(r,{recursive:!0});let o=async(c=Me.dot)=>{let u=x.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),f=new Map;for(let h of g){let p=x.join(c,h.name),C,y=x.join(u,h.name);if(h.isFile()){if(C={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await li.checksumFile(y,{baseFs:t,algorithm:"sha1"});C.digest=B}}else if(h.isDirectory())C={kind:"directory"};else if(h.isSymbolicLink())C={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(f.set(p,C),h.isDirectory()&&p!==kr){let B=await o(p);for(let[v,D]of B)f.set(v,D)}}return f},a;if(n.value==="hardlinks-global"&&i&&s){let c= Line truncated
`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EO.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!Wle.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await Eo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await mi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(gr)||!P.tryParseDescriptor(e.range.slice(gr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(gr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(gr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var zle=Pe(Xr()),Vle=J("url");var Ls=class{supports(e,t){if(!e.reference.startsWith(gr))return!1;let i=new Vle.URL(e.reference);return!(!zle.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await Eo(Ls.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await Eo(Ls.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await mi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=gA(e.scope,{configuration:i}),s=Ls.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=vt.clean(e.reference.slice(gr.length));if(t===null)throw new at(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var Xle=Pe(Xr());var gQ=P.makeIdent(null,"node-gyp"),$ze=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(gr)?!!vt.validRange(e.range.slice(gr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(gr))return!1;let{selector:i}=P.parseRange(e.reference);return!!Xle.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(gr.length)}`);let s=await Eo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Ie.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new vt.SemVer(c);if(n.test(u))return u}catch{}return Ie.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${gr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ls.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=vt.validRange(e.range.slice(gr.length));if(n===nulLine truncated
`;try{n=await O.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Gue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},_Ve={configuration:{...g1,...Gue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Gue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:mo,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ls],resolvers:[uQ,fQ,hQ]},$Ve=_Ve;var C1={};ut(C1,{default:()=>l9e});var kE=Pe(Bn());ls();var OQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(OQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var DE=["info","low","moderate","high","critical"];function jue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function e9e(r,e){return new Set([...r].filter(t=>!e.has(t)))}function t9e(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=jue(r,l),g=jue(r,c);return e9e(g,u)}function que(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function Jue(r){if(typeof r>"u")return new Set(DE);let e=DE.indexOf(r),t=DE.slice(e);return new Set(t)}function r9e(r,e){let t=Jue(e),i={};for(let n of t)i[n]=r[n];return i}function Wue(r,e){var i;let t=r9e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function zue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Jue(e);n=n.filter(a=>o.has(a.severity))}for(let o of Ie.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ee.tuple(ee.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:ee.tuple(ee.Type.NUMBER,o.id)},Issue:{label:"Issue",value:ee.tuple(ee.Type.NO_HINT,o.title)},URL:{label:"URL",value:ee.tuple(ee.Type.URL,o.url)},Severity:{label:"Severity",value:ee.tuple(ee.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ee.tuple(ee.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ee.tuple(ee.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ee.tuple(ee.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ee.tuple(ee.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function Vue(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return que([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function Xue(r,e,{all:t}){var s;let i=t9e(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:que(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var _u=class extends De{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(OQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validat 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 ${DE.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=Pe(Xr()),p1=J("util"),$u=class extends De{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await Ge.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let T=i.topLevelWorkspace;if(!T.manifest.name)throw new Qe(`Missing ${ee.pretty(t,"name",ee.Type.CODE)} field in ${K.fromPortablePath(x.join(T.cwd,xt.manifest))}`);u=P.makeDescriptor(T.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Ot.getIdentUrl(u),f=d1(await Ot.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Ot.customPackageError})),h=Object.keys(f.versions).sort(h1.default.compareLoose),C=f["dist-tags"].latest||h[h.length-1],y=vt.validRange(u.range);if(y){let T=h1.default.maxSatisfying(h,y);T!==null?C=T:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(f["dist-tags"],u.range)?C=f["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=f.versions[C],v={...f,...B,version:C,versions:h},D;if(n!==null){D={};for(let T of n){let H=v[T];if(typeof H<"u")D[T]=H;else{l.reportWarning(1,`The ${ee.pretty(t,T,ee.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete v.dist,delete v.readme,delete v.users),D=v;l.reportJson(D),this.json||s.push(D)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(`
`),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})}
`);return a.exitCode()}};$u.paths=[["npm","info"]],$u.usage=ve.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<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 Zue=Pe(Km()),eg=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ge.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await s9e({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,l=await Ot.put(a,o,{attemptedAs:o.name,configuration:t,registry:i,jsonResponse:!0,authType:Ot.AuthType.NO_AUTH});return await n9e(i,l.token,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};eg.paths=[["npm","login"]],eg.usage=ve.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?or.getScopeRegistry(r,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):r?or.getScopeRegistry(r,{configuration:t}):e?or.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):or.getDefaultRegistry({configuration:t})}async function n9e(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=Ie.isIndexableObject(a)?a:{},c=l[o],u=Ie.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await ye.updateHomeConfiguration(s)}async function s9e({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${ee.pretty(r,e,ee.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be usingLine 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${Ot.getIdentUrl(r)}/dist-tags`;return Ot.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Ot.customPackageError})}var ng=class extends De{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!$ue.default.valid(o))throw new Qe(`The range ${ee.pretty(t,s.range,ee.Type.RANGE)} must be a valid semver version`);let a=or.getPublishRegistry(n.manifest,{configuration:t}),l=ee.pretty(t,s,ee.Type.IDENT),c=ee.pretty(t,o,ee.Type.RANGE),u=ee.pretty(t,this.tag,ee.Type.CODE);return(await Ge.start({configuration:t,stdout:this.context.stdout},async f=>{let h=await RE(s,t);Object.prototype.hasOwnProperty.call(h,this.tag)&&h[this.tag]===o&&f.reportWarning(0,`Tag ${u} is already set to version ${c}`);let p=`/-/package${Ot.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Ot.put(p,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),f.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};ng.paths=[["npm","tag","add"]],ng.usage=ve.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:`
This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.
`,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var sg=class extends De{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new Qe("The 'latest' tag cannot be removed.");let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseIdent(this.package),o=or.getPublishRegistry(n.manifest,{configuration:t}),a=ee.pretty(t,this.tag,ee.Type.CODE),l=ee.pretty(t,s,ee.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new Qe(`${a} is not a tag of package ${l}`);return(await Ge.start({configuration:t,stdout:this.context.stdout},async g=>{let f=`/-/package${Ot.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Ot.del(f,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};sg.paths=[["npm","tag","remove"]],sg.usage=ve.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:`
This command will remove a tag from a package from the npm registry.
`,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var og=class extends De{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=or.getScopeRegistry(this.scope,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):this.scope?i=or.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=or.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=or.getDefaultRegistry({configuration:t}),(await Ge.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Ot.get("/-/whoami",{configuration:t,registry:i,authType:Ot.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};og.paths=[["npm","whoami"]],og.usage=ve.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var A9e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[_u,$u,eg,tg,rg,ng,ig,sg,og]},l9e=A9e;var S1={};ut(S1,{default:()=>Q9e,patchUtils:()=>ag});var ag={};ut(ag,{applyPatchFile:()=>GQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>oge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var c9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return x.relative(Me.root,x.resolve(Me.root,K.toPortablePath(r)))}function u9e(r){let e=r.trim().match(c9e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var g9e=420,f9e=493;var ege=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),h9e=r=>({header:u9e(r),parts:[]}),p9e={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function d9e(r){let e=[],t=ege(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=ege()}for(let l=0;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(x.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await y9e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(tge(n.newMode)!==tge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Ie.assertNever(n);break}}function tge(r){return(r&64)>0}function rge(r){return r.replace(/\s+$/,"")}function I9e(r,e){return rge(r)===rge(e)}async function y9e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),C=Math.max(h,p),y=0,B=0,v=null;for(;y<=C;){if(y<=h&&(B=f-y,v=ige(g,o,B),v!==null)){y=-y;break}if(y<=p&&(B=f+y,v=ige(g,o,B),v!==null))break;y+=1}if(v===null)throw new Ip(r.indexOf(g),g);a.push(v),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:Ie.assertNever(f);break}await t.writeFilePromise(e,o.join(`
`),{mode:n})}function ige(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!I9e(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:Ie.assertNever(n.type);break}return i}var B9e=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,P.parseDescriptor);return e}function nge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,nge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,nge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function sge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(B9e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function oge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return sge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new qt(Me.root),prefixPath:x.relative(Me.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Ie.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=oge(o),l=await sge({onAbsolute:async()=>await O.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,`
`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new ti,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await O.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([O.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),O.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),O.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),O.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Cr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.
The following error was reported by 'git':
${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Ie.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ie.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Ie.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Ie.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!vt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return li.makeHash(`${3}`,...t).slice(0,6)}function age(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${ee.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${ee.pretty(e,n,ee.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${ee.pretty(e,n,ee.Type.ADDED)}`);break;default:Ie.assertNever(i.type)}}var YQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await O.mktempPromise(),c=x.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await an(),h=new Wr(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Ie.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:C}of a){if(p===null)continue;let y=new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),B=new qt(x.resolve(Me.root,g),{baseFs:y});try{await GQ(FE(p),{baseFs:B,version:s})}catch(v){if(!(v instanceof Ip))throw v;let D=t.project.configuration.get("enableInlineHunks"),T=!D&&!C?" (set enableInlineHunks for details)":"",H=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${T}`,j=$=>{!D||age(v.hunk,{configuration:t.project.configuration,report:$})};if(y.discardAndClose(),C){t.report.reportWarningOnce(66,H,{reportExtra:j});continue}else throw new at(66,H,j)}y.saveAndClose()}return new Wr(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var jQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var Ag=class extends De{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await ye.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=x.join(s,"../source"),a=x.join(s,"../.yarn-patch.json");if(!O.existsSync(o))throw new Qe("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await O.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new Qe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),f=x.join(g,`${P.slugifyLocator(u)}.patch`);await O.mkdirPromise(g,{recursive:!0}),await O.writeFilePromise(f,l);let h=new Map;for(let p of i.storedPackages.values()){if(P.isVirtualLocator(p))continue;let C=p.dependencies.get(u.identHash);if(!C)continue;let y=P.isVirtualDescriptor(C)?P.devirtualizeDescriptor(C):C,B=E1(y),v=i.storedResolutions.get(B.descriptorHash);if(!v)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(v))Line truncated
${a.map(l=>`
- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new Qe("No package found in the project for the given locator");await Ge.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${ee.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${ee.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};lg.paths=[["patch"]],lg.usage=ve.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <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 b9e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[Ag,lg],fetchers:[YQ],resolvers:[jQ]},Q9e=b9e;var D1={};ut(D1,{default:()=>x9e});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new Qe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new Qe(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new Ie.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=x.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=S9e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await O.mkdirPromise(n,{recursive:!0}),await O.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:Co.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=Co.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Age(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,xt.nodeModules),o=[],a=await lge(s);for(let[l,c]of t){let u=c;Age(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expe 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.
*/
+32
View File
@@ -0,0 +1,32 @@
nmHoistingLimits: workspaces
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.6.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
+2
View File
@@ -0,0 +1,2 @@
*~
WebsiteAssets/locales/*.mo
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,136 @@
<mxfile host="Electron" modified="2023-04-29T09:42:39.598Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="apmX4QvXCQymGu7gtKJn" version="21.2.1" type="device">
<diagram name="Page-1" id="5f0bae14-7c28-e335-631c-24af17079c00">
<mxGraphModel dx="1244" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="93vzSs2z7RmF_nCAYhdf-1" value="Front end" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="465" y="120" width="170" height="60" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-4" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-5" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="490" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-6" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="670" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-10" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-11" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="490" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-12" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="670" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-14" value="SQLite database" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="490" y="580" width="122.5" height="100" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-19" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-20" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-21" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-22" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-23" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-24" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-25" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-26" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-27" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-28" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-14">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-29" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-14" target="93vzSs2z7RmF_nCAYhdf-11">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-30" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-14" target="93vzSs2z7RmF_nCAYhdf-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-31" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-4" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-32" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-5" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-33" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-6" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-37" value="BACKEND" style="swimlane;whiteSpace=wrap;html=1;swimlaneFillColor=none;shadow=0;" vertex="1" parent="1">
<mxGeometry x="280" y="230" width="560" height="480" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-38" value="JSON config file" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" vertex="1" parent="1">
<mxGeometry x="910" y="420" width="80" height="100" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-39" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-37" target="93vzSs2z7RmF_nCAYhdf-38">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830" y="480" as="sourcePoint" />
<mxPoint x="800" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
@@ -0,0 +1,70 @@
<mxfile host="Electron" modified="2023-04-29T10:24:42.580Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="kcPEKHJGaBvNGFhEOF2g" version="21.2.1" type="device">
<diagram name="Page-1" id="5f0bae14-7c28-e335-631c-24af17079c00">
<mxGraphModel dx="1306" dy="797" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="t8PL5avYcYxuv0YEq-6K-7" value="Joplin Server" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="40" width="630" height="465" as="geometry">
<mxRectangle x="350" y="300" width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-2" value="Server application" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="270" y="92.5" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-3" value="PostgreSQL" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="190" y="262.5" width="140" height="110" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-5" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-3" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="232.5" as="sourcePoint" />
<mxPoint x="330" y="182.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-11" value="Note metadata,&lt;br&gt;user accounts, etc." style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t8PL5avYcYxuv0YEq-6K-5">
<mxGeometry x="0.0586" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-4" value="AWS S3" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="430" y="277.5" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-6" value="Note and attachment&lt;br&gt;content" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0;exitY=0;exitDx=50;exitDy=0;exitPerimeter=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-4" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="242.5" as="sourcePoint" />
<mxPoint x="440" y="192.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-12" value="Reverse proxy" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="70" y="97.5" width="75" height="75" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-13" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-12" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="180" y="160" as="sourcePoint" />
<mxPoint x="230" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-18" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-14" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-14" value="Env file (config)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="540" y="90" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-8" value="Joplin Application (mobile, desktop, ...)" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="40" y="110" width="130" height="130" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-9" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="t8PL5avYcYxuv0YEq-6K-8" target="t8PL5avYcYxuv0YEq-6K-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="130" y="270" as="sourcePoint" />
<mxPoint x="310" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-10" value="HTTP REST requests" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t8PL5avYcYxuv0YEq-6K-9">
<mxGeometry x="0.0435" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

+2 -2
View File
@@ -10,9 +10,9 @@
"license": "ISC",
"devDependencies": {
"@ephox/oxide-icons-tools": "^2.1.1",
"gulp": "^4.0.2",
"gulp": "4.0.2",
"gulp-clean": "^0.4.0",
"prompts": "^2.2.1"
},
"iconPackName": "Joplin"
}
}␍
@@ -9,11 +9,13 @@ import PluginManager from 'tinymce/core/api/PluginManager';
import * as Api from './api/Api';
import * as Commands from './api/Commands';
import * as Keyboard from './core/Keyboard';
import * as Mouse from './core/Mouse'
import * as Buttons from './ui/Buttons';
export default function () {
PluginManager.add('joplinLists', function (editor) {
Keyboard.setup(editor);
Mouse.setup(editor);
Buttons.register(editor);
Commands.register(editor);
@@ -0,0 +1,26 @@
import { isJoplinChecklistItem } from '../listModel/JoplinListUtil';
const setup = function (editor) {
const editorClickHandler = (event) => {
if (!isJoplinChecklistItem(event.target)) return;
// We only process the click if it's within the checkbox itself (and not the label).
// That checkbox, based on
// the current styling is in the negative margin, so offsetX is negative when clicking
// on the checkbox itself, and positive when clicking on the label. This is strongly
// dependent on how the checkbox is styled, so if the style is changed, this might need
// to be updated too.
// For the styling, see:
// packages/renderer/MdToHtml/rules/checkbox.ts
//
// The previous solution was to use "pointer-event: none", which mostly work, however
// it means that links are no longer clickable when they are within the checkbox label.
if (event.offsetX >= 0) return;
editor.execCommand('ToggleJoplinChecklistItem', false, { element: event.target });
}
editor.on('click', editorClickHandler);
};
export { setup };
@@ -42,7 +42,7 @@ export function addJoplinChecklistCommands(editor, ToggleList) {
});
editor.addCommand('InsertJoplinChecklist', function (ui, detail) {
detail = Object.assign({}, detail, { listType: 'joplinChecklist' });
detail = { ...detail, listType: 'joplinChecklist' };
ToggleList.toggleList(editor, 'UL', detail);
});
}
@@ -10,7 +10,7 @@ import * as Settings from '../api/Settings';
import * as NodeType from '../core/NodeType';
import Editor from 'tinymce/core/api/Editor';
import { isCustomList } from '../core/Util';
import { findContainerListTypeFromEvent, isJoplinChecklistItem } from '../listModel/JoplinListUtil';
import { findContainerListTypeFromEvent } from '../listModel/JoplinListUtil';
const findIndex = function (list, predicate) {
for (let index = 0; index < list.length; index++) {
@@ -38,37 +38,11 @@ const listState = function (editor: Editor, listName, options:any = {}) {
buttonApi.setActive(listType === options.listType && lists.length > 0 && lists[0].nodeName === listName && !isCustomList(lists[0]));
};
const editorClickHandler = (event) => {
if (!isJoplinChecklistItem(event.target)) return;
// We only process the click if it's within the checkbox itself (and not the label).
// That checkbox, based on
// the current styling is in the negative margin, so offsetX is negative when clicking
// on the checkbox itself, and positive when clicking on the label. This is strongly
// dependent on how the checkbox is styled, so if the style is changed, this might need
// to be updated too.
// For the styling, see:
// packages/renderer/MdToHtml/rules/checkbox.ts
//
// The previous solution was to use "pointer-event: none", which mostly work, however
// it means that links are no longer clickable when they are within the checkbox label.
if (event.offsetX >= 0) return;
editor.execCommand('ToggleJoplinChecklistItem', false, { element: event.target });
}
if (options.listType === 'joplinChecklist') {
editor.on('click', editorClickHandler);
}
editor.on('NodeChange', nodeChangeHandler);
return () => {
if (options.listType === 'joplinChecklist') {
editor.off('click', editorClickHandler);
}
editor.off('NodeChange', nodeChangeHandler);
}
}
};
};
+821
View File
@@ -0,0 +1,821 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}
/* Global */
:root {
--primary-DarkBlue: #043873;
--primary-White: #ffffff;
--primary-DarkGray: #32363f;
--accent-LightBlue: #4f9cf9;
--accent-Yellow: #ffe492;
--variationPrimary-VaraintDark: #072445;
--variationPrimary-VaraintWhite: #f8f9fa;
--variationPrimary-VaraintDarkGray: #212529;
--variationAccent-VaraintLightBlue: #F7FBFF;
}
* {
font-family: "Montserrat", sans-serif;
}
h2 {
border-bottom: none;
margin-bottom: 0;
margin-top: 0.7em;
}
#mobile_icon_logo{
display: none;
}
.joplin__para {
font-weight: 400;
font-size: 20.8px;
line-height: 1.5;
color: var(--primary-DarkGray);
margin: 0;
padding: 0;
}
@media screen and (max-width: 767px) {
.joplin__para {
/* text-align: center; */
width: 100% !important;
}
}
@media screen and (max-width: 425px) {
.joplin__para {
font-size: 18px;
}
}
.joplin__tagline1 {
font-weight: 700;
font-size: 32px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 425px) {
.joplin__tagline1 {
font-size: 28px;
}
}
@media (min-width: 576px) {
.container {
max-width: 540px;
}
}
@media (min-width: 768px) {
.container {
max-width: 720px;
}
}
@media (min-width: 992px) {
.container {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.container {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
.container {
max-width: 1220px;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.justify-content-tablet-end {
justify-content: flex-end;
}
}
/* Global */
/* Header */
header {
background-image: url("../images/brand/background\ blue\ motif\ 1.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border-radius: 5px;
padding: 36px 0;
}
header .container nav {
display: flex;
justify-content: space-between;
align-items: center;
}
@media screen and (max-width: 425px) {
header .container nav {
align-items: flex-start;
}
}
h1.main-logo {
font-weight: 600;
font-size: 48px;
color: var(--primary-DarkBlue);
margin: 0;
border-bottom: 1px solid #ddd;
line-height: 1.3em;
padding-bottom: 0.5em;
}
@media screen and (max-width: 992px) {
header .container nav img {
max-width: 200px;
}
#brand_guidelines{
margin-top: 50px;
font-weight: 600;
}
}
@media screen and (max-width: 767px) {
header .container nav img {
max-width: 150px;
}
}
@media screen and (max-width: 576px) {
#main_lockup {
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 20px;
margin-top: 10px;
}
}
@media screen and (max-width: 375px) {
header .container nav h1.main-logo {
font-size: 40px;
}
#main_lockup{
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 30px;
margin-top: 10px;
}
}
/*header .container nav .logo {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 30px;
flex-wrap: nowrap;
}*/
@media (min-width: 768px) and (max-width: 991px) {
header .container nav .logo {
align-items: flex-start;
}
}
header .container nav .logo h3 {
font-weight: 600;
font-size: 48px;
color: #ffffff;
letter-spacing: 1px;
margin: 0;
}
@media screen and (max-width: 560px) {
header .container nav .logo h3 {
display: none;
}
}
/* Header */
/* joplin Logos */
.joplin__logos {
padding-top: 0px;
padding-bottom: 43px;
}
.joplin__logos h2.main-logo {
font-weight: 700;
font-size: 40px;
color: var(--primary-DarkBlue);
/* margin-bottom: 45px; */
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
text-align: center;
}
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
font-size: 33px;
}
}
.joplin__logos .container > p {
margin-bottom: 6px;
}
.joplin__logos > .wrapper {
padding: 40px 0 45px 0;
margin: 40px 45px;
/* width: calc(100% - 6.5vw); */
border: 1px solid var(--variationPrimary-VaraintDarkGray);
border-radius: 5px;
margin-left: 0;
margin-right: 0;
}
@media screen and (max-width: 1440px) {
.joplin__logos > .wrapper {
padding: 40px 0 45px 0;
margin: 40px auto;
margin-left: 0;
margin-right: 0;
}
}
.joplin__logos .wrapper .para-1 {
margin-bottom: 19px;
}
.joplin__logos .wrapper .logo-wrapper {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 27px;
}
.joplin__logos .wrapper .logo-wrapper:last-child {
gap: 24px;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper img {
width: 50px;
height: 50px;
}
}
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 38px;
font-weight: 600;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 32px;
font-weight: 600;
}
}
.joplin__logos .wrapper .logo-wrapper .blue-header {
color: var(--accent-LightBlue);
margin: 0;
}
.joplin__logos .wrapper .logo-wrapper .white-header {
color: var(--primary-White);
margin: 0;
}
.joplin__logos .wrapper .para-1 .blue-text {
font-weight: bold;
color: var(--accent-LightBlue);
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box:nth-child(1) {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 80%;
}
@media screen and (max-width: 1024px) {
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 90%;
}
}
.para-1 {
width: 100%;
}
.joplin__logos .wrapper-2 .our-para {
width: 100% !important;
}
@media screen and (min-width: 1400px) {
.joplin__logos .wrapper .box2 {
/* padding-left: 50px;
margin-right: -130px; */
}
}
.joplin__logos .wrapper .colored-box {
background-color: var(--primary-DarkBlue);
padding: 17px 15px 15px 24px;
/* width: 320px; */
/* height: 189px; */
}
@media (min-width: 768px) and (max-width: 991px) {
.joplin__logos .wrapper .colored-box {
transform: translateX(-35px);
}
}
.joplin__logos .wrapper .colored-box p {
font-weight: normal;
color: var(--primary-White);
margin-bottom: 20px;
line-height: 1.5;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .colored-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
}
.joplin__logos .wrapper .box-wrapper {
display: flex;
justify-content: flex-start;
align-items: flex-start;
gap: 14px;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box-wrapper {
flex-direction: column-reverse;
justify-content: center;
align-items: center;
}
.joplin__logos .wrapper h2 {
text-align: center;
}
}
.joplin__logos .wrapper .box-wrapper img {
margin-top: 7px;
max-width: 100%;
}
.joplin__logos .wrapper .box-wrapper p {
width: 70%;
}
.joplin__logos .wrapper-2 {
position: relative;
padding: 42px 0 35px 0;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 {
padding: 42px 0 35px 0;
}
}
.joplin__logos .wrapper-2 .pipeline {
width: 1px;
height: 94%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 47%;
transform: translate(-50%, -50%);
}
@media screen and (max-width: 1200px) {
.joplin__logos .wrapper-2 .pipeline {
display: none;
}
}
@media screen and (max-width: 1366px) {
.joplin__logos .wrapper-2 .pipeline {
left: 49%;
}
}
.joplin__logos .wrapper-2 .joplin__tagline1 {
margin-bottom: 34px;
}
.joplin__logos .wrapper-2 .our-para {
margin-top: 19px;
}
.joplin__logos .wrapper-2 img {
max-width: 100%;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 .box-wrapper {
margin-right: 0;
}
}
@media (min-width: 1400px) and (max-width: 2100px) {
.joplin__logos .wrapper-2 .special-box {
margin-left: 150px;
}
.joplin__logos .wrapper-2 .special-box p {
width: 100%;
}
.joplin__logos .wrapper-2 .pipeline {
left: 53%;
}
}
/* @media (min-width: 1441px) and (max-width: 1750px) {
.joplin__logos .p-row {
padding: 0 5rem;
}
} */
/* joplin Logos */
/* joplin__Colours */
.joplin__colours {
padding: 5px 0;
background-image: url("../images/brand/background\ blue\ motif\ 2.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__colours h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
text-align: center;
}
}
.joplin__colours p {
color: var(--primary-White);
margin-bottom: 40px;
}
.joplin__colours .custom-row {
display: flex;
justify-content: center;
align-items: center;
gap: 45px;
padding-bottom: 20px;
}
@media screen and (max-width: 1400px) {
.joplin__colours .custom-row {
flex-wrap: wrap;
}
}
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 535px;
}
@media screen and (max-width: 575px) {
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 270px;
}
}
/* joplin__Colours */
/* joplin__Pallet */
.joplin__pallet {
padding: 45px 0 92px 0;
}
.joplin__pallet h3 {
font-weight: 600;
font-size: 32px;
margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
.joplin__pallet h3 {
font-size: 28px;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet h3 {
text-align: center;
}
}
.joplin__pallet .sigma-wrapper {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 35px;
}
@media screen and (max-width: 555px) {
.joplin__pallet .sigma-wrapper {
flex-direction: column;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
}
@media screen and (max-width: 992px) {
.joplin__pallet .sigma-wrapper .circle-wrapper {
align-items: center;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet .sigma-wrapper {
justify-content: center;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper .circle {
width: 120px;
height: 120px;
border-radius: 50%;
border: 1px solid #000;
margin-bottom: 30px;
}
.joplin__pallet .row-space {
padding: 50px 0;
display: flex;
justify-content: flex-end;
align-items: center;
}
.joplin__pallet .row-space div {
width: 97%;
height: 1px;
background-color: var(--primary-DarkGray);
}
.joplin__pallet .dark-blue {
background-color: var(--primary-DarkBlue);
}
.joplin__pallet .white {
background-color: var(--primary-White);
}
.joplin__pallet .dark-gray {
background-color: var(--primary-DarkGray);
}
.joplin__pallet .light-blue {
background-color: var(--accent-LightBlue);
}
.joplin__pallet .yellow {
background-color: var(--accent-Yellow);
}
.joplin__pallet .variant-dark {
background-color: var(--variationPrimary-VaraintDark);
}
.joplin__pallet .variant-white {
background-color: var(--variationPrimary-VaraintWhite);
}
.joplin__pallet .variant-dark-gray {
background-color: var(--variationPrimary-VaraintDarkGray);
}
.joplin__pallet .variant-light-blue {
background-color: var(--variationAccent-VaraintLightBlue);
}
/* joplin__Pallet */
/* joplin__State */
.joplin__state {
background-color: var(--primary-DarkBlue);
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: bottom center;
background-repeat: no-repeat;
background-size: cover;
padding: 65px 0 78px 0;
position: relative;
}
.joplin__state::before {
content: "";
width: 1px;
height: 98%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
overflow: hidden;
}
@media screen and (max-width: 992px) {
.joplin__state::before {
display: none;
}
}
.joplin__state .image {
transform: translateY(25px);
}
.joplin__state .wrapper > div {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.joplin__state .wrapper > div .box h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
/* @media screen and (min-width: 1400px) {
.joplin__state .wrapper > div .box h2 {
text-wrap: nowrap;
}
} */
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
text-align: center;
}
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
font-size: 33px;
}
}
.joplin__state .wrapper > div .box p {
color: var(--primary-White);
width: 85%;
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box p {
font-size: 18px;
}
}
.joplin__state .wrapper > div .box img {
max-width: 100%;
}
.joplin__highlighter {
padding: 74px 0;
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__highlighter h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
text-align: center;
}
}
.joplin__highlighter p {
color: var(--primary-White);
}
@media screen and (max-width: 500px) {
.joplin__highlighter p {
font-size: 18px;
}
}
.joplin__highlighter .wrapper {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 22px;
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper {
flex-wrap: wrap;
row-gap: 25px;
justify-content: center;
}
}
.joplin__highlighter .wrapper div {
padding: 32px 62px;
border-radius: 5px;
position: relative;
}
.joplin__highlighter .wrapper div:first-child img {
position: absolute;
top: 57%;
max-width: 100%;
}
.joplin__highlighter .wrapper div:last-child img {
position: absolute;
top: 59%;
max-width: 100%;
}
@media screen and (max-width: 1200px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 44%;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper div:first-child img {
top: 59%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 59%;
}
}
@media screen and (max-width: 490px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 43%;
}
}
@media screen and (max-width: 320px) {
.joplin__highlighter .wrapper div:last-child img {
top: 36%;
}
}
.joplin__highlighter .wrapper div.yellow {
background-color: var(--primary-White);
}
.joplin__highlighter .wrapper div.blue {
background-color: var(--primary-DarkBlue);
}
.joplin__highlighter .wrapper div h4 {
color: var(--variationPrimary-VaraintDarkGray);
margin: 0;
font-weight: 700;
font-size: 20.8px;
line-height: 1.5;
}
.joplin__highlighter .wrapper div.blue h4 {
color: var(--primary-White);
}
/* joplin__State */
/* joplin__Voice */
.joplin__voice {
padding: 78px 0;
}
.joplin__voice .container h2 {
font-weight: 700;
font-size: 40px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 500px) {
.joplin__voice .container h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__voice .container h2 {
font-size: 33px;
text-align: center;
}
}
.joplin__voice .container .wrapper {
margin-top: 57px;
}
.joplin__voice .container .wrapper .box {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 20px;
}
@media screen and (max-width: 767px) {
.joplin__voice .container .wrapper .box {
flex-direction: column;
}
}
.joplin__voice .container .wrapper .box div:first-child {
flex: 1;
}
.joplin__voice .container .wrapper .box div:last-child {
flex: 2;
}
.joplin__voice .container .wrapper .box div h3 {
font-weight: 700;
font-size: 32px;
line-height: 1.7;
color: var(--primary-DarkGray);
}
@media (max-width: 767px) {
.joplin__voice .container .wrapper .box div h3 {
text-align: center;
font-size:28px;
}
.joplin__voice .container .wrapper .box {
align-items: center;
}
}
.joplin__voice .container .wrapper .box div p {
margin-bottom: 36px;
}
@media screen and (max-width: 500px) {
.joplin__voice .container .wrapper .box div p {
font-size: 18px;
}
}
/* joplin__Voice */
.chartjs-wrapper {
background-color: #d9d9d9;
padding: 10px 20px;
max-width: 45%;
}
+186 -6
View File
@@ -188,6 +188,11 @@ h2 {
padding-bottom: 0.5em;
}
h3 {
font-size: 1.3em;
margin-bottom: 0.8rem;
}
.front-page h1 {
font-size: 3em;
}
@@ -302,7 +307,7 @@ p,
div.navbar-mobile-content a.sponsor-button {
padding: 4px 12px;
font-size: 0.9em;
margin-right: 1em;
margin-right: 0.5em;
}
#nav-section.white-bg a {
@@ -394,12 +399,12 @@ div.navbar-mobile-content a.sponsor-button {
margin: auto;
}
#top-section-img {
.top-section-img {
margin-bottom: -280px;
margin-top: 40px;
}
#top-section-img img {
.top-section-img img {
width: 100%;
}
@@ -518,12 +523,17 @@ div.navbar-mobile-content a.sponsor-button {
.bottom-links {
display: flex;
flex-direction: row;
justify-content: center;
border-top: 1px solid #d4d4d4;
margin-top: 30px;
padding-top: 25px;
}
.bottom-links .bottom-link {
margin-right: 20px;
}
/* TOC */
#toc ul {
@@ -647,6 +657,34 @@ footer .bottom-links-row p {
font-size: 1.1em;
}
.language-switcher {
display: inline;
}
.language-switcher > button {
border: none;
background-color: transparent;
color: #0557ba;
}
/*****************************************************************
WHAT'S NEW PAGE
*****************************************************************/
.news-page .container > .content-wrapper,
.news-item-page .container > .content-wrapper {
/* Set the line width so that there's no more than 75 characters per line */
/* https://baymard.com/blog/line-length-readability */
max-width: 650px;
margin-left: auto;
margin-right: auto;
}
.news-page .main-content img,
.news-item-page .main-content img {
max-width: 100%;
}
/*****************************************************************
IN THE PRESS
The "In the press" section height needs to be adjusted as the
@@ -700,6 +738,33 @@ footer .bottom-links-row p {
}
}
/*****************************************************************
LARGE VIEW
*****************************************************************/
@media (max-width: 1200px) {
#nav-section a {
margin-left: 10px;
}
}
/*****************************************************************
MEDIUM VIEW
- Make menu bar elements smaller and closer to each others
so that everything fit.
*****************************************************************/
@media (max-width: 990px) {
#nav-section > .container {
max-width: 960px;
}
#nav-section .button-link {
padding: 4px 10px;
font-size: 15px;
}
}
/*****************************************************************
NARROW VIEW
- Top right menu is displayed
@@ -712,6 +777,24 @@ footer .bottom-links-row p {
padding-bottom: 130px;
}
#menu-mobile .social-links {
display: flex;
justify-content: center;
margin-top: 20px;
}
#menu-mobile .social-links a {
margin-left: 15px;
font-size: 20px;
}
#menu-mobile .social-links .social-link-mastodon,
#menu-mobile .social-links .social-link-lemmy,
#menu-mobile .social-links .social-link-linkedin,
#menu-mobile .social-links .social-link-patreon {
display: none;
}
.front-page h1 {
font-size: 2.5em;
}
@@ -829,7 +912,7 @@ footer .bottom-links-row p {
}
#menu-mobile .button-link {
padding: 10px 15px;
padding: 4px 12px;
font-size: 16px;
margin-left: 0px;
}
@@ -848,7 +931,7 @@ footer .bottom-links-row p {
padding-top: 80px;
}
#top-section-img {
.top-section-img {
margin-bottom: -90px;
margin-top: 50px;
}
@@ -875,6 +958,73 @@ footer .bottom-links-row p {
}
}
/*****************************************************************
MORE NARROW VIEW
eg for Galaxy S9
*****************************************************************/
@media (max-width: 580px) {
#nav-section .plans-button {
display: none;
}
}
/*****************************************************************
MORE NARROW VIEW
eg for Galaxy S9
*****************************************************************/
@media (max-width: 400px) {
#nav-section .navbar-mobile-content a.sponsor-button .sponsor-button-label {
font-size: 12px;
}
#nav-section .navbar-mobile-content a.sponsor-button {
padding: 2px 6px;
margin-right: 0.2em;
}
#nav-section a {
margin-left: 5px;
}
}
/*****************************************************************
VERY NARROW VIEW
eg for Galaxy Fold
*****************************************************************/
@media (max-width: 350px) {
#nav-section .navbar-mobile-content a.sponsor-button {
background-color: transparent;
color: #0557ba !important;
font-size: 18px;
}
#nav-section .navbar-mobile-content a.sponsor-button .sponsor-button-label {
display: none;
}
#nav-section a {
margin-left: 4px;
}
div.navbar-mobile-content a.sponsor-button {
margin-right: 10px;
}
#nav-section .button-link {
padding-left: 0;
padding-right: 0;
}
}
/*****************************************************************
PLANS PAGE
*****************************************************************/
@@ -992,6 +1142,10 @@ footer .bottom-links-row p {
display: none;
}
.joplin-cloud-feature-list table {
width: 100%;
}
.price-row .plan-type {
display: flex;
align-items: center;
@@ -1069,7 +1223,7 @@ footer .bottom-links-row p {
background-position: bottom;
padding-bottom: 160px;
}
#top-section-img {
.top-section-img {
margin-bottom: -240px;
margin-top: 130px;
}
@@ -1097,3 +1251,29 @@ footer .bottom-links-row p {
margin-top: -15p;
}
}
/*****************************************************************
ENGLISH VERSION
*****************************************************************/
:lang(en-gb) #made-in-france-section {
display: none;
}
:lang(en-gb) .top-section-img-cn {
display: none;
}
/*****************************************************************
CHINESE VERSION
*****************************************************************/
:lang(zh-cn) #in-the-press-section,
:lang(zh-cn) #sponsors-section,
:lang(zh-cn) .top-section-img-en {
display: none;
}
:lang(zh-cn) #plans-section .faq {
display: none;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Loaded 100 of 3592 files, more files were not shown because too many files have changed in this diff. Show more