diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8fc3ce92c..5f5797c28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,9 +27,9 @@ jobs: steps: # Note: This workflow disables deployment steps and micro:bit branding installation on forks. - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Configure node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 20.x cache: "npm" @@ -37,7 +37,7 @@ jobs: - run: npm ci env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: npm install --no-save @microbit-foundation/python-editor-v3-microbit@0.2.0-dev.38 @microbit-foundation/website-deploy-aws@0.6.0 @microbit-foundation/website-deploy-aws-config@0.9.0 @microbit-foundation/circleci-npm-package-versioner@1 + - run: npm install --no-save @microbit-foundation/python-editor-v3-microbit@0.2.0-dev.43 @microbit-foundation/website-deploy-aws@0.6.0 @microbit-foundation/website-deploy-aws-config@0.9.0 @microbit-foundation/circleci-npm-package-versioner@1 if: github.repository_owner == 'microbit-foundation' env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/bin/update-translations.sh b/bin/update-translations.sh index b38aee490..c2bbfc4ac 100755 --- a/bin/update-translations.sh +++ b/bin/update-translations.sh @@ -15,7 +15,7 @@ if [ $# -eq 0 ]; then exit 1 fi -languages="ca de fr es-ES ja ko nl zh-CN zh-TW" +languages="ca de fr es-ES ja ko nl zh-CN zh-TW lol" mkdir -p crowdin/translated for language in $languages; do diff --git a/index.html b/index.html index 149dbcbe5..9037b7050 100644 --- a/index.html +++ b/index.html @@ -35,6 +35,17 @@ window.dataLayer.push(arguments); }; + <% } %> diff --git a/lang/ui.lol.json b/lang/ui.lol.json new file mode 100644 index 000000000..39c1fd99e --- /dev/null +++ b/lang/ui.lol.json @@ -0,0 +1,1173 @@ +{ + "about": { + "defaultMessage": "crwdns331356:0crwdne331356:0", + "description": "About action" + }, + "about-comic": { + "defaultMessage": "crwdns331358:0crwdne331358:0", + "description": "Alt text for comic in the about dialog" + }, + "about-microbit": { + "defaultMessage": "crwdns331360:0crwdne331360:0", + "description": "Text in about dialog" + }, + "about-micropython": { + "defaultMessage": "crwdns331362:0crwdne331362:0", + "description": "Text in about dialog" + }, + "about-read-less-micropython": { + "defaultMessage": "crwdns331364:0crwdne331364:0", + "description": "Aria label to collapse an expanded section about MicroPython" + }, + "about-read-more-micropython": { + "defaultMessage": "crwdns331366:0crwdne331366:0", + "description": "Aria label to expand a collapsed section about MicroPython" + }, + "added-change": { + "defaultMessage": "crwdns331368:0{changeName}crwdne331368:0", + "description": "Change made to file" + }, + "api-description": { + "defaultMessage": "crwdns331370:0crwdne331370:0", + "description": "Extended description at the top of the API tab" + }, + "api-tab": { + "defaultMessage": "crwdns331372:0crwdne331372:0", + "description": "API tab button text" + }, + "apidocs-baseclass": { + "defaultMessage": "crwdns331374:0baseClassCount={baseClassCount}crwdne331374:0", + "description": "Prefix for a single base class or a list of base classes. Uses ICU syntax for pluralisation: https://formatjs.io/docs/core-concepts/icu-syntax/#plural-format." + }, + "apidocs-classes": { + "defaultMessage": "crwdns331376:0crwdne331376:0", + "description": "Heading in API documentation for the classes in a Python module" + }, + "apidocs-fields": { + "defaultMessage": "crwdns331378:0crwdne331378:0", + "description": "Heading in API documentation for the fields in a Python module" + }, + "apidocs-functions": { + "defaultMessage": "crwdns331380:0crwdne331380:0", + "description": "Heading in API documentation for the functions in a Python module" + }, + "apidocs-methods": { + "defaultMessage": "crwdns331382:0crwdne331382:0", + "description": "Heading in API documentation for the methods in a Python class" + }, + "back-action": { + "defaultMessage": "crwdns331384:0crwdne331384:0", + "description": "Back button text" + }, + "back-to-main": { + "defaultMessage": "crwdns331386:0crwdne331386:0", + "description": "Text button, takes back to main code" + }, + "cancel-action": { + "defaultMessage": "crwdns331388:0crwdne331388:0", + "description": "Cancel button text" + }, + "change-files": { + "defaultMessage": "crwdns331390:0crwdne331390:0", + "description": "Header for dialog of confirmation of files changed" + }, + "choose-main-add-file": { + "defaultMessage": "crwdns331392:0{name}crwdne331392:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-add-module": { + "defaultMessage": "crwdns331394:0{name}crwdne331394:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-replace-file": { + "defaultMessage": "crwdns331396:0{name}crwdne331396:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-replace-module": { + "defaultMessage": "crwdns331398:0{name}crwdne331398:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-source-add-file": { + "defaultMessage": "crwdns331400:0{target}crwdnd331400:0{source}crwdne331400:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-source-add-main-code": { + "defaultMessage": "crwdns331402:0{source}crwdne331402:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-source-replace-file": { + "defaultMessage": "crwdns331404:0{target}crwdnd331404:0{source}crwdne331404:0", + "description": "Shown in load dialog to confirm actions" + }, + "choose-main-source-replace-main-code": { + "defaultMessage": "crwdns331406:0{source}crwdne331406:0", + "description": "Shown in load dialog to confirm actions" + }, + "clear": { + "defaultMessage": "crwdns331408:0crwdne331408:0", + "description": "Aria label for the search input" + }, + "close-action": { + "defaultMessage": "crwdns331410:0crwdne331410:0", + "description": "Close button text" + }, + "code-editor": { + "defaultMessage": "crwdns331412:0crwdne331412:0", + "description": "Aria label for the code editor" + }, + "code-example": { + "defaultMessage": "crwdns331414:0crwdne331414:0", + "description": "Visually hidden text to announce code examples in the toolkit documentation" + }, + "confirm-action": { + "defaultMessage": "crwdns331416:0crwdne331416:0", + "description": "Confirm action label" + }, + "confirm-delete": { + "defaultMessage": "crwdns331418:0crwdne331418:0", + "description": "Confirmation header of deletion of a file" + }, + "confirm-replace-body": { + "defaultMessage": "crwdns331420:0crwdne331420:0", + "description": "Confirmation message body for replacing project dialog" + }, + "confirm-replace-reset": { + "defaultMessage": "crwdns331422:0crwdne331422:0", + "description": "Confirmation message for the reset action" + }, + "confirm-replace-title": { + "defaultMessage": "crwdns331424:0crwdne331424:0", + "description": "Confirmation message title for replacing project dialog" + }, + "confirm-replace-with-idea": { + "defaultMessage": "crwdns331426:0{ideaName}crwdne331426:0", + "description": "Confirmation message body for replacing project dialog with an idea" + }, + "confirm-save-action": { + "defaultMessage": "crwdns331428:0crwdne331428:0", + "description": "Confirm and save action label" + }, + "confirm-save-hint": { + "defaultMessage": "crwdns331430:0crwdne331430:0", + "description": "Hint shown when the user has unsaved changes that they might lose if they continue with an action" + }, + "connect-action": { + "defaultMessage": "crwdns331432:0crwdne331432:0", + "description": "Connect button text" + }, + "connect-cable-title": { + "defaultMessage": "crwdns331434:0crwdne331434:0", + "description": "Title for the connect cable dialog" + }, + "connect-help-alt": { + "defaultMessage": "crwdns331436:0crwdne331436:0", + "description": "Alt text for image in connect help dialog" + }, + "connect-help-message": { + "defaultMessage": "crwdns331438:0crwdne331438:0", + "description": "Text in the connect help dialog" + }, + "connect-help-one": { + "defaultMessage": "crwdns331440:0crwdne331440:0", + "description": "Legend text for the connect help dialog image" + }, + "connect-help-title": { + "defaultMessage": "crwdns331442:0crwdne331442:0", + "description": "Title for the connect help dialog" + }, + "connect-help-two": { + "defaultMessage": "crwdns331444:0crwdne331444:0", + "description": "Legend text for the connect help dialog image" + }, + "connect-hover": { + "defaultMessage": "crwdns331446:0crwdne331446:0", + "description": "Connect button hover text" + }, + "connect-microbit": { + "defaultMessage": "crwdns331448:0crwdne331448:0", + "description": "Text in serial area" + }, + "connect-troubleshoot": { + "defaultMessage": "crwdns331450:0crwdne331450:0", + "description": "Text in no the micro:bit found and firmware update dialogs" + }, + "content-load-error": { + "defaultMessage": "crwdns331452:0crwdne331452:0", + "description": "Text displayed when content fails to load" + }, + "cookies-action": { + "defaultMessage": "crwdns359370:0crwdne359370:0", + "description": "Action to show dialog to choose website cookie preferences" + }, + "copied": { + "defaultMessage": "crwdns331454:0crwdne331454:0", + "description": "Text shown after copy to clipboard" + }, + "copy-action": { + "defaultMessage": "crwdns331456:0crwdne331456:0", + "description": "Copy to clipboard action text" + }, + "copy-code-action": { + "defaultMessage": "crwdns331458:0crwdne331458:0", + "description": "Copy code to clipboard action text" + }, + "create-action": { + "defaultMessage": "crwdns331460:0crwdne331460:0", + "description": "Create action label (e.g. in create file dialog)" + }, + "create-file-action": { + "defaultMessage": "crwdns331462:0crwdne331462:0", + "description": "Button text for action that creates a new blank Python file in the current project" + }, + "create-python": { + "defaultMessage": "crwdns331464:0crwdne331464:0", + "description": "Hover and dialog title when creating a new Python file" + }, + "created-file": { + "defaultMessage": "crwdns331466:0{filename}crwdne331466:0", + "description": "Action feedback for creating a file" + }, + "delete-action": { + "defaultMessage": "crwdns331468:0crwdne331468:0", + "description": "Button text for delete action" + }, + "delete-file-action": { + "defaultMessage": "crwdns331470:0{name}crwdne331470:0", + "description": "Menu option to delete file" + }, + "deleted-file": { + "defaultMessage": "crwdns331472:0{filename}crwdne331472:0", + "description": "Confirmation message that file got deleted" + }, + "disconnect-action": { + "defaultMessage": "crwdns331474:0crwdne331474:0", + "description": "Disconnect button text" + }, + "disconnect-hover": { + "defaultMessage": "crwdns331476:0crwdne331476:0", + "description": "Disconnect button hover text" + }, + "dont-show-again": { + "defaultMessage": "crwdns331478:0crwdne331478:0", + "description": "Text to never show a dialog again" + }, + "drag-hover": { + "defaultMessage": "crwdns331480:0crwdne331480:0", + "description": "Draggable code hover text" + }, + "edit-file-action": { + "defaultMessage": "crwdns331482:0{name}crwdne331482:0", + "description": "Menu option to edit file" + }, + "edit-name-project-hover": { + "defaultMessage": "crwdns331484:0crwdne331484:0", + "description": "Text for user to edit the name of the project" + }, + "edit-project-name-action": { + "defaultMessage": "crwdns331486:0crwdne331486:0", + "description": "Text for user to edit the name of the project" + }, + "failed-to-build-hex": { + "defaultMessage": "crwdns331488:0crwdne331488:0", + "description": "Error title when we cannot build the hex file, for example because no storage space. Additional detail is shown separately." + }, + "feedback": { + "defaultMessage": "crwdns331490:0crwdne331490:0", + "description": "Feedback action" + }, + "file-actions": { + "defaultMessage": "crwdns331492:0{name}crwdne331492:0", + "description": "Header of file actions for file" + }, + "file-already-exists": { + "defaultMessage": "crwdns331494:0crwdne331494:0", + "description": "File already exists notification text" + }, + "file-name-invalid-character": { + "defaultMessage": "crwdns331496:0{invalid}crwdne331496:0", + "description": "Warning text for new Python file name with an invalid character" + }, + "file-name-length": { + "defaultMessage": "crwdns331498:0crwdne331498:0", + "description": "Warning text for overly long file names (file system limitation)" + }, + "file-name-lowercase-only": { + "defaultMessage": "crwdns331500:0crwdne331500:0", + "description": "Warning text for new Python file with uppercase" + }, + "file-name-not-empty": { + "defaultMessage": "crwdns331502:0crwdne331502:0", + "description": "Warning text for new Python file with empty name" + }, + "file-name-start-number": { + "defaultMessage": "crwdns331504:0crwdne331504:0", + "description": "Warning text for new Python file names starting with a number" + }, + "file-name-whitespace": { + "defaultMessage": "crwdns331506:0crwdne331506:0", + "description": "Warning text for new Python file name with whitespace" + }, + "firmware-update-link": { + "defaultMessage": "crwdns331508:0crwdne331508:0", + "description": "Text in the firmware update dialog" + }, + "firmware-update-message": { + "defaultMessage": "crwdns331510:0crwdne331510:0", + "description": "Text in the firmware update dialog" + }, + "firmware-update-title": { + "defaultMessage": "crwdns331512:0crwdne331512:0", + "description": "Title for the firmware update dialog" + }, + "flash-action": { + "defaultMessage": "crwdns331514:0crwdne331514:0", + "description": "Text for flash button" + }, + "flash-hover": { + "defaultMessage": "crwdns331516:0crwdne331516:0", + "description": "Hover text over flash button" + }, + "flashing-code": { + "defaultMessage": "crwdns331518:0crwdne331518:0", + "description": "Progress dialog text for partial flashes (quick)" + }, + "flashing-full-flash-detail": { + "defaultMessage": "crwdns331520:0crwdne331520:0", + "description": "Message shown after the title in the progress dialog for a full flash" + }, + "flashing-micropython": { + "defaultMessage": "crwdns331522:0crwdne331522:0", + "description": "Progress dialog text for full flashes (slower)" + }, + "font-size": { + "defaultMessage": "crwdns331524:0crwdne331524:0", + "description": "Font size option text" + }, + "guide-link": { + "defaultMessage": "crwdns331526:0crwdne331526:0", + "description": "Text with an external link to support/help content" + }, + "help": { + "defaultMessage": "crwdns331528:0crwdne331528:0", + "description": "Help menu label" + }, + "help-support": { + "defaultMessage": "crwdns331530:0crwdne331530:0", + "description": "Menu item for link to support site" + }, + "help-translate": { + "defaultMessage": "crwdns331532:0crwdne331532:0", + "description": "Help translate menu option text" + }, + "highlight-code-structure": { + "defaultMessage": "crwdns331534:0crwdne331534:0", + "description": "Code structure setting label" + }, + "highlight-code-structure-full": { + "defaultMessage": "crwdns331536:0crwdne331536:0", + "description": "Highlight code structure option" + }, + "highlight-code-structure-none": { + "defaultMessage": "crwdns331538:0crwdne331538:0", + "description": "Highlight code structure option" + }, + "highlight-code-structure-simple": { + "defaultMessage": "crwdns331540:0crwdne331540:0", + "description": "Highlight code structure option" + }, + "ideas-tab": { + "defaultMessage": "crwdns331542:0crwdne331542:0", + "description": "Ideas tab button text. Tab shows programs to give students ideas." + }, + "ideas-tab-description": { + "defaultMessage": "crwdns331544:0crwdne331544:0", + "description": "Ideas tab description text. Tab shows programs to give students ideas." + }, + "insert-code-action": { + "defaultMessage": "crwdns331546:0crwdne331546:0" + }, + "language": { + "defaultMessage": "crwdns331548:0crwdne331548:0", + "description": "Language option text" + }, + "less-action": { + "defaultMessage": "crwdns331550:0crwdne331550:0", + "description": "Less button text (showing less content)" + }, + "load-error-makecode-info": { + "defaultMessage": "crwdns331552:0crwdne331552:0", + "description": "Load error message" + }, + "load-error-makecode-link": { + "defaultMessage": "crwdns331554:0crwdne331554:0", + "description": "Load error message" + }, + "load-error-mixed": { + "defaultMessage": "crwdns331556:0crwdne331556:0", + "description": "Load error message" + }, + "load-error-mpy": { + "defaultMessage": "crwdns331558:0crwdne331558:0", + "description": "Load error message" + }, + "load-error-title": { + "defaultMessage": "crwdns331560:0fileCount={fileCount}crwdne331560:0", + "description": "Title of error dialog when we cannot load files. Uses ICU syntax for pluralisation: https://formatjs.io/docs/core-concepts/icu-syntax/#plural-format." + }, + "loaded-file-feedback": { + "defaultMessage": "crwdns331562:0{filename}crwdne331562:0", + "description": "Success feedback for loading file" + }, + "loading": { + "defaultMessage": "crwdns331564:0crwdne331564:0", + "description": "Shown on loading indicators" + }, + "microbit-hearts-alt": { + "defaultMessage": "crwdns331566:0crwdne331566:0", + "description": "Alt text for micro:bit image in About dialog" + }, + "micropython-documentation": { + "defaultMessage": "crwdns331568:0crwdne331568:0", + "description": "MicroPython documentation menu option text" + }, + "micropython-history": { + "defaultMessage": "crwdns331570:0crwdne331570:0", + "description": "Links to MicroPython history in the about dialog" + }, + "micropython-source-code": { + "defaultMessage": "crwdns331572:0crwdne331572:0", + "description": "Links to the MicroPython source code in the about dialog" + }, + "more-action": { + "defaultMessage": "crwdns331574:0crwdne331574:0", + "description": "More button text (showing more/further content)" + }, + "more-connect-options": { + "defaultMessage": "crwdns331576:0crwdne331576:0", + "description": "Aria label for the additional actions menu to the right of the Send to micro:bit button" + }, + "more-ideas": { + "defaultMessage": "crwdns331578:0crwdne331578:0", + "description": "Link to more ideas on the microbit.org website at the end of the ideas section" + }, + "more-save-options": { + "defaultMessage": "crwdns331580:0crwdne331580:0", + "description": "Aria label for the additional actions menu to the right of the Save button" + }, + "multiple-files-message-one": { + "defaultMessage": "crwdns331582:0fileCount={fileCount}crwdnd331582:0fileCount={fileCount}crwdne331582:0", + "description": "Message in dialog shown when multiple files are available for download. Uses ICU syntax for pluralisation: https://formatjs.io/docs/core-concepts/icu-syntax/#plural-format. In practice, fileCount will always be two or more." + }, + "multiple-files-message-two": { + "defaultMessage": "crwdns331584:0crwdne331584:0", + "description": "Message in dialog shown when multiple files are available for download" + }, + "multiple-files-title": { + "defaultMessage": "crwdns331586:0crwdne331586:0", + "description": "Title of dialog shown when multiple files are available for download but only the main file downloaded." + }, + "name-project": { + "defaultMessage": "crwdns331588:0crwdne331588:0", + "description": "Name your project header" + }, + "name-text": { + "defaultMessage": "crwdns331590:0crwdne331590:0", + "description": "Header for name field" + }, + "name-used-when": { + "defaultMessage": "crwdns331592:0crwdne331592:0", + "description": "Text under project name field" + }, + "new-file-hint": { + "defaultMessage": "crwdns331594:0crwdne331594:0", + "description": "Hint shown in the new Python file dialog" + }, + "next-action": { + "defaultMessage": "crwdns331596:0crwdne331596:0", + "description": "Next button text" + }, + "not-found-checklist-one": { + "defaultMessage": "crwdns331598:0crwdne331598:0", + "description": "Checklist text in the no micro:bit found dialog" + }, + "not-found-checklist-two": { + "defaultMessage": "crwdns331600:0crwdne331600:0", + "description": "Checklist text in the no micro:bit found dialog" + }, + "not-found-message": { + "defaultMessage": "crwdns331602:0crwdne331602:0", + "description": "Text in the no micro:bit found dialog" + }, + "not-found-save-message": { + "defaultMessage": "crwdns331604:0crwdne331604:0", + "description": "Save prompt in the no micro:bit found dialog" + }, + "not-found-title": { + "defaultMessage": "crwdns331606:0crwdne331606:0", + "description": "Title for the micro:bit found dialog" + }, + "not-found-update-link": { + "defaultMessage": "crwdns331608:0crwdne331608:0", + "description": "Text in the no micro:bit found dialog" + }, + "open-action": { + "defaultMessage": "crwdns331610:0crwdne331610:0", + "description": "Open button text" + }, + "open-file-action": { + "defaultMessage": "crwdns331612:0crwdne331612:0", + "description": "Open file button text" + }, + "open-file-dropped": { + "defaultMessage": "crwdns331614:0crwdne331614:0", + "description": "Aria label for file drop target" + }, + "open-hover": { + "defaultMessage": "crwdns331616:0crwdne331616:0", + "description": "Hover text over load button" + }, + "options": { + "defaultMessage": "crwdns331618:0crwdne331618:0", + "description": "Label for an options menu" + }, + "parameter-help": { + "defaultMessage": "crwdns331620:0crwdne331620:0", + "description": "Setting label to control whether pop-up documentation for function/method parameters is automatically shown." + }, + "parameter-help-automatic": { + "defaultMessage": "crwdns331622:0crwdne331622:0", + "description": "Parameter help setting for when the parameter documentation is shown automatically" + }, + "parameter-help-manual": { + "defaultMessage": "crwdns331624:0{shortcut}crwdne331624:0", + "description": "Parameter help setting for when the user must press a key combination to open the parameter documentation" + }, + "permanently-delete": { + "defaultMessage": "crwdns331626:0{filename}crwdne331626:0", + "description": "Confirmation question to permanently delete file" + }, + "post-save-message-files": { + "defaultMessage": "crwdns331628:0crwdne331628:0", + "description": "Message in dialog shown after the user saves the project as a hex file." + }, + "post-save-message-one": { + "defaultMessage": "crwdns331630:0crwdne331630:0", + "description": "Message in dialog shown after the user saves the project as a hex file." + }, + "post-save-message-two": { + "defaultMessage": "crwdns331632:0crwdne331632:0", + "description": "Message in dialog shown after the user saves the project as a hex file." + }, + "post-save-title": { + "defaultMessage": "crwdns331634:0crwdne331634:0", + "description": "Title of dialog shown after the user saves the project as a hex file." + }, + "post-save-transfer-hex": { + "defaultMessage": "crwdns331636:0crwdne331636:0", + "description": "Message in dialog shown after the user saves the project as a hex file." + }, + "privacy-policy": { + "defaultMessage": "crwdns359372:0crwdne359372:0", + "description": "Privacy policy menu option text" + }, + "project-actions": { + "defaultMessage": "crwdns331638:0crwdne331638:0", + "description": "Aria label for the bar with project actions" + }, + "project-header": { + "defaultMessage": "crwdns331640:0crwdne331640:0", + "description": "Aria label for the project header area" + }, + "project-name": { + "defaultMessage": "crwdns331642:0crwdne331642:0", + "description": "Text used to indicate the project name" + }, + "project-name-not-empty": { + "defaultMessage": "crwdns331644:0crwdne331644:0", + "description": "Validation message for project name" + }, + "project-tab": { + "defaultMessage": "crwdns331646:0crwdne331646:0", + "description": "Project tab button text" + }, + "project-tab-description": { + "defaultMessage": "crwdns331648:0crwdne331648:0", + "description": "Project tab description" + }, + "python-powered": { + "defaultMessage": "crwdns331650:0crwdne331650:0", + "description": "Python powered logo alt text" + }, + "python-tab": { + "defaultMessage": "crwdns331652:0crwdne331652:0", + "description": "Python tab text" + }, + "quit-anyway": { + "defaultMessage": "crwdns331654:0crwdne331654:0", + "description": "Quit anyway text" + }, + "read-less": { + "defaultMessage": "crwdns331656:0crwdne331656:0", + "description": "Action text to collapse an expanded section" + }, + "read-more": { + "defaultMessage": "crwdns331658:0crwdne331658:0", + "description": "Action text to expand a collapsed section" + }, + "redo": { + "defaultMessage": "crwdns331660:0crwdne331660:0", + "description": "Aria label for the redo button" + }, + "reference-tab": { + "defaultMessage": "crwdns331662:0crwdne331662:0", + "description": "Reference tab button text" + }, + "replace-action-label": { + "defaultMessage": "crwdns331664:0crwdne331664:0", + "description": "Action label for replacing project dialog" + }, + "reset-project-action": { + "defaultMessage": "crwdns331666:0crwdne331666:0", + "description": "Action to reset the project to its default state" + }, + "reset-project-feedback": { + "defaultMessage": "crwdns331668:0crwdne331668:0", + "description": "Confirmation message after resetting the project" + }, + "reset-project-hover": { + "defaultMessage": "crwdns331670:0crwdne331670:0", + "description": "Reset action hover text" + }, + "results-count": { + "defaultMessage": "crwdns331672:0count={count}crwdne331672:0", + "description": "Number of results from a search. Uses ICU syntax for pluralisation: https://formatjs.io/docs/core-concepts/icu-syntax/#plural-format." + }, + "save-action": { + "defaultMessage": "crwdns331674:0crwdne331674:0", + "description": "Save button text" + }, + "save-file-action": { + "defaultMessage": "crwdns331676:0{name}crwdne331676:0", + "description": "Menu option to save a file" + }, + "save-hex-action": { + "defaultMessage": "crwdns331678:0crwdne331678:0", + "description": "Text for menu item for saving a project hex file" + }, + "save-hover": { + "defaultMessage": "crwdns331680:0crwdne331680:0", + "description": "Hover text over save button" + }, + "save-python-action": { + "defaultMessage": "crwdns331682:0crwdne331682:0", + "description": "Save button menu option to save the Python script" + }, + "search": { + "defaultMessage": "crwdns331684:0crwdne331684:0", + "description": "Aria label for searching documentation" + }, + "send-action": { + "defaultMessage": "crwdns331686:0crwdne331686:0", + "description": "Send to micro:bit button text" + }, + "send-hover": { + "defaultMessage": "crwdns331688:0crwdne331688:0", + "description": "Send button hover text" + }, + "serial-collapse": { + "defaultMessage": "crwdns331690:0crwdne331690:0", + "description": "Action label to collapse the serial console/REPL area" + }, + "serial-ctrl-c-action": { + "defaultMessage": "crwdns331692:0crwdne331692:0", + "description": "Button to trigger the Python REPL from the serial area" + }, + "serial-ctrl-d-action": { + "defaultMessage": "crwdns331694:0crwdne331694:0", + "description": "Button to reset the micro:bit from the serial area" + }, + "serial-expand": { + "defaultMessage": "crwdns331696:0crwdne331696:0", + "description": "Action label to expand the serial console/REPL area" + }, + "serial-flashed": { + "defaultMessage": "crwdns331698:0crwdne331698:0", + "description": "Shown when your program is in sync with the micro:bit" + }, + "serial-help-ctrl-c": { + "defaultMessage": "crwdns331700:0crwdne331700:0", + "description": "Text from the serial hints and tips dialog. kbd tag shows a keyboard key style." + }, + "serial-help-ctrl-d": { + "defaultMessage": "crwdns331702:0crwdne331702:0", + "description": "Text from the serial hints and tips dialog. kbd tag shows a keyboard key style." + }, + "serial-help-intro": { + "defaultMessage": "crwdns331704:0crwdne331704:0", + "description": "Text from the serial hints and tips dialog" + }, + "serial-help-print": { + "defaultMessage": "crwdns331706:0crwdne331706:0", + "description": "Text from the serial hints and tips dialog. code tag shows monospaced font." + }, + "serial-help-title": { + "defaultMessage": "crwdns331708:0crwdne331708:0", + "description": "Title for the serial hints and tips dialog" + }, + "serial-hints-and-tips": { + "defaultMessage": "crwdns331710:0crwdne331710:0", + "description": "Link/button to open the serial hints and tips dialog" + }, + "serial-menu": { + "defaultMessage": "crwdns331712:0crwdne331712:0", + "description": "Aria label for serial area menu" + }, + "serial-ready-to-flash": { + "defaultMessage": "crwdns331714:0crwdne331714:0", + "description": "Shown when your program is out of sync with the micro:bit" + }, + "serial-running": { + "defaultMessage": "crwdns331716:0crwdne331716:0", + "description": "Indicator text when the micro:bit is running a program" + }, + "serial-terminal": { + "defaultMessage": "crwdns331718:0crwdne331718:0", + "description": "Aria label for the serial terminal" + }, + "setting-allow-editing-third-party": { + "defaultMessage": "crwdns331720:0crwdne331720:0", + "description": "Checkbox setting label" + }, + "setting-allow-editing-third-party-info": { + "defaultMessage": "crwdns331722:0crwdne331722:0", + "description": "Checkbox setting label" + }, + "settings": { + "defaultMessage": "crwdns331724:0crwdne331724:0", + "description": "Settings text" + }, + "show-api-documentation": { + "defaultMessage": "crwdns331726:0crwdne331726:0", + "description": "Shown on link from editor autocomplete and signature help to the API docs." + }, + "show-less": { + "defaultMessage": "crwdns331728:0crwdne331728:0", + "description": "Show less for general progressive disclosure" + }, + "show-less-for": { + "defaultMessage": "crwdns331730:0{item}crwdne331730:0", + "description": "Show less with item usually for aria label" + }, + "show-more": { + "defaultMessage": "crwdns331732:0crwdne331732:0", + "description": "Show more for general progressive disclosure" + }, + "show-more-for": { + "defaultMessage": "crwdns331734:0{item}crwdne331734:0", + "description": "Show more with item usually for aria label" + }, + "sidebar": { + "defaultMessage": "crwdns331736:0crwdne331736:0", + "description": "Aria label for the area on the left" + }, + "sidebar-collapse": { + "defaultMessage": "crwdns331738:0crwdne331738:0", + "description": "Aria label for the collapse sidebar button" + }, + "sidebar-expand": { + "defaultMessage": "crwdns331740:0crwdne331740:0", + "description": "Aria label for the expand sidebar button" + }, + "simulator-accelerometer": { + "defaultMessage": "crwdns334504:0crwdne334504:0", + "description": "Simulator Accelerometer panel title" + }, + "simulator-actions": { + "defaultMessage": "crwdns334506:0crwdne334506:0", + "description": "Aria label for the bar with simulator actions (stop, mute etc)" + }, + "simulator-button-a": { + "defaultMessage": "crwdns334508:0crwdne334508:0", + "description": "Button A aria label on the simulator board" + }, + "simulator-button-b": { + "defaultMessage": "crwdns334510:0crwdne334510:0", + "description": "Button B aria label on the simulator board" + }, + "simulator-button-hold-label": { + "defaultMessage": "crwdns334512:0{button}crwdne334512:0", + "description": "Aria label for simulator toggle button" + }, + "simulator-button-press-label": { + "defaultMessage": "crwdns334514:0{button}crwdne334514:0", + "description": "Aria label for simulator push button" + }, + "simulator-buttons": { + "defaultMessage": "crwdns334516:0crwdne334516:0", + "description": "Buttons simulator panel title" + }, + "simulator-collapse": { + "defaultMessage": "crwdns334518:0crwdne334518:0", + "description": "Aria label for the collapse simulator button" + }, + "simulator-collapse-module": { + "defaultMessage": "crwdns334520:0{title}crwdne334520:0", + "description": "Aria label for collapse simulator module button" + }, + "simulator-compass": { + "defaultMessage": "crwdns334522:0crwdne334522:0", + "description": "Compass simulator panel title" + }, + "simulator-compass-heading-one": { + "defaultMessage": "crwdns334524:0crwdne334524:0", + "description": "Sub heading for simulator Compass panel" + }, + "simulator-compass-heading-two": { + "defaultMessage": "crwdns334526:0crwdne334526:0", + "description": "Sub heading for simulator Compass panel" + }, + "simulator-data-logging-empty": { + "defaultMessage": "crwdns334528:0crwdne334528:0", + "description": "Shown in the simulator Data logging table when there are no rows" + }, + "simulator-data-logging-full": { + "defaultMessage": "crwdns334530:0crwdne334530:0", + "description": "Shown below the simulator Data logging table to warn that the log is full" + }, + "simulator-data-logging-rows": { + "defaultMessage": "crwdns334686:0count={count}crwdne334686:0", + "description": "Indicator of the number of rows logged in the simulator Data logging table. Uses ICU syntax for pluralisation: https://formatjs.io/docs/core-concepts/icu-syntax/#plural-format." + }, + "simulator-data-logging-save-log": { + "defaultMessage": "crwdns334534:0crwdne334534:0", + "description": "Action label to save the data log as a file from the Data logging simulator panel" + }, + "simulator-data-logging-truncated": { + "defaultMessage": "crwdns334536:0crwdne334536:0", + "description": "Text shown in the simulator Data logging table to indicate that old rows have been omitted" + }, + "simulator-expand": { + "defaultMessage": "crwdns334538:0crwdne334538:0", + "description": "Aria label for the expand simulator button" + }, + "simulator-expand-module": { + "defaultMessage": "crwdns334540:0{title}crwdne334540:0", + "description": "Aria label for expand simulator module button" + }, + "simulator-gesture-3g": { + "defaultMessage": "crwdns336054:0crwdne336054:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-6g": { + "defaultMessage": "crwdns336056:0crwdne336056:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-8g": { + "defaultMessage": "crwdns336058:0crwdne336058:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-down": { + "defaultMessage": "crwdns336060:0crwdne336060:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-face-down": { + "defaultMessage": "crwdns336062:0crwdne336062:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-face-up": { + "defaultMessage": "crwdns336064:0crwdne336064:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-freefall": { + "defaultMessage": "crwdns336066:0crwdne336066:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-left": { + "defaultMessage": "crwdns336068:0crwdne336068:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-right": { + "defaultMessage": "crwdns336070:0crwdne336070:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-select": { + "defaultMessage": "crwdns334542:0crwdne334542:0", + "description": "Aria label for the simulator gesture select input" + }, + "simulator-gesture-send": { + "defaultMessage": "crwdns334544:0crwdne334544:0", + "description": "Aria label for the simulator gesture send button" + }, + "simulator-gesture-shake": { + "defaultMessage": "crwdns336072:0crwdne336072:0", + "description": "Simulator gesture option" + }, + "simulator-gesture-up": { + "defaultMessage": "crwdns336074:0crwdne336074:0", + "description": "Simulator gesture option" + }, + "simulator-hide": { + "defaultMessage": "crwdns334546:0crwdne334546:0", + "description": "Hide simulator action" + }, + "simulator-input-hold": { + "defaultMessage": "crwdns334548:0crwdne334548:0", + "description": "Label for UI toggles to hold simulator buttons or pins" + }, + "simulator-input-press": { + "defaultMessage": "crwdns334550:0crwdne334550:0", + "description": "Label for UI buttons to press simulator buttons or pins" + }, + "simulator-light-level": { + "defaultMessage": "crwdns334552:0crwdne334552:0", + "description": "Light level simulator panel title" + }, + "simulator-log": { + "defaultMessage": "crwdns334554:0crwdne334554:0", + "description": "Data log simulator panel title" + }, + "simulator-loud": { + "defaultMessage": "crwdns334556:0crwdne334556:0", + "description": "Simulator sound level high threshold marker hover text. This should match the translation of microbit.SoundEvent.LOUD in the api.en.json file but with differing case." + }, + "simulator-mute": { + "defaultMessage": "crwdns334558:0crwdne334558:0", + "description": "Aria label for the mute simulator button" + }, + "simulator-pin-hold-label": { + "defaultMessage": "crwdns334560:0{pin}crwdne334560:0", + "description": "Aria label for simulator pin control" + }, + "simulator-pin-press-label": { + "defaultMessage": "crwdns334562:0{pin}crwdne334562:0", + "description": "Aria label for simulator pin control" + }, + "simulator-pins": { + "defaultMessage": "crwdns334564:0crwdne334564:0", + "description": "Pins simulator panel title" + }, + "simulator-quiet": { + "defaultMessage": "crwdns334566:0crwdne334566:0", + "description": "Simulator sound level low threshold marker hover text. This should match the translation of microbit.SoundEvent.QUIET in the api.en.json file but with differing case." + }, + "simulator-radio": { + "defaultMessage": "crwdns334568:0crwdne334568:0", + "description": "Radio simulator panel title" + }, + "simulator-radio-code": { + "defaultMessage": "crwdns335970:0crwdne335970:0", + "description": "Visually hidden text for a radio message sent from the simulated micro:bit. Text of the message follows." + }, + "simulator-radio-group-notice": { + "defaultMessage": "crwdns334570:0{groupNumber}crwdne334570:0", + "description": "Message in radio simulator area when the radio group changes" + }, + "simulator-radio-message": { + "defaultMessage": "crwdns334572:0crwdne334572:0", + "description": "Label and placeholder for the simulator radio message input field" + }, + "simulator-radio-message-limit-notice": { + "defaultMessage": "crwdns334574:0crwdne334574:0", + "description": "Text shown when the number of radio messages has been capped in the simulator user interface" + }, + "simulator-radio-no-messages": { + "defaultMessage": "crwdns334576:0crwdne334576:0", + "description": "Text shown when there are no radio messages to display in the simulator user interface" + }, + "simulator-radio-off": { + "defaultMessage": "crwdns334578:0crwdne334578:0", + "description": "Text shown when there are no radio messages because the radio is off in the simulator user interface" + }, + "simulator-radio-send": { + "defaultMessage": "crwdns334580:0crwdne334580:0", + "description": "Aria label for the simulator radio send button" + }, + "simulator-radio-user": { + "defaultMessage": "crwdns335972:0crwdne335972:0", + "description": "Visually hidden text for a radio message sent from the user to the simulated micro:bit. Text of the message follows." + }, + "simulator-reference-link": { + "defaultMessage": "crwdns334582:0crwdne334582:0", + "description": "Aria label for simulator Reference link button" + }, + "simulator-reset": { + "defaultMessage": "crwdns334584:0crwdne334584:0", + "description": "Aria label for the reset simulator button" + }, + "simulator-serial-terminal": { + "defaultMessage": "crwdns334586:0crwdne334586:0", + "description": "Aria label for the simulator serial terminal" + }, + "simulator-sound-level": { + "defaultMessage": "crwdns334588:0crwdne334588:0", + "description": "Sound level simulator panel title" + }, + "simulator-start-simulator": { + "defaultMessage": "crwdns334590:0crwdne334590:0", + "description": "Aria label for the large play button on the simulator board" + }, + "simulator-stop": { + "defaultMessage": "crwdns334592:0crwdne334592:0", + "description": "Aria label for the stop simulator button" + }, + "simulator-temperature": { + "defaultMessage": "crwdns334594:0crwdne334594:0", + "description": "Temperature simulator panel title" + }, + "simulator-title": { + "defaultMessage": "crwdns334596:0crwdne334596:0", + "description": "Simulator title" + }, + "simulator-touch-logo": { + "defaultMessage": "crwdns334598:0crwdne334598:0", + "description": "Name for the touch logo pin on the V2 micro:bit board. Used in the simulator." + }, + "simulator-unmute": { + "defaultMessage": "crwdns334600:0crwdne334600:0", + "description": "Aria label for the unmute simulator button" + }, + "software-versions": { + "defaultMessage": "crwdns331742:0crwdne331742:0", + "description": "Heading for a table of software versions in the about dialog" + }, + "start-coding-action": { + "defaultMessage": "crwdns331744:0crwdne331744:0", + "description": "Start coding button text" + }, + "support": { + "defaultMessage": "crwdns331746:0crwdne331746:0", + "description": "Support menu option text" + }, + "terms-of-use": { + "defaultMessage": "crwdns331748:0crwdne331748:0", + "description": "Terms of use menu option text" + }, + "third-party-module-explanation": { + "defaultMessage": "crwdns331750:0crwdne331750:0", + "description": "Explanation shown instead of the code editor for third-party modules." + }, + "third-party-module-how-to": { + "defaultMessage": "crwdns331752:0crwdne331752:0", + "description": "Explanation of how to allow editing for third-party modules." + }, + "timeout-error-description": { + "defaultMessage": "crwdns331754:0crwdne331754:0", + "description": "Description for error messages relating to WebUSB timeout" + }, + "timeout-error-title": { + "defaultMessage": "crwdns331756:0crwdne331756:0", + "description": "Title for error messages relating to WebUSB timeout" + }, + "toolkit-error-loading": { + "defaultMessage": "crwdns331760:0crwdne331760:0", + "description": "Error shown if we failed to load toolkit content" + }, + "toolkit-view-documentation": { + "defaultMessage": "crwdns331762:0{name}crwdne331762:0", + "description": "Aria label for the toolkit topic right arrow" + }, + "transfer-hex-message-one": { + "defaultMessage": "crwdns331764:0crwdne331764:0", + "description": "Text in the transfer hex dialog" + }, + "transfer-hex-message-two": { + "defaultMessage": "crwdns331766:0crwdne331766:0", + "description": "Text in the transfer hex dialog" + }, + "transfer-hex-title": { + "defaultMessage": "crwdns331768:0crwdne331768:0", + "description": "Title for the transfer hex dialog" + }, + "try-again-action": { + "defaultMessage": "crwdns331770:0crwdne331770:0", + "description": "Try again button text" + }, + "undo": { + "defaultMessage": "crwdns331772:0crwdne331772:0", + "description": "Aria label for the undo button" + }, + "unexpected-error-description": { + "defaultMessage": "crwdns331774:0crwdne331774:0", + "description": "Text shown for unexpected error scenarios" + }, + "unexpected-error-title": { + "defaultMessage": "crwdns331776:0crwdne331776:0", + "description": "Text shown for unexpected error scenarios" + }, + "untitled-project": { + "defaultMessage": "crwdns331778:0crwdne331778:0", + "description": "Title for a new project" + }, + "update-firmware-action": { + "defaultMessage": "crwdns331780:0crwdne331780:0", + "description": "Update firmware button text" + }, + "updated-change": { + "defaultMessage": "crwdns331782:0{changeName}crwdne331782:0", + "description": "Change made to file" + }, + "visit-dot-org": { + "defaultMessage": "crwdns331784:0crwdne331784:0", + "description": "alt text for logo link to .org" + }, + "webusb-error-clear-connect-description-1": { + "defaultMessage": "crwdns331786:0crwdne331786:0", + "description": "Part of WebUSB error message" + }, + "webusb-error-clear-connect-description-2": { + "defaultMessage": "crwdns331788:0crwdne331788:0", + "description": "Part of WebUSB error message" + }, + "webusb-error-clear-connect-title": { + "defaultMessage": "crwdns331790:0crwdne331790:0", + "description": "Title of error for WebUsb connection" + }, + "webusb-error-default-title": { + "defaultMessage": "crwdns331792:0crwdne331792:0", + "description": "Default title for error messages relating to WebUSB" + }, + "webusb-error-reconnect-microbit-description": { + "defaultMessage": "crwdns331794:0crwdne331794:0", + "description": "Part of WebUSB error message" + }, + "webusb-error-update-req-description": { + "defaultMessage": "crwdns331796:0crwdne331796:0", + "description": "WebUSB error telling user to update firmware" + }, + "webusb-error-update-req-title": { + "defaultMessage": "crwdns331798:0crwdne331798:0", + "description": "Error text telling user to update firmware" + }, + "webusb-not-supported": { + "defaultMessage": "crwdns331800:0crwdne331800:0", + "description": "Explantion shown when user's browser doesn't support WebUSB" + }, + "webusb-not-supported-title": { + "defaultMessage": "crwdns331802:0crwdne331802:0", + "description": "Title of dialog shown when user's browser doesn't support WebUSB" + }, + "webusb-why-use": { + "defaultMessage": "crwdns331804:0crwdne331804:0", + "description": "Shown to encourage use of browser that supports WebUSB" + }, + "welcome-message": { + "defaultMessage": "crwdns331806:0crwdne331806:0", + "description": "Text in the welcome dialogn" + }, + "welcome-title": { + "defaultMessage": "crwdns331808:0crwdne331808:0", + "description": "Title for the welcome dialog" + }, + "welcome-video-alt": { + "defaultMessage": "video introducing the Python Editor", + "description": "iframe title for the welcome video" + }, + "zoom-in-action": { + "defaultMessage": "crwdns331810:0crwdne331810:0", + "description": "Text label for zoom in button" + }, + "zoom-out-action": { + "defaultMessage": "crwdns331812:0crwdne331812:0", + "description": "Text label for zoom out button" + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b8c3cf4ae..adae44e9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,15 +12,14 @@ "dependencies": { "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.5.1", - "@codemirror/autocomplete": "^6.3.0", - "@codemirror/commands": "6.1.1", - "@codemirror/lang-python": "^6.0.2", - "@codemirror/language": "^6.2.1", - "@codemirror/state": "^6.1.2", - "@codemirror/view": "^6.3.0", + "@codemirror/autocomplete": "^6.16.0", + "@codemirror/commands": "6.5.0", + "@codemirror/lang-python": "^6.1.6", + "@codemirror/language": "^6.10.1", + "@codemirror/state": "^6.4.1", + "@codemirror/view": "^6.26.3", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", - "@microbit/lunr-languages": "^1.9.0-microbit.1", "@microbit/microbit-fs": "^0.9.2", "@sanity/block-content-to-react": "^3.0.0", "@sanity/image-url": "^1.0.1", @@ -45,11 +44,13 @@ "lodash.debounce": "^4.0.8", "lodash.sortby": "^4.7.0", "lunr": "^2.3.9", + "lunr-languages": "^1.14.0", "lzma": "^2.3.2", "marked": "^4.0.15", "mobile-drag-drop": "^2.3.0-rc.2", "react": "^18.0.0", "react-dom": "^18.0.0", + "react-hotkeys-hook": "^4.5.0", "react-icons": "^4.8.0", "react-intl": "^6.2.10", "vite": "^5.1.5", @@ -1778,9 +1779,9 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.14.0.tgz", - "integrity": "sha512-Kx9BCSOLKmqNXEvmViuzsBQJ2VEa/wWwOATNpixOa+suttTV3rDnAUtAIt5ObAUFjXvZakWfFfF/EbxELnGLzQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.0.tgz", + "integrity": "sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==", "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -1795,20 +1796,20 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.1.tgz", - "integrity": "sha512-ibDohwkk7vyu3VsnZNlQhwk0OETBtlkYV+6AHfn5Zgq0sxa+yGVX+apwtC3M4wh6AH7yU5si/NysoECs5EGS3Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.5.0.tgz", + "integrity": "sha512-rK+sj4fCAN/QfcY9BEzYMgp4wwL/q5aj/VfNSoH1RWPF9XS/dUwBkvlL3hpWgEjOqlpdN1uLC9UkjJ4tmyjJYg==", "dependencies": { "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", + "@codemirror/state": "^6.4.0", "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" + "@lezer/common": "^1.1.0" } }, "node_modules/@codemirror/lang-python": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.4.tgz", - "integrity": "sha512-b6d1TDqrkCjFNvMO01SWldFiDoZ39yl3tDMC1Y5f8glA2eZpynPxJhwYVTlGFr0stizcJgrp6ojLEGH2myoZAw==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", + "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", "dependencies": { "@codemirror/autocomplete": "^6.3.2", "@codemirror/language": "^6.8.0", @@ -1836,9 +1837,9 @@ "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" }, "node_modules/@codemirror/view": { - "version": "6.25.1", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.25.1.tgz", - "integrity": "sha512-2LXLxsQnHDdfGzDvjzAwZh2ZviNJm7im6tGpa0IONIDnFd8RZ80D2SNi8PDi6YjKcMoMRK20v6OmKIdsrwsyoQ==", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.3.tgz", + "integrity": "sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==", "dependencies": { "@codemirror/state": "^6.4.0", "style-mod": "^4.1.0", @@ -2750,11 +2751,6 @@ "@lezer/lr": "^1.0.0" } }, - "node_modules/@microbit/lunr-languages": { - "version": "1.9.0-microbit.1", - "resolved": "https://registry.npmjs.org/@microbit/lunr-languages/-/lunr-languages-1.9.0-microbit.1.tgz", - "integrity": "sha512-w2x66WuGvihCUFUBboJK8RRcCJlB+QdQ4QRYlRcljhxqYs+L2yMOvsWYoQGkuoC060YhB0SOEpgi6gmXvIA+SQ==" - }, "node_modules/@microbit/microbit-fs": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@microbit/microbit-fs/-/microbit-fs-0.9.2.tgz", @@ -8044,6 +8040,11 @@ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, + "node_modules/lunr-languages": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.14.0.tgz", + "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==" + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -8808,6 +8809,15 @@ } } }, + "node_modules/react-hotkeys-hook": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.5.0.tgz", + "integrity": "sha512-Samb85GSgAWFQNvVt3PS90LPPGSf9mkH/r4au81ZP1yOIFayLC3QAvqTgGtJ8YEDMXtPmaVBs6NgipHO6h4Mug==", + "peerDependencies": { + "react": ">=16.8.1", + "react-dom": ">=16.8.1" + } + }, "node_modules/react-icons": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", diff --git a/package.json b/package.json index 394c01504..178762974 100644 --- a/package.json +++ b/package.json @@ -8,15 +8,14 @@ "dependencies": { "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.5.1", - "@codemirror/autocomplete": "^6.3.0", - "@codemirror/commands": "6.1.1", - "@codemirror/lang-python": "^6.0.2", - "@codemirror/language": "^6.2.1", - "@codemirror/state": "^6.1.2", - "@codemirror/view": "^6.3.0", + "@codemirror/autocomplete": "^6.16.0", + "@codemirror/commands": "6.5.0", + "@codemirror/lang-python": "^6.1.6", + "@codemirror/language": "^6.10.1", + "@codemirror/state": "^6.4.1", + "@codemirror/view": "^6.26.3", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", - "@microbit/lunr-languages": "^1.9.0-microbit.1", "@microbit/microbit-fs": "^0.9.2", "@sanity/block-content-to-react": "^3.0.0", "@sanity/image-url": "^1.0.1", @@ -41,11 +40,13 @@ "lodash.debounce": "^4.0.8", "lodash.sortby": "^4.7.0", "lunr": "^2.3.9", + "lunr-languages": "^1.14.0", "lzma": "^2.3.2", "marked": "^4.0.15", "mobile-drag-drop": "^2.3.0-rc.2", "react": "^18.0.0", "react-dom": "^18.0.0", + "react-hotkeys-hook": "^4.5.0", "react-icons": "^4.8.0", "react-intl": "^6.2.10", "vite": "^5.1.5", diff --git a/public/workers/pyright-locale-7-dc7a5e1b990b9e91c306.worker.js b/public/workers/pyright-locale-7-dc7a5e1b990b9e91c306.worker.js new file mode 100644 index 000000000..e2e0239d3 --- /dev/null +++ b/public/workers/pyright-locale-7-dc7a5e1b990b9e91c306.worker.js @@ -0,0 +1 @@ +(self.webpackChunkbrowser_pyright=self.webpackChunkbrowser_pyright||[]).push([[7],{8007:e=>{"use strict";e.exports=JSON.parse('{"Diagnostic":{"argAssignment":"crwdns331182:0crwdne331182:0","argAssignmentFunction":"crwdns331184:0{functionName}crwdne331184:0","argAssignmentParam":"crwdns331186:0{paramName}crwdne331186:0","argAssignmentParamFunction":"crwdns331188:0{paramName}crwdne331188:0","argMissingForParam":"crwdns331190:0{name}crwdne331190:0","argMissingForParams":"crwdns331192:0{names}crwdne331192:0","argMorePositionalExpectedCount":"crwdns331194:0{expected}crwdne331194:0","argMorePositionalExpectedOne":"crwdns331196:0crwdne331196:0","argPositional":"crwdns331198:0crwdne331198:0","argPositionalExpectedOne":"crwdns331200:0crwdne331200:0","assignmentTargetExpr":"crwdns331202:0crwdne331202:0","booleanIsLowerCase":"crwdns331204:0{name}crwdnd331204:0{booleanName}crwdne331204:0","breakOutsideLoop":"crwdns331206:0crwdne331206:0","constructorNoArgs":"crwdns331208:0{type}crwdne331208:0","continueOutsideLoop":"crwdns331210:0crwdne331210:0","delTargetExpr":"crwdns331212:0crwdne331212:0","duplicateParam":"crwdns331214:0{name}crwdne331214:0","expectedAssignRightHandExpr":"crwdns331216:0crwdne331216:0","expectedBinaryRightHandExpr":"crwdns331218:0crwdne331218:0","expectedClassName":"crwdns331220:0crwdne331220:0","expectedCloseBrace":"crwdns331222:0crwdne331222:0","expectedCloseBracket":"crwdns331224:0crwdne331224:0","expectedCloseParen":"crwdns331226:0crwdne331226:0","expectedColon":"crwdns331228:0crwdne331228:0","expectedDelExpr":"crwdns331230:0crwdne331230:0","expectedElse":"crwdns331232:0crwdne331232:0","expectedEqualityOperator":"crwdns331234:0crwdne331234:0","expectedExpr":"crwdns331236:0crwdne331236:0","expectedFunctionName":"crwdns331238:0crwdne331238:0","expectedIdentifier":"crwdns331240:0crwdne331240:0","expectedImport":"crwdns331242:0crwdne331242:0","expectedImportAlias":"crwdns331244:0crwdne331244:0","expectedImportSymbols":"crwdns331246:0crwdne331246:0","expectedIn":"crwdns331248:0crwdne331248:0","expectedIndentedBlock":"crwdns331250:0crwdne331250:0","expectedInExpr":"crwdns331252:0crwdne331252:0","expectedMemberName":"crwdns331254:0crwdne331254:0","expectedModuleName":"crwdns331256:0crwdne331256:0","expectedNamedParameter":"crwdns331258:0crwdne331258:0","expectedNewlineOrSemicolon":"crwdns331260:0crwdne331260:0","expectedOpenParen":"crwdns331262:0crwdne331262:0","expectedParamName":"crwdns331264:0crwdne331264:0","expectedSliceIndex":"crwdns331266:0crwdne331266:0","expectedYieldExpr":"crwdns331268:0crwdne331268:0","globalReassignment":"crwdns331270:0{name}crwdne331270:0","globalRedefinition":"crwdns331272:0{name}crwdne331272:0","importResolveFailure":"crwdns331274:0{importName}crwdne331274:0","importSymbolUnknown":"crwdns331276:0{name}crwdnd331276:0{moduleName}crwdne331276:0","inconsistentIndent":"crwdns331278:0crwdne331278:0","inconsistentTabs":"crwdns331280:0crwdne331280:0","instanceMethodSelfParam":"crwdns331282:0crwdne331282:0","invalidIdentifierChar":"crwdns331284:0crwdne331284:0","invalidTokenChars":"crwdns331286:0{text}crwdne331286:0","memberAccess":"crwdns331288:0{name}crwdnd331288:0{type}crwdne331288:0","memberDelete":"crwdns331290:0{name}crwdnd331290:0{type}crwdne331290:0","memberSet":"crwdns331292:0{name}crwdnd331292:0{type}crwdne331292:0","moduleNotCallable":"crwdns331294:0crwdne331294:0","moduleUnknownMember":"crwdns331296:0{name}crwdnd331296:0{module}crwdne331296:0","nonDefaultAfterDefault":"crwdns331298:0crwdne331298:0","noOverload":"crwdns331300:0crwdne331300:0","objectNotCallable":"crwdns331302:0crwdne331302:0","obscuredClassDeclaration":"crwdns331304:0{name}crwdne331304:0","obscuredFunctionDeclaration":"crwdns331306:0{name}crwdne331306:0","obscuredMethodDeclaration":"crwdns331308:0{name}crwdne331308:0","obscuredParameterDeclaration":"crwdns331310:0{name}crwdne331310:0","obscuredVariableDeclaration":"crwdns331312:0{name}crwdne331312:0","paramAfterKwargsParam":"crwdns331314:0crwdne331314:0","paramAlreadyAssigned":"crwdns331316:0{name}crwdne331316:0","paramNameMissing":"crwdns331318:0{name}crwdne331318:0","positionArgAfterNamedArg":"crwdns331320:0crwdne331320:0","returnOutsideFunction":"crwdns331322:0crwdne331322:0","stringUnsupportedEscape":"crwdns331324:0crwdne331324:0","stringUnterminated":"crwdns331326:0crwdne331326:0","symbolIsUndefined":"crwdns331328:0{name}crwdne331328:0","trailingCommaInFromImport":"crwdns331330:0crwdne331330:0","tupleIndexOutOfRange":"crwdns331332:0{index}crwdnd331332:0{type}crwdne331332:0","typeNotIterable":"crwdns331334:0crwdne331334:0","typeNotSupportBinaryOperator":"crwdns331336:0{operator}crwdne331336:0","typeNotSupportBinaryOperatorBidirectional":"crwdns331338:0{operator}crwdne331338:0","unaccessedClass":"crwdns331340:0{name}crwdne331340:0","unaccessedFunction":"crwdns331342:0{name}crwdne331342:0","unaccessedImport":"crwdns331344:0{name}crwdne331344:0","unaccessedSymbol":"crwdns331346:0{name}crwdne331346:0","unaccessedVariable":"crwdns331348:0{name}crwdne331348:0","unexpectedIndent":"crwdns331350:0crwdne331350:0","unreachableCode":"crwdns331352:0crwdne331352:0"},"DiagnosticAddendum":{"tupleSizeMismatch":"crwdns331354:0{expected}crwdnd331354:0{received}crwdne331354:0"}}')}}]); \ No newline at end of file diff --git a/public/workers/pyright-main-46e9f54371eb3b42b37c.worker.js b/public/workers/pyright-main-46e9f54371eb3b42b37c.worker.js deleted file mode 100644 index b11901306..000000000 --- a/public/workers/pyright-main-46e9f54371eb3b42b37c.worker.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see pyright-main-46e9f54371eb3b42b37c.worker.js.LICENSE.txt */ -(()=>{var __webpack_modules__={9742:(e,t)=>{"use strict";t.byteLength=function(e){var t=l(e),n=t[0],i=t[1];return 3*(n+i)/4-i},t.toByteArray=function(e){var t,n,s=l(e),o=s[0],a=s[1],c=new r(function(e,t,n){return 3*(t+n)/4-n}(0,o,a)),u=0,p=a>0?o-4:o;for(n=0;n
>16&255,c[u++]=t>>8&255,c[u++]=255&t;return 2===a&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,c[u++]=255&t),1===a&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t),c},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,s=[],o=16383,a=0,l=i-r;a {const t=l.get(e);return 0===t.category&&!t.hasDefault})),t.length>0&&!o.paramSpec){const n=t.map((e=>`"${e}"`)).join(", ");_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,1===t.length?ml.Diagnostic.argMissingForParam().format({name:n}):ml.Diagnostic.argMissingForParams().format({names:n}),e),a=!0}}return!a}(e,t.paramSpecArgList,t.paramSpecTarget,n,l)||(a=!0));const u=Un(r,t.argParams);let p=!0,d=e;for(;;){const e=Pr(d);if(!e)break;const t=Pe(e);n.hasSolveForScope(t)&&(p=!1),d=e}(Eo(u)||ko(u))&&(p=!1);let h=Zo(fa(u,n,!1,!1,p),l);return xo(h)&&(h=Zs.cloneForUnpacked(h,!1)),vo(h)&&Zs.isBuiltIn(h,["TypeGuard","StrictTypeGuard"])&&h.typeArguments&&h.typeArguments.length>0&&b&&_o(b)&&(h=Zs.cloneAsInstance(Zs.cloneForTypeGuard(b,h.typeArguments[0],Zs.isBuiltIn(h,"StrictTypeGuard")))),Eo(h)&&!h.details.name&&(h.details={...h.details,typeVarScopeId:$s}),s&&(s=fa(s,n)),{argumentErrors:a,returnType:h,isTypeIncomplete:o,activeParam:t.activeParam,specializedInitSelfType:s}}function rt(e,t,n,i,r=!1,s){const o=tt(e,t,n,0);return o.argumentErrors?(d.isUndoTrackingEnabled()||t.forEach((e=>{e.valueExpression&&!c.isSpeculative(e.valueExpression)&&$(e.valueExpression)})),{argumentErrors:!0,activeParam:o.activeParam}):nt(e,o,i,r,s)}function st(e,t,n,i,r,s,o){let a,l,u=!1,p=!0;const d=null==n?void 0:n.details.name;if(e.argument.valueExpression){let i=bo(e.paramType)&&void 0!==n&&e.paramType.scopeId===n.details.typeVarScopeId?void 0:fa(e.paramType,t,!1,s);if(i&&po(i)&&(i=void 0),e.argType)a=e.argType;else{const t=e.expectingType?168:0,n=$(e.argument.valueExpression,i,t);a=n.type,n.isIncomplete&&(u=!0),n.typeErrors&&(p=!1),l=n.expectedTypeDiagAddendum}e.argument&&e.argument.name&&!c.isSpeculative(e.errorNode)&&N(e.argument.name,i||a,0,u)}else if(e.argType)a=e.argType;else if(e.expectingType&&!e.argument.type&&e.argument.valueExpression){const t=$(e.argument.valueExpression,void 0,168);a=t.type,t.isIncomplete&&(u=!0)}else{const t=bn(e.argument);a=t.type,t.isIncomplete&&(u=!0)}2===e.paramCategory&&bo(e.paramType)&&(a=Qo(a)),o&&(a=Se(a,o,(e=>e)));let h=new il;if(wo(e.paramType)&&void 0!==e.paramType.paramSpecAccess)return{isCompatible:p,isTypeIncomplete:u};if(r){if(ko(a))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0};const t=Ie(e.paramType);if(Eo(t)||ko(t)){if(_o(a)){const e=Zn(a);if(e&&ko(e))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0}}if(vo(a)){const e=_a(a,"__call__");if(e&&ko(Bn(e)))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0}}}}if(!Jn(e.paramType,a,h.createAddendum(),t)){if("none"!==Vt(e.errorNode).diagnosticRuleSet.reportGeneralTypeIssues&&!ye(e.errorNode)){const t=Vt(e.errorNode),n=ai(a),i=ai(e.paramType);let r;r=e.paramName?d?ml.Diagnostic.argAssignmentParamFunction().format({argType:n,paramType:i,functionName:d,paramName:e.paramName}):ml.Diagnostic.argAssignmentParam().format({argType:n,paramType:i,paramName:e.paramName}):d?ml.Diagnostic.argAssignmentFunction().format({argType:n,paramType:i,functionName:d}):ml.Diagnostic.argAssignment().format({argType:n,paramType:i}),l&&(h=l),_e(t.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,r+al(h),e.errorNode)}return{isCompatible:!1,isTypeIncomplete:u}}if(!i){const t=Ro(a),n=Vt(e.errorNode),i=()=>{const t=new il;return e.paramName&&t.addMessage((d?ml.DiagnosticAddendum.argParamFunction().format({paramName:e.paramName,functionName:d}):ml.DiagnosticAddendum.argParam().format({paramName:e.paramName}))+t.getString()),t};if("none"!==n.diagnosticRuleSet.reportUnknownArgumentType&&!uo(e.paramType)&&!u)if(po(t)){const t=i();_e(n.diagnosticRuleSet.reportUnknownArgumentType,$o.reportUnknownArgumentType,ml.Diagnostic.argTypeUnknown()+t.getString(),e.errorNode)}else if(La(t,!0)){let r=!1;if(_o(t)&&(r=!0),La(e.paramType)&&(r=!0),vo(t)&&t.isEmptyContainer&&(r=!0),!r){const r=i();r.addMessage(ml.DiagnosticAddendum.argumentType().format({type:ai(t,!0)})),_e(n.diagnosticRuleSet.reportUnknownArgumentType,$o.reportUnknownArgumentType,ml.Diagnostic.argTypePartiallyUnknown()+r.getString(),e.errorNode)}}}return{isCompatible:p,isTypeIncomplete:u}}function ot(e){if(11===e.nodeType){if(15===e.constType)return!1;if(33===e.constType)return!0}return fe(ml.Diagnostic.expectedBoolLiteral(),e),!1}function at(e,t){const n=Vt(e);let i="_";if(t.length>=1){const e=t[0];0===e.argumentCategory&&e.valueExpression&&48===e.valueExpression.nodeType&&(i=e.valueExpression.strings.map((e=>e.value)).join(""))}if(t.length>=2){const r=In(t[1]).type;if(_o(r)){Zs.isProtocolClass(r)?fe(ml.Diagnostic.newTypeProtocolClass(),t[1].node||e):void 0!==r.literalValue&&fe(ml.Diagnostic.newTypeLiteral(),t[1].node||e);const s=-4&r.details.flags,o=Zs.createInstantiable(i,br(e,n.moduleName,i),n.moduleName,n.filePath,s,Ir(e),void 0,r.details.effectiveMetaclass);o.details.baseClasses.push(r),Ha(o);const a=Xs.createInstance("__init__","","",64);Xs.addParameter(a,{category:0,name:"self",type:Zs.cloneAsInstance(o),hasDeclaredType:!0}),Xs.addParameter(a,{category:0,name:"_x",type:Zs.cloneAsInstance(r),hasDeclaredType:!0}),a.details.declaredReturnType=to.createInstance(),o.details.fields.set("__init__",qo.createWithType(4,a));const l=Xs.createInstance("__new__","","",65);return Xs.addParameter(l,{category:0,name:"cls",type:o,hasDeclaredType:!0}),Xs.addDefaultParameters(l),l.details.declaredReturnType=Zs.cloneAsInstance(o),o.details.fields.set("__new__",qo.createWithType(4,l)),o}ho(r)||fe(ml.Diagnostic.newTypeNotAClass(),t[1].node||e)}}function lt(e){return!(!Ku[e]||!Ku[e][2])||!!Ju[e]}function ut(e,t,n){const i=e.leftExpression;let r=e.rightExpression,s=!1;lt(e.operator)&&7===r.nodeType&&!r.parenthesized&<(r.operator)&&(ut(r,t,n),r=r.leftExpression);let o,a=37===e.operator||36===e.operator?t:void 0;26===e.operator&&t&&vo(t)&&Zs.isBuiltIn(t,"list")&&t.typeArguments&&t.typeArguments.length>=1&&31===e.leftExpression.nodeType&&(o=t);const l=$(i,a||o,n);let c=l.type;a||(37===e.operator||36===e.operator||0===e.operator&&31===e.rightExpression.nodeType||6===e.operator)&&(a=c);const u=$(r,a,n);let p=u.type;if((l.isIncomplete||u.isIncomplete)&&(s=!0),6===e.operator&&!pt(c,"__or__")&&!pt(p,"__ror__")){let t=p;if(!lo(c)&&lo(p)&&Ks.isInstance(p)&&(t=to.createType()),function(e){let t=3;for(const n of e)t&=n.flags;return 0!=(1&t)&&0==(2&t)}([c,t])){const i=Vt(e);i.isStubFile||0!=(4&n)||i.executionEnvironment.pythonVersion>=De.V3_10||ho(c)||fe(ml.Diagnostic.unionSyntaxIllegal(),e,e.operatorToken);const r=Oo([c,t]);return fo(r)&&Ks.setSpecialForm(r),{type:r,node:e}}}let d=!1;void 0===Ju[e.operator]&&(12===e.operator||28===e.operator?c=Fo(c):d=Go(c),12!==e.operator&&28!==e.operator||(p=Fo(p)));const h=new il,m=!l.isIncomplete&&!u.isIncomplete;let f=mt(e.operator,c,p,e,t,h,m);if(!h.isEmpty()||!f){if(!s){const t=Vt(e);d&&1===h.getMessages().length?_e(Vt(e).diagnosticRuleSet.reportOptionalOperand,$o.reportOptionalOperand,ml.Diagnostic.noneOperator().format({operator:Cr(e.operator)}),e.leftExpression):_e(t.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e.operator),leftType:ai(c),rightType:ai(p)})+al(h),e)}f=Ys.create()}return{type:f,node:e,isIncomplete:s}}function pt(e,t){if(!_o(e))return!1;const n=e.details.effectiveMetaclass;if(!n||!_o(n))return!1;if(Zs.isBuiltIn(n,"type"))return!1;const i=va(n,t);return!(!i||_o(i.classType)&&Zs.isBuiltIn(i.classType,"type"))}function ht(e,t){const n={1:["__iadd__",0],34:["__isub__",33],27:["__imul__",26],14:["__ifloordiv__",13],11:["__itruediv__",10],25:["__imod__",24],30:["__ipow__",29],23:["__imatmul__",22],4:["__iand__",3],7:["__ior__",6],9:["__ixor__",8],18:["__ilshift__",17],32:["__irshift__",31]};let i;const r=new il,s=$(e.leftExpression),o=s.type;let a;7===e.operator&&(a=o);const l=$(e.rightExpression,a),c=l.type,u=!!l.isIncomplete||!!s.isIncomplete;return ao(o)||ao(c)?{node:e,type:no.createNever(),isIncomplete:u}:(i=Se(o,void 0,((i,o)=>Se(c,Xo(i),((a,c)=>{if(ho(o)||ho(c))return po(o)||po(c)?Ys.create():io.create();const u=n[e.operator][0];let p=gt(o,[c],u,e,t);if(p||o===i||(p=gt(i,[c],u,e,t)),p||c===a||(p=gt(i,[a],u,e,t)),!p){const i=n[e.operator][1],a=!s.isIncomplete&&!l.isIncomplete;p=mt(i,o,c,e,t,r,a)}return p})))),r.isEmpty()&&i&&!ao(i)||(u||_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e.operator),leftType:ai(o),rightType:ai(c)})+al(r),e),i=Ys.create()),{node:e,type:i,isIncomplete:u})}function mt(e,t,n,i,r,s,o){let a,l=Ie(t);if(void 0!==Ju[e]){if(36===e){if(!Q(l))return t;if(!Y(l))return n;l=Z(l)}else if(37===e){if(!Y(l))return t;if(!Q(l))return n;l=X(l)}if(ao(t)||ao(n))return no.createNever();41===e||42===e?(a=Se(n,void 0,((t,n)=>Se(l,Xo(t),(r=>{if(ho(r)||ho(n))return po(r)||po(n)?Ys.create():io.create();let o=gt(t,[r],"__contains__",i,void 0);if(!o){const e=ae(t,!1,void 0);e&&Jn(e,r)&&(o=Cn(i,"bool"))}return o||s.addMessage(ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e),leftType:ai(r),rightType:ai(t)})),o})))),a&&!ao(a)&&(a=Cn(i,"bool"))):a=Se(l,void 0,((t,r)=>Se(n,Xo(t),((t,n)=>36===e||37===e?Oo([r,n]):Cn(i,"bool")))))}else if(Ku[e]){if(ao(t)||ao(n))return no.createNever();if(o){const i=aa(t);if(i&&!Xo(t)){const r=64;if(i===aa(n)&&!Xo(n)&&la(t)*la(n)e.length)throw new RangeError("Index out of range")}function N(e,t,n,i,r){W(t,i,r,e,n,7);let s=Number(t&BigInt(4294967295));e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,n}function M(e,t,n,i,r){W(t,i,r,e,n,7);let s=Number(t&BigInt(4294967295));e[n+7]=s,s>>=8,e[n+6]=s,s>>=8,e[n+5]=s,s>>=8,e[n+4]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=o,o>>=8,e[n+2]=o,o>>=8,e[n+1]=o,o>>=8,e[n]=o,n+8}function O(e,t,n,i,r,s){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,i,s){return t=+t,n>>>=0,s||O(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function U(e,t,n,i,s){return t=+t,n>>>=0,s||O(e,0,n,8),r.write(e,t,n,i,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),tl?u>l?l+1:u:u>c?c+1:u;return l};e.exports=i,e.exports.default=i},2797:(e,t,n)=>{"use strict";e.exports=n(3374)},3374:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.BrowserMessageWriter=t.BrowserMessageReader=void 0,n(485).default.install();const s=n(7504);r(n(7504),t);class o extends s.AbstractMessageReader{constructor(e){super(),this._onData=new s.Emitter,this._messageListener=e=>{this._onData.fire(e.data)},e.addEventListener("error",(e=>this.fireError(e))),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}}t.BrowserMessageReader=o;class a extends s.AbstractMessageWriter{constructor(e){super(),this.context=e,this.errorCount=0,e.addEventListener("error",(e=>this.fireError(e)))}write(e){try{return this.context.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}}t.BrowserMessageWriter=a,t.createMessageConnection=function(e,t,n,i){return void 0===n&&(n=s.NullLogger),s.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),s.createMessageConnection(e,t,n,i)}},485:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(9872),r=n(4469),s=n(2479),o=n(9053);class a extends o.AbstractMessageBuffer{constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return a.emptyBuffer}fromString(e,t){return(new TextEncoder).encode(e)}toString(e,t){return"ascii"===t?this.asciiDecoder.decode(e):new TextDecoder(t).decode(e)}asNative(e,t){return void 0===t?e:e.slice(0,t)}allocNative(e){return new Uint8Array(e)}}a.emptyBuffer=new Uint8Array(0);class l{constructor(e){this.socket=e,this._onData=new s.Emitter,this._messageListener=e=>{e.data.arrayBuffer().then((e=>{this._onData.fire(new Uint8Array(e))}))},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create((()=>this.socket.removeEventListener("close",e)))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create((()=>this.socket.removeEventListener("error",e)))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create((()=>this.socket.removeEventListener("end",e)))}onData(e){return this._onData.event(e)}}class c{constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create((()=>this.socket.removeEventListener("close",e)))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create((()=>this.socket.removeEventListener("error",e)))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create((()=>this.socket.removeEventListener("end",e)))}write(e,t){if("string"==typeof e){if(void 0!==t&&"utf-8"!==t)throw new Error(`In a Browser environments only utf-8 text encding is supported. But got encoding: ${t}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}}const u=new TextEncoder,p=Object.freeze({messageBuffer:Object.freeze({create:e=>new a(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{if("utf-8"!==t.charset)throw new Error(`In a Browser environments only utf-8 text encding is supported. But got encoding: ${t.charset}`);return Promise.resolve(u.encode(JSON.stringify(e,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{if(!(e instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))}})}),stream:Object.freeze({asReadableStream:e=>new l(e),asWritableStream:e=>new c(e)}),console,timer:Object.freeze({setTimeout:(e,t,...n)=>setTimeout(e,t,...n),clearTimeout(e){clearTimeout(e)},setImmediate:(e,...t)=>setTimeout(e,0,...t),clearImmediate(e){clearTimeout(e)}})});function d(){return p}!function(e){e.install=function(){i.default.install(p)}}(d||(d={})),t.default=d},7504:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.Trace=t.ProgressType=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.RAL=void 0,t.CancellationStrategy=void 0;const i=n(9263);Object.defineProperty(t,"RequestType",{enumerable:!0,get:function(){return i.RequestType}}),Object.defineProperty(t,"RequestType0",{enumerable:!0,get:function(){return i.RequestType0}}),Object.defineProperty(t,"RequestType1",{enumerable:!0,get:function(){return i.RequestType1}}),Object.defineProperty(t,"RequestType2",{enumerable:!0,get:function(){return i.RequestType2}}),Object.defineProperty(t,"RequestType3",{enumerable:!0,get:function(){return i.RequestType3}}),Object.defineProperty(t,"RequestType4",{enumerable:!0,get:function(){return i.RequestType4}}),Object.defineProperty(t,"RequestType5",{enumerable:!0,get:function(){return i.RequestType5}}),Object.defineProperty(t,"RequestType6",{enumerable:!0,get:function(){return i.RequestType6}}),Object.defineProperty(t,"RequestType7",{enumerable:!0,get:function(){return i.RequestType7}}),Object.defineProperty(t,"RequestType8",{enumerable:!0,get:function(){return i.RequestType8}}),Object.defineProperty(t,"RequestType9",{enumerable:!0,get:function(){return i.RequestType9}}),Object.defineProperty(t,"ResponseError",{enumerable:!0,get:function(){return i.ResponseError}}),Object.defineProperty(t,"ErrorCodes",{enumerable:!0,get:function(){return i.ErrorCodes}}),Object.defineProperty(t,"NotificationType",{enumerable:!0,get:function(){return i.NotificationType}}),Object.defineProperty(t,"NotificationType0",{enumerable:!0,get:function(){return i.NotificationType0}}),Object.defineProperty(t,"NotificationType1",{enumerable:!0,get:function(){return i.NotificationType1}}),Object.defineProperty(t,"NotificationType2",{enumerable:!0,get:function(){return i.NotificationType2}}),Object.defineProperty(t,"NotificationType3",{enumerable:!0,get:function(){return i.NotificationType3}}),Object.defineProperty(t,"NotificationType4",{enumerable:!0,get:function(){return i.NotificationType4}}),Object.defineProperty(t,"NotificationType5",{enumerable:!0,get:function(){return i.NotificationType5}}),Object.defineProperty(t,"NotificationType6",{enumerable:!0,get:function(){return i.NotificationType6}}),Object.defineProperty(t,"NotificationType7",{enumerable:!0,get:function(){return i.NotificationType7}}),Object.defineProperty(t,"NotificationType8",{enumerable:!0,get:function(){return i.NotificationType8}}),Object.defineProperty(t,"NotificationType9",{enumerable:!0,get:function(){return i.NotificationType9}}),Object.defineProperty(t,"ParameterStructures",{enumerable:!0,get:function(){return i.ParameterStructures}});const r=n(4469);Object.defineProperty(t,"Disposable",{enumerable:!0,get:function(){return r.Disposable}});const s=n(2479);Object.defineProperty(t,"Event",{enumerable:!0,get:function(){return s.Event}}),Object.defineProperty(t,"Emitter",{enumerable:!0,get:function(){return s.Emitter}});const o=n(6368);Object.defineProperty(t,"CancellationTokenSource",{enumerable:!0,get:function(){return o.CancellationTokenSource}}),Object.defineProperty(t,"CancellationToken",{enumerable:!0,get:function(){return o.CancellationToken}});const a=n(5132);Object.defineProperty(t,"MessageReader",{enumerable:!0,get:function(){return a.MessageReader}}),Object.defineProperty(t,"AbstractMessageReader",{enumerable:!0,get:function(){return a.AbstractMessageReader}}),Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return a.ReadableStreamMessageReader}});const l=n(8633);Object.defineProperty(t,"MessageWriter",{enumerable:!0,get:function(){return l.MessageWriter}}),Object.defineProperty(t,"AbstractMessageWriter",{enumerable:!0,get:function(){return l.AbstractMessageWriter}}),Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return l.WriteableStreamMessageWriter}});const c=n(3467);Object.defineProperty(t,"ConnectionStrategy",{enumerable:!0,get:function(){return c.ConnectionStrategy}}),Object.defineProperty(t,"ConnectionOptions",{enumerable:!0,get:function(){return c.ConnectionOptions}}),Object.defineProperty(t,"NullLogger",{enumerable:!0,get:function(){return c.NullLogger}}),Object.defineProperty(t,"createMessageConnection",{enumerable:!0,get:function(){return c.createMessageConnection}}),Object.defineProperty(t,"ProgressType",{enumerable:!0,get:function(){return c.ProgressType}}),Object.defineProperty(t,"Trace",{enumerable:!0,get:function(){return c.Trace}}),Object.defineProperty(t,"TraceFormat",{enumerable:!0,get:function(){return c.TraceFormat}}),Object.defineProperty(t,"SetTraceNotification",{enumerable:!0,get:function(){return c.SetTraceNotification}}),Object.defineProperty(t,"LogTraceNotification",{enumerable:!0,get:function(){return c.LogTraceNotification}}),Object.defineProperty(t,"ConnectionErrors",{enumerable:!0,get:function(){return c.ConnectionErrors}}),Object.defineProperty(t,"ConnectionError",{enumerable:!0,get:function(){return c.ConnectionError}}),Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return c.CancellationReceiverStrategy}}),Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:!0,get:function(){return c.CancellationSenderStrategy}}),Object.defineProperty(t,"CancellationStrategy",{enumerable:!0,get:function(){return c.CancellationStrategy}});const u=n(9872);t.RAL=u.default},6368:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;const i=n(9872),r=n(5306),s=n(2479);var o;!function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:s.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:s.Event.None}),e.is=function(t){const n=t;return n&&(n===e.None||n===e.Cancelled||r.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}}(o=t.CancellationToken||(t.CancellationToken={}));const a=Object.freeze((function(e,t){const n=i.default().timer.setTimeout(e.bind(t),0);return{dispose(){i.default().timer.clearTimeout(n)}}}));class l{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new s.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}t.CancellationTokenSource=class{get token(){return this._token||(this._token=new l),this._token}cancel(){this._token?this._token.cancel():this._token=o.Cancelled}dispose(){this._token?this._token instanceof l&&this._token.dispose():this._token=o.None}}},3467:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.ConnectionOptions=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.Trace=t.NullLogger=t.ProgressType=void 0;const i=n(9872),r=n(5306),s=n(9263),o=n(3820),a=n(2479),l=n(6368);var c,u,p,d,h,m,f,g,y,_,v,T,b;!function(e){e.type=new s.NotificationType("$/cancelRequest")}(c||(c={})),function(e){e.type=new s.NotificationType("$/progress")}(u||(u={})),t.ProgressType=class{constructor(){}},function(e){e.is=function(e){return r.func(e)}}(p||(p={})),t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}}),function(e){e[e.Off=0]="Off",e[e.Messages=1]="Messages",e[e.Verbose=2]="Verbose"}(d=t.Trace||(t.Trace={})),function(e){e.fromString=function(t){if(!r.string(t))return e.Off;switch(t=t.toLowerCase()){case"off":return e.Off;case"messages":return e.Messages;case"verbose":return e.Verbose;default:return e.Off}},e.toString=function(t){switch(t){case e.Off:return"off";case e.Messages:return"messages";case e.Verbose:return"verbose";default:return"off"}}}(d=t.Trace||(t.Trace={})),function(e){e.Text="text",e.JSON="json"}(t.TraceFormat||(t.TraceFormat={})),function(e){e.fromString=function(t){return"json"===(t=t.toLowerCase())?e.JSON:e.Text}}(h=t.TraceFormat||(t.TraceFormat={})),function(e){e.type=new s.NotificationType("$/setTrace")}(m=t.SetTraceNotification||(t.SetTraceNotification={})),function(e){e.type=new s.NotificationType("$/logTrace")}(f=t.LogTraceNotification||(t.LogTraceNotification={})),function(e){e[e.Closed=1]="Closed",e[e.Disposed=2]="Disposed",e[e.AlreadyListening=3]="AlreadyListening"}(g=t.ConnectionErrors||(t.ConnectionErrors={}));class I extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,I.prototype)}}t.ConnectionError=I,function(e){e.is=function(e){const t=e;return t&&r.func(t.cancelUndispatched)}}(y=t.ConnectionStrategy||(t.ConnectionStrategy={})),function(e){e.Message=Object.freeze({createCancellationTokenSource:e=>new l.CancellationTokenSource}),e.is=function(e){const t=e;return t&&r.func(t.createCancellationTokenSource)}}(_=t.CancellationReceiverStrategy||(t.CancellationReceiverStrategy={})),function(e){e.Message=Object.freeze({sendCancellation(e,t){e.sendNotification(c.type,{id:t})},cleanup(e){}}),e.is=function(e){const t=e;return t&&r.func(t.sendCancellation)&&r.func(t.cleanup)}}(v=t.CancellationSenderStrategy||(t.CancellationSenderStrategy={})),function(e){e.Message=Object.freeze({receiver:_.Message,sender:v.Message}),e.is=function(e){const t=e;return t&&_.is(t.receiver)&&v.is(t.sender)}}(T=t.CancellationStrategy||(t.CancellationStrategy={})),(t.ConnectionOptions||(t.ConnectionOptions={})).is=function(e){const t=e;return t&&(T.is(t.cancellationStrategy)||y.is(t.connectionStrategy))},function(e){e[e.New=1]="New",e[e.Listening=2]="Listening",e[e.Closed=3]="Closed",e[e.Disposed=4]="Disposed"}(b||(b={})),t.createMessageConnection=function(e,n,y,_){const v=void 0!==y?y:t.NullLogger;let S=0,x=0,C=0;const w="2.0";let E;const k=Object.create(null);let D;const A=Object.create(null),P=new Map;let R,F,N=new o.LinkedMap,M=Object.create(null),O=Object.create(null),L=d.Off,U=h.Text,q=b.New;const V=new a.Emitter,B=new a.Emitter,W=new a.Emitter,j=new a.Emitter,z=new a.Emitter,$=_&&_.cancellationStrategy?_.cancellationStrategy:T.Message;function H(e){if(null===e)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+e.toString()}function G(e){}function K(){return q===b.Listening}function J(){return q===b.Closed}function Y(){return q===b.Disposed}function Q(){q!==b.New&&q!==b.Listening||(q=b.Closed,B.fire(void 0))}function Z(){R||0===N.size||(R=i.default().timer.setImmediate((()=>{R=void 0,function(){if(0===N.size)return;const e=N.shift();try{s.isRequestMessage(e)?function(e){if(Y())return;function t(t,i,r){const o={jsonrpc:w,id:e.id};t instanceof s.ResponseError?o.error=t.toJson():o.result=void 0===t?null:t,ee(o,i,r),n.write(o)}function i(t,i,r){const s={jsonrpc:w,id:e.id,error:t.toJson()};ee(s,i,r),n.write(s)}!function(e){if(L!==d.Off&&F)if(U===h.Text){let t;L===d.Verbose&&e.params&&(t=`Params: ${JSON.stringify(e.params,null,4)}\n\n`),F.log(`Received request '${e.method} - (${e.id})'.`,t)}else te("receive-request",e)}(e);const o=k[e.method];let a,l;o&&(a=o.type,l=o.handler);const c=Date.now();if(l||E){const o=String(e.id),u=$.receiver.createCancellationTokenSource(o);O[o]=u;try{let p;if(l)if(void 0===e.params){if(void 0!==a&&0!==a.numberOfParams)return void i(new s.ResponseError(s.ErrorCodes.InvalidParams,`Request ${e.method} defines ${a.numberOfParams} params but recevied none.`),e.method,c);p=l(u.token)}else if(Array.isArray(e.params)){if(void 0!==a&&a.parameterStructures===s.ParameterStructures.byName)return void i(new s.ResponseError(s.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,c);p=l(...e.params,u.token)}else{if(void 0!==a&&a.parameterStructures===s.ParameterStructures.byPosition)return void i(new s.ResponseError(s.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,c);p=l(e.params,u.token)}else E&&(p=E(e.method,e.params,u.token));const d=p;p?d.then?d.then((n=>{delete O[o],t(n,e.method,c)}),(t=>{delete O[o],t instanceof s.ResponseError?i(t,e.method,c):t&&r.string(t.message)?i(new s.ResponseError(s.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,c):i(new s.ResponseError(s.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,c)})):(delete O[o],t(p,e.method,c)):(delete O[o],function(t,i,r){void 0===t&&(t=null);const s={jsonrpc:w,id:e.id,result:t};ee(s,i,r),n.write(s)}(p,e.method,c))}catch(n){delete O[o],n instanceof s.ResponseError?t(n,e.method,c):n&&r.string(n.message)?i(new s.ResponseError(s.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${n.message}`),e.method,c):i(new s.ResponseError(s.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,c)}}else i(new s.ResponseError(s.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,c)}(e):s.isNotificationMessage(e)?function(e){if(Y())return;let t,n;if(e.method===c.type.method)n=e=>{const t=e.id,n=O[String(t)];n&&n.cancel()};else{const i=A[e.method];i&&(n=i.handler,t=i.type)}if(n||D)try{!function(e){if(L!==d.Off&&F&&e.method!==f.type.method)if(U===h.Text){let t;L===d.Verbose&&(t=e.params?`Params: ${JSON.stringify(e.params,null,4)}\n\n`:"No parameters provided.\n\n"),F.log(`Received notification '${e.method}'.`,t)}else te("receive-notification",e)}(e),n?void 0===e.params?(void 0!==t&&0!==t.numberOfParams&&t.parameterStructures!==s.ParameterStructures.byName&&v.error(`Notification ${e.method} defines ${t.numberOfParams} params but recevied none.`),n()):Array.isArray(e.params)?(void 0!==t&&(t.parameterStructures===s.ParameterStructures.byName&&v.error(`Notification ${e.method} defines parameters by name but received parameters by position`),t.numberOfParams!==e.params.length&&v.error(`Notification ${e.method} defines ${t.numberOfParams} params but received ${e.params.length} argumennts`)),n(...e.params)):(void 0!==t&&t.parameterStructures===s.ParameterStructures.byPosition&&v.error(`Notification ${e.method} defines parameters by position but received parameters by name`),n(e.params)):D&&D(e.method,e.params)}catch(t){t.message?v.error(`Notification handler '${e.method}' failed with message: ${t.message}`):v.error(`Notification handler '${e.method}' failed unexpectedly.`)}else W.fire(e)}(e):s.isResponseMessage(e)?function(e){if(!Y())if(null===e.id)e.error?v.error(`Received response message without id: Error is: \n${JSON.stringify(e.error,void 0,4)}`):v.error("Received response message without id. No further error information provided.");else{const t=String(e.id),n=M[t];if(function(e,t){if(L!==d.Off&&F)if(U===h.Text){let n;if(L===d.Verbose&&(e.error&&e.error.data?n=`Error data: ${JSON.stringify(e.error.data,null,4)}\n\n`:e.result?n=`Result: ${JSON.stringify(e.result,null,4)}\n\n`:void 0===e.error&&(n="No result returned.\n\n")),t){const i=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";F.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${i}`,n)}else F.log(`Received response ${e.id} without active response promise.`,n)}else te("receive-response",e)}(e,n),n){delete M[t];try{if(e.error){const t=e.error;n.reject(new s.ResponseError(t.code,t.message,t.data))}else{if(void 0===e.result)throw new Error("Should never happen.");n.resolve(e.result)}}catch(e){e.message?v.error(`Response handler '${n.method}' failed with message: ${e.message}`):v.error(`Response handler '${n.method}' failed unexpectedly.`)}}}}(e):function(e){if(!e)return void v.error("Received empty message.");v.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(e,null,4)}`);const t=e;if(r.string(t.id)||r.number(t.id)){const e=String(t.id),n=M[e];n&&n.reject(new Error("The received response has neither a result nor an error property."))}}(e)}finally{Z()}}()})))}e.onClose(Q),e.onError((function(e){V.fire([e,void 0,void 0])})),n.onClose(Q),n.onError((function(e){V.fire(e)}));const X=e=>{try{if(s.isNotificationMessage(e)&&e.method===c.type.method){const t=H(e.params.id),i=N.get(t);if(s.isRequestMessage(i)){const r=null==_?void 0:_.connectionStrategy,s=r&&r.cancelUndispatched?r.cancelUndispatched(i,G):void 0;if(s&&(void 0!==s.error||void 0!==s.result))return N.delete(t),s.id=i.id,ee(s,e.method,Date.now()),void n.write(s)}}!function(e,t){var n;s.isRequestMessage(t)?e.set(H(t.id),t):s.isResponseMessage(t)?e.set(null===(n=t.id)?"res-unknown-"+(++C).toString():"res-"+n.toString(),t):e.set("not-"+(++x).toString(),t)}(N,e)}finally{Z()}};function ee(e,t,n){if(L!==d.Off&&F)if(U===h.Text){let i;L===d.Verbose&&(e.error&&e.error.data?i=`Error data: ${JSON.stringify(e.error.data,null,4)}\n\n`:e.result?i=`Result: ${JSON.stringify(e.result,null,4)}\n\n`:void 0===e.error&&(i="No result returned.\n\n")),F.log(`Sending response '${t} - (${e.id})'. Processing request took ${Date.now()-n}ms`,i)}else te("send-response",e)}function te(e,t){if(!F||L===d.Off)return;const n={isLSPMessage:!0,type:e,message:t,timestamp:Date.now()};F.log(n)}function ne(){if(J())throw new I(g.Closed,"Connection is closed.");if(Y())throw new I(g.Disposed,"Connection is disposed.")}function ie(e){return void 0===e?null:e}function re(e){return null===e?void 0:e}function se(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function oe(e,t){switch(e){case s.ParameterStructures.auto:return se(t)?re(t):[ie(t)];case s.ParameterStructures.byName:if(!se(t))throw new Error("Recevied parameters by name but param is not an object literal.");return re(t);case s.ParameterStructures.byPosition:return[ie(t)];default:throw new Error(`Unknown parameter structure ${e.toString()}`)}}function ae(e,t){let n;const i=e.numberOfParams;switch(i){case 0:n=void 0;break;case 1:n=oe(e.parameterStructures,t[0]);break;default:n=[];for(let e=0;e{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(447)})();const{URI:x,Utils:C}=I;function w(e,t,n,i){e||(n&&(t+="\r\nVerbose Debug Information: "+("string"==typeof n?n:n())),E(t?"False expression: "+t:"False expression.",i||w))}function E(e,t){const n=new Error(e?`Debug Failure. ${e}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(n,t||E),n}function k(e,t="Illegal value:",n){E(`${t} ${JSON.stringify(e)}`,n||k)}function D(e){if(e)return JSON.stringify(e).length>2?e:{name:e.name&&r(e.name)?e.name:"noname",message:e.message&&r(e.message)?e.message:"nomessage",stack:e.stack&&r(e.stack)?e.stack:void 0}}let A;try{A=__webpack_require__(2016),(null==A?void 0:A.randomBytes)||(A=void 0)}catch{}function P(e){if(A)return A.randomBytes(e).toString("hex");if(crypto){return t=crypto.getRandomValues(new Uint8Array(e)),[...t].map((e=>e.toString(16).padStart(2,"0"))).join("")}var t;E("crypto library not found")}var R=__webpack_require__(7588),F=__webpack_require__.n(R);function N(e,t){const n=e.toLocaleLowerCase(),i=t.toLocaleLowerCase(),r=n.length,s=i.length;let o=0,a=0;for(;o
\n"),this._popState(),void(this._tableState=void 0);{let t="|";const n=this._tableState.header.split(" "),i=[];if(this._tableState.inHeader){do{let t=0;for(let r=0;rQo(e))));return o||(i=Iu(e,t,i)),i}const l=n.entryTypes.length-(r-i);return w(l>=0&&l{t.argParams.forEach((e=>{if(e.requiresTypeVarMatching){const t=st(e,n,r,i,0===a,s>1&&0===a,l);t.isTypeIncomplete&&(o=!0),0===a&&t.skippedOverloadArg&&s++}}))}));n.lock()}t.argParams.forEach((e=>{const t=st(e,n,r,i,!1,!1,l);t.isCompatible||(a=!0),t.isTypeIncomplete&&(o=!0)})),t.paramSpecArgList&&t.paramSpecTarget&&(function(e,t,n,i,r){var s;const o=i.getParamSpec(n);if(!o)return _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramSpecNotBound().format({type:ai(n)}),(null===(s=t[0])||void 0===s?void 0:s.valueExpression)||e),!1;i.addSolveForScope(o.typeVarScopeId);let a=!1;const l=new Map,c=o.parameters;c.forEach((e=>{e.name&&l.set(e.name,e)}));let u=0,p=c.findIndex((e=>0!==e.category));p<0&&(p=c.length);const d=c.find((e=>1===e.category)),h=c.find((e=>2===e.category));if(t.forEach((t=>{if(0===t.argumentCategory){let n;if(t.name){const i=l.get(t.name.value);i?(n=i.type,l.delete(t.name.value)):h?n=h.type:(_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramNameMissing().format({name:t.name.value}),t.valueExpression||e),a=!0)}else{if(u{e.entry.type=e.evaluator()}));const f=n.details.fields,g=[];i||r||!d||(p.forEach((t=>{var i;if(t.includeInInit){let r=t.type;if(t.classType!==n&&$a(r)){const e=new jo(na(t.classType));ma(e,t.classType,n),r=fa(r,e)}(null===(i=n.details.dataClassBehaviors)||void 0===i?void 0:i.transformDescriptorTypes)&&(r=function(e,t){if(!vo(t))return t;const n=_a(t,"__set__");if(!n)return t;const i=e.getTypeOfMember(n);if(!Eo(i))return t;const r=e.bindFunctionToClassOrObject(t,i);return!r||!Eo(r)||r.details.parameters.length<2?t:Xs.getEffectiveParameterType(r,1)}(e,r));const s={category:0,name:t.alias||t.name,hasDefault:t.hasDefault,defaultValueExpression:t.defaultValueExpression,type:r,hasDeclaredType:!0};t.isKeywordOnly?g.push(s):Xs.addParameter(l,s)}})),g.length>0&&(Xs.addParameter(l,{category:1,type:io.create()}),g.forEach((e=>{Xs.addParameter(l,e)}))),f.set("__init__",qo.createWithType(4,l)),f.set("__new__",qo.createWithType(4,a)));const y=e.getBuiltInType(t,"str"),_=e.getBuiltInType(t,"tuple");if(_&&_o(_)&&y&&_o(y)&&!f.has("__match_args__")){const e=[];p.forEach((t=>{t.includeInInit&&!t.isKeywordOnly&&e.push(t.name)}));const t=e.map((e=>({type:Zs.cloneAsInstance(Zs.cloneWithLiteral(y,e)),isUnbounded:!1}))),n=Zs.cloneAsInstance(Va(_,t));f.set("__match_args__",qo.createWithType(4,n))}const v=(n,i)=>{const r=Xs.createInstance(n,"","",64);Xs.addParameter(r,c),Xs.addParameter(r,{category:0,name:"other",type:i,hasDeclaredType:!0}),r.details.declaredReturnType=e.getBuiltInObject(t,"bool"),f.set(n,qo.createWithType(4,r))};if(Zs.isSkipSynthesizedDataClassEq(n)||v("__eq__",e.getBuiltInObject(t,"object")),Zs.isSynthesizedDataclassOrder(n)){const e=Zs.cloneAsInstance(n);["__lt__","__le__","__gt__","__ge__"].forEach((t=>{v(t,e)}))}let T=!Zs.isSkipSynthesizedDataClassEq(n)&&Zs.isFrozenDataClass(n);const b=!Zs.isSkipSynthesizedDataClassEq(n)&&!Zs.isFrozenDataClass(n);if(s&&(T=!1),Zs.isSynthesizeDataClassUnsafeHash(n)&&(T=!0),T){const n=Xs.createInstance("__hash__","","",64);Xs.addParameter(n,c),n.details.declaredReturnType=e.getBuiltInObject(t,"int"),f.set("__hash__",qo.createWithType(4,n))}else b&&!s&&f.set("__hash__",qo.createWithType(4,to.createInstance()));let I=e.getBuiltInType(t,"dict");_o(I)&&(I=Zs.cloneAsInstance(Zs.cloneForSpecialization(I,[e.getBuiltInObject(t,"str"),io.create()],!0))),f.set("__dataclass_fields__",qo.createWithType(4,I)),Zs.isGeneratedDataClassSlots(n)&&void 0===n.details.localSlotsNames&&(n.details.localSlotsNames=u.map((e=>e.name))),Uu(n,p.map((e=>e.type)),!0)}(li,e,s,t,n,i)}if(s.details.localSlotsNames){let e=!0;const t=[...s.details.localSlotsNames];s.details.baseClasses.forEach((n=>{_o(n)?Zs.isBuiltIn(n,"object")||Zs.isBuiltIn(n,"type")||Zs.isBuiltIn(n,"Generic")||(void 0===n.details.inheritedSlotsNames?e=!1:t.push(...n.details.inheritedSlotsNames)):e=!1})),e&&(s.details.inheritedSlotsNames=t)}return N(e.name,s,0,!1),N(e,I,0,!1),function(e,t,n){const i=n.length>0?n[0].node.name:e.name,r=Ne(i,t,"__init_subclass__",{method:"get"},void 0,133,t);if(r){const e=r.type;e&&et(i,n,e,void 0,!1,to.createInstance())}else if(t.details.effectiveMetaclass&&yo(t.details.effectiveMetaclass)){const r=va(t.details.effectiveMetaclass,"__new__",32);if(r){const t=Bn(r);if(Eo(t)){const r=Ho(t);if(void 0!==r.firstKeywordOnlyIndex){const s=new Map;for(let e=r.firstKeywordOnlyIndex;e{var i,r;const s=e.parameters[n];return(null===(i=s.name)||void 0===i?void 0:i.value)===(null===(r=t.name)||void 0===r?void 0:r.value)&&s.category===t.category}))){const t=i.parameters[n],s=null!==(r=t.typeAnnotation)&&void 0!==r?r:t.typeAnnotationComment;if(s){let t=G(s,e.parameters[n].category);const i=Vt(e);return i.isInPyTypedPackage&&!i.isStubFile&&(t=Ks.cloneForAmbiguousType(t)),t}}}}}const s=e.parameters[n].defaultValue;if(s){const t=$(s,void 0,1).type;let n;if(lo(t)?n=Oo([to.createInstance(),Ys.create()]):vo(t)&&Zs.isBuiltIn(t,["tuple","list","set","dict"])||(n=Qo(t)),n){const t=Vt(e);t.isInPyTypedPackage&&!t.isStubFile&&(n=Ks.cloneForAmbiguousType(n))}return n}}function Xt(e,t,n){switch(t){case 0:return n;case 1:return bo(n)&&n.paramSpecAccess?n:xo(n)?Zs.cloneForUnpacked(n,!1):T&&_o(T)?Zs.cloneAsInstance(Va(T,[{type:n,isUnbounded:!Io(n)}],!0,!0)):Ys.create();case 2:{if(bo(n)&&n.paramSpecAccess)return n;if(vo(n)&&Zs.isTypedDictClass(n)&&n.isUnpacked)return n;const t=xn(e,"dict"),i=Cn(e,"str");return _o(t)&&vo(i)?Zs.cloneAsInstance(Zs.cloneForSpecialization(t,[i,n],!0)):Ys.create()}}}function en(e,t){const n=Vt(e);let i=0;"__new__"===e.name.value&&t&&(i|=1),"__init_subclass__"===e.name.value&&t&&(i|=2);for(const r of e.decorators){let e=n.isStubFile?4:0;9!==r.expression.nodeType&&(e|=2);const s=$(r.expression,void 0,e).type;Eo(s)?"abstractmethod"===s.details.builtInName?t&&(i|=8):"final"===s.details.builtInName&&(i|=8192):_o(s)&&(Zs.isBuiltIn(s,"staticmethod")?t&&(i|=4):Zs.isBuiltIn(s,"classmethod")&&t&&(i|=2))}return i}function tn(e,t,n,i){let r=Vt(n).isStubFile?4:0;9!==n.expression.nodeType&&(r|=2);const s=$(n.expression,void 0,r).type;if((_o(s)&&Zs.isSpecialBuiltIn(s,"overload")||Eo(s)&&"overload"===s.details.builtInName)&&Eo(e))return e.details.flags|=256,t.details.flags|=256,e;if(9===n.expression.nodeType){const i=$(n.expression.leftExpression,void 0,2|r).type;if(Eo(i)&&("__dataclass_transform__"===i.details.name||"dataclass_transform"===i.details.builtInName))return t.details.decoratorDataClassBehaviors=qu(li,n.expression),e}let o=J(n,e);if(Eo(s)){if("abstractmethod"===s.details.builtInName)return e;if(35===n.expression.nodeType){const t=$(n.expression.leftExpression,void 0,2|r).type;if(ua(t)){const r=n.expression.memberName.value;if("setter"===r)return Eo(e)?($u(li,e,n),function(e,t,n,i){if(!ua(t))return t;const r=t,s=r.details.flags;let o=!!r.isAsymmetricDescriptor;const a=Vt(i);if(i.parameters.length>=2){const t=e.getTypeAnnotationForParameter(i,1);if(t){const n=e.getGetterTypeFromProperty(r,!1);if(n&&!ho(n)){const i=e.getTypeOfAnnotation(t,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});if("none"!==a.diagnosticRuleSet.reportPropertyTypeMismatch){const r=new il;e.canAssignType(n,i,r)||e.addDiagnostic(a.diagnosticRuleSet.reportPropertyTypeMismatch,$o.reportPropertyTypeMismatch,ml.Diagnostic.setterGetterTypeMismatch()+r.getString(),t)}Ao(n,i)||(o=!0)}}}const l=Zs.createInstantiable(r.details.name,r.details.fullName,r.details.moduleName,Vt(i).filePath,s,r.details.typeSourceId,r.details.declaredMetaclass,r.details.effectiveMetaclass);l.details.typeVarScopeId=r.details.typeVarScopeId,Ha(l);const c=Zs.cloneAsInstance(l);l.isAsymmetricDescriptor=o;const u=l.details.fields;r.details.fields.forEach(((e,t)=>{e.isIgnoredForProtocolMatch()||u.set(t,e)}));const p=qo.createWithType(4,n);u.set("fset",p);const d=Xs.createInstance("__set__","","",64);Xs.addParameter(d,{category:0,name:"self",type:t,hasDeclaredType:!0});let h=n.details.parameters.length>0?n.details.parameters[0].type:io.create();bo(h)&&h.details.isSynthesizedSelf&&(h=e.makeTopLevelTypeVarsConcrete(h)),Xs.addParameter(d,{category:0,name:"obj",type:Oo([h,to.createInstance()]),hasDeclaredType:!0}),d.details.declaredReturnType=to.createInstance();let m=Ys.create();n.details.parameters.length>=2&&0===n.details.parameters[1].category&&n.details.parameters[1].name&&(m=n.details.parameters[1].type),Xs.addParameter(d,{category:0,name:"value",type:m,hasDeclaredType:!0});const f=qo.createWithType(4,d);return u.set("__set__",f),c}(li,t,e,i)):e;if("deleter"===r)return Eo(e)?($u(li,e,n),function(e,t,n,i){var r;if(!ua(t))return t;const s=t,o=Zs.createInstantiable(s.details.name,s.details.fullName,s.details.moduleName,Vt(i).filePath,s.details.flags,s.details.typeSourceId,s.details.declaredMetaclass,s.details.effectiveMetaclass);o.details.typeVarScopeId=s.details.typeVarScopeId,Ha(o);const a=Zs.cloneAsInstance(o);o.isAsymmetricDescriptor=null!==(r=s.isAsymmetricDescriptor)&&void 0!==r&&r;const l=o.details.fields;s.details.fields.forEach(((e,t)=>{e.isIgnoredForProtocolMatch()||l.set(t,e)}));const c=qo.createWithType(4,n);l.set("fdel",c);const u=Xs.createInstance("__delete__","","",64);Xs.addParameter(u,{category:0,name:"self",type:t,hasDeclaredType:!0});let p=n.details.parameters.length>0?n.details.parameters[0].type:io.create();bo(p)&&p.details.isSynthesizedSelf&&(p=e.makeTopLevelTypeVarsConcrete(p)),Xs.addParameter(u,{category:0,name:"obj",type:Oo([p,to.createInstance()]),hasDeclaredType:!0}),u.details.declaredReturnType=to.createInstance();const d=qo.createWithType(4,u);return l.set("__delete__",d),a}(li,t,e,i)):e}}}else if(_o(s)){if(Zs.isBuiltIn(s))switch(s.details.name){case"classmethod":case"staticmethod":{const t="classmethod"===s.details.name?2:4;if(Eo(e)&&0==(e.details.flags&t)){const n=Xs.clone(e);return n.details.flags&=-8,n.details.flags|=t,n}return e}}if(Zs.isPropertyClass(s)){if(Eo(e))return $u(li,e,n),Hu(li,n,s,e);if(vo(e)){const t=_a(e,"__call__");if(t){const i=Bn(t);if(Eo(i)||ko(i)){const t=ri(e,i);if(t&&Eo(t))return Hu(li,n,s,t)}}return Ys.create()}}}return Eo(e)&&Eo(o)&&(o=Xs.clone(o),Xs.isOverloaded(e)&&(o.details.flags|=256),o.details.docString||(o.details.docString=e.details.docString)),o}function nn(e,t,n){let i;if(vo(t)&&Zs.isBuiltIn(t))if("Generator"===t.details.name){const n=ce(e,"AsyncGenerator");if(n&&_o(n)){const e=[],r=t.typeArguments;r&&r.length>0&&e.push(r[0]),r&&r.length>1&&e.push(r[1]),i=Zs.cloneAsInstance(Zs.cloneForSpecialization(n,e,!0))}}else["AsyncGenerator","AsyncIterator","AsyncIterable"].some((e=>e===t.details.name))&&(i=t);if(!i||!n){const n=ce(e,"Coroutine");i=n&&_o(n)?Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[io.create(),io.create(),t],!0)):Ys.create()}return i}function rn(e,t){var n;if(e.returnTypeAnnotation||(null===(n=e.functionAnnotationComment)||void 0===n?void 0:n.returnTypeAnnotation))return;let r=F(e.suite,0);if(r)return r;if(!i.has(e.id)){i.set(e.id,!0);try{let n;const s=Mt(e);s&&(n=s);const o=!de(e),a=de(e.suite);if(Vt(e).isStubFile)r=Ys.create();else{if(o)r=t||function(e){if(!e||!e.isMethod||e.returnStatements||e.yieldStatements||!e.raiseStatements)return!1;for(const t of e.raiseStatements){if(!t.typeExpression||t.valueExpression)return!1;const e=$(t.typeExpression).type,n=_o(e)||vo(e)?e:void 0;if(!n||!Zs.isBuiltIn(n,"NotImplementedError"))return!1}return!0}(n)?Ys.create():no.createNoReturn();else{const e=[];(null==n?void 0:n.returnStatements)&&n.returnStatements.forEach((t=>{if(pe(t))if(t.returnExpression){const n=$(t.returnExpression).type;e.push(n||Ys.create())}else e.push(to.createInstance())})),!o&&a&&e.push(to.createInstance()),r=Oo(e),r=Ro(r)}if(null==n?void 0:n.isGenerator){const t=[];let i=!1;n.yieldStatements&&n.yieldStatements.forEach((e=>{if(pe(e))if(61===e.nodeType){const n=$(e.expression).type;if(vo(n)&&Zs.isBuiltIn(n,"Coroutine"))t.push(),i=!0;else{const i=ae(n,!1,e);t.push(i||Ys.create())}}else if(e.expression){const n=$(e.expression).type;t.push(n||Ys.create())}else t.push(to.createInstance())})),0===t.length&&t.push(to.createInstance());const s=Oo(t),o=ce(e,i?"AwaitableGenerator":"Generator");if(o&&_o(o)){const e=[];i&&e.push(io.create()),e.push(s,to.createInstance(),ao(r)?to.createInstance():r),r=Zs.cloneAsInstance(Zs.cloneForSpecialization(o,e,!0))}else r=Ys.create()}}N(e.suite,r,0,!1)}finally{i.delete(e.id)}}return r}function sn(e){if(F(e,0))return;const t=$(e.iterableExpression),n=ae(t.type,!!e.isAsync,e.iterableExpression)||Ys.create();xe(e.targetExpression,n,!!t.isIncomplete,e.targetExpression),N(e,n,0,!!t.isIncomplete)}function on(e){if(w(void 0!==e.typeExpression),F(e,0))return;function t(e,t){return ho(e=Ie(e))?e:_o(e)?Zs.cloneAsInstance(e):vo(e)?Ko(ae(e,!1,t)||Ys.create(),(e=>ho(e)?e:Ys.create())):Ys.create()}const n=Ko($(e.typeExpression).type,(n=>{const i=ia(n);return i&&i.tupleTypeArguments?Oo(i.tupleTypeArguments.map((n=>t(n.type,e.typeExpression)))):t(n,e.typeExpression)}));e.name&&xe(e.name,n,!1,e.name),N(e,n,0,!1)}function an(e){if(F(e,0))return;const t=$(e.expression);let n=t.type;const i=e.parent&&58===e.parent.nodeType&&!!e.parent.isAsync;Go(n)&&(_e(Vt(e).diagnosticRuleSet.reportOptionalContextManager,$o.reportOptionalContextManager,ml.Diagnostic.noneNotUsableWith(),e.expression),n=Fo(n));const r=i?"__aenter__":"__enter__",s=Ko(n,(t=>{var n;if(ho(t=Ie(t)))return t;const s=new il,o=new il;if(vo(t)){const a=null===(n=ee(e.expression,t,r,{method:"get"},s))||void 0===n?void 0:n.type;if(a){let t;return t=Eo(a)?Un(a):Ys.create(),i&&(t=oe(t,e)),t}i||ee(e.expression,t,"__aenter__",{method:"get"},s)&&o.addMessage(ml.DiagnosticAddendum.asyncHelp())}return _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotUsableWith().format({type:ai(t),method:r})+o.getString(),e.expression),Ys.create()})),o=i?"__aexit__":"__exit__";Jo(n,(t=>{if(ho(t=Ie(t)))return;const n=new il;vo(t)&&ee(e.expression,t,o,{method:"get"},n)||_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotUsableWith().format({type:ai(t),method:o}),e.expression)})),e.target&&xe(e.target,s,!!t.isIncomplete,e.target),N(e,s,0,!!t.isIncomplete)}function ln(e){if(F(e,0))return;let t;if(t=e.alias?e.alias:e.module.nameParts[0],!t)return;let n=dn(e,t.value)||Ys.create();const i=F(e,0);i&&To(i)&&n&&Ao(n,i)&&(n=i),Te(t,n,!1),N(e,n,0,!1)}function cn(t){var n;if(F(t,0))return;const i=t.alias||t.name,r=Vt(t);if((null===(n=t.alias)||void 0===n?void 0:n.value)===t.name.value){const e=wn(t,t.name.value,!0);e&&we(r,e.symbol,t)}let s=dn(t,i.value);if(!s){const n=t.parent;w(n&&22===n.nodeType),w(!n.isWildcardImport);const i=Rt(n.module);if(i&&i.isImportFound&&!i.isNativeLib){const n=i.resolvedPaths[i.resolvedPaths.length-1],o=e(n);let a=!1;if(o){if(a=!0,r.executionEnvironment.pythonVersion>=De.V3_7||r.isStubFile){const e=o.symbolTable.get("__getattr__");if(e){const t=Nn(e);Eo(t)&&(s=Un(t),a=!1)}}}else n||(a=!0);a&&_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.importSymbolUnknown().format({name:t.name.value,moduleName:i.importName}),t.name)}s||(s=Ys.create())}Te(i,s,!1),N(t,s,0,!1)}function un(e){if(F(e,0))return;if(!e.parent||63!==e.parent.nodeType)return void E("Expected parent of case statement to be match statement");const t=$(e.parent.subjectExpression);let n=t.type;for(const t of e.parent.cases){if(t===e)break;t.guardExpression||(n=fu(li,n,t.pattern,!1))}let i=!1;Jo(Ie(n),(e=>{vo(e)&&Zs.isBuiltIn(e,"object")&&(i=!0)})),n=fu(li,n,e.pattern,!0),bu(li,n,!!t.isIncomplete,i,e.pattern),N(e,n,0,!!t.isIncomplete)}function pn(e){if(F(e,0))return;const t=e.module.nameParts[0];let n=dn(e,t.value)||Ys.create();const i=F(e,0);i&&To(i)&&n&&Ao(n,i)&&(n=i),Te(t,n,!1),N(e,n,0,!1)}function dn(e,n){const i=wn(e,n,!0);if(!i)return;const r=i.symbol.getDeclarations().filter((t=>Mr(e,t.node)&&6===t.type));let s=r.length>0?r[r.length-1]:void 0;if(s||(s=i.symbol.getDeclarations().find((e=>6===e.type))),!s)return;w(6===s.type);const o=Vt(e),a=Fn(s,!0,o.isStubFile);if(a){if(!a.declaration)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();if(23===e.nodeType&&(a.isPrivate&&_e(o.diagnosticRuleSet.reportPrivateUsage,$o.reportPrivateUsage,ml.Diagnostic.privateUsedOutsideOfModule().format({name:e.name.value}),e.name),a.privatePyTypedImporter)){const t=new il;a.privatePyTypedImported&&t.addMessage(ml.DiagnosticAddendum.privateImportFromPyTypedSource().format({module:a.privatePyTypedImported})),_e(o.diagnosticRuleSet.reportPrivateImportUsage,$o.reportPrivateImportUsage,ml.Diagnostic.privateImportFromPyTypedModule().format({name:e.name.value,module:a.privatePyTypedImporter})+t.getString(),e.name)}return Pn(i.symbol,s)}}function hn(e){var t,n,i;let r=e,s=e;function o(e){var t,n,i,r,s;return 41===e.nodeType&&30===(null===(t=e.parent)||void 0===t?void 0:t.nodeType)||1===e.nodeType&&(9===(null===(n=e.parent)||void 0===n?void 0:n.nodeType)||24===(null===(i=e.parent)||void 0===i?void 0:i.nodeType))||54===(null===(r=e.parent)||void 0===r?void 0:r.nodeType)||41===(null===(s=e.parent)||void 0===s?void 0:s.nodeType)&&(e===e.parent.typeAnnotation||e===e.parent.typeAnnotationComment)||9===e.nodeType||24===e.nodeType||15===e.nodeType||27===e.nodeType||31===e.nodeType||30===e.nodeType||35===e.nodeType||45===e.nodeType||49===e.nodeType||48===e.nodeType||52===e.nodeType||56===e.nodeType||17===e.nodeType||16===e.nodeType||32===e.nodeType||33===e.nodeType||34===e.nodeType||65===e.nodeType||67===e.nodeType||68===e.nodeType||74===e.nodeType||66===e.nodeType||69===e.nodeType||70===e.nodeType||73===e.nodeType||71===e.nodeType||72===e.nodeType}if(38===e.nodeType&&e.parent){if(28===e.parent.nodeType&&e.parent.name===e)return void Gt(e.parent);if(10===e.parent.nodeType&&e.parent.name===e)return void $t(e.parent);if(29===e.parent.nodeType||39===e.parent.nodeType)return void $(e,void 0,4)}for(;s;){const e=o(s);if(!e&&!yr(s))break;e&&(r=s),s=s.parent}const a=r.parent;if(3===a.nodeType)return void(r===a.typeAnnotationComment?K(r,{isVariableAnnotation:!0,allowFinal:Fr(a.leftExpression),allowClassVar:Nr(a.leftExpression)}):Wt(a));if(14===a.nodeType)return void Ce(r);if(5===a.nodeType)return void jt(a);if(13===a.nodeType)return void(10===(null===(t=a.parent)||void 0===t?void 0:t.nodeType)?$t(a.parent):28===(null===(n=a.parent)||void 0===n?void 0:n.nodeType)&&Gt(a.parent));const l=e=>{const t=e.parent;if(3===(null==t?void 0:t.nodeType)&&t.leftExpression===a)Wt(t);else{const t=K(e.typeAnnotation,{isVariableAnnotation:!0,allowFinal:Fr(e.valueExpression),allowClassVar:Nr(e.valueExpression)});N(e.valueExpression,t,0,!1)}};if(64===a.nodeType&&r!==a.guardExpression)return void un(a);if(54===a.nodeType)return void l(a);if(41===a.nodeType&&r!==a.defaultValue)return void mn(a);if(28===a.nodeType&&(r===a.returnTypeAnnotation||r===a.functionAnnotationComment))return void K(r,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});if(37===a.nodeType)return;if(1===a.nodeType&&r===a.name)return;if(1===a.nodeType&&10===(null===(i=a.parent)||void 0===i?void 0:i.nodeType))return void $t(a.parent);if(44===a.nodeType&&a.returnExpression){const t=kr(e),n=t?Vn(t):void 0;return void $(a.returnExpression,n,0)}const c=yr(a)&&0!==a.nodeType?a:r;54===c.nodeType?l(c):$(c,void 0,Vt(c).isStubFile?4:0)}function mn(e){if(!e.name)return;const t=e.parent;if(30===t.nodeType)return void hn(t);w(28===t.nodeType);const n=t,i=n.parameters.findIndex((t=>t===e)),r=ie(n,i);if(r){const t=n.parameters[i],s=G(r,n.parameters[i].category),o=Xt(e,e.category,Jt(t,s));return void N(e.name,o,0,!1)}const s=Er(n,!0);if(s){const t=$t(s);if(t){const r=Qt(n,en(n,!0),i,t.classType);if(r)return void N(e.name,Xt(e,e.category,r),0,!1)}}N(e.name,Xt(e,e.category,Ys.create()),0,!1)}function fn(e){z(e);let t=e;for(;t;){switch(t.nodeType){case 3:if(!t.parent||3!==t.parent.nodeType&&4!==t.parent.nodeType&&5!==t.parent.nodeType||t.parent.rightExpression!==t)return void Wt(t);break;case 4:return void $(t);case 5:return void jt(t);case 10:return void $t(t);case 41:return void mn(t);case 30:return void hn(t);case 28:return void Gt(t);case 26:return void sn(t);case 25:return void on(t);case 59:return void an(t);case 33:{const e=t.parent;if(w(32===e.nodeType),t===e.expression)hn(e);else for(const n of e.forIfNodes)if(Ct(n),n===t)break;return}case 21:return void ln(t);case 23:return void cn(t);case 22:return void pn(t);case 64:return void un(t)}t=t.parent}E("Unexpected statement")}function gn(e,t){let n=F(e,void 0);if(n)return{node:e,type:n};const i=C;try{if(C=new Map,t(),n=F(e,void 0),n)return{node:e,type:n};if(n=C.get(e.id),n)return{node:e,type:n,isIncomplete:!0};C=i}catch(e){throw C=i,e}}function yn(e){let t=r.get(e);return t||(t=ci.createCodeFlowAnalyzer(),r.set(e,t)),t}function _n(e,t,n,i,r){var s;const o=At(e),a=Rr(null!==(s=null==r?void 0:r.parent)&&void 0!==s?s:e),l=a.codeFlowExpressions;if(!l||!l.has(o))return{type:void 0,isIncomplete:!1};let c;c=L(a)?function(){const e=D.length;return w(e>0),D[e-1].codeFlowAnalyzer}():yn(a.id);const u=Lt(null!=r?r:e);return void 0===u?{type:void 0,isIncomplete:!1}:vn(c,u,e,t,n,i)}function vn(e,t,n,i,r,s){let o;d.enterTrackingScope();try{o=e.getTypeFromCodeFlow(t,n,i,r,s),d.exitTrackingScope()}catch(e){throw d.exitTrackingScope(),e}return o.isIncomplete&&d.enableUndoTracking(),o}function Tn(e,t,n,i){if(Zs.isSpecialBuiltIn(e)){const r=e.aliasName||e.details.name;switch(r){case"Callable":return function(e,t){const n=Xs.createInstantiable("","","",0);Ks.setSpecialForm(n),n.details.declaredReturnType=Ys.create();const i=Dr(t);if(n.details.typeVarScopeId=i?Pe(i):$s,e&&e.length>0){if(e[0].typeList){const t=e[0].typeList;let i=!1,r=!1;const s=e=>{i&&(r||(fe(ml.Diagnostic.variadicTypeArgsTooMany(),e.node),r=!0)),i=!0};t.forEach(((e,t)=>{let i=e.type,r=0;const o=`__p${t.toString()}`;Io(i)?(Oe(i,e.node),r=1,s(e)):Et(e,{allowUnpackedTuples:!0})?xo(i)&&(r=1,s(e)):i=Ys.create(),Xs.addParameter(n,{category:r,name:o,isNameSynthesized:!0,type:Fa(i),hasDeclaredType:!0})})),Xs.addParameter(n,{category:0,isNameSynthesized:!1,type:Ys.create()})}else if(ca(e[0].type))Xs.addDefaultParameters(n),n.details.flags|=32768;else if(wo(e[0].type))n.details.paramSpec=e[0].type;else if(_o(e[0].type)&&Zs.isBuiltIn(e[0].type,"Concatenate")){const t=e[0].type.typeArguments;t&&t.length>0&&t.forEach(((e,i)=>{i===t.length-1?(Xs.addParameter(n,{category:0,isNameSynthesized:!1,type:Ys.create()}),wo(e)&&(n.details.paramSpec=e)):Xs.addParameter(n,{category:0,name:`__p${i}`,isNameSynthesized:!0,hasDeclaredType:!0,type:e})}))}else fe(ml.Diagnostic.callableFirstArg(),e[0].node);if(e.length>1){let t=e[1].type;Et(e[1])||(t=Ys.create()),n.details.declaredReturnType=Fa(t)}else _e(Vt(t).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.callableSecondArg(),t),n.details.declaredReturnType=Ys.create();e.length>2&&fe(ml.Diagnostic.callableExtraArgs(),e[2].node)}else Xs.addDefaultParameters(n,!0),n.details.flags|=32768;return n}(t,i);case"Never":return t&&t.length>0&&fe(ml.Diagnostic.typeArgsExpectingNone().format({name:"Never"}),t[0].node),no.createNever();case"NoReturn":return t&&t.length>0&&fe(ml.Diagnostic.typeArgsExpectingNone().format({name:"NoReturn"}),t[0].node),no.createNoReturn();case"Optional":return function(e,t,n,i){if(!n)return 0!=(1024&i)?(fe(ml.Diagnostic.optionalExtraArgs(),t),Ys.create()):e;if(n.length>1)return fe(ml.Diagnostic.optionalExtraArgs(),t),Ys.create();let r=n[0].type;Et(n[0])?Ks.isInstantiable(r)||(ve(r,n[0].node),r=Ys.create()):r=Ys.create();const s=Oo([r,to.createType()]);return fo(s)&&Ks.setSpecialForm(s),s}(e,i,t,n);case"Type":{if(1===(null==t?void 0:t.length)&&ho(t[0].type)&&_&&_o(_))return _;let n=Ot(e,t,1);return _o(n)&&(n=Ua(n)),n}case"ClassVar":return function(e,t,n,i){var r;if(131072&i)return fe(ml.Diagnostic.classVarNotAllowed(),t),io.create();if(!n)return e;if(0===n.length)return fe(ml.Diagnostic.classVarFirstArgMissing(),t),Ys.create();if(n.length>1)return fe(ml.Diagnostic.classVarTooManyArgs(),n[1].node),Ys.create();const s=n[0].type;return $a(s,!0,!0)&&_e(Vt(t).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.classVarWithTypeVar(),null!==(r=n[0].node)&&void 0!==r?r:t),s}(e,i,t,n);case"Protocol":return Ot(e,t,void 0,!0);case"Tuple":return Ot(e,t,void 0);case"Union":return function(e,t,n,i){const r=[];if(!n)return 0!=(1024&i)?(fe(ml.Diagnostic.unionTypeArgCount(),t),no.createNever()):e;for(const e of n){let t=e.type;Et(e,{allowVariadicTypeVar:!0,allowUnpackedTuples:!0})?Ks.isInstantiable(t)||(ve(t,e.node),t=Ys.create()):t=Ys.create(),xo(e.type)&&e.type.tupleTypeArguments?e.type.tupleTypeArguments.forEach((e=>{r.push(Na(e.type))})):(bo(t)&&Io(t)&&t.isVariadicUnpacked&&(t=oo.cloneForUnpacked(t,!0)),r.push(t))}1===r.length&&(Io(r[0])||Co(r[0])||lo(r[0])||fe(ml.Diagnostic.unionTypeArgCount(),t));const s=Oo(r);return fo(s)&&Ks.setSpecialForm(s),s}(e,i,t,n);case"Generic":return function(e,t,n,i){if(!n)return 0!=(263168&i)&&fe(ml.Diagnostic.genericTypeArgMissing(),t),e;const r=[];return n&&(0===n.length&&fe(ml.Diagnostic.genericTypeArgMissing(),t),n.forEach((e=>{bo(e.type)?(r.some((t=>Ao(t,e.type)))&&fe(ml.Diagnostic.genericTypeArgUnique(),e.node),r.push(e.type)):fe(ml.Diagnostic.genericTypeArgTypeVar(),e.node)}))),Ot(e,n,void 0,!0)}(e,i,t,n);case"Final":return function(e,t,n,i){return 16&i?(fe(ml.Diagnostic.finalContext(),t),io.create()):n&&0!==n.length?(n.length>1&&fe(ml.Diagnostic.finalTooManyArgs(),t),n[0].type):e}(e,i,t,n);case"Annotated":return function(e,t){return t&&t.length<2&&fe(ml.Diagnostic.annotatedTypeArgMissing(),e),t&&0!==t.length?Ks.cloneForAnnotated(t[0].type):io.create()}(i,t);case"Concatenate":return function(e,t,n){return n&&0!==n.length?n.forEach(((e,t)=>{t===n.length-1?wo(e.type)||fe(ml.Diagnostic.concatenateParamSpecMissing(),e.node):wo(e.type)&&fe(ml.Diagnostic.paramSpecContext(),e.node)})):fe(ml.Diagnostic.concatenateTypeArgsMissing(),e),Ot(t,n,void 0,!0)}(i,e,t);case"TypeGuard":case"StrictTypeGuard":return function(e,t,n,i){if(!n)return 0!=(1024&i)&&fe(ml.Diagnostic.typeGuardArgCount(),e),t;if(1!==n.length)return fe(ml.Diagnostic.typeGuardArgCount(),e),Ys.create();const r=n.map((e=>Fa(Et(e)?e.type:Ys.create())));return Zs.cloneForSpecialization(t,r,!0)}(i,e,t,n);case"Unpack":return function(e,t,n){if(!t||1!==t.length)return fe(ml.Diagnostic.unpackArgCount(),e),Ys.create();let i=t[0].type;fo(i)&&1===i.subtypes.length&&(i=i.subtypes[0]);const r=Vt(e);return 0!=(2097152&n)?_o(i)&&!i.includeSubclasses&&pa(i)?Zs.cloneForUnpacked(i):Io(i)&&!i.isVariadicUnpacked?oo.cloneForUnpacked(i):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackExpectedTypeVarTuple(),e),Ys.create()):0!=(8388608&n)?_o(i)&&Zs.isTypedDictClass(i)?Zs.cloneForUnpacked(i):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackExpectedTypedDict(),e),Ys.create()):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackNotAllowed(),e),Ys.create())}(i,t,n);case"Required":case"NotRequired":return function(e,t,n,i,r){var s;if(!i&&0==(1024&r))return e;if(!i||1!==i.length)return fe(n?ml.Diagnostic.requiredArgCount():ml.Diagnostic.notRequiredArgCount(),t),e;const o=i[0].type,a=Er(t,!0),l=a?$t(a):void 0;let c=!1;return l&&_o(l.classType)&&Zs.isTypedDictClass(l.classType)&&54===(null===(s=t.parent)||void 0===s?void 0:s.nodeType)&&t.parent.typeAnnotation===t&&(c=!0),0!=(1048576&r)&&(c=!0),c?o:(fe(n?ml.Diagnostic.requiredNotInTypedDict():ml.Diagnostic.notRequiredNotInTypedDict(),t),Zs.cloneForSpecialization(e,[Fa(o)],!!i))}(e,i,"Required"===r,t,n);case"Self":return function(e,t,n){var i;const r=Vt(t);n&&_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsExpectingNone().format({name:e.details.name}),null!==(i=n[0].node)&&void 0!==i?i:t);const s=Er(t),o=s?$t(s):void 0;if(!o)return _e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeContext(),t),Ys.create();const a=kr(t);if(a){if(4&en(a,!0))return _e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeContext(),t),Ys.create();if(a.parameters.length>0){const e=ie(a,0);if(e&&!Mr(t,e)){const n=K(e,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});bo(n)&&n.details.isSynthesizedSelf||_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeWithTypedSelfOrCls(),t)}}}return Aa(o.classType,!0)}(e,i,t);case"LiteralString":return Ot(e,t,0)}}const r=Vt(i);if(r.isStubFile||r.executionEnvironment.pythonVersion>=De.V3_9||H(Vt(i))||0!=(4&n)){if(Zs.isBuiltIn(e,"type")&&t){if(1===t.length&&ho(t[0].type))return e;const n=ce(i,"Type");if(n&&_o(n)){let e=Ot(n,t,1,void 0,!0);return _o(e)&&(e=Ua(e)),e}}if(pa(e))return Ot(e,t,void 0,void 0,!0)}let s=t?t.length:0;const o=Zs.isPseudoGenericClass(e)?[]:Zs.getTypeParameters(e);if(0===o.length&&0===s)return e;const a=o.findIndex((e=>Io(e)));if(t){if(s>o.length){if(!Zs.isPartiallyConstructed(e)&&!Zs.isTupleClass(e)){const n=Vt(i);0===o.length?_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsExpectingNone().format({name:e.aliasName||e.details.name}),t[o.length].node):1===o.length&&wo(o[0])||_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsTooMany().format({name:e.aliasName||e.details.name,expected:o.length,received:s}),t[o.length].node)}s=o.length}else sGs)return t;if(r++,ho(t))return t;let s=t;if(bo(t)){if(Ao(t,e,void 0,void 0,r))return t;s=Ie(t)}if(e.details.boundType&&!Jn(e.details.boundType,s,n.createAddendum(),void 0,i,r))return void(e.details.isSynthesized||n.addMessage(ml.DiagnosticAddendum.typeBound().format({sourceType:ai(s),destType:ai(e.details.boundType),name:oo.getReadableName(e)})));if(e.details.isParamSpec)return wo(t)||Eo(t)&&Xs.isParamSpecValue(t)||vo(t)&&Zs.isBuiltIn(t,"Concatenate")?t:void n.addMessage(ml.DiagnosticAddendum.typeParamSpec().format({type:ai(t),name:oo.getReadableName(e)}));if(bo(t)&&t.details.isParamSpec)return void n.addMessage(ml.Diagnostic.paramSpecContext());const o=e.details.constraints;if(0===o.length)return t;if(bo(t)&&t.details.constraints.length>0){if(t.details.constraints.every((e=>o.some((t=>Jn(t,e,void 0,void 0,void 0,r))))))return t}else{let e;for(const t of o)Jn(t,s,void 0,void 0,void 0,r)&&(e&&!Jn(e,t,void 0,void 0,void 0,r)||(e=t));if(e)return e}n.addMessage(ml.DiagnosticAddendum.typeConstrainedTypeVar().format({type:ai(t),name:oo.getReadableName(e)}))}(o[n],e,i);r?e=r:vo(e)&&Zs.isPartiallyConstructed(e)||_e(Vt(t[n].node).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeVarAssignmentMismatch().format({type:ai(e),name:oo.getReadableName(o[n])})+i.getString(),t[n].node)}return e})),Zs.cloneForSpecialization(e,l,void 0!==t)}function bn(e){return e.type?{type:e.type}:e.valueExpression?$(e.valueExpression):{type:Ys.create()}}function In(e){return e.type?{type:e.type}:Sn(e.valueExpression)}function Sn(e,t=!1,n=!1,i=!1){let r=131304;return Vt(e).isStubFile?r|=4:r|=4194304,t||(r|=16),n&&(r|=1048576),$(e,void 0,r)}function xn(e,t){const n=zs(e);if(n){const e=function(e){let t=e;for(;4!==t.type;)t=t.parent;return t}(n).lookUpSymbol(t);if(e)return Nn(e)}return Ys.create()}function Cn(e,t,n){const i=xn(e,t);if(_o(i)){let e=i;return n&&(e=Zs.cloneForSpecialization(e,n,void 0!==n)),Zs.cloneAsInstance(e)}return i}function wn(e,t,n,i=!1){var r;const s=zs(e);let o=null==s?void 0:s.lookUpSymbolRecursive(t);const a=null!==(r=null==s?void 0:s.type)&&void 0!==r?r:3;if(o&&n&&1!==a&&0!==a&&0===o.symbol.getDeclarations().filter((t=>{if(6!==t.type&&0!==t.type){const n=Rr(e),i=4===t.type||3===t.type?t.node.name:t.node;if(n===Rr(i)&&!he(i,e)){const t=Lt(e);return!(t&&ci.isFlowNodeReachable(t))}}return!0})).length&&(o=1!==o.scope.type&&o.scope.parent?o.scope.parent.lookUpSymbolRecursive(t,o.isOutsideCallerModule||3===o.scope.type,o.isBeyondExecutionScope||o.scope.isIndependentlyExecutable()):void 0),o&&i){let e=o;for(;3!==e.scope.type&&4!==e.scope.type&&e.scope.parent&&(e=e.scope.parent.lookUpSymbolRecursive(t,e.isOutsideCallerModule,e.isBeyondExecutionScope||e.scope.isIndependentlyExecutable()),e););3!==(null==e?void 0:e.scope.type)&&4!==(null==e?void 0:e.scope.type)||(o=e)}return o}function En(e,t){p.push(e);try{const e=t();return p.pop(),e}catch(e){throw p.pop(),e}}function kn(e,t,n=!0){c.enterSpeculativeContext(e,n);try{const e=t();return c.leaveSpeculativeContext(),e}catch(e){throw c.leaveSpeculativeContext(),e}}function Dn(e,t){if(Eo(e)&&e.details.declaration){const n=e.details.declaration;if(3===n.type){const e=Ft(n.node);if(e){const n=e.lookUpSymbol(t);if(n)return n.getDeclarations().find((e=>2===e.type))}}}}function An(e){var t,n;switch(e.type){case 0:{if("Any"===e.intrinsicType)return io.create();if("class"===e.intrinsicType){const t=$t(Er(e.node));return t?t.classType:void 0}const t=Cn(e.node,"str"),n=Cn(e.node,"int");if(vo(n)&&vo(t)){if("str"===e.intrinsicType)return t;if("str | None"===e.intrinsicType)return Oo([t,to.createInstance()]);if("int"===e.intrinsicType)return n;if("Iterable[str]"===e.intrinsicType){const n=xn(e.node,"Iterable");if(_o(n))return Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[t],!0))}if("Dict[str, Any]"===e.intrinsicType){const n=xn(e.node,"dict");if(_o(n))return Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[t,io.create()],!0))}}return Ys.create()}case 4:{const t=$t(e.node);return t?t.decoratedType:void 0}case 5:return K(e.node.typeAnnotation);case 3:{const t=Gt(e.node);return t?t.decoratedType:void 0}case 2:{let n=e.node.typeAnnotation||e.node.typeAnnotationComment;if(!n&&28===(null===(t=e.node.parent)||void 0===t?void 0:t.nodeType)){const t=e.node.parent;if(t.functionAnnotationComment&&!t.functionAnnotationComment.isParamListEllipsis){const i=t.parameters.findIndex((t=>t===e.node));n=ie(t,i)}}if(n){const t=G(n,e.node.category);return Xt(e.node,e.node.category,Jt(e.node,t))}return}case 1:{const t=e.typeAnnotationNode;if(t){const i=re(t)?function(e){let t=e,n=e.parent;for(;n;){if(54===n.nodeType){if(n.typeAnnotation===t)return n;break}t=n,n=n.parent}}(t):void 0;let r;if(e.isRuntimeTypeExpression)r=Fa(Sn(t,!0,!0).type);else{const i=e.isDefinedByMemberAccess&&35===(null===(n=e.node.parent)||void 0===n?void 0:n.nodeType)?e.node.parent:e.node;r=K(t,{isVariableAnnotation:!0,allowClassVar:Nr(i),allowFinal:Fr(i)})}if(r)return 38===e.node.nodeType&&(r=Ut(e.node,(()=>r))||r),i&&38===i.valueExpression.nodeType&&(r=qt(r,i.valueExpression,e.node)),r}return}case 6:return}}function Pn(n,i){var r,s;const o=Rn(i,!0,Vt(i.node).isStubFile);if(!o)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();function a(e,n,i){if(n.path&&n.loadSymbolsFromPath){const r=i(n.path);if(!r)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();e.fields=r.symbolTable,e.docString=r.docString}return n.implicitImports&&n.implicitImports.forEach(((t,n)=>{const r=e.moduleName?e.moduleName+"."+n:"",s=a(Qs.create(r,t.path),t,i),o=qo.createWithType(0,s);e.loaderFields.set(n,o)})),e}if(6===o.type){let t=o.moduleName;if(6===i.type&&(i.symbolName&&(t+="."+i.symbolName),t.startsWith("."))){const e=Vt(i.node).moduleName.split(".");for(t=t.substr(1);t.startsWith(".")&&e.length>0;)t=t.substr(1),e.pop();t=e.join(".")+"."+t}const n=Qs.create(t,o.path);return o.symbolName&&o.submoduleFallback?a(n,o.submoduleFallback,e):a(n,o,e)}const l=An(o);if(l)return l;const c=Vt(o.node);let u=!c.isInPyTypedPackage||c.isStubFile;if(!u&&1===o.type){const e=Er(o.node,!0);if(e){const t=$t(e);t&&Zs.isEnumClass(t.classType)&&(u=!0)}(o.isFinal||o.isConstant)&&(u=!0)}if(2===o.type)return null===(r=gn(o.node.name,(()=>{mn(o.node)})))||void 0===r?void 0:r.type;if(1===o.type&&o.inferredTypeSource){const e=o.typeAliasName&&o.inferredTypeSource.parent?o.inferredTypeSource.parent:o.inferredTypeSource;let t=null===(s=gn(o.node,(()=>{fn(e)})))||void 0===s?void 0:s.type;if(t&&38===o.node.nodeType){const e=Ut(o.node,(()=>{var e;return(null===(e=gn(o.inferredTypeSource,(()=>{fn(o.inferredTypeSource)})))||void 0===e?void 0:e.type)||Ys.create()}));e&&(t=e)}return t&&o.typeAliasName&&(!Ks.isInstantiable(t)||po(t)||ca(t)||(t=qt(t,o.typeAliasName,o.node),u=!0)),t&&c.isInPyTypedPackage&&!c.isStubFile&&(u||function(e,t,n){var i;const r=e.getDeclarations().filter((e=>1!==e.type||!e.isInferenceAllowedInPyTyped));if(r.length>1)return!1;if(1!==t.type)return!1;if(0===r.length)return!0;if(bo(n))return!0;let s;const o=t.node.parent;if(o&&(3===o.nodeType?s=o:35===o.nodeType&&3===(null===(i=o.parent)||void 0===i?void 0:i.nodeType)&&(s=o.parent)),!s)return!1;const a=$(s.rightExpression).type;return!(!vo(a)||!ra(a))||38===s.rightExpression.nodeType&&!Ks.isAmbiguous(a)}(n,i,t)&&(u=!0),u||(t=Ks.cloneForAmbiguousType(t))),t}}function Rn(t,n,i=!1){var r;return null===(r=Rc(e,t,n,i))||void 0===r?void 0:r.declaration}function Fn(t,n,i=!1){return Rc(e,t,n,i)}function Nn(e){return Mn(e).type}function Mn(e,t,n=!1){if(e.hasTypedDeclarations()){const n=On(e,t);return{type:n||Ys.create(),isIncomplete:!1,includesVariableDecl:e.getTypedDeclarations().some((e=>1===e.type)),isRecursiveDefinition:!n}}let i=u.get(e.id);const r=t?t.id:void 0;if(i)for(const e of i)if(e.usageNodeId===r&&e.useLastDecl===n)return e.result;const s=[],o=e.getDeclarations(),a=Wo(e);let l,p=!1,d=!1,h=!1;if(n&&o.forEach(((e,t)=>{e.isInExceptSuite||(l=t)})),o.forEach(((n,i)=>{var r,o;let u=void 0===l||i===l;if(void 0!==t&&6!==n.type&&Rr(t)===Rr(n.node)&&(he(n.node,t)||(u=!1)),u){const t=ss(n);if((t||os(n))&&1===n.type&&3===(null===(o=null===(r=n.inferredTypeSource)||void 0===r?void 0:r.parent)||void 0===o?void 0:o.nodeType)&&(Wt(n.inferredTypeSource.parent),n.typeAliasAnnotation&&K(n.typeAliasAnnotation,{isVariableAnnotation:!0,allowFinal:Fr(n.node),allowClassVar:Nr(n.node)})),q(e,n))try{let i=Pn(e,n);if(V(e)||(p=!0),i){if(1===n.type){d=!0;let e=1===n.type&&!!n.isConstant;vo(i)&&Zs.isEnumClass(i)&&function(e){const t=Er(e.node,!0);if(!t)return!1;const n=$t(t);return!!n&&Zs.isEnumClass(n.classType)}(n)&&(e=!0),!Ks.isInstance(i)||t||e||a||(i=Qo(i))}s.push(i),c.isSpeculative(n.node)&&(h=!0)}else p=!0}catch(t){throw V(e),t}else p=!0}})),s.length>0){const t={type:Oo(s),isIncomplete:!1,includesVariableDecl:d,isRecursiveDefinition:!1};return h||(i||(i=[],u.set(e.id,i)),i.push({usageNodeId:r,useLastDecl:n,result:t})),t}return{type:Js.create(),isIncomplete:p,includesVariableDecl:d,isRecursiveDefinition:!1}}function On(e,t){const n=e.getSynthesizedType();if(n)return n;let i=e.getTypedDeclarations();if(0===i.length)return;if(i.length>1&&t){const e=i.filter((e=>!(6!==e.type&&Rr(t)===Rr(e.node)&&!he(e.node,t,!1))));e.length>0&&(i=e)}let r=i.length-1;for(;r>=0;){const t=i[r],n=W(e,t);if(n)return n;if(U(e,t)<0&&q(e,t))try{const n=An(t);if(V(e)||4===t.type)return n}catch(t){throw V(e),t}r--}}function Ln(e){Eo(e)?Un(e):ko(e)&&e.overloads.forEach((e=>{Un(e)}))}function Un(e,t,n=!0){return Xs.getSpecializedReturnType(e)||(n?qn(e,t):Ys.create())}function qn(e,n){var i;let r;if(Xs.isStubDefinition(e))return Ys.create();if(e.inferredReturnType)r=e.inferredReturnType;else{if(Xs.isInstanceMethod(e)&&"__init__"===e.details.name)r=to.createInstance();else if(e.details.declaration){const n=e.details.declaration.node;if(t.analyzeUnannotatedFunctions){const t=function(e){var t;return null!==(t=e.codeFlowComplexity)&&void 0!==t?t:0}(n);(e.details.parameters.length<=1||e.details.parameters.some((e=>e.hasDeclaredType))||t<15)&&(function(t){const i=c.disableSpeculativeMode();try{r=rn(n,Xs.isAbstractMethod(e)),c.enableSpeculativeMode(i)}catch(e){throw c.enableSpeculativeMode(i),e}}(),r&&Xs.isWrapReturnTypeInAwait(e)&&(r=nn(n,r,!!(null===(i=e.details.declaration)||void 0===i?void 0:i.isGenerator))))}}r||(r=Ys.create()),e.inferredReturnType=r}if(t.analyzeUnannotatedFunctions&&La(r)&&Xs.hasUnannotatedParams(e)&&!Xs.isStubDefinition(e)&&!Xs.isPyTypedDefinition(e)&&n){const t=function(e,t){var n;let i;if(!e.details.declaration)return;const r=e.details.declaration.node;if(t.some((e=>!e.paramName)))return;if(D.some((e=>e.functionNode===r)))return;const s=Gt(r);return s&&!(t.length>6||D.length>=2)?(En(r,(()=>{const n=A;D.push({functionNode:r,codeFlowAnalyzer:ci.createCodeFlowAnalyzer()});try{A=new Map;let o=!0;r.parameters.forEach(((e,n)=>{if(e.name){let i;const a=t.find((t=>e.name.value===t.paramName));a&&a.argument.valueExpression?(i=$(a.argument.valueExpression).type,po(i)||(o=!1)):e.defaultValue?(i=$(e.defaultValue).type,po(i)||(o=!1)):0===n&&(Xs.isInstanceMethod(s.functionType)||Xs.isClassMethod(s.functionType))&&s.functionType.details.parameters.length>0&&r.parameters[0].name&&(i=s.functionType.details.parameters[0].type),i||(i=Ys.create()),N(e.name,i,0,!1)}})),o||(i=rn(r,Xs.isAbstractMethod(e)))}finally{D.pop(),A=n}})),i?(i=Ro(i),Xs.isWrapReturnTypeInAwait(e)&&!ao(i)&&(i=nn(r,i,!!(null===(n=e.details.declaration)||void 0===n?void 0:n.isGenerator))),i):void 0):void 0}(e,n);t&&(r=t)}return r}function Vn(e){const t=Gt(e);return t?Xs.isAbstractMethod(t.functionType)?io.create():Xs.isGenerator(t.functionType)?Pa(t.functionType):t.functionType.details.declaredReturnType:io.create()}function Bn(e){return _o(e.classType)?ha(Nn(e.symbol),e.classType):Ys.create()}function Wn(e,t,n,i,r,s,o){if(o>Gs)return!0;if(o++,h.some((n=>Ao(n.srcType,t)&&Ao(n.destType,e))))return!0;h.push({srcType:t,destType:e});let a=!0;try{a=function(e,t,n,i,r,s,o){const a=e.details.fields,l=Zs.cloneForSpecialization(e,void 0,!1),c=new jo(na(e)),u=new jo(na(e));ma(u,e,t),Zs.isTypedDictClass(t)&&x&&_o(x)&&(t=x);let p=!0;const d=wa(t),h=oa(t,!0)?128:0;if(a.forEach(((e,i)=>{if(e.isClassMember()&&!e.isIgnoredForProtocolMatch()){let r,a=!1;if(!s&&"__class_getitem__"===i)return;if("__slots__"===i)return;if(s&&t.details.effectiveMetaclass&&_o(t.details.effectiveMetaclass)&&(r=va(t.details.effectiveMetaclass,i),r&&(d.addSolveForScope(na(t.details.effectiveMetaclass)),a=!0)),r||(r=va(t,i)),r){let l=On(e);if(l){let d=_o(r.classType)?ha(Nn(r.symbol),r.classType,t):Ys.create();if(Eo(d)||ko(d)){if(a){const e=ri(t,d,void 0,void 0,o,!1,t);if(e&&(d=Ba(e)),Eo(l)||ko(l)){const e=ri(t,l,void 0,void 0,o,!1,t);e&&(l=Ba(e))}}else if(_o(r.classType)){l=fa(l,u);const e=ri(s?t:Zs.cloneAsInstance(t),d,r.classType,void 0,o);if(e&&(d=Ba(e)),Eo(l)||ko(l)){const e=ri(Zs.cloneAsInstance(t),l,r.classType,void 0,o);e&&(l=Ba(e))}}}else l=fa(l,u);const m=null==n?void 0:n.createAddendum();if(vo(l)&&Zs.isPropertyClass(l))if(vo(d)&&Zs.isPropertyClass(d)&&!s)Gu(li,Zs.cloneAsInstantiable(l),Zs.cloneAsInstantiable(d),t,null==m?void 0:m.createAddendum(),c,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1);else{const e=Hn(l,!0);e&&Jn(e,d,null==m?void 0:m.createAddendum(),c,h,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1)}else Jn(l,d,null==m?void 0:m.createAddendum(),c,h,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1);const f=e.getTypedDeclarations().some((e=>1===e.type&&!!e.isFinal));f!==r.symbol.getTypedDeclarations().some((e=>1===e.type&&!!e.isFinal))&&(f?m&&m.addMessage(ml.DiagnosticAddendum.memberIsFinalInProtocol().format({name:i})):m&&m.addMessage(ml.DiagnosticAddendum.memberIsNotFinalInProtocol().format({name:i})),p=!1)}e.isClassVar()&&!r.symbol.isClassMember()&&(n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberClassVar().format({name:i})),p=!1)}else n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberMissing().format({name:i})),p=!1}})),e.details.baseClasses.forEach((a=>{!_o(a)||Zs.isBuiltIn(a,"object")||Zs.isBuiltIn(a,"Protocol")||Wn(ka(e,a),t,null==n?void 0:n.createAddendum(),i,r,s,o)||(p=!1)})),p&&e.details.typeParameters.length>0&&e.typeArguments){const t=fa(l,c);Gn(e,t,n,i,r,o)||(p=!1)}return p}(e,t,n,i,r,s,o)}catch(e){throw h.pop(),e}return h.pop(),a}function jn(e,t,n,i,r,s){if(s>Gs)return!0;s++;let o=!0;const a=e.details.fields,l=Zs.cloneForSpecialization(e,void 0,!1),c=new jo(na(e));if(a.forEach(((i,r)=>{if(i.isClassMember()&&!i.isIgnoredForProtocolMatch()){const a=t.fields.get(r);if(a){let t=On(i);if(t){const i=Nn(a);if((Eo(i)||ko(i))&&(Eo(t)||ko(t))){const n=ri(Zs.cloneAsInstance(e),t,e,void 0,s);n&&(t=n)}const l=null==n?void 0:n.createAddendum();Jn(t,i,null==l?void 0:l.createAddendum(),c,0,s)||(l&&l.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:r})),o=!1)}}else n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberMissing().format({name:r})),o=!1}})),e.details.baseClasses.forEach((a=>{!_o(a)||Zs.isBuiltIn(a,"object")||Zs.isBuiltIn(a,"Protocol")||jn(ka(e,a),t,null==n?void 0:n.createAddendum(),i,r,s)||(o=!1)})),o&&e.details.typeParameters.length>0&&e.typeArguments){const t=fa(l,c);Gn(e,t,n,i,r,s)||(o=!1)}return o}function zn(e,t,n,i,r,s,o){if(Zs.isTypedDictClass(e)&&Zs.isTypedDictClass(t))return!!_l(li,e,t,n,s)&&(Zs.isFinal(e)!==Zs.isFinal(t)?(n&&n.addMessage(ml.DiagnosticAddendum.typedDictFinalMismatch().format({sourceType:ai(Fa(t)),destType:ai(Fa(e))})),!1):!(0!=(1&r)&&!Zs.isSameGenericClass(e,t))||_l(li,t,e,void 0,s));const a=Qu.get(e.details.fullName);if(a&&a.some((e=>t.details.mro.some((t=>yo(t)&&e===t.details.fullName))))&&0==(1&r))return!0;const l=[],c=Zs.isDerivedFrom(t,e,l);if(Zs.isProtocolClass(e)&&!c)return!!Wn(e,t,null==n?void 0:n.createAddendum(),i,r,!1,s)||(n&&n.addMessage(ml.DiagnosticAddendum.protocolIncompatible().format({sourceType:ai(Fa(t)),destType:ai(Fa(e))})),!1);if((0==(1&r)||Zs.isSameGenericClass(t,e))&&c)return w(l.length>0),function(e,t,n,i,r,s,o){let a=t,l=r||new jo(na(e)),c=s;r||(c&=-9);for(let t=n.length-1;t>=0;t--){const r=n[t];if(po(r))return!0;if(Zs.isBuiltIn(r,"object"))return!0;if(t