From c71a2dd560b317e00e07dba425af17ec1cdb605c Mon Sep 17 00:00:00 2001 From: fsegurai <42953884+fsegurai@users.noreply.github.com> Date: Tue, 7 May 2024 14:37:38 -0600 Subject: [PATCH 01/59] Initial commit --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..180e065 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 fsegurai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 5675f6237f33b6c37cc73dc6d69d5ee613d882f9 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Mon, 2 Dec 2024 09:21:48 -0600 Subject: [PATCH 02/59] feat/initial project schema --- .editorconfig | 1223 +++++++++++++++++ .github/ISSUE_TEMPLATE/bug_report.yml | 59 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 31 + .github/dependabot.yml | 25 + .github/labeler.yml | 73 + .github/reviewers.yml | 32 + .github/workflows/build.yml | 86 ++ .github/workflows/checks.yml | 28 + .github/workflows/nightly_pr_comment.yml | 57 + .github/workflows/pr_triage.yml | 52 + .github/workflows/release-demo.yml | 109 ++ .github/workflows/release-library.yml | 131 ++ .github/workflows/test.yml | 86 ++ .gitignore | 133 ++ .npmignore | 2 + .vscode/settings.json | 16 + README.md | 75 + angular.json | 148 ++ bun.lockb | Bin 0 -> 559918 bytes demo/eslint.config.js | 49 + demo/public/favicon.ico | Bin 0 -> 102268 bytes demo/public/icon-bindings.svg | 7 + demo/public/icon-cheat-sheet.svg | 7 + demo/public/icon-chevron-up.svg | 6 + demo/public/icon-get-started.svg | 6 + demo/public/icon-github.svg | 7 + demo/public/icon-light-off.svg | 7 + demo/public/icon-light-on.svg | 7 + demo/public/icon-playground.svg | 7 + demo/public/icon-plugins.svg | 7 + demo/public/icon-re-render.svg | 6 + demo/public/icon-syntax-highlight.svg | 7 + demo/public/ngx-markdown.png | Bin 0 -> 12113 bytes demo/src/app/app-routes.ts | 43 + demo/src/app/app.animation.ts | 10 + demo/src/app/app.component.html | 33 + demo/src/app/app.component.scss | 112 ++ demo/src/app/app.component.theme.scss | 18 + demo/src/app/app.component.ts | 104 ++ demo/src/app/app.config.ts | 45 + demo/src/app/app.constant.ts | 4 + demo/src/app/app.models.ts | 10 + demo/src/app/bindings/bindings.component.html | 81 ++ demo/src/app/bindings/bindings.component.scss | 7 + demo/src/app/bindings/bindings.component.ts | 82 ++ demo/src/app/bindings/remote/demo.cpp | 4 + demo/src/app/bindings/remote/demo.html | 1 + demo/src/app/bindings/remote/demo.java | 7 + demo/src/app/bindings/remote/demo.md | 5 + demo/src/app/bindings/remote/demo.py | 2 + .../app/bindings/remote/language-pipe.html | 1 + .../app/bindings/remote/markdown-pipe.html | 1 + .../cheat-sheet/cheat-sheet.component.html | 71 + .../cheat-sheet/cheat-sheet.component.scss | 3 + .../app/cheat-sheet/cheat-sheet.component.ts | 50 + .../src/app/cheat-sheet/remote/blockquotes.md | 6 + .../remote/code-and-synthax-highlighting.md | 16 + demo/src/app/cheat-sheet/remote/emphasis.md | 7 + demo/src/app/cheat-sheet/remote/headers.md | 19 + .../app/cheat-sheet/remote/horizontal-rule.md | 12 + demo/src/app/cheat-sheet/remote/images.md | 9 + demo/src/app/cheat-sheet/remote/links.md | 51 + demo/src/app/cheat-sheet/remote/lists-dot.md | 18 + demo/src/app/cheat-sheet/remote/lists.md | 19 + demo/src/app/cheat-sheet/remote/tables.md | 16 + .../const-codemirror-editor-themes.ts | 146 ++ .../get-started/get-started.component.html | 5 + .../get-started/get-started.component.scss | 3 + .../app/get-started/get-started.component.ts | 39 + demo/src/app/marked-options-factory.ts | 21 + .../app/playground/playground.component.html | 31 + .../app/playground/playground.component.scss | 582 ++++++++ .../app/playground/playground.component.ts | 113 ++ demo/src/app/playground/remote/demo.ts | 217 +++ demo/src/app/plugins/plugins.component.html | 697 ++++++++++ demo/src/app/plugins/plugins.component.scss | 74 + demo/src/app/plugins/plugins.component.ts | 84 ++ demo/src/app/plugins/remote/emoji.html | 3 + .../src/app/plugins/remote/katex-options.html | 5 + demo/src/app/plugins/remote/katex.html | 4 + .../app/plugins/remote/line-highlight.html | 6 + demo/src/app/plugins/remote/line-numbers.html | 5 + .../app/plugins/remote/mermaid-options.html | 5 + demo/src/app/plugins/remote/mermaid.html | 4 + .../remote/non-root-user-with-output.bash | 8 + .../remote/root-user-without-output.bash | 3 + ...s-powershell-with-filter-output.powershell | 4 + .../windows-powershell-with-output.powershell | 19 + demo/src/app/rerender/rerender.component.html | 51 + demo/src/app/rerender/rerender.component.scss | 7 + demo/src/app/rerender/rerender.component.ts | 109 ++ demo/src/app/shared/anchor/anchor.service.ts | 130 ++ demo/src/app/shared/anchor/index.ts | 1 + .../clipboard-button.component.html | 6 + .../clipboard-button.component.scss | 7 + .../clipboard-button.component.ts | 26 + demo/src/app/shared/clipboard-button/index.ts | 1 + demo/src/app/shared/debounce/debounce.ts | 17 + .../http-raw-loader.service.ts | 19 + demo/src/app/shared/http-raw-loader/index.ts | 1 + .../app/shared/scrollspy-nav-layout/index.ts | 1 + .../scrollspy-nav-layout.animation.ts | 12 + .../scrollspy-nav-layout.component.html | 24 + .../scrollspy-nav-layout.component.scss | 28 + .../scrollspy-nav-layout.component.ts | 43 + demo/src/app/shared/scrollspy-nav/index.ts | 1 + .../scrollspy-nav.component.html | 5 + .../scrollspy-nav.component.scss | 23 + .../scrollspy-nav.component.theme.scss | 26 + .../scrollspy-nav/scrollspy-nav.component.ts | 90 ++ .../app/syntax-highlight/remote/for-loop.js | 4 + .../syntax-highlight.component.html | 77 ++ .../syntax-highlight.component.scss | 3 + .../syntax-highlight.component.ts | 41 + demo/src/global.d.ts | 19 + demo/src/index.html | 14 + demo/src/main.ts | 8 + demo/src/prism.ts | 89 ++ demo/src/scss/_dark-theme.scss | 14 + demo/src/scss/_light-theme.scss | 51 + demo/src/scss/_typography.scss | 15 + demo/src/scss/_utils.scss | 9 + demo/src/scss/material-theme.scss | 90 ++ demo/src/scss/prism-theme.scss | 208 +++ demo/src/styles.scss | 87 ++ demo/tsconfig.app.json | 16 + eslint.config.js | 128 ++ lib/eslint.config.js | 96 ++ lib/karma.conf.js | 50 + lib/ng-package.json | 11 + lib/ng-package.prod.json | 11 + lib/package.json | 38 + lib/public_api.ts | 1 + .../code-diff-editor.component.spec.ts | 23 + .../code-diff-editor.component.ts | 307 +++++ lib/src/code-editor.module.ts | 16 + .../code-editor/code-editor.component.spec.ts | 22 + lib/src/code-editor/code-editor.component.ts | 369 +++++ lib/src/index.ts | 3 + lib/tsconfig.lib.json | 21 + lib/tsconfig.lib.prod.json | 9 + lib/tsconfig.spec.json | 14 + package.json | 101 ++ tsconfig.json | 42 + 145 files changed, 8074 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/labeler.yml create mode 100644 .github/reviewers.yml create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/checks.yml create mode 100644 .github/workflows/nightly_pr_comment.yml create mode 100644 .github/workflows/pr_triage.yml create mode 100644 .github/workflows/release-demo.yml create mode 100644 .github/workflows/release-library.yml create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 angular.json create mode 100644 bun.lockb create mode 100644 demo/eslint.config.js create mode 100644 demo/public/favicon.ico create mode 100644 demo/public/icon-bindings.svg create mode 100644 demo/public/icon-cheat-sheet.svg create mode 100644 demo/public/icon-chevron-up.svg create mode 100644 demo/public/icon-get-started.svg create mode 100644 demo/public/icon-github.svg create mode 100644 demo/public/icon-light-off.svg create mode 100644 demo/public/icon-light-on.svg create mode 100644 demo/public/icon-playground.svg create mode 100644 demo/public/icon-plugins.svg create mode 100644 demo/public/icon-re-render.svg create mode 100644 demo/public/icon-syntax-highlight.svg create mode 100644 demo/public/ngx-markdown.png create mode 100644 demo/src/app/app-routes.ts create mode 100644 demo/src/app/app.animation.ts create mode 100644 demo/src/app/app.component.html create mode 100644 demo/src/app/app.component.scss create mode 100644 demo/src/app/app.component.theme.scss create mode 100644 demo/src/app/app.component.ts create mode 100644 demo/src/app/app.config.ts create mode 100644 demo/src/app/app.constant.ts create mode 100644 demo/src/app/app.models.ts create mode 100644 demo/src/app/bindings/bindings.component.html create mode 100644 demo/src/app/bindings/bindings.component.scss create mode 100644 demo/src/app/bindings/bindings.component.ts create mode 100644 demo/src/app/bindings/remote/demo.cpp create mode 100644 demo/src/app/bindings/remote/demo.html create mode 100644 demo/src/app/bindings/remote/demo.java create mode 100644 demo/src/app/bindings/remote/demo.md create mode 100644 demo/src/app/bindings/remote/demo.py create mode 100644 demo/src/app/bindings/remote/language-pipe.html create mode 100644 demo/src/app/bindings/remote/markdown-pipe.html create mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.html create mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.scss create mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.ts create mode 100644 demo/src/app/cheat-sheet/remote/blockquotes.md create mode 100644 demo/src/app/cheat-sheet/remote/code-and-synthax-highlighting.md create mode 100644 demo/src/app/cheat-sheet/remote/emphasis.md create mode 100644 demo/src/app/cheat-sheet/remote/headers.md create mode 100644 demo/src/app/cheat-sheet/remote/horizontal-rule.md create mode 100644 demo/src/app/cheat-sheet/remote/images.md create mode 100644 demo/src/app/cheat-sheet/remote/links.md create mode 100644 demo/src/app/cheat-sheet/remote/lists-dot.md create mode 100644 demo/src/app/cheat-sheet/remote/lists.md create mode 100644 demo/src/app/cheat-sheet/remote/tables.md create mode 100644 demo/src/app/constants/const-codemirror-editor-themes.ts create mode 100644 demo/src/app/get-started/get-started.component.html create mode 100644 demo/src/app/get-started/get-started.component.scss create mode 100644 demo/src/app/get-started/get-started.component.ts create mode 100644 demo/src/app/marked-options-factory.ts create mode 100644 demo/src/app/playground/playground.component.html create mode 100644 demo/src/app/playground/playground.component.scss create mode 100644 demo/src/app/playground/playground.component.ts create mode 100644 demo/src/app/playground/remote/demo.ts create mode 100644 demo/src/app/plugins/plugins.component.html create mode 100644 demo/src/app/plugins/plugins.component.scss create mode 100644 demo/src/app/plugins/plugins.component.ts create mode 100644 demo/src/app/plugins/remote/emoji.html create mode 100644 demo/src/app/plugins/remote/katex-options.html create mode 100644 demo/src/app/plugins/remote/katex.html create mode 100644 demo/src/app/plugins/remote/line-highlight.html create mode 100644 demo/src/app/plugins/remote/line-numbers.html create mode 100644 demo/src/app/plugins/remote/mermaid-options.html create mode 100644 demo/src/app/plugins/remote/mermaid.html create mode 100644 demo/src/app/plugins/remote/non-root-user-with-output.bash create mode 100644 demo/src/app/plugins/remote/root-user-without-output.bash create mode 100644 demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell create mode 100644 demo/src/app/plugins/remote/windows-powershell-with-output.powershell create mode 100644 demo/src/app/rerender/rerender.component.html create mode 100644 demo/src/app/rerender/rerender.component.scss create mode 100644 demo/src/app/rerender/rerender.component.ts create mode 100644 demo/src/app/shared/anchor/anchor.service.ts create mode 100644 demo/src/app/shared/anchor/index.ts create mode 100644 demo/src/app/shared/clipboard-button/clipboard-button.component.html create mode 100644 demo/src/app/shared/clipboard-button/clipboard-button.component.scss create mode 100644 demo/src/app/shared/clipboard-button/clipboard-button.component.ts create mode 100644 demo/src/app/shared/clipboard-button/index.ts create mode 100644 demo/src/app/shared/debounce/debounce.ts create mode 100644 demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts create mode 100644 demo/src/app/shared/http-raw-loader/index.ts create mode 100644 demo/src/app/shared/scrollspy-nav-layout/index.ts create mode 100644 demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.animation.ts create mode 100644 demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html create mode 100644 demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.scss create mode 100644 demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts create mode 100644 demo/src/app/shared/scrollspy-nav/index.ts create mode 100644 demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.html create mode 100644 demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.scss create mode 100644 demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.theme.scss create mode 100644 demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts create mode 100644 demo/src/app/syntax-highlight/remote/for-loop.js create mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.html create mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.scss create mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.ts create mode 100644 demo/src/global.d.ts create mode 100644 demo/src/index.html create mode 100644 demo/src/main.ts create mode 100644 demo/src/prism.ts create mode 100644 demo/src/scss/_dark-theme.scss create mode 100644 demo/src/scss/_light-theme.scss create mode 100644 demo/src/scss/_typography.scss create mode 100644 demo/src/scss/_utils.scss create mode 100644 demo/src/scss/material-theme.scss create mode 100644 demo/src/scss/prism-theme.scss create mode 100644 demo/src/styles.scss create mode 100644 demo/tsconfig.app.json create mode 100644 eslint.config.js create mode 100644 lib/eslint.config.js create mode 100644 lib/karma.conf.js create mode 100644 lib/ng-package.json create mode 100644 lib/ng-package.prod.json create mode 100644 lib/package.json create mode 100644 lib/public_api.ts create mode 100644 lib/src/code-diff-editor/code-diff-editor.component.spec.ts create mode 100644 lib/src/code-diff-editor/code-diff-editor.component.ts create mode 100644 lib/src/code-editor.module.ts create mode 100644 lib/src/code-editor/code-editor.component.spec.ts create mode 100644 lib/src/code-editor/code-editor.component.ts create mode 100644 lib/src/index.ts create mode 100644 lib/tsconfig.lib.json create mode 100644 lib/tsconfig.lib.prod.json create mode 100644 lib/tsconfig.spec.json create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d77ede0 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,1223 @@ +[*] +charset = utf-8 +end_of_line = crlf +indent_size = 4 +indent_style = space +insert_final_newline = false +max_line_length = 120 +tab_width = 4 +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = +ij_wrap_on_typing = false + +[*.css] +ij_css_align_closing_brace_with_properties = false +ij_css_blank_lines_around_nested_selector = 1 +ij_css_blank_lines_between_blocks = 1 +ij_css_block_comment_add_space = false +ij_css_brace_placement = end_of_line +ij_css_enforce_quotes_on_format = false +ij_css_hex_color_long_format = false +ij_css_hex_color_lower_case = false +ij_css_hex_color_short_format = false +ij_css_hex_color_upper_case = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_css_space_after_colon = true +ij_css_space_before_opening_brace = true +ij_css_use_double_quotes = true +ij_css_value_alignment = do_not_align + +[*.dcl] +ij_declarative_keep_indents_on_empty_lines = false + +[*.java] +ij_java_align_consecutive_assignments = false +ij_java_align_consecutive_variable_declarations = false +ij_java_align_group_field_declarations = false +ij_java_align_multiline_annotation_parameters = false +ij_java_align_multiline_array_initializer_expression = false +ij_java_align_multiline_assignment = false +ij_java_align_multiline_binary_operation = false +ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_deconstruction_list_components = true +ij_java_align_multiline_extends_list = false +ij_java_align_multiline_for = true +ij_java_align_multiline_method_parentheses = false +ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters_in_calls = false +ij_java_align_multiline_parenthesized_expression = false +ij_java_align_multiline_records = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_align_types_in_multi_catch = true +ij_java_annotation_parameter_wrap = off +ij_java_array_initializer_new_line_after_left_brace = false +ij_java_array_initializer_right_brace_on_new_line = false +ij_java_array_initializer_wrap = off +ij_java_assert_statement_colon_on_next_line = false +ij_java_assert_statement_wrap = off +ij_java_assignment_wrap = off +ij_java_binary_operation_sign_on_next_line = false +ij_java_binary_operation_wrap = off +ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 0 +ij_java_blank_lines_after_imports = 1 +ij_java_blank_lines_after_package = 1 +ij_java_blank_lines_around_class = 1 +ij_java_blank_lines_around_field = 0 +ij_java_blank_lines_around_field_in_interface = 0 +ij_java_blank_lines_around_field_with_annotations = 0 +ij_java_blank_lines_around_initializer = 1 +ij_java_blank_lines_around_method = 1 +ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_before_class_end = 0 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_add_space = false +ij_java_block_comment_at_first_column = true +ij_java_builder_methods = +ij_java_call_parameters_new_line_after_left_paren = false +ij_java_call_parameters_right_paren_on_new_line = false +ij_java_call_parameters_wrap = off +ij_java_case_statement_on_separate_line = true +ij_java_catch_on_new_line = false +ij_java_class_annotation_wrap = split_into_lines +ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 5 +ij_java_class_names_in_javadoc = 1 +ij_java_deconstruction_list_wrap = normal +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_not_wrap_after_single_annotation_in_parameter = false +ij_java_do_while_brace_force = never +ij_java_doc_add_blank_line_after_description = true +ij_java_doc_add_blank_line_after_param_comments = false +ij_java_doc_add_blank_line_after_return = false +ij_java_doc_add_p_tag_on_empty_lines = true +ij_java_doc_align_exception_comments = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = false +ij_java_doc_keep_empty_lines = true +ij_java_doc_keep_empty_parameter_tag = true +ij_java_doc_keep_empty_return_tag = true +ij_java_doc_keep_empty_throws_tag = true +ij_java_doc_keep_invalid_tags = true +ij_java_doc_param_description_on_new_line = false +ij_java_doc_preserve_line_breaks = false +ij_java_doc_use_throws_not_exception_tag = true +ij_java_else_on_new_line = false +ij_java_entity_dd_prefix = +ij_java_entity_dd_suffix = EJB +ij_java_entity_eb_prefix = +ij_java_entity_eb_suffix = Bean +ij_java_entity_hi_prefix = +ij_java_entity_hi_suffix = Home +ij_java_entity_lhi_prefix = Local +ij_java_entity_lhi_suffix = Home +ij_java_entity_li_prefix = Local +ij_java_entity_li_suffix = +ij_java_entity_pk_class = java.lang.String +ij_java_entity_ri_prefix = +ij_java_entity_ri_suffix = +ij_java_entity_vo_prefix = +ij_java_entity_vo_suffix = VO +ij_java_enum_constants_wrap = off +ij_java_enum_field_annotation_wrap = off +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = off +ij_java_field_annotation_wrap = split_into_lines +ij_java_field_name_prefix = +ij_java_field_name_suffix = +ij_java_filter_class_prefix = +ij_java_filter_class_suffix = +ij_java_filter_dd_prefix = +ij_java_filter_dd_suffix = +ij_java_finally_on_new_line = false +ij_java_for_brace_force = never +ij_java_for_statement_new_line_after_left_paren = false +ij_java_for_statement_right_paren_on_new_line = false +ij_java_for_statement_wrap = off +ij_java_generate_final_locals = false +ij_java_generate_final_parameters = false +ij_java_generate_use_type_annotation_before_type = true +ij_java_if_brace_force = never +ij_java_imports_layout = *,|,javax.**,java.**,|,$* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_builder_methods_indents = false +ij_java_keep_control_statement_in_one_line = true +ij_java_keep_first_column_comment = true +ij_java_keep_indents_on_empty_lines = false +ij_java_keep_line_breaks = true +ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = false +ij_java_keep_simple_classes_in_one_line = false +ij_java_keep_simple_lambdas_in_one_line = false +ij_java_keep_simple_methods_in_one_line = false +ij_java_label_indent_absolute = false +ij_java_label_indent_size = 0 +ij_java_lambda_brace_style = end_of_line +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_add_space_on_reformat = false +ij_java_line_comment_at_first_column = true +ij_java_listener_class_prefix = +ij_java_listener_class_suffix = +ij_java_local_variable_name_prefix = +ij_java_local_variable_name_suffix = +ij_java_message_dd_prefix = +ij_java_message_dd_suffix = EJB +ij_java_message_eb_prefix = +ij_java_message_eb_suffix = Bean +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = off +ij_java_method_parameters_new_line_after_left_paren = false +ij_java_method_parameters_right_paren_on_new_line = false +ij_java_method_parameters_wrap = off +ij_java_modifier_list_wrap = false +ij_java_multi_catch_types_wrap = normal +ij_java_names_count_to_use_import_on_demand = 3 +ij_java_new_line_after_lparen_in_annotation = false +ij_java_new_line_after_lparen_in_deconstruction_pattern = true +ij_java_new_line_after_lparen_in_record_header = false +ij_java_new_line_when_body_is_presented = false +ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.* +ij_java_parameter_annotation_wrap = off +ij_java_parameter_name_prefix = +ij_java_parameter_name_suffix = +ij_java_parentheses_expression_new_line_after_left_paren = false +ij_java_parentheses_expression_right_paren_on_new_line = false +ij_java_place_assignment_sign_on_next_line = false +ij_java_prefer_longer_names = true +ij_java_prefer_parameters_wrap = false +ij_java_record_components_wrap = normal +ij_java_repeat_annotations = +ij_java_repeat_synchronized = true +ij_java_replace_instanceof_and_cast = false +ij_java_replace_null_check = true +ij_java_replace_sum_lambda_with_method_ref = true +ij_java_resource_list_new_line_after_left_paren = false +ij_java_resource_list_right_paren_on_new_line = false +ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_annotation = false +ij_java_rparen_on_new_line_in_deconstruction_pattern = true +ij_java_rparen_on_new_line_in_record_header = false +ij_java_servlet_class_prefix = +ij_java_servlet_class_suffix = +ij_java_servlet_dd_prefix = +ij_java_servlet_dd_suffix = +ij_java_session_dd_prefix = +ij_java_session_dd_suffix = EJB +ij_java_session_eb_prefix = +ij_java_session_eb_suffix = Bean +ij_java_session_hi_prefix = +ij_java_session_hi_suffix = Home +ij_java_session_lhi_prefix = Local +ij_java_session_lhi_suffix = Home +ij_java_session_li_prefix = Local +ij_java_session_li_suffix = +ij_java_session_ri_prefix = +ij_java_session_ri_suffix = +ij_java_session_si_prefix = +ij_java_session_si_suffix = Service +ij_java_space_after_closing_angle_bracket_in_type_argument = false +ij_java_space_after_colon = true +ij_java_space_after_comma = true +ij_java_space_after_comma_in_type_arguments = true +ij_java_space_after_for_semicolon = true +ij_java_space_after_quest = true +ij_java_space_after_type_cast = true +ij_java_space_before_annotation_array_initializer_left_brace = false +ij_java_space_before_annotation_parameter_list = false +ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_catch_keyword = true +ij_java_space_before_catch_left_brace = true +ij_java_space_before_catch_parentheses = true +ij_java_space_before_class_left_brace = true +ij_java_space_before_colon = true +ij_java_space_before_colon_in_foreach = true +ij_java_space_before_comma = false +ij_java_space_before_deconstruction_list = false +ij_java_space_before_do_left_brace = true +ij_java_space_before_else_keyword = true +ij_java_space_before_else_left_brace = true +ij_java_space_before_finally_keyword = true +ij_java_space_before_finally_left_brace = true +ij_java_space_before_for_left_brace = true +ij_java_space_before_for_parentheses = true +ij_java_space_before_for_semicolon = false +ij_java_space_before_if_left_brace = true +ij_java_space_before_if_parentheses = true +ij_java_space_before_method_call_parentheses = false +ij_java_space_before_method_left_brace = true +ij_java_space_before_method_parentheses = false +ij_java_space_before_opening_angle_bracket_in_type_parameter = false +ij_java_space_before_quest = true +ij_java_space_before_switch_left_brace = true +ij_java_space_before_switch_parentheses = true +ij_java_space_before_synchronized_left_brace = true +ij_java_space_before_synchronized_parentheses = true +ij_java_space_before_try_left_brace = true +ij_java_space_before_try_parentheses = true +ij_java_space_before_type_parameter_list = false +ij_java_space_before_while_keyword = true +ij_java_space_before_while_left_brace = true +ij_java_space_before_while_parentheses = true +ij_java_space_inside_one_line_enum_braces = false +ij_java_space_within_empty_array_initializer_braces = false +ij_java_space_within_empty_method_call_parentheses = false +ij_java_space_within_empty_method_parentheses = false +ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_annotation_eq = true +ij_java_spaces_around_assignment_operators = true +ij_java_spaces_around_bitwise_operators = true +ij_java_spaces_around_equality_operators = true +ij_java_spaces_around_lambda_arrow = true +ij_java_spaces_around_logical_operators = true +ij_java_spaces_around_method_ref_dbl_colon = false +ij_java_spaces_around_multiplicative_operators = true +ij_java_spaces_around_relational_operators = true +ij_java_spaces_around_shift_operators = true +ij_java_spaces_around_type_bounds_in_type_parameters = true +ij_java_spaces_around_unary_operator = false +ij_java_spaces_inside_block_braces_when_body_is_present = false +ij_java_spaces_within_angle_brackets = false +ij_java_spaces_within_annotation_parentheses = false +ij_java_spaces_within_array_initializer_braces = false +ij_java_spaces_within_braces = false +ij_java_spaces_within_brackets = false +ij_java_spaces_within_cast_parentheses = false +ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_deconstruction_list = false +ij_java_spaces_within_for_parentheses = false +ij_java_spaces_within_if_parentheses = false +ij_java_spaces_within_method_call_parentheses = false +ij_java_spaces_within_method_parentheses = false +ij_java_spaces_within_parentheses = false +ij_java_spaces_within_record_header = false +ij_java_spaces_within_switch_parentheses = false +ij_java_spaces_within_synchronized_parentheses = false +ij_java_spaces_within_try_parentheses = false +ij_java_spaces_within_while_parentheses = false +ij_java_special_else_if_treatment = true +ij_java_static_field_name_prefix = +ij_java_static_field_name_suffix = +ij_java_subclass_name_prefix = +ij_java_subclass_name_suffix = Impl +ij_java_switch_expressions_wrap = normal +ij_java_ternary_operation_signs_on_next_line = false +ij_java_ternary_operation_wrap = off +ij_java_test_name_prefix = +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = off +ij_java_use_external_annotations = false +ij_java_use_fq_class_names = false +ij_java_use_relative_indents = false +ij_java_use_single_class_imports = true +ij_java_variable_annotation_wrap = off +ij_java_visibility = public +ij_java_while_brace_force = never +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = false +ij_java_wrap_long_lines = false +ij_java_wrap_semicolon_after_call_chain = false + +[*.less] +indent_size = 2 +ij_less_align_closing_brace_with_properties = false +ij_less_blank_lines_around_nested_selector = 1 +ij_less_blank_lines_between_blocks = 1 +ij_less_block_comment_add_space = false +ij_less_brace_placement = 0 +ij_less_enforce_quotes_on_format = false +ij_less_hex_color_long_format = false +ij_less_hex_color_lower_case = false +ij_less_hex_color_short_format = false +ij_less_hex_color_upper_case = false +ij_less_keep_blank_lines_in_code = 2 +ij_less_keep_indents_on_empty_lines = false +ij_less_keep_single_line_blocks = false +ij_less_line_comment_add_space = false +ij_less_line_comment_at_first_column = false +ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_less_space_after_colon = true +ij_less_space_before_opening_brace = true +ij_less_use_double_quotes = true +ij_less_value_alignment = 0 + +[*.proto] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_protobuf_keep_blank_lines_in_code = 2 +ij_protobuf_keep_indents_on_empty_lines = false +ij_protobuf_keep_line_breaks = true +ij_protobuf_space_after_comma = true +ij_protobuf_space_before_comma = false +ij_protobuf_spaces_around_assignment_operators = true +ij_protobuf_spaces_within_braces = false +ij_protobuf_spaces_within_brackets = false + +[*.sass] +indent_size = 2 +ij_sass_align_closing_brace_with_properties = false +ij_sass_blank_lines_around_nested_selector = 1 +ij_sass_blank_lines_between_blocks = 1 +ij_sass_brace_placement = 0 +ij_sass_enforce_quotes_on_format = false +ij_sass_hex_color_long_format = false +ij_sass_hex_color_lower_case = false +ij_sass_hex_color_short_format = false +ij_sass_hex_color_upper_case = false +ij_sass_keep_blank_lines_in_code = 2 +ij_sass_keep_indents_on_empty_lines = false +ij_sass_keep_single_line_blocks = false +ij_sass_line_comment_add_space = false +ij_sass_line_comment_at_first_column = false +ij_sass_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_sass_space_after_colon = true +ij_sass_space_before_opening_brace = true +ij_sass_use_double_quotes = true +ij_sass_value_alignment = 0 + +[*.scss] +indent_size = 2 +ij_scss_align_closing_brace_with_properties = false +ij_scss_blank_lines_around_nested_selector = 1 +ij_scss_blank_lines_between_blocks = 1 +ij_scss_block_comment_add_space = false +ij_scss_brace_placement = 0 +ij_scss_enforce_quotes_on_format = false +ij_scss_hex_color_long_format = false +ij_scss_hex_color_lower_case = false +ij_scss_hex_color_short_format = false +ij_scss_hex_color_upper_case = false +ij_scss_keep_blank_lines_in_code = 2 +ij_scss_keep_indents_on_empty_lines = false +ij_scss_keep_single_line_blocks = false +ij_scss_line_comment_add_space = false +ij_scss_line_comment_at_first_column = false +ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_scss_space_after_colon = true +ij_scss_space_before_opening_brace = true +ij_scss_use_double_quotes = true +ij_scss_value_alignment = 0 + +[.editorconfig] +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.pom,*.rng,*.tld,*.wadl,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}] +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_add_space = false +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = false +ij_xml_text_wrap = normal + +[{*.ats,*.cts,*.mts,*.ts}] +indent_size = 2 +quote_type = single +ij_continuation_indent_size = 2 +ij_typescript_align_imports = false +ij_typescript_align_multiline_array_initializer_expression = false +ij_typescript_align_multiline_binary_operation = false +ij_typescript_align_multiline_chained_methods = false +ij_typescript_align_multiline_extends_list = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_parameters_in_calls = false +ij_typescript_align_multiline_ternary_operation = false +ij_typescript_align_object_properties = 0 +ij_typescript_align_union_types = false +ij_typescript_align_var_statements = 0 +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = off +ij_typescript_assignment_wrap = off +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = off +ij_typescript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = end_of_line +ij_typescript_block_comment_add_space = false +ij_typescript_block_comment_at_first_column = true +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = off +ij_typescript_catch_on_new_line = false +ij_typescript_chained_call_dot_on_new_line = true +ij_typescript_class_brace_style = end_of_line +ij_typescript_class_decorator_wrap = split_into_lines +ij_typescript_class_field_decorator_wrap = off +ij_typescript_class_method_decorator_wrap = off +ij_typescript_comma_on_new_line = false +ij_typescript_do_while_brace_force = never +ij_typescript_else_on_new_line = false +ij_typescript_enforce_trailing_comma = keep +ij_typescript_enum_constants_wrap = on_every_item +ij_typescript_extends_keyword_wrap = off +ij_typescript_extends_list_wrap = off +ij_typescript_field_prefix = _ +ij_typescript_file_name_style = relaxed +ij_typescript_finally_on_new_line = false +ij_typescript_for_brace_force = never +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = off +ij_typescript_force_quote_style = false +ij_typescript_force_semicolon_style = false +ij_typescript_function_expression_brace_style = end_of_line +ij_typescript_function_parameter_decorator_wrap = off +ij_typescript_if_brace_force = never +ij_typescript_import_merge_members = global +ij_typescript_import_prefer_absolute_path = global +ij_typescript_import_sort_members = true +ij_typescript_import_sort_module_name = false +ij_typescript_import_use_node_resolution = true +ij_typescript_imports_wrap = on_every_item +ij_typescript_indent_case_from_switch = true +ij_typescript_indent_chained_calls = true +ij_typescript_indent_package_children = 0 +ij_typescript_jsdoc_include_types = false +ij_typescript_jsx_attribute_value = braces +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_first_column_comment = true +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_keep_simple_blocks_in_one_line = false +ij_typescript_keep_simple_methods_in_one_line = false +ij_typescript_line_comment_add_space = true +ij_typescript_line_comment_at_first_column = false +ij_typescript_method_brace_style = end_of_line +ij_typescript_method_call_chain_wrap = off +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = off +ij_typescript_object_literal_wrap = on_every_item +ij_typescript_object_types_wrap = on_every_item +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_prefer_as_type_cast = false +ij_typescript_prefer_explicit_types_function_expression_returns = false +ij_typescript_prefer_explicit_types_function_returns = false +ij_typescript_prefer_explicit_types_vars_fields = false +ij_typescript_prefer_parameters_wrap = false +ij_typescript_property_prefix = +ij_typescript_reformat_c_style_comments = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_generator_mult = true +ij_typescript_space_after_property_colon = true +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_after_unary_not = false +ij_typescript_space_before_async_arrow_lparen = true +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = true +ij_typescript_space_before_catch_parentheses = true +ij_typescript_space_before_class_lbrace = true +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = true +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = true +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = true +ij_typescript_space_before_for_left_brace = true +ij_typescript_space_before_for_parentheses = true +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_function_left_parenth = true +ij_typescript_space_before_generator_mult = false +ij_typescript_space_before_if_left_brace = true +ij_typescript_space_before_if_parentheses = true +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = true +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_property_colon = false +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = true +ij_typescript_space_before_switch_parentheses = true +ij_typescript_space_before_try_left_brace = true +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_unary_not = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = true +ij_typescript_space_before_while_parentheses = true +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_arrow_function_operator = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_initializer_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_imports = true +ij_typescript_spaces_within_interpolation_expressions = true +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = true +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertion = false +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = off +ij_typescript_union_types_wrap = on_every_item +ij_typescript_use_chained_calls_group_indents = false +ij_typescript_use_double_quotes = true +ij_typescript_use_explicit_js_extension = auto +ij_typescript_use_import_type = auto +ij_typescript_use_path_mapping = always +ij_typescript_use_public_modifier = false +ij_typescript_use_semicolon_after_statement = true +ij_typescript_var_declaration_wrap = normal +ij_typescript_while_brace_force = never +ij_typescript_while_on_new_line = false +ij_typescript_wrap_comments = false + +[{*.bash,*.sh,*.zsh}] +indent_size = 2 +tab_width = 2 +ij_shell_binary_ops_start_line = false +ij_shell_keep_column_alignment_padding = false +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true + +[{*.cjs,*.es6,*.js,*.mjs}] +indent_size = 2 +quote_type = single +ij_continuation_indent_size = 2 +ij_javascript_align_imports = false +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_binary_operation = false +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = false +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_object_properties = 0 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 0 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_block_comment_add_space = false +ij_javascript_block_comment_at_first_column = true +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = end_of_line +ij_javascript_class_decorator_wrap = split_into_lines +ij_javascript_class_field_decorator_wrap = off +ij_javascript_class_method_decorator_wrap = off +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = never +ij_javascript_else_on_new_line = false +ij_javascript_enforce_trailing_comma = keep +ij_javascript_extends_keyword_wrap = off +ij_javascript_extends_list_wrap = off +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = never +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_force_quote_style = false +ij_javascript_force_semicolon_style = false +ij_javascript_function_expression_brace_style = end_of_line +ij_javascript_function_parameter_decorator_wrap = off +ij_javascript_if_brace_force = never +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = global +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = false +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_object_types_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_prefer_as_type_cast = false +ij_javascript_prefer_explicit_types_function_expression_returns = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_property_prefix = +ij_javascript_reformat_c_style_comments = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_lbrace = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = true +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = true +ij_javascript_spaces_within_interpolation_expressions = true +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = true +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = false +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = auto +ij_javascript_use_import_type = auto +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = never +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false + +[{*.ft,*.vm,*.vsl}] +ij_vtl_keep_indents_on_empty_lines = false + +[{*.gant,*.groovy,*.gy}] +ij_groovy_align_group_field_declarations = false +ij_groovy_align_multiline_array_initializer_expression = false +ij_groovy_align_multiline_assignment = false +ij_groovy_align_multiline_binary_operation = false +ij_groovy_align_multiline_chained_methods = false +ij_groovy_align_multiline_extends_list = false +ij_groovy_align_multiline_for = true +ij_groovy_align_multiline_list_or_map = true +ij_groovy_align_multiline_method_parentheses = false +ij_groovy_align_multiline_parameters = true +ij_groovy_align_multiline_parameters_in_calls = false +ij_groovy_align_multiline_resources = true +ij_groovy_align_multiline_ternary_operation = false +ij_groovy_align_multiline_throws_list = false +ij_groovy_align_named_args_in_map = true +ij_groovy_align_throws_keyword = false +ij_groovy_array_initializer_new_line_after_left_brace = false +ij_groovy_array_initializer_right_brace_on_new_line = false +ij_groovy_array_initializer_wrap = off +ij_groovy_assert_statement_wrap = off +ij_groovy_assignment_wrap = off +ij_groovy_binary_operation_wrap = off +ij_groovy_blank_lines_after_class_header = 0 +ij_groovy_blank_lines_after_imports = 1 +ij_groovy_blank_lines_after_package = 1 +ij_groovy_blank_lines_around_class = 1 +ij_groovy_blank_lines_around_field = 0 +ij_groovy_blank_lines_around_field_in_interface = 0 +ij_groovy_blank_lines_around_method = 1 +ij_groovy_blank_lines_around_method_in_interface = 1 +ij_groovy_blank_lines_before_imports = 1 +ij_groovy_blank_lines_before_method_body = 0 +ij_groovy_blank_lines_before_package = 0 +ij_groovy_block_brace_style = end_of_line +ij_groovy_block_comment_add_space = false +ij_groovy_block_comment_at_first_column = true +ij_groovy_call_parameters_new_line_after_left_paren = false +ij_groovy_call_parameters_right_paren_on_new_line = false +ij_groovy_call_parameters_wrap = off +ij_groovy_catch_on_new_line = false +ij_groovy_class_annotation_wrap = split_into_lines +ij_groovy_class_brace_style = end_of_line +ij_groovy_class_count_to_use_import_on_demand = 5 +ij_groovy_do_while_brace_force = never +ij_groovy_else_on_new_line = false +ij_groovy_enable_groovydoc_formatting = true +ij_groovy_enum_constants_wrap = off +ij_groovy_extends_keyword_wrap = off +ij_groovy_extends_list_wrap = off +ij_groovy_field_annotation_wrap = split_into_lines +ij_groovy_finally_on_new_line = false +ij_groovy_for_brace_force = never +ij_groovy_for_statement_new_line_after_left_paren = false +ij_groovy_for_statement_right_paren_on_new_line = false +ij_groovy_for_statement_wrap = off +ij_groovy_ginq_general_clause_wrap_policy = 2 +ij_groovy_ginq_having_wrap_policy = 1 +ij_groovy_ginq_indent_having_clause = true +ij_groovy_ginq_indent_on_clause = true +ij_groovy_ginq_on_wrap_policy = 1 +ij_groovy_ginq_space_after_keyword = true +ij_groovy_if_brace_force = never +ij_groovy_import_annotation_wrap = 2 +ij_groovy_imports_layout = *,|,javax.**,java.**,|,$* +ij_groovy_indent_case_from_switch = true +ij_groovy_indent_label_blocks = true +ij_groovy_insert_inner_class_imports = false +ij_groovy_keep_blank_lines_before_right_brace = 2 +ij_groovy_keep_blank_lines_in_code = 2 +ij_groovy_keep_blank_lines_in_declarations = 2 +ij_groovy_keep_control_statement_in_one_line = true +ij_groovy_keep_first_column_comment = true +ij_groovy_keep_indents_on_empty_lines = false +ij_groovy_keep_line_breaks = true +ij_groovy_keep_multiple_expressions_in_one_line = false +ij_groovy_keep_simple_blocks_in_one_line = false +ij_groovy_keep_simple_classes_in_one_line = true +ij_groovy_keep_simple_lambdas_in_one_line = true +ij_groovy_keep_simple_methods_in_one_line = true +ij_groovy_label_indent_absolute = false +ij_groovy_label_indent_size = 0 +ij_groovy_lambda_brace_style = end_of_line +ij_groovy_layout_static_imports_separately = true +ij_groovy_line_comment_add_space = false +ij_groovy_line_comment_add_space_on_reformat = false +ij_groovy_line_comment_at_first_column = true +ij_groovy_method_annotation_wrap = split_into_lines +ij_groovy_method_brace_style = end_of_line +ij_groovy_method_call_chain_wrap = off +ij_groovy_method_parameters_new_line_after_left_paren = false +ij_groovy_method_parameters_right_paren_on_new_line = false +ij_groovy_method_parameters_wrap = off +ij_groovy_modifier_list_wrap = false +ij_groovy_names_count_to_use_import_on_demand = 3 +ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.* +ij_groovy_parameter_annotation_wrap = off +ij_groovy_parentheses_expression_new_line_after_left_paren = false +ij_groovy_parentheses_expression_right_paren_on_new_line = false +ij_groovy_prefer_parameters_wrap = false +ij_groovy_resource_list_new_line_after_left_paren = false +ij_groovy_resource_list_right_paren_on_new_line = false +ij_groovy_resource_list_wrap = off +ij_groovy_space_after_assert_separator = true +ij_groovy_space_after_colon = true +ij_groovy_space_after_comma = true +ij_groovy_space_after_comma_in_type_arguments = true +ij_groovy_space_after_for_semicolon = true +ij_groovy_space_after_quest = true +ij_groovy_space_after_type_cast = true +ij_groovy_space_before_annotation_parameter_list = false +ij_groovy_space_before_array_initializer_left_brace = false +ij_groovy_space_before_assert_separator = false +ij_groovy_space_before_catch_keyword = true +ij_groovy_space_before_catch_left_brace = true +ij_groovy_space_before_catch_parentheses = true +ij_groovy_space_before_class_left_brace = true +ij_groovy_space_before_closure_left_brace = true +ij_groovy_space_before_colon = true +ij_groovy_space_before_comma = false +ij_groovy_space_before_do_left_brace = true +ij_groovy_space_before_else_keyword = true +ij_groovy_space_before_else_left_brace = true +ij_groovy_space_before_finally_keyword = true +ij_groovy_space_before_finally_left_brace = true +ij_groovy_space_before_for_left_brace = true +ij_groovy_space_before_for_parentheses = true +ij_groovy_space_before_for_semicolon = false +ij_groovy_space_before_if_left_brace = true +ij_groovy_space_before_if_parentheses = true +ij_groovy_space_before_method_call_parentheses = false +ij_groovy_space_before_method_left_brace = true +ij_groovy_space_before_method_parentheses = false +ij_groovy_space_before_quest = true +ij_groovy_space_before_record_parentheses = false +ij_groovy_space_before_switch_left_brace = true +ij_groovy_space_before_switch_parentheses = true +ij_groovy_space_before_synchronized_left_brace = true +ij_groovy_space_before_synchronized_parentheses = true +ij_groovy_space_before_try_left_brace = true +ij_groovy_space_before_try_parentheses = true +ij_groovy_space_before_while_keyword = true +ij_groovy_space_before_while_left_brace = true +ij_groovy_space_before_while_parentheses = true +ij_groovy_space_in_named_argument = true +ij_groovy_space_in_named_argument_before_colon = false +ij_groovy_space_within_empty_array_initializer_braces = false +ij_groovy_space_within_empty_method_call_parentheses = false +ij_groovy_spaces_around_additive_operators = true +ij_groovy_spaces_around_assignment_operators = true +ij_groovy_spaces_around_bitwise_operators = true +ij_groovy_spaces_around_equality_operators = true +ij_groovy_spaces_around_lambda_arrow = true +ij_groovy_spaces_around_logical_operators = true +ij_groovy_spaces_around_multiplicative_operators = true +ij_groovy_spaces_around_regex_operators = true +ij_groovy_spaces_around_relational_operators = true +ij_groovy_spaces_around_shift_operators = true +ij_groovy_spaces_within_annotation_parentheses = false +ij_groovy_spaces_within_array_initializer_braces = false +ij_groovy_spaces_within_braces = true +ij_groovy_spaces_within_brackets = false +ij_groovy_spaces_within_cast_parentheses = false +ij_groovy_spaces_within_catch_parentheses = false +ij_groovy_spaces_within_for_parentheses = false +ij_groovy_spaces_within_gstring_injection_braces = false +ij_groovy_spaces_within_if_parentheses = false +ij_groovy_spaces_within_list_or_map = false +ij_groovy_spaces_within_method_call_parentheses = false +ij_groovy_spaces_within_method_parentheses = false +ij_groovy_spaces_within_parentheses = false +ij_groovy_spaces_within_switch_parentheses = false +ij_groovy_spaces_within_synchronized_parentheses = false +ij_groovy_spaces_within_try_parentheses = false +ij_groovy_spaces_within_tuple_expression = false +ij_groovy_spaces_within_while_parentheses = false +ij_groovy_special_else_if_treatment = true +ij_groovy_ternary_operation_wrap = off +ij_groovy_throws_keyword_wrap = off +ij_groovy_throws_list_wrap = off +ij_groovy_use_flying_geese_braces = false +ij_groovy_use_fq_class_names = false +ij_groovy_use_fq_class_names_in_javadoc = true +ij_groovy_use_relative_indents = false +ij_groovy_use_single_class_imports = true +ij_groovy_variable_annotation_wrap = off +ij_groovy_while_brace_force = never +ij_groovy_while_on_new_line = false +ij_groovy_wrap_chain_calls_after_dot = false +ij_groovy_wrap_long_lines = false + +[{*.graphqlconfig,*.graphqlrc,*.har,*.jsb2,*.jsb3,*.json,*.jsonc,*.postman_collection,*.postman_collection.json,*.postman_environment,*.postman_environment.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,.ws-context,jest.config}] +indent_size = 2 +ij_json_array_wrapping = split_into_lines +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_keep_trailing_comma = false +ij_json_object_wrapping = split_into_lines +ij_json_property_alignment = do_not_align +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = false +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.htm,*.html,*.sht,*.shtm,*.shtml}] +indent_size = 2 +ij_continuation_indent_size = 4 +ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_add_space = false +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p +ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span,pre,textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.http,*.rest}] +indent_size = 0 +ij_continuation_indent_size = 4 +ij_http-request_call_parameters_wrap = normal +ij_http-request_method_parameters_wrap = split_into_lines +ij_http-request_space_before_comma = true +ij_http-request_spaces_around_assignment_operators = true + +[{*.jsf,*.jsp,*.jspf,*.tag,*.tagf,*.xjsp}] +ij_jsp_jsp_prefer_comma_separated_import_list = false +ij_jsp_keep_indents_on_empty_lines = false + +[{*.jspx,*.tagx}] +ij_jspx_keep_indents_on_empty_lines = false + +[{*.kt,*.kts}] +ij_kotlin_align_in_columns_case_branch = false +ij_kotlin_align_multiline_binary_operation = false +ij_kotlin_align_multiline_extends_list = false +ij_kotlin_align_multiline_method_parentheses = false +ij_kotlin_align_multiline_parameters = true +ij_kotlin_align_multiline_parameters_in_calls = false +ij_kotlin_allow_trailing_comma = false +ij_kotlin_allow_trailing_comma_on_call_site = false +ij_kotlin_assignment_wrap = normal +ij_kotlin_blank_lines_after_class_header = 0 +ij_kotlin_blank_lines_around_block_when_branches = 0 +ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1 +ij_kotlin_block_comment_add_space = false +ij_kotlin_block_comment_at_first_column = true +ij_kotlin_call_parameters_new_line_after_left_paren = true +ij_kotlin_call_parameters_right_paren_on_new_line = true +ij_kotlin_call_parameters_wrap = on_every_item +ij_kotlin_catch_on_new_line = false +ij_kotlin_class_annotation_wrap = split_into_lines +ij_kotlin_continuation_indent_for_chained_calls = false +ij_kotlin_continuation_indent_for_expression_bodies = false +ij_kotlin_continuation_indent_in_argument_lists = false +ij_kotlin_continuation_indent_in_elvis = false +ij_kotlin_continuation_indent_in_if_conditions = false +ij_kotlin_continuation_indent_in_parameter_lists = false +ij_kotlin_continuation_indent_in_supertype_lists = false +ij_kotlin_else_on_new_line = false +ij_kotlin_enum_constants_wrap = off +ij_kotlin_extends_list_wrap = normal +ij_kotlin_field_annotation_wrap = split_into_lines +ij_kotlin_finally_on_new_line = false +ij_kotlin_if_rparen_on_new_line = true +ij_kotlin_import_nested_classes = false +ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^ +ij_kotlin_indent_before_arrow_on_new_line = true +ij_kotlin_insert_whitespaces_in_simple_one_line_method = true +ij_kotlin_keep_blank_lines_before_right_brace = 2 +ij_kotlin_keep_blank_lines_in_code = 2 +ij_kotlin_keep_blank_lines_in_declarations = 2 +ij_kotlin_keep_first_column_comment = true +ij_kotlin_keep_indents_on_empty_lines = false +ij_kotlin_keep_line_breaks = true +ij_kotlin_lbrace_on_next_line = false +ij_kotlin_line_break_after_multiline_when_entry = true +ij_kotlin_line_comment_add_space = false +ij_kotlin_line_comment_add_space_on_reformat = false +ij_kotlin_line_comment_at_first_column = true +ij_kotlin_method_annotation_wrap = split_into_lines +ij_kotlin_method_call_chain_wrap = normal +ij_kotlin_method_parameters_new_line_after_left_paren = true +ij_kotlin_method_parameters_right_paren_on_new_line = true +ij_kotlin_method_parameters_wrap = on_every_item +ij_kotlin_name_count_to_use_star_import = 5 +ij_kotlin_name_count_to_use_star_import_for_members = 3 +ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.** +ij_kotlin_parameter_annotation_wrap = off +ij_kotlin_space_after_comma = true +ij_kotlin_space_after_extend_colon = true +ij_kotlin_space_after_type_colon = true +ij_kotlin_space_before_catch_parentheses = true +ij_kotlin_space_before_comma = false +ij_kotlin_space_before_extend_colon = true +ij_kotlin_space_before_for_parentheses = true +ij_kotlin_space_before_if_parentheses = true +ij_kotlin_space_before_lambda_arrow = true +ij_kotlin_space_before_type_colon = false +ij_kotlin_space_before_when_parentheses = true +ij_kotlin_space_before_while_parentheses = true +ij_kotlin_spaces_around_additive_operators = true +ij_kotlin_spaces_around_assignment_operators = true +ij_kotlin_spaces_around_elvis = true +ij_kotlin_spaces_around_equality_operators = true +ij_kotlin_spaces_around_function_type_arrow = true +ij_kotlin_spaces_around_logical_operators = true +ij_kotlin_spaces_around_multiplicative_operators = true +ij_kotlin_spaces_around_range = false +ij_kotlin_spaces_around_relational_operators = true +ij_kotlin_spaces_around_unary_operator = false +ij_kotlin_spaces_around_when_arrow = true +ij_kotlin_variable_annotation_wrap = off +ij_kotlin_while_on_new_line = false +ij_kotlin_wrap_elvis_expressions = 1 +ij_kotlin_wrap_expression_body_functions = 1 +ij_kotlin_wrap_first_method_in_call_chain = false + +[{*.markdown,*.md}] +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true + +[{*.pb,*.textproto,*.txtpb}] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_prototext_keep_blank_lines_in_code = 2 +ij_prototext_keep_indents_on_empty_lines = false +ij_prototext_keep_line_breaks = true +ij_prototext_space_after_colon = true +ij_prototext_space_after_comma = true +ij_prototext_space_before_colon = false +ij_prototext_space_before_comma = false +ij_prototext_spaces_within_braces = true +ij_prototext_spaces_within_brackets = false + +[{*.properties,spring.handlers,spring.schemas}] +ij_properties_align_group_field_declarations = false +ij_properties_keep_blank_lines = false +ij_properties_key_value_delimiter = equals +ij_properties_spaces_around_key_value_delimiter = false + +[{*.qute.htm,*.qute.html,*.qute.json,*.qute.txt,*.qute.yaml,*.qute.yml}] +ij_qute_keep_indents_on_empty_lines = false + +[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] +ij_toml_keep_indents_on_empty_lines = false + +[{*.yaml,*.yml}] +indent_size = 2 +ij_yaml_align_values_properties = do_not_align +ij_yaml_autoinsert_sequence_marker = true +ij_yaml_block_mapping_on_new_line = false +ij_yaml_indent_sequence_value = true +ij_yaml_keep_indents_on_empty_lines = false +ij_yaml_keep_line_breaks = true +ij_yaml_line_comment_add_space = false +ij_yaml_line_comment_add_space_on_reformat = false +ij_yaml_line_comment_at_first_column = true +ij_yaml_sequence_on_new_line = false +ij_yaml_space_before_colon = false +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..85b9c51 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,59 @@ +name: Bug Report +description: File a bug report for @fsegurai/ngx-codemirror +title: "[Bug]" +labels: bug +body: + - type: textarea + id: issue + attributes: + label: Description of the issue + description: What's the issue you encountered? + validations: + required: true + - type: textarea + id: repro + attributes: + label: Reproduction steps + description: How can the issue be reproduced? + placeholder: Describe each step as precisely as possible + validations: + required: true + - type: textarea + id: log + attributes: + label: Log file + description: A log file will help our developers to better diagnose and fix the issue. + placeholder: Paste the log file here + validations: + required: true + - type: input + id: version + attributes: + label: Version + description: Which version of the software are you using? + placeholder: 1.0.0 + validations: + required: true + - type: input + id: os + attributes: + label: OS + placeholder: "e.g. Windows 10" + validations: + required: true + - type: input + id: browser + attributes: + label: Browser + placeholder: "e.g. Chrome" + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional context? + description: | + - Additional info about your environment: + - Any other information relevant to your issue. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..492beb5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: @fsegurai/ngx-codemirror Issues + url: https://github.com/fsegurai/ngx-codemirror/issues + about: This is for development, support and technical issues/questions. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..4e9ebde --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,31 @@ +name: Feature Request +description: Suggest a new feature for @fsegurai/ngx-codemirror. +title: "[Feature Request]" +labels: enhancement +body: + - type: textarea + id: overview + attributes: + label: Overview + description: Include the basic, high-level concepts for this feature here. + validations: + required: true + - type: textarea + id: details + attributes: + label: Smaller details + description: These may include specific methods of implementation etc. + validations: + required: true + - type: textarea + id: request + attributes: + label: Nature of request + validations: + required: true + - type: textarea + id: feature + attributes: + label: Why would this feature be useful? + validations: + required: true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d666dfa --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + labels: + - "infra" + open-pull-requests-limit: 10 + assignees: + - fsegurai + commit-message: + prefix: "ci" + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + labels: + - "infra" + open-pull-requests-limit: 10 + assignees: + - fsegurai + commit-message: + prefix: "npm" diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..61b9cf0 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,73 @@ +infra: + - changed-files: + - any-glob-to-any-file: [ + '.github/**', + 'angular.json', + 'package*.json', + 'tsconfig*.json', + 'eslint*.json', + ] + +dependencies: + - changed-files: + - any-glob-to-any-file: [ + 'package-lock.json', + 'yarn.lock', + 'bun.lockb' + ] + +ci-cd: + - changed-files: + - any-glob-to-any-file: [ + '.github/workflows/**', + 'Dockerfile', + 'Jenkinsfile', + ] + +demo: + - changed-files: + - any-glob-to-any-file: [ + 'demo/**' + ] + +assets: + - changed-files: + - any-glob-to-any-file: [ + 'demo/public/**' + ] + +styles: + - changed-files: + - any-glob-to-any-file: [ + '**/*.scss', + '**/*.css', + ] + +library: + - changed-files: + - any-glob-to-any-file: [ + 'lib/**', + ] + +tests-library: + - changed-files: + - any-glob-to-any-file: [ + 'lib/**/*.spec.ts', + '**/karma.conf.js', + ] + +tests-demo: + - changed-files: + - any-glob-to-any-file: [ + 'demo/**/*.spec.ts', + ] + +documentation: + - changed-files: + - any-glob-to-any-file: [ + 'docs/**', + 'CHANGELOG.md', + 'CONTRIBUTING.md', + 'LICENSE', + 'README.md', + ] diff --git a/.github/reviewers.yml b/.github/reviewers.yml new file mode 100644 index 0000000..ec02e19 --- /dev/null +++ b/.github/reviewers.yml @@ -0,0 +1,32 @@ +infra: + - fsegurai + +dependencies: + - fsegurai + +ci-cd: + - fsegurai + +demo: + - fsegurai + +assets: + - fsegurai + +styles: + - fsegurai + +library: + - fsegurai + +tests-library: + - fsegurai + +tests-demo: + - fsegurai + +documentation: + - fsegurai + +default: + - '@developers' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2c8ab64 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,86 @@ +name: Build Lib-Demo + +on: + workflow_call: + +env: + LIB_ARTIFACT_NAME: "build-lib-artifact" + +jobs: + build_library: + runs-on: ubuntu-latest + timeout-minutes: 3 + environment: FSI_DEP_NodeJs + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Create cache directories + run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn + + - name: Cache Yarn dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build library + run: | + yarn build:lib + yarn postBuild:lib + + - name: Upload build library artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.LIB_ARTIFACT_NAME }} + path: ${{ vars.DEMO_PATH }} + if-no-files-found: error + + build_demo: + runs-on: ubuntu-latest + timeout-minutes: 3 + environment: github-pages + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Create cache directories + run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn + + - name: Cache Yarn dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build demo + run: | + yarn gh-pages:build + yarn gh-pages:copy404 + yarn gh-pages:postBuild diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..009247f --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,28 @@ +name: Build PR +# Job will only run on pull requests to the main branch + +on: + pull_request: + branches: [ "main" ] + paths: + - '**' + - '.github/workflows/*.yml' + - '!.github/**' + - '!*.yml' + - '!*.config' + - '!*.md' + workflow_dispatch: + inputs: { } + +permissions: + pull-requests: write + checks: write + +concurrency: + group: pr-checks-${{ github.event.number }} + cancel-in-progress: true + +jobs: + pr_build: + uses: ./.github/workflows/build.yml + secrets: inherit diff --git a/.github/workflows/nightly_pr_comment.yml b/.github/workflows/nightly_pr_comment.yml new file mode 100644 index 0000000..9b8e584 --- /dev/null +++ b/.github/workflows/nightly_pr_comment.yml @@ -0,0 +1,57 @@ +name: Comment PR artifacts links + +on: + workflow_run: + workflows: [ "Build PR" ] + types: [ completed ] + +permissions: + pull-requests: write + issues: write + +jobs: + pr_comment: + if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v6 + with: + script: | + const {owner, repo} = context.repo; + const run_id = ${{github.event.workflow_run.id}}; + const pull_head_sha = '${{github.event.workflow_run.head_sha}}'; + + const issue_number = await (async () => { + const pulls = await github.rest.pulls.list({owner, repo}); + for await (const {data} of github.paginate.iterator(pulls)) { + for (const pull of data) { + if (pull.head.sha === pull_head_sha) { + return pull.number; + } + } + } + })(); + if (issue_number) { + core.info(`Using pull request ${issue_number}`); + } else { + return core.error(`No matching pull request found`); + } + + const {data: {artifacts}} = await github.rest.actions.listWorkflowRunArtifacts({owner, repo, run_id}); + if (!artifacts.length) { + return core.error(`No artifacts found`); + } + let body = `Download the artifacts for this pull request:\n`; + for (const art of artifacts) { + body += `\n* [${art.name}](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`; + } + + const {data: comments} = await github.rest.issues.listComments({repo, owner, issue_number}); + const existing_comment = comments.find((c) => c.user.login === 'github-actions[bot]'); + if (existing_comment) { + core.info(`Updating comment ${existing_comment.id}`); + await github.rest.issues.updateComment({repo, owner, comment_id: existing_comment.id, body}); + } else { + core.info(`Creating a comment`); + await github.rest.issues.createComment({repo, owner, issue_number, body}); + } diff --git a/.github/workflows/pr_triage.yml b/.github/workflows/pr_triage.yml new file mode 100644 index 0000000..5aefb8b --- /dev/null +++ b/.github/workflows/pr_triage.yml @@ -0,0 +1,52 @@ +name: "Pull Request Triage" +on: + pull_request_target: + types: [ opened, ready_for_review ] + +jobs: + triage: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + # Grab sources to get latest labeler.yml + - name: Fetch sources + uses: actions/checkout@v4 + with: + # Ensure we pin the source origin as pull_request_target run under forks. + fetch-depth: 0 + repository: fsegurai/ngx-codemirror + ref: main + + - name: Update labels based on changes + uses: actions/labeler@v5 + with: + sync-labels: true + dot: true + + - name: Assign PR creator + uses: actions/github-script@v6 + with: + script: | + const pr = context.payload.pull_request; + const assignees = pr.assignees.map(assignee => assignee.login); + let assignee = pr.user.login; + + if (!assignees.includes(assignee)) { + if (assignee.includes('bot')) { + await github.rest.pulls.requestReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pr.number, + reviewers: ['fsegurai'] + }); + } else { + await github.rest.issues.addAssignees({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pr.number, + assignees: [assignee] + }); + } + } diff --git a/.github/workflows/release-demo.yml b/.github/workflows/release-demo.yml new file mode 100644 index 0000000..69eb517 --- /dev/null +++ b/.github/workflows/release-demo.yml @@ -0,0 +1,109 @@ +name: Release Demo +# Job will only run on push to the main branch after the test job and release library job have passed + +on: + workflow_run: + workflows: [ "Release Library" ] + types: [ completed ] + workflow_dispatch: + inputs: { } + +permissions: + # contents: write # Required to publish to GitHub Pages branch + # packages: write # Required to publish to GitHub Pages branch + id-token: write # Required to publish to GitHub Pages + pages: write # Required to publish to GitHub Pages + +concurrency: + group: 'pages' + cancel-in-progress: false + +env: + ARTIFACT_NAME: "build-demo-artifact" + +jobs: + build: + if: | + github.ref == 'refs/heads/main' && + github.event.repository.fork == false && + github.actor != 'dependabot[bot]' + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: github-pages + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Create cache directories + run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn + + - name: Cache Yarn dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build demo + run: | + yarn gh-pages:build + yarn gh-pages:copy404 + yarn gh-pages:postBuild + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ vars.DEMO_PATH }} + if-no-files-found: error + + release: + if: | + github.ref == 'refs/heads/main' && + github.event.repository.fork == false && + github.actor != 'dependabot[bot]' + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: github-pages + needs: [ build ] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ vars.DEMO_PATH }} + + # - name: Deploy to gh-pages branch + # uses: peaceiris/actions-gh-pages@v4 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ${{ vars.DEMO_PATH }} + # publish_branch: gh-pages + # force_orphan: true + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact to Pages + uses: actions/upload-pages-artifact@v3 + with: + path: ${{ vars.DEMO_PATH }} + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/release-library.yml b/.github/workflows/release-library.yml new file mode 100644 index 0000000..a20905c --- /dev/null +++ b/.github/workflows/release-library.yml @@ -0,0 +1,131 @@ +name: Release Library +# Job will only run on push to the main branch after the test job has passed + +on: + workflow_run: + workflows: [ "Test Lib-Demo" ] + types: [ completed ] + workflow_dispatch: + inputs: { } + +concurrency: + group: 'release-library' + cancel-in-progress: false + +env: + ARTIFACT_NAME: "build-lib-artifact" + +jobs: + build: + if: | + github.ref == 'refs/heads/main' && + github.event.repository.fork == false && + github.actor != 'dependabot[bot]' + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: FSI_DEP_NodeJs + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Cache Yarn dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build library + run: | + yarn build:lib + yarn postBuild:lib + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ vars.DEMO_PATH }} + if-no-files-found: error + + release: + if: | + github.ref == 'refs/heads/main' && + github.event.repository.fork == false && + github.actor != 'dependabot[bot]' + needs: [ build ] + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: FSI_DEP_NodeJs + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Set up Node.js ${{ vars.NODE_VERSION }} for NPM registry + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + registry-url: "https://registry.npmjs.org/" + scope: ${{ vars.NPM_ORG }} + always-auth: true + + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ vars.DEMO_PATH }} + + - name: Get package version + id: get_version + run: echo "VERSION=$(jq -r .version < ./${{ vars.DEMO_PATH }}/package.json)" >> $GITHUB_OUTPUT + + - name: Determine tag + id: determine_tag + run: | + VERSION=${{ steps.get_version.outputs.VERSION }} + if [[ "$VERSION" == *"-beta"* ]]; then + echo "TAG=beta" >> $GITHUB_OUTPUT + elif [[ "$VERSION" == *"-alpha"* ]]; then + echo "TAG=alpha" >> $GITHUB_OUTPUT + elif [[ "$VERSION" == *"-rc"* ]]; then + echo "TAG=rc" >> $GITHUB_OUTPUT + elif [[ "$VERSION" == *"-next"* ]]; then + echo "TAG=next" >> $GITHUB_OUTPUT + else + echo "TAG=latest" >> $GITHUB_OUTPUT + fi + + - name: Release to NPM registry 🚀 - ${{ steps.get_version.outputs.VERSION }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + cd ./${{ vars.DEMO_PATH }} + npm publish --tag ${{ steps.determine_tag.outputs.TAG }} --access public || echo "Package already published in NPM, skipping..." + + - name: Set up Node.js ${{ vars.NODE_VERSION }} for GitHub NPM registry + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + registry-url: "https://npm.pkg.github.com/" + scope: ${{ vars.NPM_ORG }} + always-auth: true + + - name: Release to GitHub NPM registry 🚀 - ${{ steps.get_version.outputs.VERSION }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} + run: | + cd ./${{ vars.DEMO_PATH }} + npm publish --tag ${{ steps.determine_tag.outputs.TAG }} && npx semantic-release || echo "Package already published in GitHub NPM, skipping..." diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..4958af5 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,86 @@ +name: Test Lib-Demo +# Job will only run on push and pull requests to the main branch + +on: + push: + branches: [ "main" ] + paths-ignore: + - ".github/**" + - "docs/**" + - "assets/**" + - "demo/public/**" + - "*.yml" + - "*.json" + - "*.config" + - "*.md" + - "!package.json" + - "!github/workflows/**" + pull_request: + branches: [ "main" ] + paths-ignore: + - ".github/**" + - "docs/**" + - "assets/**" + - "demo/public/**" + - "*.yml" + - "*.json" + - "*.config" + - "*.md" + - "!package.json" + - "!github/workflows/**" + workflow_dispatch: + inputs: { } + workflow_call: + workflow_run: + workflows: [ "Build PR" ] + types: [ completed ] + +jobs: + test_library: + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: FSI_DEP_NodeJs + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Test Lint (Library) + run: yarn lint:lib + + - name: Test TypeScript (Library) + run: yarn type-check:lib + + - name: Test library + run: yarn test-ci_cd:lib + + test_demo: + runs-on: ubuntu-latest + timeout-minutes: 2 + environment: FSI_DEP_NodeJs + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Test Lint (Demo) + run: yarn lint:demo + + - name: Test TypeScript (Demo) + run: yarn type-check:demo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6df1de4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +libpeerconnection.log + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Dependency directories +node_modules/ +**/node_modules +jspm_packages/ +bower_components + +# Build/Compiled output +build/Release/ +dist/ +**/dist +.next/ +.nuxt/ +.cache/ +.vuepress/dist +documentation/ +tmp/ +out-tsc +.serverless/ +fusebox/ + +# Coverage directories +coverage/ +*.lcov +.nyc_output +**/coverage + +# TypeScript +*.tsbuildinfo +typings/ +**/test/*.d.ts +**/test/*.d.ts.map +**/test/*.spec.ts +**/test/*.spec.js + +# Optional npm cache +.npm +*.tgz + +# Yarn files +.yarn-integrity + +# Bun files +*.bun + +# Miscellaneous caches and history +.eslintcache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ +.node_repl_history +.node_modules +.angular/cache +.nx/cache +.nx/workspace-data +.sass-cache/ +.history/ + +# IDE and editor files +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# OS-specific/system files +.DS_Store +Thumbs.db + +# Testing +**/test/*.js +test-results.xml +eslint.xml +junittest.xml +junit.xml + +# Profiling files +chrome-profiler-events*.json + +# System/package locks +.lock-wscript +connect.lock +package-lock.json + +# Environment variables +.env +.env.test +*.env* + +# Parcel, Azure, and other tool-specific files +.azurefunctions/ +.fusebox/ +.dynamodb/ +bin/ +obj/ +appsettings.json +local.settings.json + +# Azure Azurite artifacts +__blobstorage__ +__queuestorage__ +__azurite_db*__.json + +# Miscellaneous +lib-cov +package/ +tern-port +.dynamodb/ diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..b343c4a --- /dev/null +++ b/.npmignore @@ -0,0 +1,2 @@ +/* +!/dist \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d6836bc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll": "explicit" + }, + "eslint.useFlatConfig": true, + "files.associations": { + "*.json": "jsonc", + "package.json": "json" + }, + "files.trimTrailingWhitespace": true, + "[markdown]": { + "files.trimTrailingWhitespace": false + }, + "typescript.tsdk": "node_modules\\typescript\\lib", + "vsicons.presets.angular": true +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec3f248 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +

+ @fsegurai/ngx-codemirror Logo +

+ +

+ + Build Status + + + Latest Release + +
+ GitHub contributors + Dependency status for repo + + GitHub License + +
+ Stars + Forks + + NPM Downloads + +

+ +**This is just a side project to provide additional features that fulfill my needs.** + +`@fsegurai/ngx-codemirror` is an [Angular](https://angular.dev/) library that combines... + +- [CodeMirror](https://codemirror.net/) to provide a versatile text editor implemented in JavaScript for the browser + +### Table of contents + +- [Installation](#installation) +- [Configuration](#configuration) +- [Usage](#usage) +- [Renderer](#renderer) +- [Syntax highlight](#syntax-highlight) +- [Demo application](#demo-application) +- [AoT compilation](#aot-compilation) +- [Road map](#road-map) +- [Contribution](#contribution) +- [Support Development](#support-development) + +## Installation + +### @fsegurai/ngx-codemirror + +To add `@fsegurai/ngx-codemirror` along with the required codemirror library to your `package.json` use the following commands. + +```bash +npm install @fsegurai/ngx-codemirror codemirror@^6.0.1 --save +``` + +## Demo application + +A demo is available @ [https://fsegurai.github.io/ngx-codemirror](https://fsegurai.github.io/ngx-codemirror) and its source code can be found inside the `demo` directory. + + It's important to mention that for this project I'm using Node.js v20.11.1 and Yarn v1.22.22. + +The following commands will clone the repository, install npm dependencies and serve the application @ [http://localhost:4200](http://localhost:4200) + +> It is recommended to use `yarn` as the package manager to handle the large number of dependencies as it is faster than `npm` and it will mostly not cause any issues. + +```bash +git clone https://github.com/fsegurai/ngx-codemirror.git +yarn install +yarn start +``` + +## License + +Licensed under [MIT](https://opensource.org/licenses/MIT). diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..f12a286 --- /dev/null +++ b/angular.json @@ -0,0 +1,148 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "", + "projects": { + "demo": { + "root": "demo/", + "sourceRoot": "demo/src", + "projectType": "application", + "prefix": "app", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/demo", + "index": "demo/src/index.html", + "browser": "demo/src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "demo/tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "demo/public" + }, + "demo/src/app/bindings/remote", + "demo/src/app/cheat-sheet/remote", + "demo/src/app/syntax-highlight/remote", + "demo/src/app/plugins/remote" + ], + "styles": [ + "demo/src/scss/material-theme.scss", + "demo/src/styles.scss" + ], + "scripts": [ + ], + "allowedCommonJsDependencies": [ + "gumshoejs", + "hammerjs" + ] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "5MB", + "maximumError": "6MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "10kB", + "maximumError": "12kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "demo:build:production" + }, + "development": { + "buildTarget": "demo:build:development" + } + }, + "defaultConfiguration": "development" + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "eslintConfig": "demo/eslint.config.js", + "lintFilePatterns": [ + "demo/**/*.ts", + "demo/**/*.html" + ] + } + } + } + }, + "lib": { + "root": "lib", + "sourceRoot": "lib/src", + "projectType": "library", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "lib/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "lib/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "lib/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "tsConfig": "lib/tsconfig.spec.json", + "karmaConfig": "lib/karma.conf.js", + "polyfills": [ + "zone.js", + "zone.js/testing" + ] + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "eslintConfig": "lib/eslint.config.js", + "lintFilePatterns": [ + "lib/**/*.ts", + "lib/**/*.html" + ] + } + } + } + } + }, + "cli": { + "analytics": false, + "packageManager": "bun", + "schematicCollections": [ + "@angular-eslint/schematics" + ] + } +} diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..779f3d3474fca635ade4675348abf61f249007e8 GIT binary patch literal 559918 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

KJca$G!}*4B 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 J6Mu}V{9iHO6jcBK literal 0 HcmV?d00001 diff --git a/demo/public/icon-bindings.svg b/demo/public/icon-bindings.svg new file mode 100644 index 0000000..d46a7b6 --- /dev/null +++ b/demo/public/icon-bindings.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-cheat-sheet.svg b/demo/public/icon-cheat-sheet.svg new file mode 100644 index 0000000..0c28506 --- /dev/null +++ b/demo/public/icon-cheat-sheet.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-chevron-up.svg b/demo/public/icon-chevron-up.svg new file mode 100644 index 0000000..7fca217 --- /dev/null +++ b/demo/public/icon-chevron-up.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/demo/public/icon-get-started.svg b/demo/public/icon-get-started.svg new file mode 100644 index 0000000..1ecffec --- /dev/null +++ b/demo/public/icon-get-started.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/demo/public/icon-github.svg b/demo/public/icon-github.svg new file mode 100644 index 0000000..508910b --- /dev/null +++ b/demo/public/icon-github.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-light-off.svg b/demo/public/icon-light-off.svg new file mode 100644 index 0000000..5e00416 --- /dev/null +++ b/demo/public/icon-light-off.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-light-on.svg b/demo/public/icon-light-on.svg new file mode 100644 index 0000000..8e9a0ff --- /dev/null +++ b/demo/public/icon-light-on.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-playground.svg b/demo/public/icon-playground.svg new file mode 100644 index 0000000..030c88b --- /dev/null +++ b/demo/public/icon-playground.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-plugins.svg b/demo/public/icon-plugins.svg new file mode 100644 index 0000000..871810c --- /dev/null +++ b/demo/public/icon-plugins.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/icon-re-render.svg b/demo/public/icon-re-render.svg new file mode 100644 index 0000000..6b6af4f --- /dev/null +++ b/demo/public/icon-re-render.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/demo/public/icon-syntax-highlight.svg b/demo/public/icon-syntax-highlight.svg new file mode 100644 index 0000000..469363f --- /dev/null +++ b/demo/public/icon-syntax-highlight.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/demo/public/ngx-markdown.png b/demo/public/ngx-markdown.png new file mode 100644 index 0000000000000000000000000000000000000000..69c92adeab912c812351ba33bf050133eebb6225 GIT binary patch literal 12113 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 literal 0 HcmV?d00001 diff --git a/demo/src/app/app-routes.ts b/demo/src/app/app-routes.ts new file mode 100644 index 0000000..ec7d466 --- /dev/null +++ b/demo/src/app/app-routes.ts @@ -0,0 +1,43 @@ +import { Routes } from '@angular/router'; + +export const appRoutes: Routes = [ + { + path: 'get-started', + loadComponent: () => import('./get-started/get-started.component'), + data: { label: 'Get Started' }, + }, + { + path: 'cheat-sheet', + loadComponent: () => import('./cheat-sheet/cheat-sheet.component'), + data: { label: 'Cheat Sheet' }, + }, + { + path: 'syntax-highlight', + loadComponent: () => import('./syntax-highlight/syntax-highlight.component'), + data: { label: 'Syntax Highlight' }, + }, + { + path: 'bindings', + loadComponent: () => import('./bindings/bindings.component'), + data: { label: 'Bindings' }, + }, + { + path: 'plugins', + loadComponent: () => import('./plugins/plugins.component'), + data: { label: 'Plugins' }, + }, + { + path: 're-render', + loadComponent: () => import('./rerender/rerender.component'), + data: { label: 'Re-render' }, + }, + { + path: 'playground', + loadComponent: () => import('./playground/playground.component'), + data: { label: 'Playground' }, + }, + { + path: '**', + redirectTo: 'get-started', + }, +]; diff --git a/demo/src/app/app.animation.ts b/demo/src/app/app.animation.ts new file mode 100644 index 0000000..e22f822 --- /dev/null +++ b/demo/src/app/app.animation.ts @@ -0,0 +1,10 @@ +import { animate, query, style, transition, trigger } from '@angular/animations'; + +export const ROUTE_ANIMATION = trigger('routeAnimation', [ + transition('* <=> *', [ + query(':enter', [ + style({ opacity: 0, transform: 'translateY(32px)' }), + animate('550ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'translateY(0)' })), + ], { optional: true }), + ]), +]); diff --git a/demo/src/app/app.component.html b/demo/src/app/app.component.html new file mode 100644 index 0000000..4000db0 --- /dev/null +++ b/demo/src/app/app.component.html @@ -0,0 +1,33 @@ + + +

@fsegurai/ngx-codemirror

+ + +
+ GitHub + + + + + + + + + diff --git a/demo/src/app/app.component.scss b/demo/src/app/app.component.scss new file mode 100644 index 0000000..5ef6093 --- /dev/null +++ b/demo/src/app/app.component.scss @@ -0,0 +1,112 @@ +@use '@angular/material' as mat; + +// variables + +$viewport-max-width: 960px; +$viewport-offset-x: 16px; + +// mixins + +@mixin viewport-width($padding: true) { + margin: 0 auto; + max-width: $viewport-max-width; + + @if ($padding) { + padding-left: $viewport-offset-x; + padding-right: $viewport-offset-x; + } +} + +// style + +:host { + display: block; +} + +.github-icon { + --mdc-icon-button-icon-size: 28px; + position: relative; + top: -2px; + left: -2px; +} + +.mat-mdc-tab-nav-bar--sticky { + @include mat.elevation(6); + transition: box-shadow .3s ease-out; +} + +.mat-mdc-tab-nav-bar ::ng-deep { + position: sticky; + top: 0; + z-index: 24; + + .mdc-tab-indicator__content--underline { + border-radius: 3px 3px 0 0; + border-top-width: 3px; + transition-duration: 500ms; + } + + .mat-mdc-tab-link { + font-size: 14px; + font-weight: 500; + letter-spacing: normal; + margin: 0 $viewport-offset-x; + min-width: 0; + opacity: 0.6; + padding: 0; + text-decoration: none; + transition: all 0.2s ease-out; + } + + .mat-mdc-tab-link:not(.mdc-tab--active):hover { + transform: translateY(-1px); + } + + .mat-mdc-tab-link:hover, + .mdc-tab--active { + opacity: 1; + } + + .mat-mdc-tab-link-container { + @include viewport-width($padding: false); + overflow: auto; + } + + .mdc-tab__ripple { + opacity: 0; + } + + // start - workaround for responsive tabs + .mat-mdc-tab-header-pagination { + display: none !important; + } + + .mat-mdc-tab-list { + transform: unset !important; + } + + // end - workaround +} + +.mat-toolbar ::ng-deep { + + .mat-toolbar-row { + @include viewport-width(); + } + + .mat-icon-button { + transition: all 0.2s ease-out; + + &:hover { + transform: translateY(-2px); + } + } +} + +.outlet-wrapper { + @include viewport-width(); + display: block; + margin-top: $viewport-offset-x; + margin-bottom: $viewport-offset-x; + position: relative; +} diff --git a/demo/src/app/app.component.theme.scss b/demo/src/app/app.component.theme.scss new file mode 100644 index 0000000..8e80f6f --- /dev/null +++ b/demo/src/app/app.component.theme.scss @@ -0,0 +1,18 @@ +@use 'sass:map'; +@use 'sass:color'; +@use '@angular/material' as mat; + +@mixin theme($theme) { + $color-config: mat.m2-get-color-config($theme); + + $primary-palette: map.get($color-config, 'primary'); + $primary-color: mat.m2-get-color-from-palette($primary-palette, 'default'); + + .mat-toolbar.mat-primary { + background: linear-gradient(90deg, $primary-color 15%, color.adjust($primary-color, $lightness: -4%) 100%); + } + + .mat-mdc-tab-nav-bar.mat-background-primary { + background: $primary-color; + } +} diff --git a/demo/src/app/app.component.ts b/demo/src/app/app.component.ts new file mode 100644 index 0000000..e713f96 --- /dev/null +++ b/demo/src/app/app.component.ts @@ -0,0 +1,104 @@ +import { DOCUMENT, NgFor } from '@angular/common'; +import { ChangeDetectionStrategy, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { Route, Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; +import { AnchorService } from '@shared/anchor'; +import { ROUTE_ANIMATION } from './app.animation'; +import { DEFAULT_THEME, LOCAL_STORAGE_THEME_KEY } from './app.constant'; +import { isTheme, Theme } from './app.models'; + +@Component({ + animations: [ROUTE_ANIMATION], + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + FlexModule, + MatButtonModule, + MatIconModule, + MatTabsModule, + MatToolbarModule, + NgFor, + RouterLink, + RouterLinkActive, + RouterOutlet, + ] +}) +export class AppComponent implements OnInit { + routes: Route[]; + theme = DEFAULT_THEME; + @ViewChild('tabHeader', { read: ElementRef, static: true }) + tabHeader: ElementRef | undefined; + private readonly stickyClassName = 'mat-mdc-tab-nav-bar--sticky'; + + constructor( + @Inject(DOCUMENT) private document: Document, + private anchorService: AnchorService, + private router: Router, + ) { + this.routes = this.router.config.filter( + (route) => route.data && route.data['label'], + ); + } + + @HostListener('document:click', ['$event']) + onDocumentClick(event: Event): void { + this.anchorService.interceptClick(event); + } + + @HostListener('window:scroll') + onWindowScroll(): void { + if (this.tabHeader == null) { + return; + } + const tabHeader = this.tabHeader.nativeElement; + const tabHeaderOffset = Math.ceil(tabHeader.offsetTop); + const windowOffset = Math.ceil(window.scrollY); + const hasStickyClass = tabHeader.classList.contains(this.stickyClassName); + if (!hasStickyClass && windowOffset >= tabHeaderOffset) { + tabHeader.classList.add(this.stickyClassName); + } + if (hasStickyClass && windowOffset < tabHeaderOffset) { + tabHeader.classList.remove(this.stickyClassName); + } + } + + ngOnInit(): void { + this.anchorService.setOffset([0, 64]); + + const storedTheme = localStorage.getItem(LOCAL_STORAGE_THEME_KEY); + this.setTheme(isTheme(storedTheme) ? storedTheme : DEFAULT_THEME); + } + + handleFragment(): void { + this.anchorService.scrollToAnchor(); + } + + setTheme(theme: Theme): void { + this.theme = theme; + const bodyClassList = this.document.querySelector('body')!.classList; + const removeClassList = /\w*-theme\b/.exec(bodyClassList.value); + if (removeClassList) { + bodyClassList.remove(...removeClassList); + } + bodyClassList.add(`${this.theme}-theme`); + localStorage.setItem(LOCAL_STORAGE_THEME_KEY, this.theme); + } + + getRouteAnimation(outlet: RouterOutlet): string { + return ( + outlet && + outlet.activatedRouteData && + (outlet.activatedRouteData['label'] as string) + ); + } + + toggleTheme(): void { + this.setTheme(this.theme === Theme.Light ? Theme.Dark : Theme.Light); + } +} diff --git a/demo/src/app/app.config.ts b/demo/src/app/app.config.ts new file mode 100644 index 0000000..ed861eb --- /dev/null +++ b/demo/src/app/app.config.ts @@ -0,0 +1,45 @@ +import { HttpClient, provideHttpClient } from '@angular/common/http'; +import { ApplicationConfig, SecurityContext } from '@angular/core'; +import { provideAnimations } from '@angular/platform-browser/animations'; +import { provideRouter, withInMemoryScrolling } from '@angular/router'; +import { gfmHeadingId } from 'marked-gfm-heading-id'; +import { CLIPBOARD_OPTIONS, MARKED_OPTIONS, MERMAID_OPTIONS, provideMarkdown } from 'ngx-markdown'; +import { appRoutes } from '@app/app-routes'; +import { markedOptionsFactory } from '@app/marked-options-factory'; +import { AnchorService } from '@shared/anchor/anchor.service'; +import { ClipboardButtonComponent } from '@shared/clipboard-button'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideAnimations(), + provideHttpClient(), + provideRouter( + appRoutes, + withInMemoryScrolling({ + anchorScrolling: 'enabled', + scrollPositionRestoration: 'enabled', + }), + ), + provideMarkdown({ + loader: HttpClient, + clipboardOptions: { + provide: CLIPBOARD_OPTIONS, + useValue: { buttonComponent: ClipboardButtonComponent }, + }, + markedOptions: { + provide: MARKED_OPTIONS, + useFactory: markedOptionsFactory, + deps: [AnchorService], + }, + markedExtensions: [gfmHeadingId()], + mermaidOptions: { + provide: MERMAID_OPTIONS, + useValue: { + darkMode: true, + look: 'handDrawn', + }, + }, + sanitize: SecurityContext.NONE, + }), + ], +}; diff --git a/demo/src/app/app.constant.ts b/demo/src/app/app.constant.ts new file mode 100644 index 0000000..eb2d9f2 --- /dev/null +++ b/demo/src/app/app.constant.ts @@ -0,0 +1,4 @@ +import { Theme } from './app.models'; + +export const DEFAULT_THEME = Theme.Light; +export const LOCAL_STORAGE_THEME_KEY = 'ngx-markdown:theme'; diff --git a/demo/src/app/app.models.ts b/demo/src/app/app.models.ts new file mode 100644 index 0000000..5faeb64 --- /dev/null +++ b/demo/src/app/app.models.ts @@ -0,0 +1,10 @@ +export enum Theme { + Light = 'light', + Dark = 'dark', +} + +export function isTheme(value: unknown): value is Theme { + return value != null + && typeof value === 'string' + && Object.values(Theme).includes(value as Theme); +} diff --git a/demo/src/app/bindings/bindings.component.html b/demo/src/app/bindings/bindings.component.html new file mode 100644 index 0000000..3492b9b --- /dev/null +++ b/demo/src/app/bindings/bindings.component.html @@ -0,0 +1,81 @@ + +

Bindings

+ +
+

Remote Url

+ + + Using component with `src` property to fetch remote markdown file `app/bindings/remote/demo.md` + + + + + + Using component with static `python` code block + + + + + + Using directive with `src` property to fetch remote html file `app/bindings/remote/demo.html` + + +
+ + + Using directive with `src` property to fetch remote C++ file `app/bindings/remote/demo.cpp` + + +
+
+ +
+

Variable Binding

+ + + Using component or directive with `data` property allow to bind a variable that will update the DOM when value + changes + + +
+ + + + + +
+ + + Using `language` pipe you can specify the language of the variable content for synthax highlights + + + +
+ +
+

Pipe Usage

+ + + Using `markdown` pipe to transform markdown to HTML allow you to chain pipe transformations and will update the + DOM when value changes. It is important to note that, because the `marked` parsing method returns a `Promise`, it + requires the use of the `async` pipe. + + + + + + In the following example using the synthax above, `typescriptMarkdown` property does not contain any `back-ticks` + to set the content language but will be chain with `language` pipe instead to specify synthax highlights language + along with `markdown` pipe for conversion + + +
+ + + + +
+
+
+
diff --git a/demo/src/app/bindings/bindings.component.scss b/demo/src/app/bindings/bindings.component.scss new file mode 100644 index 0000000..5384db2 --- /dev/null +++ b/demo/src/app/bindings/bindings.component.scss @@ -0,0 +1,7 @@ +:host { + display: block; +} + +textarea { + min-height: 360px; +} diff --git a/demo/src/app/bindings/bindings.component.ts b/demo/src/app/bindings/bindings.component.ts new file mode 100644 index 0000000..2d41c25 --- /dev/null +++ b/demo/src/app/bindings/bindings.component.ts @@ -0,0 +1,82 @@ +import { AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { FormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { LanguagePipe, MarkdownComponent, MarkdownPipe } from 'ngx-markdown'; +import { HttpRawLoaderService } from '@shared/http-raw-loader'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-bindings', + templateUrl: './bindings.component.html', + styleUrls: ['./bindings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + AsyncPipe, + FlexModule, + FormsModule, + LanguagePipe, + MarkdownComponent, + MarkdownPipe, + MatFormFieldModule, + MatInputModule, + ScrollspyNavLayoutComponent, + ] +}) +export default class BindingsComponent implements OnInit { + + // remote url + demoPython$ = this.rawLoaderService.get('app/bindings/remote/demo.py'); + + // variable-binding + markdown = + `### Markdown example +--- +This is an **example** where we bind a variable to the \`markdown\` component that is also bound to a textarea. + +#### example.component.ts +\`\`\`typescript +public markdown = "# Markdown"; +\`\`\` + +#### example.component.html +\`\`\`html + + +\`\`\``; + + // pipe + typescriptMarkdown = + `import { Component } from '@angular/core'; + +@Component({ + selector: 'markdown-demo', + templateUrl: './markdown-demo.component.html', + styleUrls: ['./markdown-demo.component.scss'], +}) +export class MarkdownDemoComponent { + public pipeMarkdown = '# Markdown'; +}`; + + headings: Element[] | undefined; + + constructor( + private elementRef: ElementRef, + private rawLoaderService: HttpRawLoaderService, + ) { + } + + ngOnInit(): void { + this.setHeadings(); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach(x => headings.push(x)); + this.headings = headings; + } +} diff --git a/demo/src/app/bindings/remote/demo.cpp b/demo/src/app/bindings/remote/demo.cpp new file mode 100644 index 0000000..c16f927 --- /dev/null +++ b/demo/src/app/bindings/remote/demo.cpp @@ -0,0 +1,4 @@ +int main() +{ + cout << "Hello world!" << endl; +} \ No newline at end of file diff --git a/demo/src/app/bindings/remote/demo.html b/demo/src/app/bindings/remote/demo.html new file mode 100644 index 0000000..5207337 --- /dev/null +++ b/demo/src/app/bindings/remote/demo.html @@ -0,0 +1 @@ +

HTML code

\ No newline at end of file diff --git a/demo/src/app/bindings/remote/demo.java b/demo/src/app/bindings/remote/demo.java new file mode 100644 index 0000000..af4a7f3 --- /dev/null +++ b/demo/src/app/bindings/remote/demo.java @@ -0,0 +1,7 @@ +class LinkedList +{ + public static void main(string[] args) + { + System.out.println("Hello world"); + } +} \ No newline at end of file diff --git a/demo/src/app/bindings/remote/demo.md b/demo/src/app/bindings/remote/demo.md new file mode 100644 index 0000000..c1a451b --- /dev/null +++ b/demo/src/app/bindings/remote/demo.md @@ -0,0 +1,5 @@ +### Demo markdown + +```html +
+``` diff --git a/demo/src/app/bindings/remote/demo.py b/demo/src/app/bindings/remote/demo.py new file mode 100644 index 0000000..8a076d9 --- /dev/null +++ b/demo/src/app/bindings/remote/demo.py @@ -0,0 +1,2 @@ +s = "Python syntax highlighting" +print s \ No newline at end of file diff --git a/demo/src/app/bindings/remote/language-pipe.html b/demo/src/app/bindings/remote/language-pipe.html new file mode 100644 index 0000000..398d866 --- /dev/null +++ b/demo/src/app/bindings/remote/language-pipe.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/demo/src/app/bindings/remote/markdown-pipe.html b/demo/src/app/bindings/remote/markdown-pipe.html new file mode 100644 index 0000000..b0ae21e --- /dev/null +++ b/demo/src/app/bindings/remote/markdown-pipe.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/demo/src/app/cheat-sheet/cheat-sheet.component.html b/demo/src/app/cheat-sheet/cheat-sheet.component.html new file mode 100644 index 0000000..b98a717 --- /dev/null +++ b/demo/src/app/cheat-sheet/cheat-sheet.component.html @@ -0,0 +1,71 @@ + +

Cheat Sheet

+ + + The following examples are intended as a quick markdown reference and showcase. It is based on Adam Pritchard work + of [Markdown Cheat Sheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet). + + +
+

Headers

+
{{ headers$ | async }}
+ +
+ +
+

Emphasis

+
{{ emphasis$ | async }}
+ +
+ +
+

Lists

+

+ In this example, leading and trailing spaces are shown with with dots (⋅) +

+
{{ listsDot$ | async }}
+ +
+ +
+ +
{{ links$ | async }}
+ + +
+ +
+

Images

+
{{ images$ | async }}
+ +
+ +
+

Code and Syntax Highlighting

+
{{ codeAndSynthaxHighlighting$ | async }}
+ +
+ +
+

Tables

+
{{ tables$ | async }}
+ +
+ +
+

Blockquotes

+
{{ blockquotes$ | async }}
+ +
+ +
+

Horizontal Rule

+
{{ horizontalRule$ | async }}
+ +
+
diff --git a/demo/src/app/cheat-sheet/cheat-sheet.component.scss b/demo/src/app/cheat-sheet/cheat-sheet.component.scss new file mode 100644 index 0000000..5d4e87f --- /dev/null +++ b/demo/src/app/cheat-sheet/cheat-sheet.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/demo/src/app/cheat-sheet/cheat-sheet.component.ts b/demo/src/app/cheat-sheet/cheat-sheet.component.ts new file mode 100644 index 0000000..d418e3b --- /dev/null +++ b/demo/src/app/cheat-sheet/cheat-sheet.component.ts @@ -0,0 +1,50 @@ +import { AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; +import { MarkdownComponent } from 'ngx-markdown'; +import { HttpRawLoaderService } from '@shared/http-raw-loader'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-cheat-sheet', + templateUrl: './cheat-sheet.component.html', + styleUrls: ['./cheat-sheet.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + AsyncPipe, + MarkdownComponent, + ScrollspyNavLayoutComponent, + ] +}) +export default class CheatSheetComponent implements OnInit { + + blockquotes$ = this.rawLoaderService.get('app/cheat-sheet/remote/blockquotes.md'); + codeAndSynthaxHighlighting$ = this.rawLoaderService.get('app/cheat-sheet/remote/code-and-synthax-highlighting.md'); + emphasis$ = this.rawLoaderService.get('app/cheat-sheet/remote/emphasis.md'); + headers$ = this.rawLoaderService.get('app/cheat-sheet/remote/headers.md'); + horizontalRule$ = this.rawLoaderService.get('app/cheat-sheet/remote/horizontal-rule.md'); + images$ = this.rawLoaderService.get('app/cheat-sheet/remote/images.md'); + links$ = this.rawLoaderService.get('app/cheat-sheet/remote/links.md'); + lists$ = this.rawLoaderService.get('app/cheat-sheet/remote/lists.md'); + listsDot$ = this.rawLoaderService.get('app/cheat-sheet/remote/lists-dot.md'); + tables$ = this.rawLoaderService.get('app/cheat-sheet/remote/tables.md'); + + headings: Element[] | undefined; + + constructor( + private elementRef: ElementRef, + private rawLoaderService: HttpRawLoaderService, + ) { + } + + ngOnInit(): void { + this.setHeadings(); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach(x => headings.push(x)); + this.headings = headings; + } +} diff --git a/demo/src/app/cheat-sheet/remote/blockquotes.md b/demo/src/app/cheat-sheet/remote/blockquotes.md new file mode 100644 index 0000000..031deed --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/blockquotes.md @@ -0,0 +1,6 @@ +> Blockquotes are very handy in email to emulate reply text. +> This line is part of the same quote. + +Quote break. + +> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote. \ No newline at end of file diff --git a/demo/src/app/cheat-sheet/remote/code-and-synthax-highlighting.md b/demo/src/app/cheat-sheet/remote/code-and-synthax-highlighting.md new file mode 100644 index 0000000..85fabfc --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/code-and-synthax-highlighting.md @@ -0,0 +1,16 @@ +Inline `code` has `back-ticks around` it. + +```javascript +var s = "JavaScript syntax highlighting"; +alert(s); +``` + +```python +s = "Python syntax highlighting" +print s +``` + +``` +No language indicated, so no syntax highlighting. +But let's throw in a tag. +``` \ No newline at end of file diff --git a/demo/src/app/cheat-sheet/remote/emphasis.md b/demo/src/app/cheat-sheet/remote/emphasis.md new file mode 100644 index 0000000..3d21ab8 --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/emphasis.md @@ -0,0 +1,7 @@ +Emphasis, aka italics, with *asterisks* or _underscores_. + +Strong emphasis, aka bold, with **asterisks** or __underscores__. + +Combined emphasis with **asterisks and _underscores_**. + +Strikethrough uses two tildes. ~~Scratch this.~~ \ No newline at end of file diff --git a/demo/src/app/cheat-sheet/remote/headers.md b/demo/src/app/cheat-sheet/remote/headers.md new file mode 100644 index 0000000..ff486a7 --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/headers.md @@ -0,0 +1,19 @@ +# H1 + +## H2 + +### H3 + +#### H4 + +##### H5 + +###### H6 + +Alternatively, for H1 and H2, an underline-ish style: + +Alt-H1 +====== + +Alt-H2 +------ diff --git a/demo/src/app/cheat-sheet/remote/horizontal-rule.md b/demo/src/app/cheat-sheet/remote/horizontal-rule.md new file mode 100644 index 0000000..9a8a4ca --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/horizontal-rule.md @@ -0,0 +1,12 @@ +Three or more... + +--- + +Hyphens + +*** + +Asterisks +___ + +Underscores \ No newline at end of file diff --git a/demo/src/app/cheat-sheet/remote/images.md b/demo/src/app/cheat-sheet/remote/images.md new file mode 100644 index 0000000..d0b7f9f --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/images.md @@ -0,0 +1,9 @@ +Here's our logo (hover to see the title text): + +Inline-style: +![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1") + +Reference-style: +![alt text][logo] + +[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 2" \ No newline at end of file diff --git a/demo/src/app/cheat-sheet/remote/links.md b/demo/src/app/cheat-sheet/remote/links.md new file mode 100644 index 0000000..fb96a5e --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/links.md @@ -0,0 +1,51 @@ +There are several ways to create links. + +[I'm an inline-style link](https://www.google.com) + +[I'm an inline-style link with title](https://www.google.com "Google's Homepage") + +[I'm a reference-style link][Arbitrary case-insensitive reference text] + +[I'm a relative reference to a repository file](/localFile:favicon.ico) + +[You can use numbers for reference-style link definitions][1] + +Or leave it empty and use the [link text itself]. + +URLs and URLs in angle brackets will automatically get turned into links. +http://www.example.com or and sometimes +example.com (but not on GitHub, for example). + +Some text to show that the reference links can follow later. + +[arbitrary case-insensitive reference text]: https://www.mozilla.org + +[1]: http://slashdot.org + +[link text itself]: http://www.reddit.com + +[Angular routerLink to another view with fragment](/routerLink:syntax-highlight#language-pipe) + +[Angular routerLink to another view](/routerLink:syntax-highlight) + +[Angular routerLink with only fragment](#tables) + +[I'm an Angular routerLink to current view with fragment](/routerLink:cheat-sheet#tables) + +```html + + +``` diff --git a/demo/src/app/cheat-sheet/remote/lists-dot.md b/demo/src/app/cheat-sheet/remote/lists-dot.md new file mode 100644 index 0000000..3ffa6e7 --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/lists-dot.md @@ -0,0 +1,18 @@ +1. First ordered list item +2. Another item + ⋅⋅⋅* Unordered sub-list. +1. Actual numbers don't matter, just that it's a number + ⋅⋅⋅1. Ordered sub-list +4. And another item. + +⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown). + +⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅ +⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅ +⋅⋅⋅(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.) + +* Unordered list can use asterisks + +- Or minuses + ++ Or pluses diff --git a/demo/src/app/cheat-sheet/remote/lists.md b/demo/src/app/cheat-sheet/remote/lists.md new file mode 100644 index 0000000..8681ae6 --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/lists.md @@ -0,0 +1,19 @@ +1. First ordered list item +2. Another item + * Unordered sub-list. +1. Actual numbers don't matter, just that it's a number + 1. Ordered sub-list +4. And another item. + + You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown). + + To have a line break without a paragraph, you will need to use two trailing spaces. + Note that this line is separate, but within the same paragraph. + (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.) + + +* Unordered list can use asterisks + +- Or minuses + ++ Or pluses diff --git a/demo/src/app/cheat-sheet/remote/tables.md b/demo/src/app/cheat-sheet/remote/tables.md new file mode 100644 index 0000000..d3acfc4 --- /dev/null +++ b/demo/src/app/cheat-sheet/remote/tables.md @@ -0,0 +1,16 @@ +Colons can be used to align columns. + +| Tables | Are | Cool | +|---------------|:-------------:|------:| +| col 3 is | right-aligned | $1600 | +| col 2 is | centered | $12 | +| zebra stripes | are neat | $1 | + +There must be at least 3 dashes separating each header cell. +The outer pipes (|) are optional, and you don't need to make the +raw Markdown line up prettily. You can also use inline Markdown. + + Markdown | Less | Pretty +----------|-----------|------------ + *Still* | `renders` | **nicely** + 1 | 2 | 3 diff --git a/demo/src/app/constants/const-codemirror-editor-themes.ts b/demo/src/app/constants/const-codemirror-editor-themes.ts new file mode 100644 index 0000000..8a68c29 --- /dev/null +++ b/demo/src/app/constants/const-codemirror-editor-themes.ts @@ -0,0 +1,146 @@ +import { + abcdef, + abyss, + androidStudio, + andromeda, + basicDark, + basicLight, + forest, + githubDark, + githubLight, + gruvboxDark, + gruvboxLight, + materialDark, + materialLight, + monokai, + nord, + palenight, + solarizedDark, + solarizedLight, + tokyoNightDay, + tokyoNightStorm, + volcano, + vsCodeDark, + vsCodeLight +} from '@fsegurai/codemirror-theme-bundle'; + +/** + * List of CodeMirror themes + */ +export const CodeMirrorThemes = [ + { + value: 0, + viewValue: 'abcdef', + theme: abcdef, + }, + { + value: 1, + viewValue: 'abyss', + theme: abyss, + }, + { + value: 2, + viewValue: 'android studio', + theme: androidStudio, + }, + { + value: 3, + viewValue: 'andromeda', + theme: andromeda, + }, + { + value: 4, + viewValue: 'basic light', + theme: basicLight, + }, + { + value: 5, + viewValue: 'basic dark', + theme: basicDark, + }, + { + value: 6, + viewValue: 'forest', + theme: forest, + }, + { + value: 7, + viewValue: 'github light', + theme: githubLight, + }, + { + value: 8, + viewValue: 'github dark', + theme: githubDark, + }, + { + value: 9, + viewValue: 'gruvbox light', + theme: gruvboxLight, + }, + { + value: 10, + viewValue: 'gruvbox dark', + theme: gruvboxDark, + }, + { + value: 11, + viewValue: 'material light', + theme: materialLight, + }, + { + value: 12, + viewValue: 'material dark', + theme: materialDark, + }, + { + value: 13, + viewValue: 'monokai', + theme: monokai, + }, + { + value: 14, + viewValue: 'nord', + theme: nord, + }, + { + value: 15, + viewValue: 'palenight', + theme: palenight, + }, + { + value: 16, + viewValue: 'solarized light', + theme: solarizedLight, + }, + { + value: 17, + viewValue: 'solarized dark', + theme: solarizedDark, + }, + { + value: 18, + viewValue: 'tokyo night day', + theme: tokyoNightDay, + }, + { + value: 19, + viewValue: 'tokyo night storm', + theme: tokyoNightStorm, + }, + { + value: 20, + viewValue: 'volcano', + theme: volcano, + }, + { + value: 21, + viewValue: 'vsCodeLight', + theme: vsCodeLight + }, + { + value: 22, + viewValue: 'vsCodeDark', + theme: vsCodeDark + } +]; diff --git a/demo/src/app/get-started/get-started.component.html b/demo/src/app/get-started/get-started.component.html new file mode 100644 index 0000000..f3279cc --- /dev/null +++ b/demo/src/app/get-started/get-started.component.html @@ -0,0 +1,5 @@ + +

Get Started

+ +
diff --git a/demo/src/app/get-started/get-started.component.scss b/demo/src/app/get-started/get-started.component.scss new file mode 100644 index 0000000..5d4e87f --- /dev/null +++ b/demo/src/app/get-started/get-started.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/demo/src/app/get-started/get-started.component.ts b/demo/src/app/get-started/get-started.component.ts new file mode 100644 index 0000000..22120b2 --- /dev/null +++ b/demo/src/app/get-started/get-started.component.ts @@ -0,0 +1,39 @@ +import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core'; +import { MarkdownComponent } from 'ngx-markdown'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-get-started', + templateUrl: './get-started.component.html', + styleUrls: ['./get-started.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [MarkdownComponent, ScrollspyNavLayoutComponent] +}) +export default class GetStartedComponent { + headings: Element[] | undefined; + + constructor(private elementRef: ElementRef) { + } + + onLoad(): void { + this.stripContent(); + this.setHeadings(); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach((x) => headings.push(x)); + this.headings = headings; + } + + private stripContent(): void { + this.elementRef.nativeElement + .querySelector('markdown')! + .querySelectorAll( + 'markdown > p:nth-child(-n + 2), #ngx-markdown, #table-of-contents + ul, #table-of-contents', + ) + .forEach((x) => x.remove()); + } +} diff --git a/demo/src/app/marked-options-factory.ts b/demo/src/app/marked-options-factory.ts new file mode 100644 index 0000000..0ec2754 --- /dev/null +++ b/demo/src/app/marked-options-factory.ts @@ -0,0 +1,21 @@ +import {MarkedOptions, MarkedRenderer, MarkedToken} from 'ngx-markdown'; +import {AnchorService} from '@shared/anchor'; + +export function markedOptionsFactory(anchorService: AnchorService): MarkedOptions { + const renderer = new MarkedRenderer(); + + // fix `href` for absolute link with fragments so that _copy-paste_ urls are correct + renderer.link = ({href, title, tokens, text, raw}: MarkedToken.Link) => { + const normalizedHref = anchorService.normalizeExternalUrl(href); + return MarkedRenderer.prototype.link.call(renderer, { + type: 'link', + raw, + href: normalizedHref, + title, + text, + tokens + }); + }; + + return {renderer}; +} diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html new file mode 100644 index 0000000..157c72b --- /dev/null +++ b/demo/src/app/playground/playground.component.html @@ -0,0 +1,31 @@ + +

Playground

+ +
+
+ + Markdown Editor + + + + +
+
+
diff --git a/demo/src/app/playground/playground.component.scss b/demo/src/app/playground/playground.component.scss new file mode 100644 index 0000000..f71d1b2 --- /dev/null +++ b/demo/src/app/playground/playground.component.scss @@ -0,0 +1,582 @@ +::ng-deep { + .outlet-wrapper { + max-width: calc(100% - 20rem) !important; + } +} + +.playground { + display: flex; + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + + @media (max-width: 768px) { + flex-direction: column; + } + + .markdown, .editor { + flex: 1 1 45%; // takes up 45% of the container width + margin: 2%; // provides a 2% margin + box-sizing: border-box; // includes padding and border in element's total width and height + height: 100%; // takes up 100% of the container height + + @media (max-width: 768px) { + flex: 1 1 100%; // takes up 100% of the container width on small screens + } + } + + .editor { + position: sticky; + top: 80px; + + textarea { + height: calc(100vh - 8rem); + overflow: auto; + field-sizing: content; + } + } + + .markdown { + width: 100%; + height: 100%; + overflow: auto; + padding: 0.5rem 1.5rem; + + /* Alerts */ + ::ng-deep { + /* Alerts */ + .markdown-alert { + padding: 0 1em; + margin-bottom: 16px; + color: inherit; + border-left: 0.25em solid #444c56; + } + + .markdown-alert-title { + display: inline-flex; + align-items: center; + font-weight: 500; + } + + .markdown-alert-note { + border-left-color: #539bf5; + + & > .markdown-alert-title { + color: #539bf5; + + & svg { + fill: #539bf5; + } + } + } + + .markdown-alert-tip { + border-left-color: #57ab5a; + + & > .markdown-alert-title { + color: #57ab5a; + + & svg { + fill: #57ab5a; + } + } + } + + .markdown-alert-important { + border-left-color: #986ee2; + + & > .markdown-alert-title { + color: #986ee2; + + & svg { + fill: #986ee2; + } + } + } + + .markdown-alert-warning { + border-left-color: #c69026; + + & > .markdown-alert-title { + color: #c69026; + + & svg { + fill: #c69026; + } + } + } + + .markdown-alert-caution { + border-left-color: #e5534b; + + & > .markdown-alert-title { + color: #e5534b; + + & svg { + fill: #e5534b; + } + } + } + + .mr-2 { + margin-right: 0.5rem; + } + + /* Alerts - END */ + } + + /* Hashtag & Mention */ + ::ng-deep { + + .hashtag, .mention { + border-radius: 2em; + font-size: 0.875em; + font-weight: inherit; + text-decoration: none; + padding: 0.25em 0.65em; + line-height: 1; + } + + .hashtag { + background-color: hsla(258, 88%, 66%, 0.1); + border: 0 solid hsla(258, 88%, 66%, 0.15); + color: hsl(calc(258 - 3), calc(88% * 1.02), calc(66% * 1.15)); + } + + .mention { + background-color: hsla(189, 88%, 66%, 0.1); + border: 0 solid hsla(223, 88%, 66%, 0.15); + color: #8ab0f9; + } + } + + /* Copy Button */ + ::ng-deep { + .markdown-clipboard-button { + background-color: rgba(255, 255, 255, 0.07); + border: none; + border-radius: 4px; + color: #ffffff; + cursor: pointer; + font-family: Roboto, "Raleway", "Open Sans", sans-serif; + font-size: 11px; + padding: 4px 8px; + min-width: 50px; + width: auto; + letter-spacing: 1px; + transition: all 250ms ease-out; + + &:hover, + &:focus { + background-color: rgba(255, 255, 255, 0.14); + } + + &:active { + transform: scale(0.95); + } + + &.copied { + background-color: rgba(0, 174, 255, 0.1); + color: #0090ff; + } + } + } + + /* Github */ + ::ng-deep { + + * { + box-sizing: border-box; + + &:first-child { + margin-top: 0 !important; + } + + &:last-child { + margin-bottom: 0 !important; + } + } + + a { + //text-decoration: none; + color: #2196f3; + background-color: transparent; + -webkit-text-decoration-skip: objects; + + &:active, &:hover { + outline-width: 0; + text-decoration: underline; + } + + &:not([href]) { + color: inherit; + text-decoration: none; + } + + &.title-anchor { + color: inherit; + text-decoration: none; + cursor: inherit; + + &:active, &:hover { + outline-width: 0; + text-decoration: none; + } + } + } + + strong { + font-weight: bolder; + } + + svg { + overflow: hidden; + } + + mark { + padding: 0.2rem 0.4rem; + border-radius: 4px; + } + + img { + max-width: 85%; + box-sizing: content-box; + background-color: transparent; + object-fit: cover; + border-radius: 4px; + border-style: none; + } + + iframe { + width: 100%; + max-width: 85%; + border-radius: 4px; + } + + abbr { + cursor: help; + text-decoration: none; + border-bottom: 1px dotted; + text-transform: lowercase; + font-weight: 600; + font-variant: small-caps; + + &[title]:hover { + cursor: help; + } + } + + hr { + box-sizing: content-box; + height: 0.25em; + margin: 0.75rem 0; + padding: 0; + overflow: hidden; + background-color: #e7e7e7; + border: 0; + border-bottom: 1px solid #ddd; + opacity: 0.5; + + + &::before { + display: table; + content: ""; + } + + &::after { + display: table; + clear: both; + content: ""; + } + } + + input { + font: inherit; + margin: 0; + overflow: visible; + line-height: inherit; + -webkit-font-feature-settings: "liga" 0; + font-feature-settings: "liga" 0; + + &[type="checkbox"] { + box-sizing: border-box; + padding: 0; + } + + &:checked { + position: relative; + z-index: 1; + border-color: #4078c0; + } + } + + h1, + h2, + h3, + h4, + h5, + h6 { + padding-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; + text-rendering: optimizeLegibility; + } + + h1 { + margin: 0.67em 0; + font-weight: 600; + padding-bottom: 0.3em; + font-size: 1.802rem; + } + + h2 { + font-weight: 600; + padding-bottom: 0.3em; + font-size: 1.602rem; + } + + h3 { + font-weight: 600; + font-size: 1.424rem; + } + + h4 { + font-weight: 600; + font-size: 1.266rem; + } + + h5 { + font-weight: 600; + font-size: 1.125rem; + } + + h6 { + font-weight: 600; + font-size: 1rem; + } + + p { + margin-top: 0; + margin-bottom: 10px; + } + + ul, + ol { + padding-left: 2em; + margin-top: 0; + margin-bottom: 0; + } + + ol ol, + ul ol { + list-style-type: lower-roman; + } + + ul ul ol, + ul ol ol, + ol ul ol, + ol ol ol { + list-style-type: lower-alpha; + } + + ul ul ul ol, + ul ul ol ol, + ul ol ul ol, + ul ol ol ol, + ol ul ul ol { + list-style-type: lower-greek; + } + + ul ul, + ul ol, + ol ol, + ol ul { + margin-top: 0; + margin-bottom: 0; + } + + li { + & > p { + margin-top: 16px; + } + + & + li { + margin-top: 0.25em; + } + } + + dl { + padding: 0; + } + + dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: bold; + } + + dl dd { + padding: 0 16px; + margin-bottom: 16px; + } + + dd { + margin-left: 0; + } + + p, + blockquote, + ul, + ol, + dl, + table, + pre { + margin-top: 0; + margin-bottom: 16px; + } + + blockquote { + margin: 0 0 1rem; + padding: 0 1em; + color: #d3d3d3; + border-left: 0.25em solid #2196f3; + + & > :first-child { + margin-top: 0; + } + + & > :last-child { + margin-bottom: 0; + } + + & + figcaption { + display: block; + margin-top: -1.5rem; + margin-bottom: 1.5rem; + font-size: 75%; + text-align: right; + + &::before { + content: "— "; + opacity: 0.5; + } + } + } + + table { + display: block; + width: 100%; + overflow: auto; + border-spacing: 0; + border-collapse: collapse; + + th, td { + white-space: normal; + word-wrap: break-word; + padding: 6px 13px; + border: 1px solid #ddd; + } + + th { + font-weight: bold; + } + } + + code, + kbd, + pre { + font-family: monospace, monospace; + font-size: 1em; + } + + kbd { + display: inline-block; + padding: 3px 5px; + font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #555; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; + } + + code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; + padding: 0.2em 0; + margin: 0; + font-size: 85%; + background-color: #2196f34f; + border-radius: 6px; + font-style: italic; + + &::before, &::after { + letter-spacing: -0.2em; + content: "\00a0"; + } + } + + pre { + margin: 0 0 1rem; + font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; + word-wrap: normal; + overflow: auto; + font-size: 85%; + line-height: 1.45; + border-radius: 4px; + + & > code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; + font-style: normal; + } + + code { + display: inline; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; + + &::before, &::after { + content: normal; + } + } + } + + .external-link { + display: flex; + } + + /* Math */ + .katex { + font-size: 2vw; + } + + /* Math - END */ + + /* Footnotes */ + .footnotes { + opacity: 0.8; + margin-top: 1rem; + padding: 1rem; + border-top: 1px solid #444c56; + } + + /* Footnotes - END */ + } + } +} diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts new file mode 100644 index 0000000..79671df --- /dev/null +++ b/demo/src/app/playground/playground.component.ts @@ -0,0 +1,113 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit } from '@angular/core'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { FormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { KatexOptions, MarkdownComponent, MarkdownService, MermaidAPI, MarkedToken } from 'ngx-markdown'; +import { playgroundDemo } from '@app/playground/remote/demo'; +import { debounce } from '@shared/debounce/debounce'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-playground', + imports: [ + FlexModule, + FormsModule, + MarkdownComponent, + MatFormFieldModule, + MatInputModule, + ScrollspyNavLayoutComponent, + ], + templateUrl: './playground.component.html', + styleUrl: './playground.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export default class PlaygroundComponent implements OnInit, OnDestroy { + // property to handle override as per marked documentation, if a renderer + // function returns `false` it will fall back to previous implementation + headings: Element[] | undefined; + + private debounceRendering = debounce(() => this.updateMarkdownRendering(), 1000); + private _markdownContent = playgroundDemo; + markdownRendering: string | undefined; + + get markdownContent() { + return this._markdownContent; + } + + set markdownContent(value: string) { + this._markdownContent = value; + this.debounceRendering(); + } + + protected katexOptions: KatexOptions = { + displayMode: true, + throwOnError: false, + errorColor: '#cc0000', + macros: { + '\\RR': '\\mathbb{R}', + '\\NN': '\\mathbb{N}', + '\\ZZ': '\\mathbb{Z}', + '\\QQ': '\\mathbb{Q}', + '\\f': '#1f(#2)', + '\\g': '#1g(#2)', + '\\h': '#1h(#2)', + }, + }; + protected mermaidOptions: MermaidAPI.MermaidConfig = { + theme: 'dark', + }; + + constructor( + private markdownService: MarkdownService, + private elementRef: ElementRef, + private changeDetector: ChangeDetectorRef, // Inject ChangeDetectorRef + ) { + } + + ngOnInit(): void { + this.updateMarkdownRendering(); + } + + ngOnDestroy(): void { + this.headings = undefined; + } + + onLoad(): void { + this.stripContent(); + this.setHeadings(); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach((x) => headings.push(x)); + this.headings = headings; + } + + private stripContent(): void { + this.elementRef.nativeElement + .querySelector('markdown')! + .querySelectorAll( + 'markdown > p:nth-child(-n + 2), #ngx-markdown, #table-of-contents + ul, #table-of-contents', + ) + .forEach((x) => x.remove()); + } + + private updateMarkdownRendering(): void { + this.markdownRendering = this.markdownContent; + + this.markdownService.renderer.heading = ({text, depth}: MarkedToken.Heading) => { + const parsedText = this.markdownService.parseInline(text); // Parse inline Markdown text to HTML + const escapedText = text + .toLowerCase() + .split(/\W+/) + .filter(Boolean) + .join('-'); // Remove special characters and join words with hyphens. e.g. "Hello, World!" -> "hello-world" + return `${parsedText}`; + } + + this.changeDetector.detectChanges(); // Manually trigger change detection + } +} diff --git a/demo/src/app/playground/remote/demo.ts b/demo/src/app/playground/remote/demo.ts new file mode 100644 index 0000000..72b16fc --- /dev/null +++ b/demo/src/app/playground/remote/demo.ts @@ -0,0 +1,217 @@ +export const playgroundDemo = `## Images Section + +![Custom background](https://pub-5319465d44da4d52805a6be35612d5b4.r2.dev/assets/large/background/custom-bg-01.jpg) + +Like links, Images also have a footnote style syntax + +![Alt text][id] + +With a reference later in the document defining the URL location: + +[id]: https://pub-5319465d44da4d52805a6be35612d5b4.r2.dev/assets/large/background/custom-bg-01.jpg "Test Inline Reference" + +## Horizontal Rule Section + +--- + +*** + +## Advertisement + +__Advertisement :smile: + +## Emphasis Section + +**This is bold text** + +*This is italic text* + +~~Strikethrough~~ + +## Headings Section + +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + +## Horizontal Rules + +--- + +*** + +*** + +## Emphasis Section + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Strikethrough~~ + +## Blockquotes Section + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + +## Unordered Lists Section + +- Create a list by starting a line with \`+\`, \`-\`, or \`*\` +- Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit +- Very easy! +- __[pica](https://nodeca.github.io/pica/demo/)__ - high quality and fast image resize in browser. +- __[babelfish](https://github.com/nodeca/babelfish/)__ - developer friendly i18n with plurals support and easy syntax. + + ## Ordered Lists Section + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + + +1. You can use sequential numbers... + + + +1. ...or keep all the numbers as \`1.\` + +Start numbering with offset: + +57. foo + + + +1. bar + +## Task Lists Section + +- [x] #739 +- [ ] https://github.com/octo-org/octo-repo/issues/740 +- [ ] Add delight to the experience when all tasks are complete :tada: + +## Code Section + +Inline \`code\` + +Indented code + + // Some comments + line 1 of code + line 2 of code + line 3 of code + +Block code "fences" + +\`\`\` +Sample +text +here +... +\`\`\` + +Syntax highlighting + +\`\`\` js +var foo = function (bar) { + return bar++; +}; + +console.log(foo(5)); +\`\`\` + +## Tables Section + +| Option | Description | +| ------ | ----------- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +Right aligned columns + +| Option | Description | +| ------:| -----------:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +## Links Section + +[link text](http://dev.nodeca.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +[smart](https://google.com) + +[Internal reference - Code Section](/routerLink:playground#code-section) + +## Plugins Section + +For more details regarding **Marked** extension, visit the [official documentation](https://marked.js.org/using_advanced#extensions) + +### [Emojis](https://github.com/markdown-it/markdown-it-emoji) + +> Classic markup: :wink: :cry: :laughing: :yum: + +### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup) + +- 19th +- H2O + +### [\`\`](https://github.com/markdown-it/markdown-it-ins) + +Inserted Text + +### [\`\`](https://github.com/markdown-it/markdown-it-mark) + +

+ Marked Text +

+ +### [Abbreviations](https://github.com/markdown-it/markdown-it-abbr) + +This is HTML abbreviation example. + +It converts HTML, but keep intact partial entries like "xxxHTMLyyy" and so on. + +[HTML]: Hyper Text Markup Language + +### [Math](katex.com) + +

+ $\\sqrt{3x-1}+(1+x)^2$ +

+ +$f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi$ + +### [Mermaid](https://mermaid.js.org/intro/getting-started.html) + +\`\`\`mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +\`\`\` + +\`\`\`mermaid +sequenceDiagram + Alice->>John: Hello John, how are you? + John-->>Alice: Great! +\`\`\` + +`; diff --git a/demo/src/app/plugins/plugins.component.html b/demo/src/app/plugins/plugins.component.html new file mode 100644 index 0000000..ab4bb31 --- /dev/null +++ b/demo/src/app/plugins/plugins.component.html @@ -0,0 +1,697 @@ + +

Plugins

+ + + + Before to use any plugin, make sure you've installed the required libraries by following the + [installation](/get-started#installation) section of the __Get Started__ page. + + + +
+

Emoji plugin

+ + + #### Emoji-Toolkit file to include + ```javascript + node_modules/emoji-toolkit/lib/js/joypixels.min.js + ``` + + #### Directive + `emoji` - activate emoji plugin + + ### Example + + + + Using `emoji` input property on `markdown` component, directive or pipe allows you to convert shortnames to native + unicode emojis. + + + + + + The example below illustrate `emoji` directive in action. + + +
+ + + + + +
+ + + > :blue_book: You can refer to this [Emoji Cheat + Sheet](https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md) for a complete list of _shortnames_. + +
+ + +
+

Line Numbers plugin

+ + + #### Prism files to include + ```javascript + node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css + node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js + ``` + + #### Directive + `lineNumbers` - activate line numbers plugin + + #### Attributes + `start` - offset number for the first display line + + ### Example + + + + Using `lineNumbers` input property on `markdown` component, directive or pipe allows you to add line number at the + beginning of each lines of code block. + + + + + + The example below uses `lineNumbers` directive which uses default line offset of 1. + + + + ```javascript + var result = square(2); + + function square(number) { + return number * number; + } + ``` + + + + Optionally you can use `start` to specify the offset number for the first display line. + + + + In the example below line offset is set to 5 using `start` input property. + + + + ```javascript + var result = root(2); + + function root(x, n) { + try { + var negate = n % 2 == 1 && x < 0; + if (negate) + x = -x; + var possible = Math.pow(x, 1 / n); + n = Math.pow(possible, n); + if (Math.abs(x - n) < 1 && (x > 0 == n > 0)) + return negate ? -possible : possible; + } catch (e) { } + } + ``` + +
+ + +
+

Line Highlight plugin

+ + + #### Prism files to include + ```javascript + node_modules/prismjs/plugins/line-highlight/prism-line-highlight.css + node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js + ``` + #### Directive + `lineHighlight` - activate line highlight plugin + + #### Attributes + `line` - lines to highlight (i.e.: 6, 11-15)
+ `lineOffset` - starting offset for line numbers
+ + ### Example +
+ + + You can highlight different lines by adding `lineHighlight` directive on the `markdown` component/directive. + + Use `line` input property to specify the line(s) to highlight and optionally there is a `lineOffset` property to + specify the starting line of code your snippet represents. + + + + + + In the example below `line` 6 and 10 to 16 are highlight using a `lineOffset` of 5. + + + + ```javascript + var result = root(2); + + function root(x, n) { + try { + var negate = n % 2 == 1 && x < 0; + if (negate) + x = -x; + var possible = Math.pow(x, 1 / n); + n = Math.pow(possible, n); + if (Math.abs(x - n) < 1 && (x > 0 == n > 0)) + return negate ? -possible : possible; + } catch (e) { } + } + ``` + +
+ + +
+

Command Line plugin

+ + + #### Prism file(s) to include + ```javascript + node_modules/prismjs/plugins/command-line/prism-command-line.css + node_modules/prismjs/plugins/command-line/prism-command-line.min.js + ``` + + #### Directive + `commandLine` - activate command-line display + + #### Attributes + `host` - host name
+ `output` - lines to be presented as output (optional)
+ `filterOutput` - prefix to automatically present lines as output (optional)
+ `prompt` - data prompt
+ `user` - user name
+ + ### Example +
+ + + Root user without output + + ```html + <markdown + commandLine + [user]="'root'" + [host]="'localhost'" + [src]="'path/to/file.bash'"> + </markdown> + ``` + + + + + + + Non-Root User With Output + + ```html + <markdown + commandLine + [user]="'chris'" + [host]="'remotehost'" + [output]="'2, 4-8'" + [src]="'path/to/file.bash'"> + </markdown> + ``` + + + + + + + Windows PowerShell With Output + + ```html + <markdown + commandLine + [prompt]="'PS C:\Users\Chris>'" + [output]="'2-19'" + [src]="'path/to/file.bash'"> + </markdown> + ``` + + + + + + + Windows PowerShell With Filter Output + + ```html + <markdown + commandLine + [prompt]="'PS C:\Users\Chris>'" + [filterOutput]="'(out)'"> + ```powershell + Get-Date + (out) + (out)Sunday, November 7, 2021 8:19:21 PM + (out) + `​`` + </markdown> + ``` + + + + +
+ + +
+

KaTeX plugin

+ + + #### KaTeX files to include + ```javascript + node_modules/katex/dist/katex.min.css + node_modules/katex/dist/katex.min.js + node_modules/katex/dist/contrib/auto-render.min.js + ``` + + #### Directive + `katex` - activate KaTeX plugin + + #### Attributes + `katexOptions` - combine [KaTeX options](https://katex.org/docs/options.html) and [Auto-Renderer + options](https://katex.org/docs/autorender.html#api)
+ + ### Example +
+ + + You can render KaTex expression by adding `katex` directive on the `markdown` component/directive. + + + + + + The example below illustrate `katex` directive in action. + + +
+ + + + + +
+ + + Optionally, you can specify both [KaTeX options](https://katex.org/docs/options.html) and [Auto-Renderer + options](https://katex.org/docs/autorender.html#api) using `katexOptions` property. + + **example.component.ts** + ```typescript + import { KatexOptions } from 'ngx-markdown'; + + public options: KatexOptions = { + displayMode: true, + throwOnError: false, + errorColor: '#cc0000', + delimiters: [...], + ... + }; + ``` + + **example.component.html** + + + +
+ + +
+

Mermaid plugin

+ + + #### Mermaid file to include + ```javascript + node_modules/mermaid/dist/mermaid.min.js + ``` + + #### Directive + `mermaid` - activate mermaid plugin + + #### Attributes + `mermaidOptions` - mermaid [configuration + options](https://mermaid.js.org/config/schema-docs/config.html#mermaid-config-properties)
+ + ### Example +
+ + + Using `mermaid` input property on `markdown` component, directive or pipe allows you to use + [mermaid](https://mermaid-js.github.io/) syntax to generate diagrams and flowcharts. + + + + + + The example below illustrate `mermaid` directive in action. + + +
+ + + + + +
+ + + #### Global configuration + + You can provide a global configuration for mermaid [configuration + options](https://mermaid.js.org/config/schema-docs/config.html#mermaid-config-properties) to use across your + application with the `mermaidOptions` in the `MarkdownModuleConfig` either with `provideMarkdown` provide-function + for standalone components or `MarkdownModule.forRoot()` for module configuration. + + ```typescript + // using the `provideMarkdown` function + provideMarkdown({ + mermaidOptions: { + provide: MERMAID_OPTIONS, + useValue: { + darkMode: true, + look: 'handDrawn', + ... + }, + }, + }), + + // using the `MarkdownModule` import + MarkdownModule.forRoot({ + mermaidOptions: { + provide: MERMAID_OPTIONS, + useValue: { + darkMode: true, + look: 'handDrawn', + ... + }, + }, + }), + ``` + + #### Component configuration + + Additionally, you can specify mermaid [configuration + options](https://mermaid.js.org/config/schema-docs/config.html#mermaid-config-properties) on component directly + using `mermaidOptions` property. + + **example.component.ts** + ```typescript + import { MermaidAPI } from 'ngx-markdown'; + + public options: MermaidAPI.MermaidConfig = { + darkMode: true, + look: 'handDrawn', + ... + }; + ``` + + **example.component.html** + + + + + + > :blue_book: You can refer to this [Mermaid](https://mermaid-js.github.io/) documentation for complete usage + syntax. + +
+ + +
+

Clipboard plugin

+ + + #### Clipboard file(s) to include + ```javascript + node_modules/clipboard/dist/clipboard.min.js + ``` + + #### Directive + `clipboard` - activate copy-to-clipboard plugin + + #### Attributes + `clipboardButtonComponent` - component `Type<any>` to use as copy-to-clipboard button
+ `clipboardButtonTemplate` - template reference `TemplateRef<T>` to use as copy-to-clipboard button
+ `clipboardButtonTextCopy` - text to display on the copy button
+ `clipboardButtonTextCopied` - text to display on the copied button
+ `clipboardLanguageButton` - enable language copy button taken as a reference from the code block
+ + #### CSS Selectors + `markdown-clipboard-toolbar` - toolbar wrapper
+ `markdown-clipboard-toolbar.hover` - toolbar wrapper during mouse hover
+ `markdown-clipboard-button` - default button
+ `markdown-clipboard-button.copied` - default button during "copied" state
+ + ### Example +
+ + + #### Default button + + The `clipboard` plugin provide an unstyled default button with a default behavior out of the box if no alternative + is used. + + ```javascript + const example = 'the default clipboard button with default behavior'; + ``` + + + + #### Customize toolbar + + The clipboard button is placed inside a wrapper element that can be customize using the + `.markdown-clipboard-toolbar` CSS selector in your global `styles.css/scss` file. + + This allows to override the default positioning of the clipboard button and play with the visibility of the button + using the `.hover` CSS selector that is applied on the toolbar when the mouse cursor enters and leaves the code + block element. + + ```css + .markdown-clipboard-toolbar { + top: 16px; + right: 16px; + opacity: 0; + transition: opacity 250ms ease-out; + } + + .markdown-clipboard-toolbar.hover { + opacity: 1; + } + ``` + + + + #### Customize default button + + The default button can be customized using the `.markdown-clipboard-button` CSS selector in your global + `styles.css/scss` file. You can also customized the "copied" state happening after the button is clicked using the + `.copied` CSS selector. + + ```css + .markdown-clipboard-button { + background-color: rgba(255, 255, 255, 0.07); + border: none; + border-radius: 4px; + color: #ffffff; + cursor: pointer; + font-size: 11px; + padding: 4px 0; + width: 50px; + transition: all 250ms ease-out; + } + + .markdown-clipboard-button:hover { + background-color: rgba(255, 255, 255, 0.14); + } + + .markdown-clipboard-button:active { + transform: scale(0.95); + } + + .markdown-clipboard-button.copied { + background-color: rgba(0, 255, 0, 0.1); + color: #00ff00; + } + ``` + + + + #### Customize button text copy and button text copied + + The default button text can be customized using the `clipboardButtonTextCopy` and `clipboardButtonTextCopied` + input properties on the `markdown` component, directive or pipe. + + ```javascript + const example = 'the default clipboard button with custom text'; + ``` + + + + ```cpp + #include <iostream> + + int main() { + std::cout << "Hello, World!"; + return 0; + } + ``` + + + + #### Language button + + To enable language button, use the `[clipboardLanguageButton]="true"` input property on the `markdown` component, + directive or pipe. This will add a language button to the default clipboard button. + + ``` python + s = "Python syntax highlighting" + print s + ``` + + ``` javascript + const message = "JavaScript syntax highlighting"; + alert(message); + + const regexp = /foo/g; + + function findSequence(goal) { + function find(start, history) { + if (start == goal) + return history; + else if (start > goal) + return null; + else + return find(start + 5, "(" + history + " + 5)") || + find(start * 3, "(" + history + " * 3)"); + } + return find(1, "1"); + } + ``` + + ``` + No language indicated, so no syntax highlighting. + But let's throw in the default button behavior. + ``` + + + + #### Using global configuration + + You can provide a custom component to use globaly across your application with the `clipboardOptions` in the + `MarkdownModuleConfig` either with `provideMarkdown` provide-function for standalone components or + `MarkdownModule.forRoot()` for module configuration. + + ```typescript + // using the `provideMarkdown` function + provideMarkdown({ + clipboardOptions: { + provide: CLIPBOARD_OPTIONS, + useValue: { + buttonComponent: ClipboardButtonComponent, + }, + }, + }) + + // using `MarkdownModule` import + MarkdownModule.forRoot({ + clipboardOptions: { + provide: CLIPBOARD_OPTIONS, + useValue: { + buttonComponent: ClipboardButtonComponent, + }, + }, + }), + ``` + + + + #### Using a component + + You can also provide your custom component using the `clipboardButtonComponent` input property when using the + `clipboard` directive. + + ```typescript + import { Component } from '@angular/core'; + + @Component({ + selector: 'app-clipboard-button', + template: `<button (click)="onClick()">Copy</button>`, + }) + export class ClipboardButtonComponent { + onClick() { + alert('Copied to clipboard!'); + } + } + ``` + + ```typescript + import { ClipboardButtonComponent } from './clipboard-button-component'; + + @Component({ ... }) + export class ExampleComponent { + readonly clipboardButton = ClipboardButtonComponent; + } + ``` + + ```html + <markdown clipboard [clipboardButtonComponent]="clipboardButton"></markdown> + ``` + + + + + + + + #### Using ng-template + + Alternatively, the `clipboard` directive can be used in conjonction with `ng-template` to provide a custom button + implementation via the `clipboardButtonTemplate` input property on the `markdown` component. + + ```html + <ng-template #buttonTemplate> + <button (click)="onCopyToClipboard()">...</button> + </ng-template> + + <markdown clipboard [clipboardButtonTemplate]="buttonTemplate"></markdown> + ``` + +
+
diff --git a/demo/src/app/plugins/plugins.component.scss b/demo/src/app/plugins/plugins.component.scss new file mode 100644 index 0000000..3a9ff8c --- /dev/null +++ b/demo/src/app/plugins/plugins.component.scss @@ -0,0 +1,74 @@ +:host { + display: block; +} + +textarea { + min-height: 180px; +} + +// Clipboard toolbar styling + +.btn-clipboard-toolbar ::ng-deep .markdown-clipboard-toolbar { + top: 16px; + right: 16px; + opacity: 0; + transition: opacity 250ms ease-out; + + &.hover { + opacity: 1; + } +} + +// Clipboard default button styling + +.btn-clipboard-default ::ng-deep .markdown-clipboard-button { + background-color: rgba(255, 255, 255, 0.07); + border: none; + border-radius: 4px; + color: #ffffff; + cursor: pointer; + font-family: 'Google Sans', Helvetica, sans-serif; + font-size: 11px; + padding: 4px 8px; + min-width: 50px; + width: auto; + transition: all 250ms ease-out; + + &:hover, + &:focus { + background-color: rgba(255, 255, 255, 0.14); + } + + &:active { + transform: scale(0.95); + } + + &.copied { + background-color: rgba(0, 255, 0, 0.1); + color: #00ff00; + } +} + +// Clipboard template styling + +.btn-clipboard { + display: flex; + justify-content: center; + align-items: center; + background-color: #1e1e1e; + border: 1px solid #666666; + border-radius: 4px; + padding: 6px; + cursor: pointer; + transition: all 200ms ease-out; + + &:active, + &:hover { + border-color: #888888; + } + + &:active { + background-color: #3e3e3e; + transform: scale(0.95); + } +} diff --git a/demo/src/app/plugins/plugins.component.ts b/demo/src/app/plugins/plugins.component.ts new file mode 100644 index 0000000..f086f0f --- /dev/null +++ b/demo/src/app/plugins/plugins.component.ts @@ -0,0 +1,84 @@ +import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { FormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { CLIPBOARD_OPTIONS, MarkdownComponent, MermaidAPI } from 'ngx-markdown'; +import { ClipboardButtonComponent } from '@shared/clipboard-button'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-plugins', + templateUrl: './plugins.component.html', + styleUrls: ['./plugins.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + FlexModule, + FormsModule, + MarkdownComponent, + MatFormFieldModule, + MatInputModule, + ScrollspyNavLayoutComponent, + ], + providers: [ + { provide: CLIPBOARD_OPTIONS, useValue: {} }, + ] +}) +export default class PluginsComponent implements OnInit { + + readonly clipboardButton = ClipboardButtonComponent; + + emojiMarkdown = '# I :heart: @fsegurai/ngx-markdown'; + + katexMarkdown = + `#### \`katex\` directive example + +\`\`\`latex +f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi +\`\`\` + +$f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi$`; + + mermaidMarkdown = + `\`\`\`mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +\`\`\``; + + mermaidOptions: MermaidAPI.MermaidConfig = { + fontFamily: 'inherit', + theme: 'dark', + }; + + headings: Element[] | undefined; + + constructor( + private elementRef: ElementRef, + private snackbar: MatSnackBar, + ) { + } + + ngOnInit(): void { + this.setHeadings(); + } + + onCopyToClipboard(): void { + this.snackbar.open('Copied to clipboard via ng-template!', undefined, { + duration: 3000, + horizontalPosition: 'right', + verticalPosition: 'bottom', + }); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach(x => headings.push(x)); + this.headings = headings; + } +} diff --git a/demo/src/app/plugins/remote/emoji.html b/demo/src/app/plugins/remote/emoji.html new file mode 100644 index 0000000..e31380f --- /dev/null +++ b/demo/src/app/plugins/remote/emoji.html @@ -0,0 +1,3 @@ + + I :heart: ngx-markdown + \ No newline at end of file diff --git a/demo/src/app/plugins/remote/katex-options.html b/demo/src/app/plugins/remote/katex-options.html new file mode 100644 index 0000000..62193fe --- /dev/null +++ b/demo/src/app/plugins/remote/katex-options.html @@ -0,0 +1,5 @@ + + diff --git a/demo/src/app/plugins/remote/katex.html b/demo/src/app/plugins/remote/katex.html new file mode 100644 index 0000000..feee621 --- /dev/null +++ b/demo/src/app/plugins/remote/katex.html @@ -0,0 +1,4 @@ + + diff --git a/demo/src/app/plugins/remote/line-highlight.html b/demo/src/app/plugins/remote/line-highlight.html new file mode 100644 index 0000000..7eeae48 --- /dev/null +++ b/demo/src/app/plugins/remote/line-highlight.html @@ -0,0 +1,6 @@ + + diff --git a/demo/src/app/plugins/remote/line-numbers.html b/demo/src/app/plugins/remote/line-numbers.html new file mode 100644 index 0000000..fd915f2 --- /dev/null +++ b/demo/src/app/plugins/remote/line-numbers.html @@ -0,0 +1,5 @@ + + diff --git a/demo/src/app/plugins/remote/mermaid-options.html b/demo/src/app/plugins/remote/mermaid-options.html new file mode 100644 index 0000000..71fd4d7 --- /dev/null +++ b/demo/src/app/plugins/remote/mermaid-options.html @@ -0,0 +1,5 @@ + + diff --git a/demo/src/app/plugins/remote/mermaid.html b/demo/src/app/plugins/remote/mermaid.html new file mode 100644 index 0000000..8df0d2a --- /dev/null +++ b/demo/src/app/plugins/remote/mermaid.html @@ -0,0 +1,4 @@ + + diff --git a/demo/src/app/plugins/remote/non-root-user-with-output.bash b/demo/src/app/plugins/remote/non-root-user-with-output.bash new file mode 100644 index 0000000..2f11cd0 --- /dev/null +++ b/demo/src/app/plugins/remote/non-root-user-with-output.bash @@ -0,0 +1,8 @@ +pwd +/usr/home/chris/bin +ls -la +total 2 +drwxr-xr-x 2 chris chris 11 Jan 10 16:48 . +drwxr--r-x 45 chris chris 92 Feb 14 11:10 .. +-rwxr-xr-x 1 chris chris 444 Aug 25 2013 backup +-rwxr-xr-x 1 chris chris 642 Jan 17 14:42 deploy \ No newline at end of file diff --git a/demo/src/app/plugins/remote/root-user-without-output.bash b/demo/src/app/plugins/remote/root-user-without-output.bash new file mode 100644 index 0000000..daefbe6 --- /dev/null +++ b/demo/src/app/plugins/remote/root-user-without-output.bash @@ -0,0 +1,3 @@ +cd /usr/local/etc +cp php.ini php.ini.bak +vi php.ini \ No newline at end of file diff --git a/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell b/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell new file mode 100644 index 0000000..10876d6 --- /dev/null +++ b/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell @@ -0,0 +1,4 @@ +Get-Date +(out) +(out)Sunday, November 7, 2021 8:19:21 PM +(out) \ No newline at end of file diff --git a/demo/src/app/plugins/remote/windows-powershell-with-output.powershell b/demo/src/app/plugins/remote/windows-powershell-with-output.powershell new file mode 100644 index 0000000..ab8423a --- /dev/null +++ b/demo/src/app/plugins/remote/windows-powershell-with-output.powershell @@ -0,0 +1,19 @@ +dir + + + Directory: C:\Users\Chris + + +Mode LastWriteTime Length Name +---- ------------- ------ ---- +d-r-- 10/14/2015 5:06 PM Contacts +d-r-- 12/12/2015 1:47 PM Desktop +d-r-- 11/4/2015 7:59 PM Documents +d-r-- 10/14/2015 5:06 PM Downloads +d-r-- 10/14/2015 5:06 PM Favorites +d-r-- 10/14/2015 5:06 PM Links +d-r-- 10/14/2015 5:06 PM Music +d-r-- 10/14/2015 5:06 PM Pictures +d-r-- 10/14/2015 5:06 PM Saved Games +d-r-- 10/14/2015 5:06 PM Searches +d-r-- 10/14/2015 5:06 PM Videos \ No newline at end of file diff --git a/demo/src/app/rerender/rerender.component.html b/demo/src/app/rerender/rerender.component.html new file mode 100644 index 0000000..55802b2 --- /dev/null +++ b/demo/src/app/rerender/rerender.component.html @@ -0,0 +1,51 @@ + +

Re-render

+ + + In some situations, you might need to re-render markdown after making changes. If you've updated the text this would + be done automatically, however if the changes are internal to the library such as rendering options, you will need + to inform the `MarkdownService` that it needs to update. + + To do so, inject the `MarkdownService` and call the `reload()` function as shown below. + + ```typescript + import { MarkdownService } from 'ngx-markdown'; + + constructor( + private markdownService: MarkdownService, + ) { } + + update() { + this.markdownService.reload(); + } + ``` + + +
+

Example

+ + + The example below will apply the `style` attribute on heading elements to customize their colors. This requires + markdown to be reloaded because it updates the renderer programmatically to override the `heading` token. + + Although this could be done simply with CSS variables, this is only for demo purposes. + + +
+
+
+ + CSS Color + + + + + + +
+ + +
+
+
+
diff --git a/demo/src/app/rerender/rerender.component.scss b/demo/src/app/rerender/rerender.component.scss new file mode 100644 index 0000000..347217d --- /dev/null +++ b/demo/src/app/rerender/rerender.component.scss @@ -0,0 +1,7 @@ +:host { + display: block; +} + +textarea { + min-height: 340px; +} diff --git a/demo/src/app/rerender/rerender.component.ts b/demo/src/app/rerender/rerender.component.ts new file mode 100644 index 0000000..6f56c68 --- /dev/null +++ b/demo/src/app/rerender/rerender.component.ts @@ -0,0 +1,109 @@ +import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit } from '@angular/core'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { FormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MarkdownComponent, MarkdownService, MarkedToken } from 'ngx-markdown'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-rerender', + templateUrl: './rerender.component.html', + styleUrls: ['./rerender.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + FlexModule, + FormsModule, + MarkdownComponent, + MatFormFieldModule, + MatInputModule, + ScrollspyNavLayoutComponent, + ] +}) +export default class RerenderComponent implements OnInit, OnDestroy { + + // property to handle override as per marked documentation, if a renderer + // function returns `false` it will fall back to previous implementation + headings: Element[] | undefined; + markdown = `## Markdown rules! +--- + +### Syntax highlight +\`\`\`typescript +const language = 'typescript'; +\`\`\` + +### Lists +1. Ordered list +2. Another bullet point + - Unordered list + - Another unordered bullet point + +### Blockquote +> Blockquote to the max`; + // https://marked.js.org/using_pro#renderer + private overrideEnabled = false; + + constructor( + private elementRef: ElementRef, + private markdownService: MarkdownService, + ) { + } + + private _accentColor = ''; + + get accentColor(): string { + return this._accentColor; + } + + set accentColor(value: string) { + if (this._accentColor === value) { + return; + } + this._accentColor = value; + this.changeAccentColor(); + } + + ngOnInit(): void { + this.setHeadings(); + } + + ngOnDestroy(): void { + this.resetRenderer(); + } + + private changeAccentColor(): void { + const styleAttribute = this.accentColor + ? ` style="color: ${this.accentColor}"` + : ''; + + this.overrideRenderer(styleAttribute); + + this.markdownService.reload(); + } + + private overrideRenderer(styleAttribute: string): void { + this.overrideEnabled = true; + + this.markdownService.renderer.heading = ({text, depth}: MarkedToken.Heading): string => { + if(this.overrideEnabled) { + const parsedText = this.markdownService.parseInline(text); // Parse inline Markdown text to HTML + return `${parsedText}`; + } + + return false as unknown as string; + } + } + + private resetRenderer(): void { + this.overrideEnabled = false; + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach(x => headings.push(x)); + this.headings = headings; + } +} diff --git a/demo/src/app/shared/anchor/anchor.service.ts b/demo/src/app/shared/anchor/anchor.service.ts new file mode 100644 index 0000000..65901af --- /dev/null +++ b/demo/src/app/shared/anchor/anchor.service.ts @@ -0,0 +1,130 @@ +import { LocationStrategy, ViewportScroller } from '@angular/common'; +import { Injectable } from '@angular/core'; +import { ActivatedRoute, Router, UrlTree } from '@angular/router'; + +/** + * Service to handle links generated through markdown parsing. + * #### Using `RouterModule` + * The following `RouterModule` configuration is required to enabled anchors + * to be scrolled to when URL has a fragment via the Angular router: + * ``` + * RouterModule.forRoot(routes, { + * anchorScrolling: 'enabled', + * scrollOffset: [0, 64], // (optional) + * scrollPositionRestoration: 'enabled', + * }) + * ``` + * #### Using `provideRouter` + * The following `provideRouter` configuration is required to enabled anchors + * to be scrolled to when URL has a fragment via the Angular router: + * ``` + * provideRouter(appRoutes, withInMemoryScrolling({ + * anchorScrolling: 'enabled', + * scrollPositionRestoration: 'enabled', + * })) + * ``` + * To set the `scrollOffset` when scrolling to an element use the + * `AnchorService.setOffset()` in your `AppComponent` (optional): + * ``` + * constructor(private anchorService: AnchorService) { + * this.anchorService.setOffset([0, 64]); + * } + * ``` + */ +@Injectable({ providedIn: 'root' }) +export class AnchorService { + + constructor( + private locationStrategy: LocationStrategy, + private route: ActivatedRoute, + private router: Router, + private viewportScroller: ViewportScroller, + ) { + } + + /** + * Intercept clicks on `HTMLAnchorElement` to use `Router.navigate()` + * when `href` is an internal URL not handled by `routerLink` directive. + * @param event The event to evaluated for link click. + */ + interceptClick(event: Event): void { + const element = event.target; + if (!(element instanceof HTMLAnchorElement)) { + return; + } + const href = element.getAttribute('href') || ''; + if (this.isExternalUrl(href) || this.isRouterLink(element)) { + return; + } + this.navigate(href); + event.preventDefault(); + } + + /** + * Navigate to URL using angular `Router`. + * @param url Destination path to navigate to. + * @param replaceUrl If `true`, replaces current state in browser history. + */ + navigate(url: string, replaceUrl = false): void { + const urlTree = this.getUrlTree(url); + this.router.navigated = false; + void this.router.navigateByUrl(urlTree, { replaceUrl }); + } + + /** + * Transform a relative URL to its absolute representation according to current router state. + * @param url Relative URL path. + * @return Absolute URL based on the current route. + */ + normalizeExternalUrl(url: string): string { + if (this.isExternalUrl(url)) { + return url; + } + const urlTree = this.getUrlTree(url); + const serializedUrl = this.router.serializeUrl(urlTree); + return this.locationStrategy.prepareExternalUrl(serializedUrl); + } + + /** + * Scroll view to the anchor corresponding to current route fragment. + */ + scrollToAnchor(): void { + const url = this.router.parseUrl(this.router.url); + if (url.fragment) { + this.navigate(this.router.url, true); + } + } + + /** + * Configures the top offset used when scrolling to an anchor. + * @param offset A position in screen coordinates (a tuple with x and y values) + * or a function that returns the top offset position. + */ + setOffset(...params: Parameters): void { + this.viewportScroller.setOffset(...params); + } + + private getUrlTree(url: string): UrlTree { + const urlPath = this.stripFragment(url) || this.stripFragment(this.router.url); + const urlFragment = this.router.parseUrl(url).fragment || undefined; + return this.router.createUrlTree([urlPath], { relativeTo: this.route, fragment: urlFragment }); + } + + private isExternalUrl(url: string): boolean { + // Check if the URL starts with any of the following protocols: + try { + const parsedUrl = new URL(url, window.location.origin); + return ['http:', 'https:', 'ftp:', 'ftps:', 'mailto:', 'tel:', 'sms:', 'geo:', 'file:', 'data:'].includes(parsedUrl.protocol); + } catch (e) { + return false; + } + } + + private isRouterLink(element: HTMLAnchorElement): boolean { + return element.getAttributeNames().some(n => n.startsWith('_ngcontent')); + } + + private stripFragment(url: string): string { + return /[^#]*/.exec(url)![0]; + } +} diff --git a/demo/src/app/shared/anchor/index.ts b/demo/src/app/shared/anchor/index.ts new file mode 100644 index 0000000..c78770b --- /dev/null +++ b/demo/src/app/shared/anchor/index.ts @@ -0,0 +1 @@ +export * from './anchor.service'; diff --git a/demo/src/app/shared/clipboard-button/clipboard-button.component.html b/demo/src/app/shared/clipboard-button/clipboard-button.component.html new file mode 100644 index 0000000..14c5705 --- /dev/null +++ b/demo/src/app/shared/clipboard-button/clipboard-button.component.html @@ -0,0 +1,6 @@ + diff --git a/demo/src/app/shared/clipboard-button/clipboard-button.component.scss b/demo/src/app/shared/clipboard-button/clipboard-button.component.scss new file mode 100644 index 0000000..ac559a7 --- /dev/null +++ b/demo/src/app/shared/clipboard-button/clipboard-button.component.scss @@ -0,0 +1,7 @@ +.btn-clipboard { + &.mat-mdc-icon-button { + height: 30px; + width: 30px; + padding: 0; + } +} diff --git a/demo/src/app/shared/clipboard-button/clipboard-button.component.ts b/demo/src/app/shared/clipboard-button/clipboard-button.component.ts new file mode 100644 index 0000000..c7a5c19 --- /dev/null +++ b/demo/src/app/shared/clipboard-button/clipboard-button.component.ts @@ -0,0 +1,26 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatSnackBar } from '@angular/material/snack-bar'; + +@Component({ + selector: 'app-clipboard-button', + templateUrl: './clipboard-button.component.html', + styleUrls: ['./clipboard-button.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [MatButtonModule] +}) +export class ClipboardButtonComponent { + + constructor( + private snackbar: MatSnackBar, + ) { + } + + onCopyToClipboard(): void { + this.snackbar.open('Copied to clipboard via component!', undefined, { + duration: 3000, + horizontalPosition: 'right', + verticalPosition: 'bottom', + }); + } +} diff --git a/demo/src/app/shared/clipboard-button/index.ts b/demo/src/app/shared/clipboard-button/index.ts new file mode 100644 index 0000000..59b4fe1 --- /dev/null +++ b/demo/src/app/shared/clipboard-button/index.ts @@ -0,0 +1 @@ +export * from './clipboard-button.component'; diff --git a/demo/src/app/shared/debounce/debounce.ts b/demo/src/app/shared/debounce/debounce.ts new file mode 100644 index 0000000..7c57c31 --- /dev/null +++ b/demo/src/app/shared/debounce/debounce.ts @@ -0,0 +1,17 @@ +/** + * Debounce function to avoid multiple calls to the same function + * @param func - Function to be debounced + * @param delay - Delay in milliseconds + */ +// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type +export function debounce(func: Function, delay: number) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let debounceTimer: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (...args: any[]) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + clearTimeout(debounceTimer); + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument + debounceTimer = setTimeout(() => func(...args), delay); + }; +} diff --git a/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts b/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts new file mode 100644 index 0000000..b21c7a5 --- /dev/null +++ b/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts @@ -0,0 +1,19 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { share } from 'rxjs/operators'; + +@Injectable({ providedIn: 'root' }) +export class HttpRawLoaderService { + + constructor( + private httpClient: HttpClient, + ) { + } + + get(url: string): Observable { + return this.httpClient + .get(url, { responseType: 'text' }) + .pipe(share()); + } +} diff --git a/demo/src/app/shared/http-raw-loader/index.ts b/demo/src/app/shared/http-raw-loader/index.ts new file mode 100644 index 0000000..e60d0fb --- /dev/null +++ b/demo/src/app/shared/http-raw-loader/index.ts @@ -0,0 +1 @@ +export * from './http-raw-loader.service'; diff --git a/demo/src/app/shared/scrollspy-nav-layout/index.ts b/demo/src/app/shared/scrollspy-nav-layout/index.ts new file mode 100644 index 0000000..244e2df --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav-layout/index.ts @@ -0,0 +1 @@ +export * from './scrollspy-nav-layout.component'; diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.animation.ts b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.animation.ts new file mode 100644 index 0000000..3de8c45 --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.animation.ts @@ -0,0 +1,12 @@ +import { animate, style, transition, trigger } from '@angular/animations'; + +export const ZOOM_ANIMATION = trigger('zoomAnimation', [ + transition('void => *', [ + style({ opacity: 0, transform: 'translateY(32px) scale(0)' }), + animate('400ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'translateY(0) scale(1)' })), + ]), + transition('* => void', [ + style({ opacity: 1, transform: 'translateY(0)' }), + animate('300ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 0, transform: 'translateY(32px)' })), + ]), +]); diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html new file mode 100644 index 0000000..94cc395 --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html @@ -0,0 +1,24 @@ +
+
+ + + +
+
+ + +
+
diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.scss b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.scss new file mode 100644 index 0000000..47a59b7 --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.scss @@ -0,0 +1,28 @@ +.footer { + margin: 32px 0 8px; + + &-text { + display: block; + font-size: 13px; + padding-top: 4px; + } +} + +.sticky { + position: sticky; + top: 80px; +} + +.scrollup-button { + margin: 14px; + + &--fixed { + position: fixed; + bottom: 16px; + right: 16px; + } + + img { + display: flex; + } +} diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts new file mode 100644 index 0000000..dbd615e --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts @@ -0,0 +1,43 @@ +import { NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, Component, HostListener, Input } from '@angular/core'; +import { ExtendedModule } from '@angular/flex-layout/extended'; +import { FlexModule } from '@angular/flex-layout/flex'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDividerModule } from '@angular/material/divider'; +import { MarkdownComponent } from 'ngx-markdown'; +import { ScrollspyNavComponent } from '@shared/scrollspy-nav'; +import { ZOOM_ANIMATION } from './scrollspy-nav-layout.animation'; + +@Component({ + animations: [ZOOM_ANIMATION], + selector: 'app-scrollspy-nav-layout', + templateUrl: './scrollspy-nav-layout.component.html', + styleUrls: ['./scrollspy-nav-layout.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + ExtendedModule, + FlexModule, + MarkdownComponent, + MatButtonModule, + MatDividerModule, + NgIf, + ScrollspyNavComponent, + ] +}) +export class ScrollspyNavLayoutComponent { + + @Input() + headings: Element[] | undefined; + + showScrollUpButton = false; + + @HostListener('window:scroll') + onWindowScroll(): void { + this.showScrollUpButton = Math.ceil(window.scrollY) > 64; + } + + onScrollUp(): void { + window.scrollTo(0, 0); + location.hash = ''; + } +} diff --git a/demo/src/app/shared/scrollspy-nav/index.ts b/demo/src/app/shared/scrollspy-nav/index.ts new file mode 100644 index 0000000..2c95ee7 --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav/index.ts @@ -0,0 +1 @@ +export * from './scrollspy-nav.component'; diff --git a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.html b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.html new file mode 100644 index 0000000..d85692f --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.html @@ -0,0 +1,5 @@ + diff --git a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.scss b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.scss new file mode 100644 index 0000000..37ff08b --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.scss @@ -0,0 +1,23 @@ +ul.scrollspy-nav { + padding: 0; + + li { + border-radius: 2px; + font-size: 14px; + font-weight: 500; + list-style: none; + padding: 4px 0 4px 16px; + + > a, + > a:active, + > a:focus, + > a:hover { + text-decoration: none; + } + + &:not(.active) { + border-color: transparent; + opacity: 0.6; + } + } +} \ No newline at end of file diff --git a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.theme.scss b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.theme.scss new file mode 100644 index 0000000..a100bfe --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.theme.scss @@ -0,0 +1,26 @@ +@use 'sass:map'; +@use '@angular/material' as mat; + +@mixin theme($theme) { + $color-config: mat.m2-get-color-config($theme); + + $accent-palette: map.get($color-config, 'accent'); + $accent-color: mat.m2-get-color-from-palette($accent-palette, 'default'); + $foreground-palette: map.get($color-config, 'foreground'); + $foreground-text: map.get($foreground-palette, 'text'); + + ul.scrollspy-nav { + li { + border-left: 2px solid $accent-color; + box-shadow: inset 1px 0 0 $accent-color; + + &:not(.active) { + box-shadow: inset 1px 0 0 rgba($foreground-text, .21); + + a:not(:hover) { + color: $foreground-text; + } + } + } + } +} diff --git a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts new file mode 100644 index 0000000..673f411 --- /dev/null +++ b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts @@ -0,0 +1,90 @@ +import { NgFor } from '@angular/common'; +import { + ChangeDetectionStrategy, + Component, + ElementRef, + Input, + NgZone, + OnChanges, + OnDestroy, + SimpleChanges, +} from '@angular/core'; +import { RouterLink } from '@angular/router'; +import Gumshoe from 'gumshoejs'; +import { first } from 'rxjs/operators'; + +@Component({ + selector: 'app-scrollspy-nav', + templateUrl: './scrollspy-nav.component.html', + styleUrls: ['./scrollspy-nav.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + NgFor, + RouterLink, + ] +}) +export class ScrollspyNavComponent implements OnChanges, OnDestroy { + + @Input() + headings: Element[] | undefined; + + private scrollSpy: Gumshoe | undefined; + + constructor( + private elementRef: ElementRef, + private zone: NgZone, + ) { + } + + /** + * Handle changes to the `headings` input. + * @param changes - The changes to the input properties. + */ + ngOnChanges(changes: SimpleChanges): void { + if (changes['headings']?.currentValue) { + this.setScrollSpy(); + } + } + + /** + * Destroy the scroll spy instance when the component is destroyed. + */ + ngOnDestroy(): void { + this.destroyScrollSpy(); + } + + /** + * Destroy the current scroll spy instance. + */ + destroyScrollSpy(): void { + if (this.scrollSpy) { + this.scrollSpy.destroy(); + } + } + + /** + * Set up the scroll spy for the current component. + * This method should be called after the headings have been initialized. + */ + setScrollSpy(): void { + if (this.scrollSpy) { + this.scrollSpy.setup(); + return; + } + this.zone.onStable + .pipe(first()) + .subscribe(() => { + const hostElement = this.elementRef.nativeElement; + const linkSelector = `${hostElement.tagName}.${hostElement.className} a`; + this.scrollSpy = new Gumshoe(linkSelector, { offset: 64, reflow: true }); + }); + } + + /** + * Sanitize HTML content by removing all HTML tags (any content starting and ending with <>) and returning only text content. + * @param html - HTML content to sanitize. + */ + sanitizeInnerHTML(html: string): string { + return html.replace(/<[^>]+>/g, ''); + } +} diff --git a/demo/src/app/syntax-highlight/remote/for-loop.js b/demo/src/app/syntax-highlight/remote/for-loop.js new file mode 100644 index 0000000..a8dfcfc --- /dev/null +++ b/demo/src/app/syntax-highlight/remote/for-loop.js @@ -0,0 +1,4 @@ +for (let step = 0; step < 5; step++) { + // Runs 5 times, with values of step 0 through 4. + console.log('Walking east one step'); +} \ No newline at end of file diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.html b/demo/src/app/syntax-highlight/syntax-highlight.component.html new file mode 100644 index 0000000..dcc4443 --- /dev/null +++ b/demo/src/app/syntax-highlight/syntax-highlight.component.html @@ -0,0 +1,77 @@ + +

Syntax Highlight

+ +
+

Auto-Detect

+ + + When using the `src` input property to load file remotely, language for syntax highlight will be auto-detected + based on the loaded file extension. + + The following example... + + ```html + <markdown [src]="'app/syntax-highlight/remote/for-loop.js'"></markdown> + ``` + + Would render with Javascript syntax highlight based on the `js` file extension. + + + +
+ +
+

Interpolation

+ + + > :bulb: Using interpolation requires the uses of `ngPreserveWhitespaces` to keep indentation and spaces untouched + during compilation. + + When using [interpolation](https://angular.io/guide/template-syntax#interpolation-), the language for code block + must be specified after the first three backticks. + + ````html + <markdown ngPreserveWhitespaces> + ```typescript + export function greetings(name: string): string { + return 'Hello ' + name; + } + ``` + </markdown> + ```` + ##### _* Characters such as `<, >, {, }` directly written in the HTML template file must be escaped + so that the compiler doesn't try to bind it as regular Angular code_. + + Would render with TypeScript syntax highlight based on the specified `typescript` language. + + + + ```typescript + export function greetings(name: string): string { + return 'Hello ' + name; + } + ``` + +
+ +
+

Language Pipe

+ + + When using the `markdown` pipe, you can specify the syntax highlight language by chaining the `language` pipe. + + For example, having the python code `print('hello world')` into the `myValue` variable could be parsed specifying + the language as follow... + + ```` + ```html + <div [innerHTML]="myValue | language : 'python' | markdown | async"><div> + ``` + ```` + + Would render with Python syntax highlight as specified with the `language` pipe in front of the `markdown` pipe. + + +
+
+
diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.scss b/demo/src/app/syntax-highlight/syntax-highlight.component.scss new file mode 100644 index 0000000..5d4e87f --- /dev/null +++ b/demo/src/app/syntax-highlight/syntax-highlight.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.ts b/demo/src/app/syntax-highlight/syntax-highlight.component.ts new file mode 100644 index 0000000..11c2557 --- /dev/null +++ b/demo/src/app/syntax-highlight/syntax-highlight.component.ts @@ -0,0 +1,41 @@ +import { AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; +import { LanguagePipe, MarkdownComponent, MarkdownPipe } from 'ngx-markdown'; +import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; + +@Component({ + selector: 'app-syntax-highlight', + templateUrl: './syntax-highlight.component.html', + styleUrls: ['./syntax-highlight.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + AsyncPipe, + LanguagePipe, + MarkdownComponent, + MarkdownPipe, + ScrollspyNavLayoutComponent, + ] +}) +export default class SyntaxHighlightComponent implements OnInit { + + headings: Element[] | undefined; + + myValue = 'print(\'hello-world\')'; + + constructor( + private elementRef: ElementRef, + ) { + } + + ngOnInit(): void { + this.setHeadings(); + } + + private setHeadings(): void { + const headings: Element[] = []; + this.elementRef.nativeElement + .querySelectorAll('h2') + .forEach(x => headings.push(x)); + this.headings = headings; + } +} diff --git a/demo/src/global.d.ts b/demo/src/global.d.ts new file mode 100644 index 0000000..012583e --- /dev/null +++ b/demo/src/global.d.ts @@ -0,0 +1,19 @@ +declare module 'gumshoejs' { + namespace Gumshoe { + } + + class Gumshoe { + constructor(selector: string, options: GumshoeOptions); + + destroy(): void; + + setup(): void; + } + + class GumshoeOptions { + offset?: number; + reflow?: boolean; + } + + export = Gumshoe; +} diff --git a/demo/src/index.html b/demo/src/index.html new file mode 100644 index 0000000..069ee65 --- /dev/null +++ b/demo/src/index.html @@ -0,0 +1,14 @@ + + + + + @fsegurai/ngx-markdown | Demo + + + + + + + + + diff --git a/demo/src/main.ts b/demo/src/main.ts new file mode 100644 index 0000000..cd38b8d --- /dev/null +++ b/demo/src/main.ts @@ -0,0 +1,8 @@ +import './prism'; +import 'hammerjs'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from '@app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch(err => console.error(err)); diff --git a/demo/src/prism.ts b/demo/src/prism.ts new file mode 100644 index 0000000..66573af --- /dev/null +++ b/demo/src/prism.ts @@ -0,0 +1,89 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ + +/** + * Prism language extension + * https://prismjs.com/extending.html + */ + +declare let Prism: any; + +Prism.languages.typescript = Prism.languages.extend('typescript', { + + 'class-name': [ + // existing pattern + Prism.languages.typescript['class-name'], + + // constructor(private foo:Foo, bar: Bar) { } + // function foo(): Bar {} + // const foo = (): Bar => {}; + // const foo = (): void => {}; + // foo: Bar = {}; + { + pattern: /(:)([^,()={][A-Z]{1}[^,()={]+)/, + lookbehind: true, + inside: Prism.languages.typescript, + }, + + // new Foo(); + // new Foo.Bar(); + { + pattern: /\b(new\s.*\.|new\s)([^(]+)/, + lookbehind: true, + }, + + // import { foo, bar } from 'baz'; + { + pattern: /(import\s*{)\s*([^}]*)/, + lookbehind: true, + inside: { + 'import-member': /([^,]+)/, + punctuation: /(,)/, + }, + }, + + // TODO: not correctly highlighted + // - `Baz` in `export class Foo implements Bar, Baz` + // - `void` in `func: (foo: string) => void = (foo) => {};` + // - `Foo` in `Foo.bar()` when Foo is a class + + // `Baz` in `export class Foo implements Bar, Baz` + { + pattern: /(implements\s)([A-Za-z0-9_,\s]+)/, + lookbehind: true, + }, + + // `void` in `func: (foo: string) => void = (foo) => {};` + { + pattern: /(=>\s)([A-Za-z0-9_,\s]+)/, + lookbehind: true, + }, + + // `Foo` in `Foo.bar()` when Foo is a class + { + pattern: /([A-Za-z0-9_]+)(\.)/, + lookbehind: true, + }, + ], + + function: [ + // existing pattern + Prism.languages.typescript.function, + + // foo: () => Bar; + { + pattern: /\b\S+\s*[=]\s*\(.*\).*/, + inside: Prism.languages.typescript, + }, + ], + + keyword: [ + // existing pattern + ...Prism.languages.typescript.keyword, + + // constructor() + /\b(?:constructor)\b/, + ], +}); + +Prism.languages.ts = Prism.languages.typescript; diff --git a/demo/src/scss/_dark-theme.scss b/demo/src/scss/_dark-theme.scss new file mode 100644 index 0000000..540dbc5 --- /dev/null +++ b/demo/src/scss/_dark-theme.scss @@ -0,0 +1,14 @@ +@use '@angular/material' as mat; + +$dark-primary: mat.m2-define-palette(mat.$m2-grey-palette, 900, 300, 700); +$dark-accent: mat.m2-define-palette(mat.$m2-light-blue-palette); +$dark-warn: mat.m2-define-palette(mat.$m2-red-palette); + +$theme: mat.m2-define-dark-theme(( + color: ( + primary: $dark-primary, + accent: $dark-accent, + warn: $dark-warn, + ), + density: 0, +)); diff --git a/demo/src/scss/_light-theme.scss b/demo/src/scss/_light-theme.scss new file mode 100644 index 0000000..f4539fc --- /dev/null +++ b/demo/src/scss/_light-theme.scss @@ -0,0 +1,51 @@ +@use 'sass:map'; +@use '@angular/material' as mat; + +$dark-text: map.get(mat.$m2-light-theme-foreground-palette, text); +$light-text: map.get(mat.$m2-dark-theme-foreground-palette, text); + +$primary-palette: ( + 50 : #d6ebff, + 100 : #8ac4ff, + 200 : #52a8ff, + 300 : #0a85ff, + 400 : #0075eb, + 500 : #0066cc, + 600 : #0057ad, + 700 : #00478f, + 800 : #003870, + 900 : #002952, + A100 : #cce5ff, + A200 : #66b2ff, + A400 : #007fff, + A700 : #0073e6, + contrast: ( + 50 : $dark-text, + 100 : $dark-text, + 200 : $dark-text, + 300 : $light-text, + 400 : $light-text, + 500 : $light-text, + 600 : $light-text, + 700 : $light-text, + 800 : $light-text, + 900 : $light-text, + A100 : $dark-text, + A200 : $dark-text, + A400 : $light-text, + A700 : $light-text, + ) +); + +$light-primary: mat.m2-define-palette($primary-palette); +$light-accent: mat.m2-define-palette($primary-palette); +$light-warn: mat.m2-define-palette(mat.$m2-red-palette); + +$theme: mat.m2-define-light-theme(( + color: ( + primary: $light-primary, + accent: $light-accent, + warn: $light-warn, + ), + density: 0, +)); diff --git a/demo/src/scss/_typography.scss b/demo/src/scss/_typography.scss new file mode 100644 index 0000000..d5b81ed --- /dev/null +++ b/demo/src/scss/_typography.scss @@ -0,0 +1,15 @@ +@use '@angular/material' as mat; + +$font-family: "Google Sans", "Helvetica Neue", sans-serif; +$body-1: mat.m2-define-typography-level($font-size: 15px); + +$mat-typography-config: mat.m2-define-typography-config( + $font-family, + $body-1, +); + +@mixin typography-styles { + body { + font-family: $font-family; + } +} diff --git a/demo/src/scss/_utils.scss b/demo/src/scss/_utils.scss new file mode 100644 index 0000000..3f935e4 --- /dev/null +++ b/demo/src/scss/_utils.scss @@ -0,0 +1,9 @@ +@use 'sass:math'; +@use 'sass:color'; + +@function soften-color($color, $percent) { + @if color.channel($color, "lightness", $space: hsl) < 50% { + @return color.adjust($color, $lightness: $percent); + } + @return color.adjust($color, $lightness: - math.div($percent, 2)); +} diff --git a/demo/src/scss/material-theme.scss b/demo/src/scss/material-theme.scss new file mode 100644 index 0000000..855d115 --- /dev/null +++ b/demo/src/scss/material-theme.scss @@ -0,0 +1,90 @@ +@use 'sass:map'; +@use '@angular/material' as mat; + +@use 'typography' as typography; +@use 'utils' as utils; + +@use 'light-theme' as light-theme; +@use 'dark-theme' as dark-theme; + +@use '../app/app.component.theme' as app-component; +@use '../app/shared/scrollspy-nav/scrollspy-nav.component.theme' as scrollspy-nav-component; + +@mixin native-element-theme($theme) { + $color-config: mat.m2-get-color-config($theme); + + $primary-palette: map.get($color-config, 'primary'); + $accent-palette: map.get($color-config, 'accent'); + $foreground-palette: map.get($color-config, 'foreground'); + + a, + a:active, + a:focus, + a:visited { + color: mat.m2-get-color-from-palette($accent-palette, A400); + text-decoration: none; + } + + a:hover { + text-decoration: underline; + } + + blockquote { + background: mat.m2-get-color-from-palette($primary-palette, 300, 0.14); + border-left: 4px solid mat.m2-get-color-from-palette($accent-palette, 'default'); + border-radius: 4px; + color: utils.soften-color(mat.m2-get-color-from-palette($foreground-palette, 'base'), 40%); + margin: 20px 0; + padding: 1px 20px; + } + + code:not([class*="language-"]) { + background: mat.m2-get-color-from-palette($foreground-palette, 'secondary-text', 0.07); + border-radius: 3px; + font-size: 0.94em; + padding: 0px 6px 2px; + overflow-wrap: break-word; + } + + hr { + border-color: mat.m2-get-color-from-palette($foreground-palette, 'divider'); + border-style: solid; + border-width: 1px 0 0 0; + } + + table { + th { + color: mat.m2-get-color-from-palette($foreground-palette, 'secondary-text'); + } + + td, + th { + border-bottom-color: mat.m2-get-color-from-palette($foreground-palette, 'divider'); + } + } +} + +@mixin theme($theme, $name) { + .#{$name}-theme { + // native elements + @include native-element-theme($theme); + + // all components + @include mat.all-component-themes($theme); + + // app components + @include app-component.theme($theme); + @include scrollspy-nav-component.theme($theme); + } +} + +// common theme styling +@include typography.typography-styles; + +// material core +@include mat.elevation-classes(); +@include mat.app-background(); + +// themes +@include theme(light-theme.$theme, 'light'); +@include theme(dark-theme.$theme, 'dark'); diff --git a/demo/src/scss/prism-theme.scss b/demo/src/scss/prism-theme.scss new file mode 100644 index 0000000..18dc496 --- /dev/null +++ b/demo/src/scss/prism-theme.scss @@ -0,0 +1,208 @@ +/** + * prism.js Visual Studio Code Theme + * @author Visual Studio Code + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #9CDCFE; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ + +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + border-radius: 4px; + background: #1E1E1E; + font-size: 14px; +} + +/* Inline code */ + +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #6A9955; +} + +.token.punctuation { + color: #CCC; +} + +.token.tag, +.token.namespace, +.token.deleted { + color: #569CD6; +} + +.token.attr-name { + color: #9CDCFE; +} + +.token.function-name { + color: #6196cc; +} + +.token.boolean { + color: #569CD6; +} + +.token.number { + color: #B5CEA8; +} + +.token.function { + color: #DCDCAA; +} + +.token.property, +.token.constant, +.token.symbol { + color: #51b6c4; +} + +.token.builtin, +.token.class-name { + color: #4EC9B0; +} + +.token.selector, +.token.important, +.token.atrule, +.token.keyword { + color: #C586C0; +} + +.token.variable, +.token.string, +.token.char, +.token.attr-value, +.token.variable { + color: #CE9169; +} + +.token.regex { + color: #d16969; +} + +.token.operator { + color: #D4D4D4; +} + +.token.entity, +.token.url { + color: #67cdcc; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +/* diff */ + +.language-diff { + + .token.inserted { + color: #8fce00; + } +} + +/* Html */ + +.language-html :not(.token) { + color: #d4d4d4; +} + +.language-html .token.punctuation { + color: #808080; +} + +/* TypeScript, Javascript */ + +.language-ts, +.language-typescript, +.language-js, +.language-javascript { + color: #9CDCFE; + + .token.string { + color: #CE9169; + } + + .token.punctuation { + color: #D4D4D4; + } + + .script-punctuation + .token.punctuation + .token.punctuation { + color: #D4D4D4; + } + + .script-punctuation + .token.punctuation + .token.punctuation ~ .token.punctuation { + color: #D4D4D4; + } + + .script-punctuation + .token.punctuation + .token.punctuation ~ .token.punctuation + .token.punctuation { + color: #3F9CD6; + } + + .keyword-class, + .keyword-const, + .keyword-constructor, + .keyword-function, + .keyword-implements, + .keyword-new, + .keyword-private, + .keyword-public, + .keyword-readonly, + .keyword-this { + color: #569CD6; + } + + .keyword-void { + color: #4EC9B0; + } + + .import-member { + color: #9CDCFE; + } +} diff --git a/demo/src/styles.scss b/demo/src/styles.scss new file mode 100644 index 0000000..2bc1ff5 --- /dev/null +++ b/demo/src/styles.scss @@ -0,0 +1,87 @@ +html, +body { + height: 100%; + padding: 0; + margin: 0; +} + +body { + font-size: 15px; +} + +blockquote { + overflow: auto; +} + +p, ul { + line-height: 1.5; +} + +pre { + &::-webkit-scrollbar { + height: 8px; + width: 8px; + } + + &::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.4); + border-radius: 4px; + } + + &::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.7); + } + + &::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.2); + border-radius: 4px; + } +} + +section { + margin-top: 40px; +} + +table { + width: 100%; + + th { + color: rgba(0, 0, 0, .54); + font-size: 12px; + font-weight: 500; + height: 56px; + } + + th[align=""], + th:not([align]) { + text-align: left; + } + + td { + font-size: 15px; + height: 48px; + } + + td, + th { + padding: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: rgba(0, 0, 0, .12); + } +} + +input, +textarea { + font-family: monospace !important; + font-size: 14px !important; + line-height: 1.25 !important; +} + +[hidden] { + display: none !important; +} + +* { + box-sizing: border-box; +} diff --git a/demo/tsconfig.app.json b/demo/tsconfig.app.json new file mode 100644 index 0000000..e2cdc1e --- /dev/null +++ b/demo/tsconfig.app.json @@ -0,0 +1,16 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [ + "node" + ] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.ts", + "src/**/*.d.ts" + ] +} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..86e5a5a --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,128 @@ +const eslint = require("@eslint/js"); +const tseslint = require("typescript-eslint"); +const angular = require("angular-eslint"); +const importPlugin = require("eslint-plugin-import"); + +module.exports = tseslint.config( + { + files: ["*.ts", "lib/**/*.ts", "lib/**/*.spec.ts"], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ...tseslint.configs.stylistic, + ...tseslint.configs.recommendedTypeChecked, + ...angular.configs.tsRecommended, + ], + processor: angular.processInlineTemplates, + plugins: { + import: importPlugin, + }, + settings: { + "import/resolver": { + "node": { + "extensions": [ + ".js", + ".jsx", + ".ts", + ".tsx" + ] + }, + "typescript": {} + } + }, + languageOptions: { + parserOptions: { + project: "./tsconfig.json", + tsconfigRootDir: __dirname, + createDefaultProgram: true, + }, + }, + rules: { + "@angular-eslint/directive-selector": [ + "error", + { + type: "attribute", + prefix: "app", + style: "camelCase", + }, + ], + "@angular-eslint/component-selector": [ + "error", + { + type: "element", + prefix: "app", + style: "kebab-case", + }, + ], + "@angular-eslint/no-output-native": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/dot-notation": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-unused-vars": "error", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-floating-promises": "off", + "comma-dangle": [ + "error", + "always-multiline" + ], + "comma-spacing": [ + "error", + { + "before": false, + "after": true + } + ], + "import/order": [ + "error", + { + "alphabetize": { + "order": "asc", + "caseInsensitive": true + }, + "newlines-between": "never", + "pathGroups": [ + { + "pattern": "@*/**", + "group": "parent" + }, + { + "pattern": "ngx-codemirror", + "group": "external" + } + ] + } + ], + "import/no-duplicates": "error", + "object-curly-spacing": [ + "error", + "always" + ], + "object-shorthand": "off", + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "always" + ], + "semi-spacing": "error", + "sort-imports": [ + "error", + { + "ignoreCase": true, + "ignoreDeclarationSort": true + } + ], + }, + }, + { + files: ["**/*.html"], + extends: [ + ...angular.configs.templateRecommended, + ...angular.configs.templateAccessibility, + ], + rules: {}, + } +); diff --git a/lib/eslint.config.js b/lib/eslint.config.js new file mode 100644 index 0000000..61ef279 --- /dev/null +++ b/lib/eslint.config.js @@ -0,0 +1,96 @@ +const tseslint = require("typescript-eslint"); +const rootConfig = require("../eslint.config.js"); + +module.exports = tseslint.config( + ...rootConfig, + { + files: ["*.ts", "lib/**/*.ts"], // Include library files + languageOptions: { + parserOptions: { + project: "./lib/tsconfig.lib.json", + createDefaultProgram: true, + }, + }, + rules: { + "@angular-eslint/directive-selector": [ + "error", + { + type: "attribute", + prefix: "markdown", + style: "camelCase", + }, + ], + "@angular-eslint/component-selector": [ + "error", + { + type: "element", + prefix: "markdown", + style: "kebab-case", + }, + ], + "@angular-eslint/no-output-native": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/dot-notation": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-unused-vars": "error", + "comma-dangle": [ + "error", + "always-multiline" + ], + "import/order": "error", + "object-shorthand": "off" + }, + }, + { + files: ["*.spec.ts", "lib/**/*.spec.ts"], // Include spec files + languageOptions: { + parserOptions: { + project: "./lib/tsconfig.spec.json", + createDefaultProgram: true, + }, + }, + rules: { + "@angular-eslint/directive-selector": [ + "error", + { + type: "attribute", + prefix: "markdown", + style: "camelCase", + }, + ], + "@angular-eslint/component-selector": [ + "error", + { + type: "element", + prefix: "markdown", + style: "kebab-case", + }, + ], + "@angular-eslint/no-output-native": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/dot-notation": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "none" + } + ], + "@typescript-eslint/restrict-template-expressions": "off", + "@typescript-eslint/unbound-method": "off", + "comma-dangle": [ + "error", + "always-multiline" + ], + "import/order": "error", + "object-shorthand": "off" + }, + }, + { + files: ["*.html"], + rules: {}, + } +); diff --git a/lib/karma.conf.js b/lib/karma.conf.js new file mode 100644 index 0000000..060807c --- /dev/null +++ b/lib/karma.conf.js @@ -0,0 +1,50 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-coverage'), + require('karma-jasmine-html-reporter'), + require('karma-junit-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../coverage'), + subdir: '.', + reporters: [ + {type: 'html'}, + {type: 'lcovonly'}, + {type: 'text-summary'} + ] + }, + reporters: ['progress', 'kjhtml', 'junit'], + junitReporter: { + outputFile: '../test-results.xml', + useBrowserName: false + }, + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/lib/ng-package.json b/lib/ng-package.json new file mode 100644 index 0000000..9fe520b --- /dev/null +++ b/lib/ng-package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../dist/lib", + "deleteDestPath": true, + "lib": { + "entryFile": "public_api.ts" + }, + "allowedNonPeerDependencies": [ + "." + ] +} diff --git a/lib/ng-package.prod.json b/lib/ng-package.prod.json new file mode 100644 index 0000000..9fe520b --- /dev/null +++ b/lib/ng-package.prod.json @@ -0,0 +1,11 @@ +{ + "$schema": "../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../dist/lib", + "deleteDestPath": true, + "lib": { + "entryFile": "public_api.ts" + }, + "allowedNonPeerDependencies": [ + "." + ] +} diff --git a/lib/package.json b/lib/package.json new file mode 100644 index 0000000..1b50cfb --- /dev/null +++ b/lib/package.json @@ -0,0 +1,38 @@ +{ + "name": "@fsegurai/ngx-codemirror", + "version": "19.0.0-beta.1", + "description": "Angular library that uses codemirror to create a code editor", + "homepage": "https://github.com/fsegurai/ngx-codemirror", + "license": "MIT", + "author": { + "name": "Fabián Segura", + "url": "https://www.fsegurai.com/" + }, + "repository": { + "type": "git", + "url": "https://github.com/fsegurai/ngx-codemirror" + }, + "keywords": [ + "angular", + "ngx", + "editor", + "codemirror", + "code-editor", + "ngx-codemirror" + ], + "dependencies": { + "codemirror": "^6.0.1", + "tslib": "^2.8.1" + }, + "peerDependencies": { + "@angular/common": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@codemirror/language-data": "^6.5.1", + "@codemirror/merge": "^6.7.4", + "rxjs": "^6.5.3 || ^7.4.0 || ^7.8.1", + "zone.js": "~0.15.0" + }, + "sideEffects": false +} diff --git a/lib/public_api.ts b/lib/public_api.ts new file mode 100644 index 0000000..cba1843 --- /dev/null +++ b/lib/public_api.ts @@ -0,0 +1 @@ +export * from './src/index'; diff --git a/lib/src/code-diff-editor/code-diff-editor.component.spec.ts b/lib/src/code-diff-editor/code-diff-editor.component.spec.ts new file mode 100644 index 0000000..1cf05cd --- /dev/null +++ b/lib/src/code-diff-editor/code-diff-editor.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CodeDiffEditorComponent } from './code-diff-editor.component'; + +describe('CodeDiffEditorComponent', () => { + let component: CodeDiffEditorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CodeDiffEditorComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(CodeDiffEditorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/lib/src/code-diff-editor/code-diff-editor.component.ts b/lib/src/code-diff-editor/code-diff-editor.component.ts new file mode 100644 index 0000000..e9f8527 --- /dev/null +++ b/lib/src/code-diff-editor/code-diff-editor.component.ts @@ -0,0 +1,307 @@ +import { + booleanAttribute, + ChangeDetectionStrategy, + Component, + ElementRef, + EventEmitter, + forwardRef, + Input, + OnChanges, + OnDestroy, + OnInit, + Output, + SimpleChanges, + ViewEncapsulation, +} from '@angular/core'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { DiffConfig, MergeView } from '@codemirror/merge'; +import { Compartment, Extension } from '@codemirror/state'; +import { EditorView } from '@codemirror/view'; +import { basicSetup, minimalSetup } from 'codemirror'; +import { External, Setup } from '../code-editor/code-editor.component'; + +export type Orientation = 'a-b' | 'b-a'; +export type RevertControls = 'a-to-b' | 'b-to-a'; +export type RenderRevertControl = () => HTMLElement; + +export interface DiffEditorModel { + original: string; + modified: string; +} + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: 'ngx-code-diff-editor, [diff-editor]', + imports: [], + template: '', + styles: ` + .diff-editor { + display: block; + + .cm-mergeView, + .cm-mergeViewEditors { + height: 100%; + } + + .cm-mergeView .cm-editor, + .cm-mergeView .cm-scroller { + height: 100% !important; + } + } + `, + host: { + class: 'diff-editor', + }, + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => CodeDiffEditorComponent), + multi: true, + }, + ], +}) +export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, ControlValueAccessor { + /** + * The editor's built-in setup. The value can be set to + * [`basic`](https://codemirror.net/docs/ref/#codemirror.basicSetup), + * [`minimal`](https://codemirror.net/docs/ref/#codemirror.minimalSetup) or `null`. + * + * Don't support change dynamically! + */ + @Input() setup: Setup = 'basic'; + + /** The diff-editor's original value. */ + @Input() originalValue = ''; + + /** + * The MergeView original config's + * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions). + * + * Don't support change dynamically! + */ + @Input() originalExtensions: Extension[] = []; + + /** The diff-editor's modified value. */ + @Input() modifiedValue = ''; + + /** + * The MergeView modified config's + * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions). + * + * Don't support change dynamically! + */ + @Input() modifiedExtensions: Extension[] = []; + + /** Controls whether editor A or editor B is shown first. Defaults to `"a-b"`. */ + @Input() orientation?: Orientation; + + /** Controls whether revert controls are shown between changed chunks. */ + @Input() revertControls?: RevertControls; + + /** When given, this function is called to render the button to revert a chunk. */ + @Input() renderRevertControl?: RenderRevertControl; + + /** + * By default, the merge view will mark inserted and deleted text + * in changed chunks. Set this to false to turn that off. + */ + @Input({ transform: booleanAttribute }) highlightChanges = true; + + /** Controls whether a gutter marker is shown next to changed lines. */ + @Input({ transform: booleanAttribute }) gutter = true; + + /** Whether the diff-editor is disabled. */ + @Input({ transform: booleanAttribute }) disabled = false; + + /** + * When given, long stretches of unchanged text are collapsed. + * `margin` gives the number of lines to leave visible after/before + * a change (default is 3), and `minSize` gives the minimum amount + * of collapsible lines that need to be present (defaults to 4). + */ + @Input() collapseUnchanged?: { margin?: number; minSize?: number }; + + /** Pass options to the diff algorithm. */ + @Input() diffConfig?: DiffConfig; + + /** Event emitted when the editor's original value changes. */ + @Output() originalValueChange = new EventEmitter(); + + /** Event emitted when focus on the original editor. */ + @Output() originalFocus = new EventEmitter(); + + /** Event emitted when blur on the original editor. */ + @Output() originalBlur = new EventEmitter(); + + /** Event emitted when the editor's modified value changes. */ + @Output() modifiedValueChange = new EventEmitter(); + + /** Event emitted when focus on the modified editor. */ + @Output() modifiedFocus = new EventEmitter(); + + /** Event emitted when blur on the modified editor. */ + @Output() modifiedBlur = new EventEmitter(); + + private _onChange: (value: DiffEditorModel) => void = () => { + this._onTouched(); + }; + private _onTouched: () => void = () => { + this._onChange({ original: this.originalValue, modified: this.modifiedValue }); + }; + + constructor(private _elementRef: ElementRef) { + } + + /** The merge view instance. */ + mergeView?: MergeView; + + private _updateListener = (editor: 'a' | 'b') => { + return EditorView.updateListener.of(vu => { + if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) { + const value = vu.state.doc.toString(); + if (editor == 'a') { + this._onChange({ original: value, modified: this.modifiedValue }); + this.originalValue = value; + this.originalValueChange.emit(value); + } else if (editor == 'b') { + this._onChange({ original: this.originalValue, modified: value }); + this.modifiedValue = value; + this.modifiedValueChange.emit(value); + } + } + }); + }; + + private _editableConf = new Compartment(); + + ngOnChanges(changes: SimpleChanges): void { + if (changes['originalValue']) { + this.setValue('a', this.originalValue); + } + if (changes['modifiedValue']) { + this.setValue('b', this.modifiedValue); + } + if (changes['orientation']) { + this.mergeView?.reconfigure({ orientation: this.orientation }); + } + if (changes['revertControls']) { + this.mergeView?.reconfigure({ revertControls: this.revertControls }); + } + if (changes['renderRevertControl']) { + this.mergeView?.reconfigure({ renderRevertControl: this.renderRevertControl }); + } + if (changes['highlightChanges']) { + this.mergeView?.reconfigure({ highlightChanges: this.highlightChanges }); + } + if (changes['gutter']) { + this.mergeView?.reconfigure({ gutter: this.gutter }); + } + if (changes['collapseUnchanged']) { + this.mergeView?.reconfigure({ collapseUnchanged: this.collapseUnchanged }); + } + if (changes['diffConfig']) { + this.mergeView?.reconfigure({ diffConfig: this.diffConfig }); + } + if (changes['disabled']) { + this.setEditable('a', !this.disabled); + this.setEditable('b', !this.disabled); + } + } + + ngOnInit(): void { + this.mergeView = new MergeView({ + parent: this._elementRef.nativeElement, + a: { + doc: this.originalValue, + extensions: [ + this._updateListener('a'), + this._editableConf.of([]), + this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], + ...this.originalExtensions, + ], + }, + b: { + doc: this.modifiedValue, + extensions: [ + this._updateListener('b'), + this._editableConf.of([]), + this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], + ...this.modifiedExtensions, + ], + }, + orientation: this.orientation, + revertControls: this.revertControls, + renderRevertControl: this.renderRevertControl, + highlightChanges: this.highlightChanges, + gutter: this.gutter, + collapseUnchanged: this.collapseUnchanged, + diffConfig: this.diffConfig, + }); + + this.mergeView?.a.contentDOM.addEventListener('focus', () => { + this._onTouched(); + this.originalFocus.emit(); + }); + + this.mergeView?.a.contentDOM.addEventListener('blur', () => { + this._onTouched(); + this.originalBlur.emit(); + }); + + this.mergeView?.b.contentDOM.addEventListener('focus', () => { + this._onTouched(); + this.modifiedFocus.emit(); + }); + + this.mergeView?.b.contentDOM.addEventListener('blur', () => { + this._onTouched(); + this.modifiedBlur.emit(); + }); + + this.setEditable('a', !this.disabled); + this.setEditable('b', !this.disabled); + } + + ngOnDestroy(): void { + this.mergeView?.destroy(); + } + + writeValue(value: DiffEditorModel): void { + if (this.mergeView && value != null && typeof value === 'object') { + this.originalValue = value.original; + this.modifiedValue = value.modified; + this.setValue('a', value.original); + this.setValue('b', value.modified); + } + } + + registerOnChange(fn: (value: DiffEditorModel) => void) { + this._onChange = fn; + } + + registerOnTouched(fn: () => void) { + this._onTouched = fn; + } + + setDisabledState(isDisabled: boolean) { + this.disabled = isDisabled; + this.setEditable('a', !isDisabled); + this.setEditable('b', !isDisabled); + } + + /** Sets diff-editor's value. */ + setValue(editor: 'a' | 'b', value: string) { + this.mergeView?.[editor].dispatch({ + changes: { from: 0, to: this.mergeView[editor].state.doc.length, insert: value }, + }); + } + + /** Sets diff-editor's editable state. */ + setEditable(editor: 'a' | 'b', value: boolean) { + this.mergeView?.[editor].dispatch({ + effects: this._editableConf.reconfigure(EditorView.editable.of(value)), + }); + } +} diff --git a/lib/src/code-editor.module.ts b/lib/src/code-editor.module.ts new file mode 100644 index 0000000..f14d9aa --- /dev/null +++ b/lib/src/code-editor.module.ts @@ -0,0 +1,16 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { CodeDiffEditorComponent } from './code-diff-editor/code-diff-editor.component'; +import { CodeEditorComponent } from './code-editor/code-editor.component'; + +const sharedDeclarations = [ + CodeDiffEditorComponent, + CodeEditorComponent, +]; + +@NgModule({ + imports: [CommonModule, ...sharedDeclarations], + exports: [sharedDeclarations], +}) +export class CodeEditorModule { +} diff --git a/lib/src/code-editor/code-editor.component.spec.ts b/lib/src/code-editor/code-editor.component.spec.ts new file mode 100644 index 0000000..eac329b --- /dev/null +++ b/lib/src/code-editor/code-editor.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { CodeEditorComponent } from './code-editor.component'; + +describe('CodeEditorComponent', () => { + let component: CodeEditorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CodeEditorComponent], + }) + .compileComponents(); + + fixture = TestBed.createComponent(CodeEditorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/lib/src/code-editor/code-editor.component.ts b/lib/src/code-editor/code-editor.component.ts new file mode 100644 index 0000000..787e2d3 --- /dev/null +++ b/lib/src/code-editor/code-editor.component.ts @@ -0,0 +1,369 @@ +import { + booleanAttribute, + ChangeDetectionStrategy, + Component, + ElementRef, + EventEmitter, + forwardRef, + Input, + OnChanges, + OnDestroy, + OnInit, + Output, + SimpleChanges, + ViewEncapsulation, +} from '@angular/core'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { indentWithTab } from '@codemirror/commands'; +import { indentUnit, LanguageDescription } from '@codemirror/language'; +import { Annotation, Compartment, EditorState, Extension, StateEffect } from '@codemirror/state'; +import { EditorView, highlightWhitespace, keymap, placeholder } from '@codemirror/view'; +import { basicSetup, minimalSetup } from 'codemirror'; + +export type Theme = 'light' | Extension; +export type Setup = 'basic' | 'minimal' | null; + +export const External = Annotation.define(); + +@Component({ + // eslint-disable-next-line @angular-eslint/component-selector + selector: 'ngx-code-editor, [code-editor]', + imports: [], + templateUrl: 'code-editor.component', + styleUrl: ` + .code-editor { + display: block; + + .cm-editor { + height: 100%; + } + } + `, + host: { + class: 'code-editor', + }, + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => CodeEditorComponent), + multi: true, + }, + ], +}) +export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, ControlValueAccessor { + /** + * EditorView's [root](https://codemirror.net/docs/ref/#view.EditorView.root). + * + * Don't support change dynamically! + */ + @Input() root?: Document | ShadowRoot; + + /** + * Whether focus on the editor after init. + * + * Don't support change dynamically! + */ + @Input({ transform: booleanAttribute }) autoFocus = false; + + /** The editor's value. */ + @Input() value = ''; + + /** Whether the editor is disabled. */ + @Input({ transform: booleanAttribute }) disabled = false; + + /** Whether the editor is readonly. */ + @Input({ transform: booleanAttribute }) readonly = false; + + /** The editor's theme. */ + @Input() theme: Theme = 'light'; + + /** The editor's placecholder. */ + @Input() placeholder = ''; + + /** Whether indent with Tab key. */ + @Input({ transform: booleanAttribute }) indentWithTab = false; + + /** Should be a string consisting either entirely of the same whitespace character. */ + @Input() indentUnit = ''; + + /** Whether the editor wraps lines. */ + @Input({ transform: booleanAttribute }) lineWrapping = false; + + /** Whether highlight the whitespace. */ + @Input({ transform: booleanAttribute }) highlightWhitespace = false; + + /** + * An array of language descriptions for known + * [language-data](https://github.com/codemirror/language-data/blob/main/src/language-data.ts). + * + * Don't support change dynamically! + */ + @Input() languages: LanguageDescription[] = []; + + /** The editor's language. You should set the `languages` prop at first. */ + @Input() language = ''; + + /** + * The editor's built-in setup. The value can be set to + * [`basic`](https://codemirror.net/docs/ref/#codemirror.basicSetup), + * [`minimal`](https://codemirror.net/docs/ref/#codemirror.minimalSetup) or `null`. + */ + @Input() setup: Setup = 'basic'; + + /** + * It will be appended to the root + * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions). + */ + @Input() extensions: Extension[] = []; + + /** Event emitted when the editor's value changes. */ + @Output() change = new EventEmitter(); + + /** Event emitted when focus on the editor. */ + @Output() focus = new EventEmitter(); + + /** Event emitted when the editor has lost focus. */ + @Output() blur = new EventEmitter(); + + private _onChange: (value: string) => void = () => { + this.view?.focus(); + }; + private _onTouched: () => void = () => { + this.view?.focus(); + }; + + constructor(private _elementRef: ElementRef) { + } + + /** + * The instance of [EditorView](https://codemirror.net/docs/ref/#view.EditorView). + */ + view?: EditorView; + + private _updateListener = EditorView.updateListener.of(vu => { + if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) { + const value = vu.state.doc.toString(); + this._onChange(value); + this.change.emit(value); + } + }); + + // Extension compartments can be used to make a configuration dynamic. + // https://codemirror.net/docs/ref/#state.Compartment + private _editableConf = new Compartment(); + private _readonlyConf = new Compartment(); + private _themeConf = new Compartment(); + private _placeholderConf = new Compartment(); + private _indentWithTabConf = new Compartment(); + private _indentUnitConf = new Compartment(); + private _lineWrappingConf = new Compartment(); + private _highlightWhitespaceConf = new Compartment(); + private _languageConf = new Compartment(); + + private _getAllExtensions() { + return [ + this._updateListener, + + this._editableConf.of([]), + this._readonlyConf.of([]), + this._themeConf.of([]), + this._placeholderConf.of([]), + this._indentWithTabConf.of([]), + this._indentUnitConf.of([]), + this._lineWrappingConf.of([]), + this._highlightWhitespaceConf.of([]), + this._languageConf.of([]), + + this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], + + ...this.extensions, + ]; + } + + ngOnChanges(changes: SimpleChanges): void { + if (changes['value']) { + this.setValue(this.value); + } + if (changes['disabled']) { + this.setEditable(!this.disabled); + } + if (changes['readonly']) { + this.setReadonly(this.readonly); + } + if (changes['theme']) { + this.setTheme(this.theme); + } + if (changes['placeholder']) { + this.setPlaceholder(this.placeholder); + } + if (changes['indentWithTab']) { + this.setIndentWithTab(this.indentWithTab); + } + if (changes['indentUnit']) { + this.setIndentUnit(this.indentUnit); + } + if (changes['lineWrapping']) { + this.setLineWrapping(this.lineWrapping); + } + if (changes['highlightWhitespace']) { + this.setHighlightWhitespace(this.highlightWhitespace); + } + if (changes['language']) { + this.setLanguage(this.language); + } + if (changes['setup'] || changes['extensions']) { + this.setExtensions(this._getAllExtensions()); + } + } + + ngOnInit(): void { + this.view = new EditorView({ + root: this.root, + parent: this._elementRef.nativeElement, + state: EditorState.create({ doc: this.value, extensions: this._getAllExtensions() }), + }); + + if (this.autoFocus) { + this.view?.focus(); + } + + this.view?.contentDOM.addEventListener('focus', () => { + this._onTouched(); + this.focus.emit(); + }); + + this.view?.contentDOM.addEventListener('blur', () => { + this._onTouched(); + this.blur.emit(); + }); + + this.setEditable(!this.disabled); + this.setReadonly(this.readonly); + this.setTheme(this.theme); + this.setPlaceholder(this.placeholder); + this.setIndentWithTab(this.indentWithTab); + this.setIndentUnit(this.indentUnit); + this.setLineWrapping(this.lineWrapping); + this.setHighlightWhitespace(this.highlightWhitespace); + this.setLanguage(this.language); + } + + ngOnDestroy(): void { + this.view?.destroy(); + } + + writeValue(value: string): void { + if (this.view) { + this.setValue(value); + } + } + + registerOnChange(fn: (value: string) => void) { + this._onChange = fn; + } + + registerOnTouched(fn: () => void) { + this._onTouched = fn; + } + + setDisabledState(isDisabled: boolean) { + this.disabled = isDisabled; + this.setEditable(!isDisabled); + } + + /** Sets editor's value. */ + setValue(value: string) { + this.view?.dispatch({ + changes: { from: 0, to: this.view.state.doc.length, insert: value }, + }); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private _dispatchEffects(effects: StateEffect | readonly StateEffect[]) { + return this.view?.dispatch({ effects }); + } + + /** Sets the root extensions of the editor. */ + setExtensions(value: Extension[]) { + this._dispatchEffects(StateEffect.reconfigure.of(value)); + } + + /** Sets editor's editable state. */ + setEditable(value: boolean) { + this._dispatchEffects(this._editableConf.reconfigure(EditorView.editable.of(value))); + } + + /** Sets editor's readonly state. */ + setReadonly(value: boolean) { + this._dispatchEffects(this._readonlyConf.reconfigure(EditorState.readOnly.of(value))); + } + + /** Sets editor's theme. */ + setTheme(value: Theme) { + this._dispatchEffects( + this._themeConf.reconfigure(value === 'light' ? [] : value), + ); + } + + /** Sets editor's placeholder. */ + setPlaceholder(value: string) { + this._dispatchEffects(this._placeholderConf.reconfigure(value ? placeholder(value) : [])); + } + + /** Sets editor' indentWithTab. */ + setIndentWithTab(value: boolean) { + this._dispatchEffects( + this._indentWithTabConf.reconfigure(value ? keymap.of([indentWithTab]) : []), + ); + } + + /** Sets editor's indentUnit. */ + setIndentUnit(value: string) { + this._dispatchEffects(this._indentUnitConf.reconfigure(value ? indentUnit.of(value) : [])); + } + + /** Sets editor's lineWrapping. */ + setLineWrapping(value: boolean) { + this._dispatchEffects(this._lineWrappingConf.reconfigure(value ? EditorView.lineWrapping : [])); + } + + /** Sets editor's highlightWhitespace. */ + setHighlightWhitespace(value: boolean) { + this._dispatchEffects( + this._highlightWhitespaceConf.reconfigure(value ? highlightWhitespace() : []), + ); + } + + /** Sets editor's language dynamically. */ + setLanguage(lang: string) { + if (!lang) { + return; + } + if (this.languages.length === 0) { + if (this.view) { + console.error('No supported languages. Please set the `languages` prop at first.'); + } + return; + } + const langDesc = this._findLanguage(lang); + langDesc?.load().then(lang => { + this._dispatchEffects(this._languageConf.reconfigure([lang])); + }); + } + + /** Find the language's extension by its name. Case-insensitive. */ + private _findLanguage(name: string) { + for (const lang of this.languages) { + for (const alias of [lang.name, ...lang.alias]) { + if (name.toLowerCase() === alias.toLowerCase()) { + return lang; + } + } + } + console.error('Language not found:', name); + console.info('Supported language names:', this.languages.map(lang => lang.name).join(', ')); + return null; + } +} diff --git a/lib/src/index.ts b/lib/src/index.ts new file mode 100644 index 0000000..9039a06 --- /dev/null +++ b/lib/src/index.ts @@ -0,0 +1,3 @@ +export * from './code-editor.module'; +export * from './code-editor/code-editor.component'; +export * from './code-diff-editor/code-diff-editor.component'; diff --git a/lib/tsconfig.lib.json b/lib/tsconfig.lib.json new file mode 100644 index 0000000..c562e0b --- /dev/null +++ b/lib/tsconfig.lib.json @@ -0,0 +1,21 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/lib", + "target": "es2015", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [ + "codemirror" + ] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/lib/tsconfig.lib.prod.json b/lib/tsconfig.lib.prod.json new file mode 100644 index 0000000..2a2faa8 --- /dev/null +++ b/lib/tsconfig.lib.prod.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/lib/tsconfig.spec.json b/lib/tsconfig.spec.json new file mode 100644 index 0000000..e4734ca --- /dev/null +++ b/lib/tsconfig.spec.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "types": [ + "jasmine", + "codemirror", + ] + }, + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a848d7f --- /dev/null +++ b/package.json @@ -0,0 +1,101 @@ +{ + "name": "@fsegurai/ngx-codemirror", + "version": "19.0.0-beta.1", + "description": "Angular library that uses codemirror to create a code editor", + "homepage": "https://github.com/fsegurai/ngx-codemirror", + "license": "MIT", + "author": { + "name": "Fabián Segura", + "url": "https://www.fsegurai.com/" + }, + "repository": { + "type": "git", + "url": "https://github.com/fsegurai/ngx-codemirror" + }, + "keywords": [ + "angular", + "ngx", + "editor", + "codemirror", + "code-editor", + "ngx-codemirror" + ], + "engines": { + "bun": ">=1.0.0 <2", + "npm": "Please use Yarn instead of NPM to install dependencies" + }, + "scripts": { + "ng": "ng", + "start": "bun link:lib && ng serve", + "build:demo": "ng build demo --configuration production", + "build:lib": "ng build lib --configuration production", + "postBuild:lib": "cpy ./README.md ./dist/lib && cpy ./LICENSE ./dist/lib", + "link:lib": "rimraf --glob node_modules/ngx-codemirror && linklocal", + "lint": "bun lint:lib && bun lint:demo", + "lint:demo": "ng lint demo", + "lint:lib": "ng lint lib", + "type-check:demo": "tsc --project ./demo/tsconfig.app.json --inlineSourceMap --noEmit", + "type-check:lib": "tsc --project ./lib/tsconfig.lib.json --inlineSourceMap --noEmit", + "watch": "ng build --watch --configuration development", + "test-local:lib": "ng test", + "test-ci_cd:lib": "ng test --no-watch --no-progress --browsers=ChromeHeadless", + "gh-pages:build": "bun build:demo --aot --base-href=./", + "gh-pages:copy404": "cpy ./dist/demo/browser/index.html . --rename=404.html", + "gh-pages:postBuild": "cpy ./dist/demo/3rdpartylicenses.txt ./dist/demo/browser --flat" + }, + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/cdk": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/flex-layout": "15.0.0-beta.42", + "@angular/forms": "^19.0.0", + "@angular/material": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "@codemirror/language-data": "^6.5.1", + "@codemirror/merge": "^6.7.4", + "@fsegurai/codemirror-theme-bundle": "^6.1.1", + "@fsegurai/ngx-markdown": "^19.0.0", + "codemirror": "^6.0.1", + "gumshoejs": "^5.1.2", + "hammerjs": "~2.0.8", + "ngx-codemirror": "file:lib", + "rxjs": "~7.8.1", + "tslib": "^2.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.0.0", + "@angular/cli": "~19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/language-service": "^19.0.0", + "@eslint/js": "^9.15.0", + "@types/jasmine": "~5.1.4", + "@types/node": "^22.10.1", + "@typescript-eslint/eslint-plugin": "^8.16.0", + "@typescript-eslint/parser": "^8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/utils": "^8.16.0", + "angular-eslint": "^18.4.2", + "cpy-cli": "^5.0.0", + "eslint": "^9.15.0", + "eslint-formatter-checkstyle": "^8.40.0", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-import": "^2.31.0", + "jasmine-core": "~5.4.0", + "karma": "~6.4.4", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "karma-junit-reporter": "^2.0.1", + "linklocal": "^2.8.2", + "ng-packagr": "^19.0.1", + "rimraf": "^6.0.1", + "typescript": "~5.6.3", + "typescript-eslint": "^8.16.0" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1835583 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,42 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ + +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "moduleResolution": "Bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "paths": { + "@shared/*": [ + "demo/src/app/shared/*" + ], + "@app/*": [ + "demo/src/app/*" + ], + "ngx-codemirror": [ + "lib/src" + ] + } + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} From 65c39f19fd0fb5ca55d1d03797a41348b723338f Mon Sep 17 00:00:00 2001 From: fsegurai Date: Mon, 2 Dec 2024 10:26:45 -0600 Subject: [PATCH 03/59] fix/improved pipelines workflows --- .github/workflows/build.yml | 58 +++++++-------------------- .github/workflows/release-demo.yml | 28 ++++--------- .github/workflows/release-library.yml | 40 +++++++++--------- .github/workflows/test.yml | 41 ++++++------------- 4 files changed, 54 insertions(+), 113 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c8ab64..bed6da2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,38 +9,24 @@ env: jobs: build_library: runs-on: ubuntu-latest - timeout-minutes: 3 + timeout-minutes: 2 environment: FSI_DEP_NodeJs steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Create cache directories - run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn - - - name: Cache Yarn dependencies - uses: actions/cache@v4 - with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build library run: | - yarn build:lib - yarn postBuild:lib + bun run build:lib + bun run postBuild:lib - name: Upload build library artifacts uses: actions/upload-artifact@v4 @@ -51,36 +37,22 @@ jobs: build_demo: runs-on: ubuntu-latest - timeout-minutes: 3 + timeout-minutes: 2 environment: github-pages steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 - with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Create cache directories - run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn - - - name: Cache Yarn dependencies - uses: actions/cache@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build demo run: | - yarn gh-pages:build - yarn gh-pages:copy404 - yarn gh-pages:postBuild + bun run gh-pages:build + bun run gh-pages:copy404 + bun run gh-pages:postBuild \ No newline at end of file diff --git a/.github/workflows/release-demo.yml b/.github/workflows/release-demo.yml index 69eb517..e4b7fbf 100644 --- a/.github/workflows/release-demo.yml +++ b/.github/workflows/release-demo.yml @@ -34,33 +34,19 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Create cache directories - run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn - - - name: Cache Yarn dependencies - uses: actions/cache@v4 - with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build demo run: | - yarn gh-pages:build - yarn gh-pages:copy404 - yarn gh-pages:postBuild + bun run gh-pages:build + bun run gh-pages:copy404 + bun run gh-pages:postBuild - name: Upload build artifacts uses: actions/upload-artifact@v4 diff --git a/.github/workflows/release-library.yml b/.github/workflows/release-library.yml index a20905c..7d0940d 100644 --- a/.github/workflows/release-library.yml +++ b/.github/workflows/release-library.yml @@ -2,9 +2,19 @@ name: Release Library # Job will only run on push to the main branch after the test job has passed on: - workflow_run: - workflows: [ "Test Lib-Demo" ] - types: [ completed ] + push: + branches: [ "main" ] + paths-ignore: + - ".github/**" + - "docs/**" + - "assets/**" + - "demo/public/**" + - "*.yml" + - "*.json" + - "*.config" + - "*.md" + - "!package.json" + - "!github/workflows/**" workflow_dispatch: inputs: { } @@ -28,29 +38,18 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 - with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Cache Yarn dependencies - uses: actions/cache@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build library run: | - yarn build:lib - yarn postBuild:lib + bun run build:lib + bun run postBuild:lib - name: Upload build artifacts uses: actions/upload-artifact@v4 @@ -76,7 +75,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' registry-url: "https://registry.npmjs.org/" scope: ${{ vars.NPM_ORG }} always-auth: true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4958af5..c27267a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,19 +2,6 @@ name: Test Lib-Demo # Job will only run on push and pull requests to the main branch on: - push: - branches: [ "main" ] - paths-ignore: - - ".github/**" - - "docs/**" - - "assets/**" - - "demo/public/**" - - "*.yml" - - "*.json" - - "*.config" - - "*.md" - - "!package.json" - - "!github/workflows/**" pull_request: branches: [ "main" ] paths-ignore: @@ -44,23 +31,22 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Test Lint (Library) - run: yarn lint:lib + run: bun run lint:lib - name: Test TypeScript (Library) - run: yarn type-check:lib + run: bun run type-check:lib - name: Test library - run: yarn test-ci_cd:lib + run: bun run test-ci_cd:lib test_demo: runs-on: ubuntu-latest @@ -70,17 +56,16 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Test Lint (Demo) - run: yarn lint:demo + run: bun run lint:demo - name: Test TypeScript (Demo) - run: yarn type-check:demo + run: bun run type-check:demo From eab58f33a23321ba3c9b25e6354b67878f7df939 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Mon, 2 Dec 2024 10:30:49 -0600 Subject: [PATCH 04/59] fix/improved package details --- lib/package.json | 1 + package.json | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/package.json b/lib/package.json index 1b50cfb..259f93e 100644 --- a/lib/package.json +++ b/lib/package.json @@ -18,6 +18,7 @@ "editor", "codemirror", "code-editor", + "diff-editor", "ngx-codemirror" ], "dependencies": { diff --git a/package.json b/package.json index a848d7f..a367a7a 100644 --- a/package.json +++ b/package.json @@ -18,11 +18,12 @@ "editor", "codemirror", "code-editor", + "diff-editor", "ngx-codemirror" ], "engines": { - "bun": ">=1.0.0 <2", - "npm": "Please use Yarn instead of NPM to install dependencies" + "bun": ">= 1.0.0 < 2.0.0", + "npm": "Please use Bun instead of NPM to install dependencies" }, "scripts": { "ng": "ng", From 5ddb7d6e6db3ef7d2965d144393ce8ff075776fe Mon Sep 17 00:00:00 2001 From: fsegurai Date: Mon, 2 Dec 2024 11:23:06 -0600 Subject: [PATCH 05/59] feat/ngx-codemirror logo --- demo/public/ngx-codemirror.png | Bin 0 -> 8062 bytes demo/public/ngx-markdown.png | Bin 12113 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo/public/ngx-codemirror.png delete mode 100644 demo/public/ngx-markdown.png diff --git a/demo/public/ngx-codemirror.png b/demo/public/ngx-codemirror.png new file mode 100644 index 0000000000000000000000000000000000000000..584c7650ac7b4f3b5fb1590e21945b2cf4112b58 GIT binary patch literal 8062 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 From 2db0b8cf59399ccf95336972f5c450262330798e Mon Sep 17 00:00:00 2001 From: fsegurai Date: Mon, 2 Dec 2024 14:58:43 -0600 Subject: [PATCH 06/59] feat/working demo and library - refactor/project structure --- angular.json | 26 +- bun.lockb | Bin 559918 -> 568179 bytes demo/src/app/app-routes.ts | 25 - demo/src/app/app.component.html | 2 +- demo/src/app/app.component.scss | 5 + demo/src/app/app.config.ts | 2 +- demo/src/app/app.constant.ts | 2 +- demo/src/app/bindings/bindings.component.html | 81 -- demo/src/app/bindings/bindings.component.scss | 7 - demo/src/app/bindings/bindings.component.ts | 82 --- demo/src/app/bindings/remote/demo.cpp | 4 - demo/src/app/bindings/remote/demo.html | 1 - demo/src/app/bindings/remote/demo.java | 7 - demo/src/app/bindings/remote/demo.md | 5 - demo/src/app/bindings/remote/demo.py | 2 - .../app/bindings/remote/language-pipe.html | 1 - .../app/bindings/remote/markdown-pipe.html | 1 - .../cheat-sheet/cheat-sheet.component.html | 71 -- .../cheat-sheet/cheat-sheet.component.scss | 3 - .../app/cheat-sheet/cheat-sheet.component.ts | 50 -- .../src/app/cheat-sheet/remote/blockquotes.md | 6 - .../remote/code-and-synthax-highlighting.md | 16 - demo/src/app/cheat-sheet/remote/emphasis.md | 7 - demo/src/app/cheat-sheet/remote/headers.md | 19 - .../app/cheat-sheet/remote/horizontal-rule.md | 12 - demo/src/app/cheat-sheet/remote/images.md | 9 - demo/src/app/cheat-sheet/remote/links.md | 51 -- demo/src/app/cheat-sheet/remote/lists-dot.md | 18 - demo/src/app/cheat-sheet/remote/lists.md | 19 - demo/src/app/cheat-sheet/remote/tables.md | 16 - .../get-started/get-started.component.html | 2 +- .../app/get-started/get-started.component.ts | 2 +- demo/src/app/marked-options-factory.ts | 4 +- .../app/playground/playground.component.html | 24 +- .../app/playground/playground.component.scss | 554 +------------- .../app/playground/playground.component.ts | 105 +-- demo/src/app/plugins/plugins.component.html | 697 ------------------ demo/src/app/plugins/plugins.component.scss | 74 -- demo/src/app/plugins/plugins.component.ts | 84 --- demo/src/app/plugins/remote/emoji.html | 3 - .../src/app/plugins/remote/katex-options.html | 5 - demo/src/app/plugins/remote/katex.html | 4 - .../app/plugins/remote/line-highlight.html | 6 - demo/src/app/plugins/remote/line-numbers.html | 5 - .../app/plugins/remote/mermaid-options.html | 5 - demo/src/app/plugins/remote/mermaid.html | 4 - .../remote/non-root-user-with-output.bash | 8 - .../remote/root-user-without-output.bash | 3 - ...s-powershell-with-filter-output.powershell | 4 - .../windows-powershell-with-output.powershell | 19 - demo/src/app/rerender/rerender.component.html | 51 -- demo/src/app/rerender/rerender.component.scss | 7 - demo/src/app/rerender/rerender.component.ts | 109 --- .../scrollspy-nav-layout.component.ts | 2 +- .../scrollspy-nav/scrollspy-nav.component.ts | 18 +- .../app/syntax-highlight/remote/for-loop.js | 4 - .../syntax-highlight.component.html | 77 -- .../syntax-highlight.component.scss | 3 - .../syntax-highlight.component.ts | 41 -- demo/src/index.html | 2 +- demo/src/scss/material-theme.scss | 8 +- lib/ng-package.json | 4 +- lib/ng-package.prod.json | 4 +- lib/package.json | 4 +- lib/public_api.ts | 6 +- .../code-diff-editor.component.spec.ts | 7 +- .../code-diff-editor.component.ts | 6 +- ...editor.module.ts => code-editor-module.ts} | 9 +- .../code-editor/code-editor.component.spec.ts | 2 +- lib/src/code-editor/code-editor.component.ts | 10 +- lib/src/index.ts | 2 +- package.json | 4 + 72 files changed, 101 insertions(+), 2441 deletions(-) delete mode 100644 demo/src/app/bindings/bindings.component.html delete mode 100644 demo/src/app/bindings/bindings.component.scss delete mode 100644 demo/src/app/bindings/bindings.component.ts delete mode 100644 demo/src/app/bindings/remote/demo.cpp delete mode 100644 demo/src/app/bindings/remote/demo.html delete mode 100644 demo/src/app/bindings/remote/demo.java delete mode 100644 demo/src/app/bindings/remote/demo.md delete mode 100644 demo/src/app/bindings/remote/demo.py delete mode 100644 demo/src/app/bindings/remote/language-pipe.html delete mode 100644 demo/src/app/bindings/remote/markdown-pipe.html delete mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.html delete mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.scss delete mode 100644 demo/src/app/cheat-sheet/cheat-sheet.component.ts delete mode 100644 demo/src/app/cheat-sheet/remote/blockquotes.md delete mode 100644 demo/src/app/cheat-sheet/remote/code-and-synthax-highlighting.md delete mode 100644 demo/src/app/cheat-sheet/remote/emphasis.md delete mode 100644 demo/src/app/cheat-sheet/remote/headers.md delete mode 100644 demo/src/app/cheat-sheet/remote/horizontal-rule.md delete mode 100644 demo/src/app/cheat-sheet/remote/images.md delete mode 100644 demo/src/app/cheat-sheet/remote/links.md delete mode 100644 demo/src/app/cheat-sheet/remote/lists-dot.md delete mode 100644 demo/src/app/cheat-sheet/remote/lists.md delete mode 100644 demo/src/app/cheat-sheet/remote/tables.md delete mode 100644 demo/src/app/plugins/plugins.component.html delete mode 100644 demo/src/app/plugins/plugins.component.scss delete mode 100644 demo/src/app/plugins/plugins.component.ts delete mode 100644 demo/src/app/plugins/remote/emoji.html delete mode 100644 demo/src/app/plugins/remote/katex-options.html delete mode 100644 demo/src/app/plugins/remote/katex.html delete mode 100644 demo/src/app/plugins/remote/line-highlight.html delete mode 100644 demo/src/app/plugins/remote/line-numbers.html delete mode 100644 demo/src/app/plugins/remote/mermaid-options.html delete mode 100644 demo/src/app/plugins/remote/mermaid.html delete mode 100644 demo/src/app/plugins/remote/non-root-user-with-output.bash delete mode 100644 demo/src/app/plugins/remote/root-user-without-output.bash delete mode 100644 demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell delete mode 100644 demo/src/app/plugins/remote/windows-powershell-with-output.powershell delete mode 100644 demo/src/app/rerender/rerender.component.html delete mode 100644 demo/src/app/rerender/rerender.component.scss delete mode 100644 demo/src/app/rerender/rerender.component.ts delete mode 100644 demo/src/app/syntax-highlight/remote/for-loop.js delete mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.html delete mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.scss delete mode 100644 demo/src/app/syntax-highlight/syntax-highlight.component.ts rename lib/src/{code-editor.module.ts => code-editor-module.ts} (71%) diff --git a/angular.json b/angular.json index f12a286..404a185 100644 --- a/angular.json +++ b/angular.json @@ -36,9 +36,33 @@ ], "styles": [ "demo/src/scss/material-theme.scss", - "demo/src/styles.scss" + "demo/src/styles.scss", + "demo/src/scss/prism-theme.scss", + "node_modules/prismjs/plugins/command-line/prism-command-line.css", + "node_modules/prismjs/plugins/line-highlight/prism-line-highlight.css", + "node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css" ], "scripts": [ + "node_modules/prismjs/prism.js", + "node_modules/prismjs/plugins/command-line/prism-command-line.js", + "node_modules/prismjs/plugins/highlight-keywords/prism-highlight-keywords.min.js", + "node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js", + "node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js", + "node_modules/prismjs/components/prism-bash.min.js", + "node_modules/prismjs/components/prism-c.min.js", + "node_modules/prismjs/components/prism-clike.min.js", + "node_modules/prismjs/components/prism-cpp.min.js", + "node_modules/prismjs/components/prism-css.min.js", + "node_modules/prismjs/components/prism-diff.min.js", + "node_modules/prismjs/components/prism-javascript.min.js", + "node_modules/prismjs/components/prism-latex.min.js", + "node_modules/prismjs/components/prism-markup.min.js", + "node_modules/prismjs/components/prism-markdown.min.js", + "node_modules/prismjs/components/prism-powershell.min.js", + "node_modules/prismjs/components/prism-python.min.js", + "node_modules/prismjs/components/prism-typescript.min.js", + "node_modules/emoji-toolkit/lib/js/joypixels.js", + "node_modules/clipboard/dist/clipboard.min.js" ], "allowedCommonJsDependencies": [ "gumshoejs", diff --git a/bun.lockb b/bun.lockb index 779f3d3474fca635ade4675348abf61f249007e8..da6b5e55c38830028cdbdacc79d13ad9fda68432 100644 GIT binary patch delta 117076 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 delta 112973 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 Xel0k#eid|sTN{n+s!QBrlx^^T0`f|i diff --git a/demo/src/app/app-routes.ts b/demo/src/app/app-routes.ts index ec7d466..44637de 100644 --- a/demo/src/app/app-routes.ts +++ b/demo/src/app/app-routes.ts @@ -6,31 +6,6 @@ export const appRoutes: Routes = [ loadComponent: () => import('./get-started/get-started.component'), data: { label: 'Get Started' }, }, - { - path: 'cheat-sheet', - loadComponent: () => import('./cheat-sheet/cheat-sheet.component'), - data: { label: 'Cheat Sheet' }, - }, - { - path: 'syntax-highlight', - loadComponent: () => import('./syntax-highlight/syntax-highlight.component'), - data: { label: 'Syntax Highlight' }, - }, - { - path: 'bindings', - loadComponent: () => import('./bindings/bindings.component'), - data: { label: 'Bindings' }, - }, - { - path: 'plugins', - loadComponent: () => import('./plugins/plugins.component'), - data: { label: 'Plugins' }, - }, - { - path: 're-render', - loadComponent: () => import('./rerender/rerender.component'), - data: { label: 'Re-render' }, - }, { path: 'playground', loadComponent: () => import('./playground/playground.component'), diff --git a/demo/src/app/app.component.html b/demo/src/app/app.component.html index 4000db0..d7d944b 100644 --- a/demo/src/app/app.component.html +++ b/demo/src/app/app.component.html @@ -1,6 +1,6 @@ -

@fsegurai/ngx-codemirror

+

@fsegurai/ngx-codemirror

- - - - #### Using ng-template - - Alternatively, the `clipboard` directive can be used in conjonction with `ng-template` to provide a custom button - implementation via the `clipboardButtonTemplate` input property on the `markdown` component. - - ```html - <ng-template #buttonTemplate> - <button (click)="onCopyToClipboard()">...</button> - </ng-template> - - <markdown clipboard [clipboardButtonTemplate]="buttonTemplate"></markdown> - ``` - - - diff --git a/demo/src/app/plugins/plugins.component.scss b/demo/src/app/plugins/plugins.component.scss deleted file mode 100644 index 3a9ff8c..0000000 --- a/demo/src/app/plugins/plugins.component.scss +++ /dev/null @@ -1,74 +0,0 @@ -:host { - display: block; -} - -textarea { - min-height: 180px; -} - -// Clipboard toolbar styling - -.btn-clipboard-toolbar ::ng-deep .markdown-clipboard-toolbar { - top: 16px; - right: 16px; - opacity: 0; - transition: opacity 250ms ease-out; - - &.hover { - opacity: 1; - } -} - -// Clipboard default button styling - -.btn-clipboard-default ::ng-deep .markdown-clipboard-button { - background-color: rgba(255, 255, 255, 0.07); - border: none; - border-radius: 4px; - color: #ffffff; - cursor: pointer; - font-family: 'Google Sans', Helvetica, sans-serif; - font-size: 11px; - padding: 4px 8px; - min-width: 50px; - width: auto; - transition: all 250ms ease-out; - - &:hover, - &:focus { - background-color: rgba(255, 255, 255, 0.14); - } - - &:active { - transform: scale(0.95); - } - - &.copied { - background-color: rgba(0, 255, 0, 0.1); - color: #00ff00; - } -} - -// Clipboard template styling - -.btn-clipboard { - display: flex; - justify-content: center; - align-items: center; - background-color: #1e1e1e; - border: 1px solid #666666; - border-radius: 4px; - padding: 6px; - cursor: pointer; - transition: all 200ms ease-out; - - &:active, - &:hover { - border-color: #888888; - } - - &:active { - background-color: #3e3e3e; - transform: scale(0.95); - } -} diff --git a/demo/src/app/plugins/plugins.component.ts b/demo/src/app/plugins/plugins.component.ts deleted file mode 100644 index f086f0f..0000000 --- a/demo/src/app/plugins/plugins.component.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; -import { FlexModule } from '@angular/flex-layout/flex'; -import { FormsModule } from '@angular/forms'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatInputModule } from '@angular/material/input'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import { CLIPBOARD_OPTIONS, MarkdownComponent, MermaidAPI } from 'ngx-markdown'; -import { ClipboardButtonComponent } from '@shared/clipboard-button'; -import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; - -@Component({ - selector: 'app-plugins', - templateUrl: './plugins.component.html', - styleUrls: ['./plugins.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - FlexModule, - FormsModule, - MarkdownComponent, - MatFormFieldModule, - MatInputModule, - ScrollspyNavLayoutComponent, - ], - providers: [ - { provide: CLIPBOARD_OPTIONS, useValue: {} }, - ] -}) -export default class PluginsComponent implements OnInit { - - readonly clipboardButton = ClipboardButtonComponent; - - emojiMarkdown = '# I :heart: @fsegurai/ngx-markdown'; - - katexMarkdown = - `#### \`katex\` directive example - -\`\`\`latex -f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi -\`\`\` - -$f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi$`; - - mermaidMarkdown = - `\`\`\`mermaid -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -\`\`\``; - - mermaidOptions: MermaidAPI.MermaidConfig = { - fontFamily: 'inherit', - theme: 'dark', - }; - - headings: Element[] | undefined; - - constructor( - private elementRef: ElementRef, - private snackbar: MatSnackBar, - ) { - } - - ngOnInit(): void { - this.setHeadings(); - } - - onCopyToClipboard(): void { - this.snackbar.open('Copied to clipboard via ng-template!', undefined, { - duration: 3000, - horizontalPosition: 'right', - verticalPosition: 'bottom', - }); - } - - private setHeadings(): void { - const headings: Element[] = []; - this.elementRef.nativeElement - .querySelectorAll('h2') - .forEach(x => headings.push(x)); - this.headings = headings; - } -} diff --git a/demo/src/app/plugins/remote/emoji.html b/demo/src/app/plugins/remote/emoji.html deleted file mode 100644 index e31380f..0000000 --- a/demo/src/app/plugins/remote/emoji.html +++ /dev/null @@ -1,3 +0,0 @@ - - I :heart: ngx-markdown - \ No newline at end of file diff --git a/demo/src/app/plugins/remote/katex-options.html b/demo/src/app/plugins/remote/katex-options.html deleted file mode 100644 index 62193fe..0000000 --- a/demo/src/app/plugins/remote/katex-options.html +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/katex.html b/demo/src/app/plugins/remote/katex.html deleted file mode 100644 index feee621..0000000 --- a/demo/src/app/plugins/remote/katex.html +++ /dev/null @@ -1,4 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/line-highlight.html b/demo/src/app/plugins/remote/line-highlight.html deleted file mode 100644 index 7eeae48..0000000 --- a/demo/src/app/plugins/remote/line-highlight.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/line-numbers.html b/demo/src/app/plugins/remote/line-numbers.html deleted file mode 100644 index fd915f2..0000000 --- a/demo/src/app/plugins/remote/line-numbers.html +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/mermaid-options.html b/demo/src/app/plugins/remote/mermaid-options.html deleted file mode 100644 index 71fd4d7..0000000 --- a/demo/src/app/plugins/remote/mermaid-options.html +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/mermaid.html b/demo/src/app/plugins/remote/mermaid.html deleted file mode 100644 index 8df0d2a..0000000 --- a/demo/src/app/plugins/remote/mermaid.html +++ /dev/null @@ -1,4 +0,0 @@ - - diff --git a/demo/src/app/plugins/remote/non-root-user-with-output.bash b/demo/src/app/plugins/remote/non-root-user-with-output.bash deleted file mode 100644 index 2f11cd0..0000000 --- a/demo/src/app/plugins/remote/non-root-user-with-output.bash +++ /dev/null @@ -1,8 +0,0 @@ -pwd -/usr/home/chris/bin -ls -la -total 2 -drwxr-xr-x 2 chris chris 11 Jan 10 16:48 . -drwxr--r-x 45 chris chris 92 Feb 14 11:10 .. --rwxr-xr-x 1 chris chris 444 Aug 25 2013 backup --rwxr-xr-x 1 chris chris 642 Jan 17 14:42 deploy \ No newline at end of file diff --git a/demo/src/app/plugins/remote/root-user-without-output.bash b/demo/src/app/plugins/remote/root-user-without-output.bash deleted file mode 100644 index daefbe6..0000000 --- a/demo/src/app/plugins/remote/root-user-without-output.bash +++ /dev/null @@ -1,3 +0,0 @@ -cd /usr/local/etc -cp php.ini php.ini.bak -vi php.ini \ No newline at end of file diff --git a/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell b/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell deleted file mode 100644 index 10876d6..0000000 --- a/demo/src/app/plugins/remote/windows-powershell-with-filter-output.powershell +++ /dev/null @@ -1,4 +0,0 @@ -Get-Date -(out) -(out)Sunday, November 7, 2021 8:19:21 PM -(out) \ No newline at end of file diff --git a/demo/src/app/plugins/remote/windows-powershell-with-output.powershell b/demo/src/app/plugins/remote/windows-powershell-with-output.powershell deleted file mode 100644 index ab8423a..0000000 --- a/demo/src/app/plugins/remote/windows-powershell-with-output.powershell +++ /dev/null @@ -1,19 +0,0 @@ -dir - - - Directory: C:\Users\Chris - - -Mode LastWriteTime Length Name ----- ------------- ------ ---- -d-r-- 10/14/2015 5:06 PM Contacts -d-r-- 12/12/2015 1:47 PM Desktop -d-r-- 11/4/2015 7:59 PM Documents -d-r-- 10/14/2015 5:06 PM Downloads -d-r-- 10/14/2015 5:06 PM Favorites -d-r-- 10/14/2015 5:06 PM Links -d-r-- 10/14/2015 5:06 PM Music -d-r-- 10/14/2015 5:06 PM Pictures -d-r-- 10/14/2015 5:06 PM Saved Games -d-r-- 10/14/2015 5:06 PM Searches -d-r-- 10/14/2015 5:06 PM Videos \ No newline at end of file diff --git a/demo/src/app/rerender/rerender.component.html b/demo/src/app/rerender/rerender.component.html deleted file mode 100644 index 55802b2..0000000 --- a/demo/src/app/rerender/rerender.component.html +++ /dev/null @@ -1,51 +0,0 @@ - -

Re-render

- - - In some situations, you might need to re-render markdown after making changes. If you've updated the text this would - be done automatically, however if the changes are internal to the library such as rendering options, you will need - to inform the `MarkdownService` that it needs to update. - - To do so, inject the `MarkdownService` and call the `reload()` function as shown below. - - ```typescript - import { MarkdownService } from 'ngx-markdown'; - - constructor( - private markdownService: MarkdownService, - ) { } - - update() { - this.markdownService.reload(); - } - ``` - - -
-

Example

- - - The example below will apply the `style` attribute on heading elements to customize their colors. This requires - markdown to be reloaded because it updates the renderer programmatically to override the `heading` token. - - Although this could be done simply with CSS variables, this is only for demo purposes. - - -
-
-
- - CSS Color - - - - - - -
- - -
-
-
-
diff --git a/demo/src/app/rerender/rerender.component.scss b/demo/src/app/rerender/rerender.component.scss deleted file mode 100644 index 347217d..0000000 --- a/demo/src/app/rerender/rerender.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - display: block; -} - -textarea { - min-height: 340px; -} diff --git a/demo/src/app/rerender/rerender.component.ts b/demo/src/app/rerender/rerender.component.ts deleted file mode 100644 index 6f56c68..0000000 --- a/demo/src/app/rerender/rerender.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit } from '@angular/core'; -import { FlexModule } from '@angular/flex-layout/flex'; -import { FormsModule } from '@angular/forms'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatInputModule } from '@angular/material/input'; -import { MarkdownComponent, MarkdownService, MarkedToken } from 'ngx-markdown'; -import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; - -@Component({ - selector: 'app-rerender', - templateUrl: './rerender.component.html', - styleUrls: ['./rerender.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - FlexModule, - FormsModule, - MarkdownComponent, - MatFormFieldModule, - MatInputModule, - ScrollspyNavLayoutComponent, - ] -}) -export default class RerenderComponent implements OnInit, OnDestroy { - - // property to handle override as per marked documentation, if a renderer - // function returns `false` it will fall back to previous implementation - headings: Element[] | undefined; - markdown = `## Markdown rules! ---- - -### Syntax highlight -\`\`\`typescript -const language = 'typescript'; -\`\`\` - -### Lists -1. Ordered list -2. Another bullet point - - Unordered list - - Another unordered bullet point - -### Blockquote -> Blockquote to the max`; - // https://marked.js.org/using_pro#renderer - private overrideEnabled = false; - - constructor( - private elementRef: ElementRef, - private markdownService: MarkdownService, - ) { - } - - private _accentColor = ''; - - get accentColor(): string { - return this._accentColor; - } - - set accentColor(value: string) { - if (this._accentColor === value) { - return; - } - this._accentColor = value; - this.changeAccentColor(); - } - - ngOnInit(): void { - this.setHeadings(); - } - - ngOnDestroy(): void { - this.resetRenderer(); - } - - private changeAccentColor(): void { - const styleAttribute = this.accentColor - ? ` style="color: ${this.accentColor}"` - : ''; - - this.overrideRenderer(styleAttribute); - - this.markdownService.reload(); - } - - private overrideRenderer(styleAttribute: string): void { - this.overrideEnabled = true; - - this.markdownService.renderer.heading = ({text, depth}: MarkedToken.Heading): string => { - if(this.overrideEnabled) { - const parsedText = this.markdownService.parseInline(text); // Parse inline Markdown text to HTML - return `${parsedText}`; - } - - return false as unknown as string; - } - } - - private resetRenderer(): void { - this.overrideEnabled = false; - } - - private setHeadings(): void { - const headings: Element[] = []; - this.elementRef.nativeElement - .querySelectorAll('h2') - .forEach(x => headings.push(x)); - this.headings = headings; - } -} diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts index dbd615e..a77a694 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts @@ -4,7 +4,7 @@ import { ExtendedModule } from '@angular/flex-layout/extended'; import { FlexModule } from '@angular/flex-layout/flex'; import { MatButtonModule } from '@angular/material/button'; import { MatDividerModule } from '@angular/material/divider'; -import { MarkdownComponent } from 'ngx-markdown'; +import { MarkdownComponent } from '@fsegurai/ngx-markdown'; import { ScrollspyNavComponent } from '@shared/scrollspy-nav'; import { ZOOM_ANIMATION } from './scrollspy-nav-layout.animation'; diff --git a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts index 673f411..24ef09a 100644 --- a/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts +++ b/demo/src/app/shared/scrollspy-nav/scrollspy-nav.component.ts @@ -14,14 +14,14 @@ import Gumshoe from 'gumshoejs'; import { first } from 'rxjs/operators'; @Component({ - selector: 'app-scrollspy-nav', - templateUrl: './scrollspy-nav.component.html', - styleUrls: ['./scrollspy-nav.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - NgFor, - RouterLink, - ] + selector: 'app-scrollspy-nav', + templateUrl: './scrollspy-nav.component.html', + styleUrls: ['./scrollspy-nav.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + NgFor, + RouterLink, + ] }) export class ScrollspyNavComponent implements OnChanges, OnDestroy { @@ -75,7 +75,7 @@ export class ScrollspyNavComponent implements OnChanges, OnDestroy { .pipe(first()) .subscribe(() => { const hostElement = this.elementRef.nativeElement; - const linkSelector = `${hostElement.tagName}.${hostElement.className} a`; + const linkSelector = `${ hostElement.tagName }.${ hostElement.className } a`; this.scrollSpy = new Gumshoe(linkSelector, { offset: 64, reflow: true }); }); } diff --git a/demo/src/app/syntax-highlight/remote/for-loop.js b/demo/src/app/syntax-highlight/remote/for-loop.js deleted file mode 100644 index a8dfcfc..0000000 --- a/demo/src/app/syntax-highlight/remote/for-loop.js +++ /dev/null @@ -1,4 +0,0 @@ -for (let step = 0; step < 5; step++) { - // Runs 5 times, with values of step 0 through 4. - console.log('Walking east one step'); -} \ No newline at end of file diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.html b/demo/src/app/syntax-highlight/syntax-highlight.component.html deleted file mode 100644 index dcc4443..0000000 --- a/demo/src/app/syntax-highlight/syntax-highlight.component.html +++ /dev/null @@ -1,77 +0,0 @@ - -

Syntax Highlight

- -
-

Auto-Detect

- - - When using the `src` input property to load file remotely, language for syntax highlight will be auto-detected - based on the loaded file extension. - - The following example... - - ```html - <markdown [src]="'app/syntax-highlight/remote/for-loop.js'"></markdown> - ``` - - Would render with Javascript syntax highlight based on the `js` file extension. - - - -
- -
-

Interpolation

- - - > :bulb: Using interpolation requires the uses of `ngPreserveWhitespaces` to keep indentation and spaces untouched - during compilation. - - When using [interpolation](https://angular.io/guide/template-syntax#interpolation-), the language for code block - must be specified after the first three backticks. - - ````html - <markdown ngPreserveWhitespaces> - ```typescript - export function greetings(name: string): string { - return 'Hello ' + name; - } - ``` - </markdown> - ```` - ##### _* Characters such as `<, >, {, }` directly written in the HTML template file must be escaped - so that the compiler doesn't try to bind it as regular Angular code_. - - Would render with TypeScript syntax highlight based on the specified `typescript` language. - - - - ```typescript - export function greetings(name: string): string { - return 'Hello ' + name; - } - ``` - -
- -
-

Language Pipe

- - - When using the `markdown` pipe, you can specify the syntax highlight language by chaining the `language` pipe. - - For example, having the python code `print('hello world')` into the `myValue` variable could be parsed specifying - the language as follow... - - ```` - ```html - <div [innerHTML]="myValue | language : 'python' | markdown | async"><div> - ``` - ```` - - Would render with Python syntax highlight as specified with the `language` pipe in front of the `markdown` pipe. - - -
-
-
diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.scss b/demo/src/app/syntax-highlight/syntax-highlight.component.scss deleted file mode 100644 index 5d4e87f..0000000 --- a/demo/src/app/syntax-highlight/syntax-highlight.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - display: block; -} diff --git a/demo/src/app/syntax-highlight/syntax-highlight.component.ts b/demo/src/app/syntax-highlight/syntax-highlight.component.ts deleted file mode 100644 index 11c2557..0000000 --- a/demo/src/app/syntax-highlight/syntax-highlight.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AsyncPipe } from '@angular/common'; -import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core'; -import { LanguagePipe, MarkdownComponent, MarkdownPipe } from 'ngx-markdown'; -import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; - -@Component({ - selector: 'app-syntax-highlight', - templateUrl: './syntax-highlight.component.html', - styleUrls: ['./syntax-highlight.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - AsyncPipe, - LanguagePipe, - MarkdownComponent, - MarkdownPipe, - ScrollspyNavLayoutComponent, - ] -}) -export default class SyntaxHighlightComponent implements OnInit { - - headings: Element[] | undefined; - - myValue = 'print(\'hello-world\')'; - - constructor( - private elementRef: ElementRef, - ) { - } - - ngOnInit(): void { - this.setHeadings(); - } - - private setHeadings(): void { - const headings: Element[] = []; - this.elementRef.nativeElement - .querySelectorAll('h2') - .forEach(x => headings.push(x)); - this.headings = headings; - } -} diff --git a/demo/src/index.html b/demo/src/index.html index 069ee65..6f75c55 100644 --- a/demo/src/index.html +++ b/demo/src/index.html @@ -2,7 +2,7 @@ - @fsegurai/ngx-markdown | Demo + @fsegurai/ngx-codemirror | Demo diff --git a/demo/src/scss/material-theme.scss b/demo/src/scss/material-theme.scss index 855d115..98f4058 100644 --- a/demo/src/scss/material-theme.scss +++ b/demo/src/scss/material-theme.scss @@ -1,11 +1,11 @@ @use 'sass:map'; @use '@angular/material' as mat; -@use 'typography' as typography; -@use 'utils' as utils; +@use './typography' as typography; +@use './utils' as utils; -@use 'light-theme' as light-theme; -@use 'dark-theme' as dark-theme; +@use './light-theme' as light-theme; +@use './dark-theme' as dark-theme; @use '../app/app.component.theme' as app-component; @use '../app/shared/scrollspy-nav/scrollspy-nav.component.theme' as scrollspy-nav-component; diff --git a/lib/ng-package.json b/lib/ng-package.json index 9fe520b..3322600 100644 --- a/lib/ng-package.json +++ b/lib/ng-package.json @@ -6,6 +6,8 @@ "entryFile": "public_api.ts" }, "allowedNonPeerDependencies": [ - "." + "@codemirror/merge", + "@codemirror/theme-one-dark", + "codemirror" ] } diff --git a/lib/ng-package.prod.json b/lib/ng-package.prod.json index 9fe520b..3322600 100644 --- a/lib/ng-package.prod.json +++ b/lib/ng-package.prod.json @@ -6,6 +6,8 @@ "entryFile": "public_api.ts" }, "allowedNonPeerDependencies": [ - "." + "@codemirror/merge", + "@codemirror/theme-one-dark", + "codemirror" ] } diff --git a/lib/package.json b/lib/package.json index 259f93e..892ab1d 100644 --- a/lib/package.json +++ b/lib/package.json @@ -22,6 +22,8 @@ "ngx-codemirror" ], "dependencies": { + "@codemirror/language-data": "^6.5.1", + "@codemirror/merge": "^6.7.4", "codemirror": "^6.0.1", "tslib": "^2.8.1" }, @@ -30,8 +32,6 @@ "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", - "@codemirror/language-data": "^6.5.1", - "@codemirror/merge": "^6.7.4", "rxjs": "^6.5.3 || ^7.4.0 || ^7.8.1", "zone.js": "~0.15.0" }, diff --git a/lib/public_api.ts b/lib/public_api.ts index cba1843..deff0e1 100644 --- a/lib/public_api.ts +++ b/lib/public_api.ts @@ -1 +1,5 @@ -export * from './src/index'; +/* + * Public API Surface of code-editor + */ + +export * from './src/index'; \ No newline at end of file diff --git a/lib/src/code-diff-editor/code-diff-editor.component.spec.ts b/lib/src/code-diff-editor/code-diff-editor.component.spec.ts index 1cf05cd..5c62fe5 100644 --- a/lib/src/code-diff-editor/code-diff-editor.component.spec.ts +++ b/lib/src/code-diff-editor/code-diff-editor.component.spec.ts @@ -1,6 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CodeDiffEditorComponent } from './code-diff-editor.component'; +import { CodeDiffEditorComponent } from 'ngx-codemirror'; describe('CodeDiffEditorComponent', () => { let component: CodeDiffEditorComponent; @@ -8,9 +7,9 @@ describe('CodeDiffEditorComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [CodeDiffEditorComponent] + imports: [CodeDiffEditorComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(CodeDiffEditorComponent); component = fixture.componentInstance; diff --git a/lib/src/code-diff-editor/code-diff-editor.component.ts b/lib/src/code-diff-editor/code-diff-editor.component.ts index e9f8527..0635fc3 100644 --- a/lib/src/code-diff-editor/code-diff-editor.component.ts +++ b/lib/src/code-diff-editor/code-diff-editor.component.ts @@ -18,7 +18,7 @@ import { DiffConfig, MergeView } from '@codemirror/merge'; import { Compartment, Extension } from '@codemirror/state'; import { EditorView } from '@codemirror/view'; import { basicSetup, minimalSetup } from 'codemirror'; -import { External, Setup } from '../code-editor/code-editor.component'; +import { External, Setup } from 'ngx-codemirror'; export type Orientation = 'a-b' | 'b-a'; export type RevertControls = 'a-to-b' | 'b-to-a'; @@ -31,7 +31,7 @@ export interface DiffEditorModel { @Component({ // eslint-disable-next-line @angular-eslint/component-selector - selector: 'ngx-code-diff-editor, [diff-editor]', + selector: 'ngx-code-diff-editor, code-diff-editor, [diff-editor]', imports: [], template: '', styles: ` @@ -105,7 +105,7 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co /** * By default, the merge view will mark inserted and deleted text - * in changed chunks. Set this to false to turn that off. + * in changed chunks. Set this to false in order to turn that off. */ @Input({ transform: booleanAttribute }) highlightChanges = true; diff --git a/lib/src/code-editor.module.ts b/lib/src/code-editor-module.ts similarity index 71% rename from lib/src/code-editor.module.ts rename to lib/src/code-editor-module.ts index f14d9aa..a625c0e 100644 --- a/lib/src/code-editor.module.ts +++ b/lib/src/code-editor-module.ts @@ -1,16 +1,15 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { CodeDiffEditorComponent } from './code-diff-editor/code-diff-editor.component'; import { CodeEditorComponent } from './code-editor/code-editor.component'; const sharedDeclarations = [ - CodeDiffEditorComponent, CodeEditorComponent, + CodeDiffEditorComponent, ]; @NgModule({ - imports: [CommonModule, ...sharedDeclarations], - exports: [sharedDeclarations], + imports: [...sharedDeclarations], + exports: sharedDeclarations, }) export class CodeEditorModule { -} +} \ No newline at end of file diff --git a/lib/src/code-editor/code-editor.component.spec.ts b/lib/src/code-editor/code-editor.component.spec.ts index eac329b..39c6bd1 100644 --- a/lib/src/code-editor/code-editor.component.spec.ts +++ b/lib/src/code-editor/code-editor.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { CodeEditorComponent } from './code-editor.component'; +import { CodeEditorComponent } from 'ngx-codemirror'; describe('CodeEditorComponent', () => { let component: CodeEditorComponent; diff --git a/lib/src/code-editor/code-editor.component.ts b/lib/src/code-editor/code-editor.component.ts index 787e2d3..da237f0 100644 --- a/lib/src/code-editor/code-editor.component.ts +++ b/lib/src/code-editor/code-editor.component.ts @@ -27,11 +27,11 @@ export const External = Annotation.define(); @Component({ // eslint-disable-next-line @angular-eslint/component-selector - selector: 'ngx-code-editor, [code-editor]', + selector: 'ngx-code-editor, code-editor, [code-editor]', imports: [], - templateUrl: 'code-editor.component', - styleUrl: ` - .code-editor { + template: '', + styles: ` + .code-editor { display: block; .cm-editor { @@ -79,7 +79,7 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro /** The editor's theme. */ @Input() theme: Theme = 'light'; - /** The editor's placecholder. */ + /** The editor's placeholder. */ @Input() placeholder = ''; /** Whether indent with Tab key. */ diff --git a/lib/src/index.ts b/lib/src/index.ts index 9039a06..105c6cc 100644 --- a/lib/src/index.ts +++ b/lib/src/index.ts @@ -1,3 +1,3 @@ -export * from './code-editor.module'; +export * from './code-editor-module'; export * from './code-editor/code-editor.component'; export * from './code-diff-editor/code-diff-editor.component'; diff --git a/package.json b/package.json index a367a7a..3a367ff 100644 --- a/package.json +++ b/package.json @@ -60,10 +60,14 @@ "@codemirror/merge": "^6.7.4", "@fsegurai/codemirror-theme-bundle": "^6.1.1", "@fsegurai/ngx-markdown": "^19.0.0", + "clipboard": "^2.0.11", "codemirror": "^6.0.1", + "emoji-toolkit": "^9.0.1", "gumshoejs": "^5.1.2", "hammerjs": "~2.0.8", + "marked-gfm-heading-id": "^4.1.1", "ngx-codemirror": "file:lib", + "prismjs": "^1.29.0", "rxjs": "~7.8.1", "tslib": "^2.8.1", "zone.js": "~0.15.0" From aa0a444e6b1d74b2ff4460ff2f52730eefb56e21 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 17:26:07 -0600 Subject: [PATCH 07/59] fix/improve imports --- angular.json | 6 +- demo/src/app/playground/remote/demo.ts | 217 ----------------------- demo/src/app/shared/debounce/debounce.ts | 17 -- 3 files changed, 1 insertion(+), 239 deletions(-) delete mode 100644 demo/src/app/playground/remote/demo.ts delete mode 100644 demo/src/app/shared/debounce/debounce.ts diff --git a/angular.json b/angular.json index 404a185..0186f22 100644 --- a/angular.json +++ b/angular.json @@ -28,11 +28,7 @@ { "glob": "**/*", "input": "demo/public" - }, - "demo/src/app/bindings/remote", - "demo/src/app/cheat-sheet/remote", - "demo/src/app/syntax-highlight/remote", - "demo/src/app/plugins/remote" + } ], "styles": [ "demo/src/scss/material-theme.scss", diff --git a/demo/src/app/playground/remote/demo.ts b/demo/src/app/playground/remote/demo.ts deleted file mode 100644 index 72b16fc..0000000 --- a/demo/src/app/playground/remote/demo.ts +++ /dev/null @@ -1,217 +0,0 @@ -export const playgroundDemo = `## Images Section - -![Custom background](https://pub-5319465d44da4d52805a6be35612d5b4.r2.dev/assets/large/background/custom-bg-01.jpg) - -Like links, Images also have a footnote style syntax - -![Alt text][id] - -With a reference later in the document defining the URL location: - -[id]: https://pub-5319465d44da4d52805a6be35612d5b4.r2.dev/assets/large/background/custom-bg-01.jpg "Test Inline Reference" - -## Horizontal Rule Section - ---- - -*** - -## Advertisement - -__Advertisement :smile: - -## Emphasis Section - -**This is bold text** - -*This is italic text* - -~~Strikethrough~~ - -## Headings Section - -# h1 Heading -## h2 Heading -### h3 Heading -#### h4 Heading -##### h5 Heading -###### h6 Heading - -## Horizontal Rules - ---- - -*** - -*** - -## Emphasis Section - -**This is bold text** - -__This is bold text__ - -*This is italic text* - -_This is italic text_ - -~~Strikethrough~~ - -## Blockquotes Section - -> Blockquotes can also be nested... ->> ...by using additional greater-than signs right next to each other... -> > > ...or with spaces between arrows. - -## Unordered Lists Section - -- Create a list by starting a line with \`+\`, \`-\`, or \`*\` -- Sub-lists are made by indenting 2 spaces: - - Marker character change forces new list start: - * Ac tristique libero volutpat at - + Facilisis in pretium nisl aliquet - - Nulla volutpat aliquam velit -- Very easy! -- __[pica](https://nodeca.github.io/pica/demo/)__ - high quality and fast image resize in browser. -- __[babelfish](https://github.com/nodeca/babelfish/)__ - developer friendly i18n with plurals support and easy syntax. - - ## Ordered Lists Section - -1. Lorem ipsum dolor sit amet -2. Consectetur adipiscing elit -3. Integer molestie lorem at massa - - - -1. You can use sequential numbers... - - - -1. ...or keep all the numbers as \`1.\` - -Start numbering with offset: - -57. foo - - - -1. bar - -## Task Lists Section - -- [x] #739 -- [ ] https://github.com/octo-org/octo-repo/issues/740 -- [ ] Add delight to the experience when all tasks are complete :tada: - -## Code Section - -Inline \`code\` - -Indented code - - // Some comments - line 1 of code - line 2 of code - line 3 of code - -Block code "fences" - -\`\`\` -Sample -text -here -... -\`\`\` - -Syntax highlighting - -\`\`\` js -var foo = function (bar) { - return bar++; -}; - -console.log(foo(5)); -\`\`\` - -## Tables Section - -| Option | Description | -| ------ | ----------- | -| data | path to data files to supply the data that will be passed into templates. | -| engine | engine to be used for processing templates. Handlebars is the default. | -| ext | extension to be used for dest files. | - -Right aligned columns - -| Option | Description | -| ------:| -----------:| -| data | path to data files to supply the data that will be passed into templates. | -| engine | engine to be used for processing templates. Handlebars is the default. | -| ext | extension to be used for dest files. | - -## Links Section - -[link text](http://dev.nodeca.com) - -[link with title](http://nodeca.github.io/pica/demo/ "title text!") - -[smart](https://google.com) - -[Internal reference - Code Section](/routerLink:playground#code-section) - -## Plugins Section - -For more details regarding **Marked** extension, visit the [official documentation](https://marked.js.org/using_advanced#extensions) - -### [Emojis](https://github.com/markdown-it/markdown-it-emoji) - -> Classic markup: :wink: :cry: :laughing: :yum: - -### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup) - -- 19th -- H2O - -### [\`\`](https://github.com/markdown-it/markdown-it-ins) - -Inserted Text - -### [\`\`](https://github.com/markdown-it/markdown-it-mark) - -

- Marked Text -

- -### [Abbreviations](https://github.com/markdown-it/markdown-it-abbr) - -This is HTML abbreviation example. - -It converts HTML, but keep intact partial entries like "xxxHTMLyyy" and so on. - -[HTML]: Hyper Text Markup Language - -### [Math](katex.com) - -

- $\\sqrt{3x-1}+(1+x)^2$ -

- -$f(x) = \\int_{-\\infty}^\\infty \\hat f(\\xi) e^{2 \\pi i \\xi x} d\\xi$ - -### [Mermaid](https://mermaid.js.org/intro/getting-started.html) - -\`\`\`mermaid -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -\`\`\` - -\`\`\`mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - John-->>Alice: Great! -\`\`\` - -`; diff --git a/demo/src/app/shared/debounce/debounce.ts b/demo/src/app/shared/debounce/debounce.ts deleted file mode 100644 index 7c57c31..0000000 --- a/demo/src/app/shared/debounce/debounce.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Debounce function to avoid multiple calls to the same function - * @param func - Function to be debounced - * @param delay - Delay in milliseconds - */ -// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -export function debounce(func: Function, delay: number) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let debounceTimer: any; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return (...args: any[]) => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - clearTimeout(debounceTimer); - // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument - debounceTimer = setTimeout(() => func(...args), delay); - }; -} From d0c9c60e9d79f3e46431d0ac5c51b198839b0d45 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 17:26:59 -0600 Subject: [PATCH 08/59] feat/TOC validation based on usage --- .../scrollspy-nav-layout.component.html | 28 +++++++++++-------- .../scrollspy-nav-layout.component.ts | 3 ++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html index 94cc395..14009d0 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html @@ -8,17 +8,21 @@ [GitHub](https://github.com/fsegurai) - - -
- - + @if (displayTOC) { + + }
+ @if (displayTOC) { +
+ + +
+ } diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts index a77a694..0652ea2 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts @@ -29,6 +29,9 @@ export class ScrollspyNavLayoutComponent { @Input() headings: Element[] | undefined; + @Input() + displayTOC: boolean | undefined; + showScrollUpButton = false; @HostListener('window:scroll') From 07ba85bf5a6bd4db4ff943326d0bed17db1b3973 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 17:27:28 -0600 Subject: [PATCH 09/59] feat/languages demo for playground purposes --- demo/public/lang_samples/angular_template.txt | 16 +++++ demo/public/lang_samples/apl.txt | 22 ++++++ demo/public/lang_samples/asn.1.txt | 14 ++++ demo/public/lang_samples/bash.txt | 17 +++++ demo/public/lang_samples/c++.txt | 18 +++++ demo/public/lang_samples/c.txt | 6 ++ demo/public/lang_samples/clojure.txt | 11 +++ demo/public/lang_samples/clojurescript.txt | 7 ++ demo/public/lang_samples/coffeescript.txt | 13 ++++ demo/public/lang_samples/common_lisp.txt | 14 ++++ demo/public/lang_samples/csharp.txt | 17 +++++ demo/public/lang_samples/css.txt | 13 ++++ demo/public/lang_samples/d.txt | 21 ++++++ demo/public/lang_samples/dart.txt | 19 +++++ demo/public/lang_samples/diff.txt | 5 ++ demo/public/lang_samples/dockerfile.txt | 53 ++++++++++++++ demo/public/lang_samples/elm.txt | 21 ++++++ demo/public/lang_samples/erlang.txt | 23 ++++++ demo/public/lang_samples/go.txt | 34 +++++++++ demo/public/lang_samples/groovy.txt | 41 +++++++++++ demo/public/lang_samples/haskell.txt | 20 ++++++ demo/public/lang_samples/html.txt | 12 ++++ demo/public/lang_samples/http.txt | 13 ++++ demo/public/lang_samples/java.txt | 39 ++++++++++ demo/public/lang_samples/javascript.txt | 13 ++++ demo/public/lang_samples/json.txt | 12 ++++ demo/public/lang_samples/jsx.txt | 9 +++ demo/public/lang_samples/julia.txt | 17 +++++ demo/public/lang_samples/kotlin.txt | 24 +++++++ demo/public/lang_samples/latex.txt | 45 ++++++++++++ demo/public/lang_samples/less.txt | 26 +++++++ demo/public/lang_samples/liquid.txt | 18 +++++ demo/public/lang_samples/lua.txt | 22 ++++++ demo/public/lang_samples/markdown.txt | 32 +++++++++ demo/public/lang_samples/mysql.txt | 13 ++++ demo/public/lang_samples/nginx.txt | 17 +++++ demo/public/lang_samples/objective-c.txt | 13 ++++ demo/public/lang_samples/pascal.txt | 47 ++++++++++++ demo/public/lang_samples/perl.txt | 28 ++++++++ demo/public/lang_samples/php.txt | 19 +++++ demo/public/lang_samples/plaintext.txt | 9 +++ demo/public/lang_samples/pug.txt | 19 +++++ demo/public/lang_samples/python.txt | 12 ++++ demo/public/lang_samples/r.txt | 20 ++++++ demo/public/lang_samples/ruby.txt | 13 ++++ demo/public/lang_samples/rust.txt | 58 +++++++++++++++ demo/public/lang_samples/sass.txt | 42 +++++++++++ demo/public/lang_samples/scala.txt | 69 ++++++++++++++++++ demo/public/lang_samples/scss.txt | 49 +++++++++++++ demo/public/lang_samples/shell.txt | 23 ++++++ demo/public/lang_samples/sql.txt | 12 ++++ demo/public/lang_samples/swift.txt | 15 ++++ demo/public/lang_samples/tsx.txt | 14 ++++ demo/public/lang_samples/typescript.txt | 72 +++++++++++++++++++ demo/public/lang_samples/vbscript.txt | 23 ++++++ demo/public/lang_samples/vue.txt | 43 +++++++++++ demo/public/lang_samples/xml.txt | 55 ++++++++++++++ demo/public/lang_samples/yaml.txt | 36 ++++++++++ 58 files changed, 1408 insertions(+) create mode 100644 demo/public/lang_samples/angular_template.txt create mode 100644 demo/public/lang_samples/apl.txt create mode 100644 demo/public/lang_samples/asn.1.txt create mode 100644 demo/public/lang_samples/bash.txt create mode 100644 demo/public/lang_samples/c++.txt create mode 100644 demo/public/lang_samples/c.txt create mode 100644 demo/public/lang_samples/clojure.txt create mode 100644 demo/public/lang_samples/clojurescript.txt create mode 100644 demo/public/lang_samples/coffeescript.txt create mode 100644 demo/public/lang_samples/common_lisp.txt create mode 100644 demo/public/lang_samples/csharp.txt create mode 100644 demo/public/lang_samples/css.txt create mode 100644 demo/public/lang_samples/d.txt create mode 100644 demo/public/lang_samples/dart.txt create mode 100644 demo/public/lang_samples/diff.txt create mode 100644 demo/public/lang_samples/dockerfile.txt create mode 100644 demo/public/lang_samples/elm.txt create mode 100644 demo/public/lang_samples/erlang.txt create mode 100644 demo/public/lang_samples/go.txt create mode 100644 demo/public/lang_samples/groovy.txt create mode 100644 demo/public/lang_samples/haskell.txt create mode 100644 demo/public/lang_samples/html.txt create mode 100644 demo/public/lang_samples/http.txt create mode 100644 demo/public/lang_samples/java.txt create mode 100644 demo/public/lang_samples/javascript.txt create mode 100644 demo/public/lang_samples/json.txt create mode 100644 demo/public/lang_samples/jsx.txt create mode 100644 demo/public/lang_samples/julia.txt create mode 100644 demo/public/lang_samples/kotlin.txt create mode 100644 demo/public/lang_samples/latex.txt create mode 100644 demo/public/lang_samples/less.txt create mode 100644 demo/public/lang_samples/liquid.txt create mode 100644 demo/public/lang_samples/lua.txt create mode 100644 demo/public/lang_samples/markdown.txt create mode 100644 demo/public/lang_samples/mysql.txt create mode 100644 demo/public/lang_samples/nginx.txt create mode 100644 demo/public/lang_samples/objective-c.txt create mode 100644 demo/public/lang_samples/pascal.txt create mode 100644 demo/public/lang_samples/perl.txt create mode 100644 demo/public/lang_samples/php.txt create mode 100644 demo/public/lang_samples/plaintext.txt create mode 100644 demo/public/lang_samples/pug.txt create mode 100644 demo/public/lang_samples/python.txt create mode 100644 demo/public/lang_samples/r.txt create mode 100644 demo/public/lang_samples/ruby.txt create mode 100644 demo/public/lang_samples/rust.txt create mode 100644 demo/public/lang_samples/sass.txt create mode 100644 demo/public/lang_samples/scala.txt create mode 100644 demo/public/lang_samples/scss.txt create mode 100644 demo/public/lang_samples/shell.txt create mode 100644 demo/public/lang_samples/sql.txt create mode 100644 demo/public/lang_samples/swift.txt create mode 100644 demo/public/lang_samples/tsx.txt create mode 100644 demo/public/lang_samples/typescript.txt create mode 100644 demo/public/lang_samples/vbscript.txt create mode 100644 demo/public/lang_samples/vue.txt create mode 100644 demo/public/lang_samples/xml.txt create mode 100644 demo/public/lang_samples/yaml.txt diff --git a/demo/public/lang_samples/angular_template.txt b/demo/public/lang_samples/angular_template.txt new file mode 100644 index 0000000..d5e606c --- /dev/null +++ b/demo/public/lang_samples/angular_template.txt @@ -0,0 +1,16 @@ +

Todos

+ + + +@for (todo of todos; track $index) { +

+ + @if (todo.done) { + {{ todo.text }} + } @else { + {{ todo.text }} + } +

+} @empty { +

No todos

+} diff --git a/demo/public/lang_samples/apl.txt b/demo/public/lang_samples/apl.txt new file mode 100644 index 0000000..90052b3 --- /dev/null +++ b/demo/public/lang_samples/apl.txt @@ -0,0 +1,22 @@ +∇ FizzBuzz end;i +:For i :In ⍳end + :If 0=15|i + ⎕←'FizzBuzz' + :ElseIf 0=3|i + ⎕←'Fizz' + :ElseIf 0=5|i + ⎕←'Buzz' + :Else + ⎕←i + :EndIf +:EndFor +∇ + +⎕ ← data ← (1 2 3 4) (2 5 8 6) (8 6 2 3) (8 7 6 1) + +]dinput +Sum ← { + ⍺ ← 0 ⍝ Left arg defaults to 0 if not given + 0=≢⍵: ⍺ ⍝ If right arg is empty, return left arg + (⍺+⊃⍵)∇1↓⍵ ⍝ Add head to acc, recur over tail +} diff --git a/demo/public/lang_samples/asn.1.txt b/demo/public/lang_samples/asn.1.txt new file mode 100644 index 0000000..6a51ef9 --- /dev/null +++ b/demo/public/lang_samples/asn.1.txt @@ -0,0 +1,14 @@ +TBSCertificate ::= SEQUENCE { + version [0] Version DEFAULT v1, + serialNumber CertificateSerialNumber, + signature AlgorithmIdentifier, + issuer Name, + validity Validity, + subject Name, + subjectPublicKeyInfo SubjectPublicKeyInfo, + issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + -- If present, version MUST be v2 or v3 + subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + -- If present, version MUST be v2 or v3 + extensions [3] Extensions OPTIONAL + -- If present, version MUST be v3 -- } diff --git a/demo/public/lang_samples/bash.txt b/demo/public/lang_samples/bash.txt new file mode 100644 index 0000000..05d7eb3 --- /dev/null +++ b/demo/public/lang_samples/bash.txt @@ -0,0 +1,17 @@ +#!/bin/bash + +###### CONFIG +ACCEPTED_HOSTS="/root/.hag_accepted.conf" +BE_VERBOSE=false + +if [ "$UID" -ne 0 ] +then + echo "Superuser rights required" + exit 2 +fi + +genApacheConf(){ + echo -e "# Host ${HOME_DIR}$1/$2 :" +} + +echo '"quoted"' | tr -d \" > text.txt diff --git a/demo/public/lang_samples/c++.txt b/demo/public/lang_samples/c++.txt new file mode 100644 index 0000000..ee25dfc --- /dev/null +++ b/demo/public/lang_samples/c++.txt @@ -0,0 +1,18 @@ +class MyClass { // The class + public: // Access specifier + int myNum; // Attribute (int variable) + string myString; // Attribute (string variable) +}; + +int main() { + MyClass myObj; // Create an object of MyClass + + // Access attributes and set values + myObj.myNum = 15; + myObj.myString = "Some text"; + + // Print attribute values + cout << myObj.myNum << "\n"; + cout << myObj.myString; + return 0; +} diff --git a/demo/public/lang_samples/c.txt b/demo/public/lang_samples/c.txt new file mode 100644 index 0000000..18e3a28 --- /dev/null +++ b/demo/public/lang_samples/c.txt @@ -0,0 +1,6 @@ +#include + +int main() { + printf("Hello World!"); + return 0; +} diff --git a/demo/public/lang_samples/clojure.txt b/demo/public/lang_samples/clojure.txt new file mode 100644 index 0000000..f34a844 --- /dev/null +++ b/demo/public/lang_samples/clojure.txt @@ -0,0 +1,11 @@ +(def ^:dynamic chunk-size 17) + +(defn next-chunk [rdr] + (let [buf (char-array chunk-size) + s (.read rdr buf)] + (when (pos? s) + (java.nio.CharBuffer/wrap buf 0 s)))) + +(defn chunk-seq [rdr] + (when-let [chunk (next-chunk rdr)] + (cons chunk (lazy-seq (chunk-seq rdr))))) diff --git a/demo/public/lang_samples/clojurescript.txt b/demo/public/lang_samples/clojurescript.txt new file mode 100644 index 0000000..f3811cd --- /dev/null +++ b/demo/public/lang_samples/clojurescript.txt @@ -0,0 +1,7 @@ +(ns hello-world.core) + +(println "Hello world!") + +;; ADDED +(defn average [a b] + (/ (+ a b) 2.0)) diff --git a/demo/public/lang_samples/coffeescript.txt b/demo/public/lang_samples/coffeescript.txt new file mode 100644 index 0000000..be431ae --- /dev/null +++ b/demo/public/lang_samples/coffeescript.txt @@ -0,0 +1,13 @@ +grade = (student, period=(if b? then 7 else 6)) -> + if student.excellentWork + "A+" + else if student.okayStuff + if student.triedHard then "B" else "B-" + else + "C" + +class Animal extends Being + constructor: (@name) -> + + move: (meters) -> + alert @name + " moved #{meters}m." diff --git a/demo/public/lang_samples/common_lisp.txt b/demo/public/lang_samples/common_lisp.txt new file mode 100644 index 0000000..515b47a --- /dev/null +++ b/demo/public/lang_samples/common_lisp.txt @@ -0,0 +1,14 @@ +(defclass bicycle (vehicle) + ((mass :reader bicycle-mass + :initarg :mass + :type real + :documentation "The bike's mass.")) + (:documentation "A bicycle.")) + +(defclass canoe (vehicle) + ((rowers :reader canoe-rowers + :initarg :rowers + :initform 0 + :type (integer 0) + :documentation "The number of rowers.")) + (:documentation "A canoe.")) diff --git a/demo/public/lang_samples/csharp.txt b/demo/public/lang_samples/csharp.txt new file mode 100644 index 0000000..5302057 --- /dev/null +++ b/demo/public/lang_samples/csharp.txt @@ -0,0 +1,17 @@ +using System.IO.Compression; + +#pragma warning disable 414, 3021 + +namespace MyApplication +{ + [Obsolete("...")] + class Program : IInterface + { + public static List JustDoIt(int count) + { + Span numbers = stackalloc int[length]; + Console.WriteLine($"Hello {Name}!"); + return new List(new int[] { 1, 2, 3 }) + } + } +} diff --git a/demo/public/lang_samples/css.txt b/demo/public/lang_samples/css.txt new file mode 100644 index 0000000..0a9cefb --- /dev/null +++ b/demo/public/lang_samples/css.txt @@ -0,0 +1,13 @@ +body { + background-color: lightblue; +} + +h1 { + color: white; + text-align: center; +} + +p { + font-family: verdana; + font-size: 20px; +} diff --git a/demo/public/lang_samples/d.txt b/demo/public/lang_samples/d.txt new file mode 100644 index 0000000..3ccc8aa --- /dev/null +++ b/demo/public/lang_samples/d.txt @@ -0,0 +1,21 @@ +import std.stdio; + +int x = 10; +immutable int y = 30; +const int* p; + +pure int purefunc(int i,const char* q,immutable int* s) { + //writeln("Simple print"); //cannot call impure function 'writeln' + + debug writeln("in foo()"); // ok, impure code allowed in debug statement + // x = i; // error, modifying global state + // i = x; // error, reading mutable global state + // i = *p; // error, reading const global state + i = y; // ok, reading immutable global state + auto myvar = new int; // Can use the new expression: + return i; +} + +void main() { + writeln("Value returned from pure function : ",purefunc(x,null,null)); +} diff --git a/demo/public/lang_samples/dart.txt b/demo/public/lang_samples/dart.txt new file mode 100644 index 0000000..735a20b --- /dev/null +++ b/demo/public/lang_samples/dart.txt @@ -0,0 +1,19 @@ +// Go ahead and modify this example. + +import "dart:html"; + +// Computes the nth Fibonacci number. +int fibonacci(int n) { + if (n < 2) return n; + return fibonacci(n - 1) + fibonacci(n - 2); +} + +// Displays a Fibonacci number. +void main() { + int i = 20; + String message = "fibonacci($i) = ${fibonacci(i)}"; + + // This example uses HTML to display the result and it will appear + // in a nested HTML frame (an iframe). + document.body.append(new HeadingElement.h1()..appendText(message)); +} diff --git a/demo/public/lang_samples/diff.txt b/demo/public/lang_samples/diff.txt new file mode 100644 index 0000000..b9eddc2 --- /dev/null +++ b/demo/public/lang_samples/diff.txt @@ -0,0 +1,5 @@ +@@ -4,6 +4,5 @@ +- let foo = bar.baz([1, 2, 3]); +- foo = foo + 1; ++ const foo = bar.baz([1, 2, 3]) + 1; + console.log(`foo: ${foo}`); diff --git a/demo/public/lang_samples/dockerfile.txt b/demo/public/lang_samples/dockerfile.txt new file mode 100644 index 0000000..437a3b3 --- /dev/null +++ b/demo/public/lang_samples/dockerfile.txt @@ -0,0 +1,53 @@ +# +# example Dockerfile for http://docs.docker.io/en/latest/examples/postgresql_service/ +# + +FROM ubuntu +MAINTAINER SvenDowideit@docker.com + +# Add the PostgreSQL PGP key to verify their Debian packages. +# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +# Add PostgreSQL's repository. It contains the most recent stable release +# of PostgreSQL, ``9.3``. +RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list + +# Update the Ubuntu and PostgreSQL repository indexes +RUN apt-get update + +# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3 +# There are some warnings (in red) that show up during the build. You can hide +# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive +RUN apt-get -y -q install python-software-properties software-properties-common +RUN apt-get -y -q install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 + +# Note: The official Debian and Ubuntu images automatically ``apt-get clean`` +# after each ``apt-get`` + +# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed`` +USER postgres + +# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and +# then create a database `docker` owned by the ``docker`` role. +# Note: here we use ``&&\`` to run commands one after the other - the ``\`` +# allows the RUN command to span multiple lines. +RUN /etc/init.d/postgresql start &&\ + psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\ + createdb -O docker docker + +# Adjust PostgreSQL configuration so that remote connections to the +# database are possible. +RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf + +# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf`` +RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf + +# Expose the PostgreSQL port +EXPOSE 5432 + +# Add VOLUMEs to allow backup of config, logs and databases +VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] + +# Set the default command to run when starting the container +CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] diff --git a/demo/public/lang_samples/elm.txt b/demo/public/lang_samples/elm.txt new file mode 100644 index 0000000..9f6f84b --- /dev/null +++ b/demo/public/lang_samples/elm.txt @@ -0,0 +1,21 @@ +-- Show a list of items I need to buy at the grocery store. +-- + +import Html exposing (..) + + +main = + div [] + [ h1 [] [ text "My Grocery List" ] + , ul [] + [ li [] [ text "Black Beans" ] + , li [] [ text "Limes" ] + , li [] [ text "Greek Yogurt" ] + , li [] [ text "Cilantro" ] + , li [] [ text "Honey" ] + , li [] [ text "Sweet Potatoes" ] + , li [] [ text "Cumin" ] + , li [] [ text "Chili Powder" ] + , li [] [ text "Quinoa" ] + ] + ] diff --git a/demo/public/lang_samples/erlang.txt b/demo/public/lang_samples/erlang.txt new file mode 100644 index 0000000..7e3b5aa --- /dev/null +++ b/demo/public/lang_samples/erlang.txt @@ -0,0 +1,23 @@ +%% A process whose only job is to keep a counter. +%% First version +-module(counter). +-export([start/0, codeswitch/1]). + +start() -> loop(0). + +loop(Sum) -> + receive + {increment, Count} -> + loop(Sum+Count); + {counter, Pid} -> + Pid ! {counter, Sum}, + loop(Sum); + code_switch -> + ?MODULE:codeswitch(Sum) + % Force the use of 'codeswitch/1' from the latest MODULE version + end. + +codeswitch(Sum) -> loop(Sum). + +% Print the data using the pretty print specifier +io:format("Here is the data: ~p~n", [Data]). diff --git a/demo/public/lang_samples/go.txt b/demo/public/lang_samples/go.txt new file mode 100644 index 0000000..6b1298f --- /dev/null +++ b/demo/public/lang_samples/go.txt @@ -0,0 +1,34 @@ +// Concurrent computation of pi. +// See http://goo.gl/ZuTZM. +// +// This demonstrates Go's ability to handle +// large numbers of concurrent processes. +// It is an unreasonable way to calculate pi. +package main + +import ( + "fmt" + "math" +) + +func main() { + fmt.Println(pi(5000)) +} + +// pi launches n goroutines to compute an +// approximation of pi. +func pi(n int) float64 { + ch := make(chan float64) + for k := 0; k <= n; k++ { + go term(ch, float64(k)) + } + f := 0.0 + for k := 0; k <= n; k++ { + f += <-ch + } + return f +} + +func term(ch chan float64, k float64) { + ch <- 4 * math.Pow(-1, k) / (2*k + 1) +} diff --git a/demo/public/lang_samples/groovy.txt b/demo/public/lang_samples/groovy.txt new file mode 100644 index 0000000..a685e6d --- /dev/null +++ b/demo/public/lang_samples/groovy.txt @@ -0,0 +1,41 @@ +//http://groovy.codehaus.org/Martin+Fowler%27s+closure+examples+in+Groovy + +class Employee { + def name, salary + boolean manager + String toString() { return name } +} + +def emps = [new Employee(name:'Guillaume', manager:true, salary:200), + new Employee(name:'Graeme', manager:true, salary:200), + new Employee(name:'Dierk', manager:false, salary:151), + new Employee(name:'Bernd', manager:false, salary:50)] + +def managers(emps) { + emps.findAll { e -> e.isManager() } +} + +assert emps[0..1] == managers(emps) // [Guillaume, Graeme] + +def highPaid(emps) { + threshold = 150 + emps.findAll { e -> e.salary > threshold } +} + +assert emps[0..2] == highPaid(emps) // [Guillaume, Graeme, Dierk] + +def paidMore(amount) { + { e -> e.salary > amount} +} +def highPaid = paidMore(150) + +assert highPaid(emps[0]) // true +assert emps[0..2] == emps.findAll(highPaid) + +def filename = 'test.txt' +new File(filename).withReader{ reader -> doSomethingWith(reader) } + +def readersText +def doSomethingWith(reader) { readersText = reader.text } + +assert new File(filename).text == readersText diff --git a/demo/public/lang_samples/haskell.txt b/demo/public/lang_samples/haskell.txt new file mode 100644 index 0000000..07f38e5 --- /dev/null +++ b/demo/public/lang_samples/haskell.txt @@ -0,0 +1,20 @@ +-- Type annotation (optional) +fib :: Int -> Integer + +-- With self-referencing data +fib n = fibs !! n + where fibs = 0 : scanl (+) 1 fibs + -- 0,1,1,2,3,5,... + +-- Same, coded directly +fib n = fibs !! n + where fibs = 0 : 1 : next fibs + next (a : t@(b:_)) = (a+b) : next t + +-- Similar idea, using zipWith +fib n = fibs !! n + where fibs = 0 : 1 : zipWith (+) fibs (tail fibs) + +-- Using a generator function +fib n = fibs (0,1) !! n + where fibs (a,b) = a : fibs (b,a+b) diff --git a/demo/public/lang_samples/html.txt b/demo/public/lang_samples/html.txt new file mode 100644 index 0000000..9722112 --- /dev/null +++ b/demo/public/lang_samples/html.txt @@ -0,0 +1,12 @@ + + + + Page Title + + + +

My First Heading

+

My first paragraph.

+ + + diff --git a/demo/public/lang_samples/http.txt b/demo/public/lang_samples/http.txt new file mode 100644 index 0000000..38e93f3 --- /dev/null +++ b/demo/public/lang_samples/http.txt @@ -0,0 +1,13 @@ +POST /task?id=1 HTTP/1.1 +Host: example.org +Content-Type: application/json; charset=utf-8 +Content-Length: 137 + +{ + "status": "ok", + "extended": true, + "results": [ + {"value": 0, "type": "int64"}, + {"value": 1.0e+3, "type": "decimal"} + ] +} diff --git a/demo/public/lang_samples/java.txt b/demo/public/lang_samples/java.txt new file mode 100644 index 0000000..aa16571 --- /dev/null +++ b/demo/public/lang_samples/java.txt @@ -0,0 +1,39 @@ +import java.util.ArrayList; +import java.util.Vector; + +public class InfiniteLoop { + + /* + * This will cause the program to hang... + * + * Taken from: + * http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ + */ + @Override + public static void main(String[] args) { + double d = Double.parseDouble("2.2250738585072012e-308"); + + // unreachable code + System.out.println("Value: " + d); + } +} + +String name = "Joan"; String info = STR."My name is \{name}"; + +STR."Today's weather is \{ getFeelsLike() }, with a temperature of \{ getTemperature()++ } degrees \{ getUnit() }" + +String nestedMultilineTemplates() { + return STR.""" + { + "outerKey1": "outerValue1", + "nestedTemplate": "\{ + STR.""" + { + "innerKey": "\{innerValue.get()}" + } + """ + }", + "outerKey2": "outerValue2" + } + """; +} diff --git a/demo/public/lang_samples/javascript.txt b/demo/public/lang_samples/javascript.txt new file mode 100644 index 0000000..05d5658 --- /dev/null +++ b/demo/public/lang_samples/javascript.txt @@ -0,0 +1,13 @@ +'use strict'; + +/** + * foo + * + * @param {string[]} items + * @param nada + */ +function foo(items, nada) { + for (var i=0; i { + return ( +
+ Keywords here are not highlighted, for example class or instance. +
+ ); +} diff --git a/demo/public/lang_samples/julia.txt b/demo/public/lang_samples/julia.txt new file mode 100644 index 0000000..9bb5759 --- /dev/null +++ b/demo/public/lang_samples/julia.txt @@ -0,0 +1,17 @@ +function f(x, y) + x[1] = 42 # mutates x + y = 7 + y # new binding for y, no mutation + return y +end + +fib(n::Integer) = n ≤ 2 ? one(n) : fib(n-1) + fib(n-2) + +map([A, B, C]) do x + if x < 0 && iseven(x) + return 0 + elseif x == 0 + return 1 + else + return x + end +end diff --git a/demo/public/lang_samples/kotlin.txt b/demo/public/lang_samples/kotlin.txt new file mode 100644 index 0000000..0999e57 --- /dev/null +++ b/demo/public/lang_samples/kotlin.txt @@ -0,0 +1,24 @@ +sealed class Result { + data class Success(val data: T) : Result() + data class Error(val exception: Exception) : Result() +} + +class LoginRepository(private val responseParser: LoginResponseParser) { + private const val loginUrl = "https://example.com/login" + + // Function that makes the network request, blocking the current thread + fun makeLoginRequest( + jsonBody: String + ): Result { + val url = URL(loginUrl) + (url.openConnection() as? HttpURLConnection)?.run { + requestMethod = "POST" + setRequestProperty("Content-Type", "application/json; utf-8") + setRequestProperty("Accept", "application/json") + doOutput = true + outputStream.write(jsonBody.toByteArray()) + return Result.Success(responseParser.parse(inputStream)) + } + return Result.Error(Exception("Cannot open HttpURLConnection")) + } +} diff --git a/demo/public/lang_samples/latex.txt b/demo/public/lang_samples/latex.txt new file mode 100644 index 0000000..09e0a91 --- /dev/null +++ b/demo/public/lang_samples/latex.txt @@ -0,0 +1,45 @@ +% This is a template for doing homework assignments in LaTeX + +\documentclass{article} % This command is used to set the type of document you are working on such as an article, book, or presenation + +\usepackage{geometry} % This package allows the editing of the page layout +\usepackage{amsmath} % This package allows the use of a large range of mathematical formula, commands, and symbols +\usepackage{graphicx} % This package allows the importing of images + +\newcommand{\question}[2][]{\begin{flushleft} + \textbf{Question #1}: \textit{#2} + +\end{flushleft}} +\newcommand{\sol}{\textbf{Solution}:} %Use if you want a boldface solution line +\newcommand{\maketitletwo}[2][]{\begin{center} + \Large{\textbf{Assignment #1} + + Course Title} % Name of course here + \vspace{5pt} + + \normalsize{Matthew Frenkel % Your name here + + \today} % Change to due date if preferred + \vspace{15pt} + +\end{center}} +\begin{document} + \maketitletwo[5] % Optional argument is assignment number + %Keep a blank space between maketitletwo and \question[1] + + \question[1]{Here is my first question} + + YOUR SOLUTION HERE + + \question[2]{Here is my second question} + + YOUR SOLUTION HERE + + \question[3]{What is the \Large{$\int_0^2 x^2 \, dx $}\normalsize{. Show all steps}} + + \begin{align*} + \int_0^2 x^2 &= \left. \frac{x^3}{3} \right|_0^2 \\ + &= \frac{2^3}{3}-\frac{0^3}{3}\\ + &= \frac{8}{3} + \end{align*} +\end{document} diff --git a/demo/public/lang_samples/less.txt b/demo/public/lang_samples/less.txt new file mode 100644 index 0000000..065724c --- /dev/null +++ b/demo/public/lang_samples/less.txt @@ -0,0 +1,26 @@ +// numbers are converted into the same units +@conversion-1: 5cm + 10mm; // result is 6cm +@conversion-2: 2 - 3cm - 5mm; // result is -1.5cm + +// conversion is impossible +@incompatible-units: 2 + 5px - 3cm; // result is 4px + +// example with variables +@base: 5%; +@filler: @base * 2; // result is 10% +@other: @base + @filler; // result is 15% + +.bordered { + border-top: dotted 1px black; + border-bottom: solid 2px black; +} + +#menu a { + color: #111; + .bordered(); +} + +.post a { + color: red; + .bordered(); +} diff --git a/demo/public/lang_samples/liquid.txt b/demo/public/lang_samples/liquid.txt new file mode 100644 index 0000000..0434ed8 --- /dev/null +++ b/demo/public/lang_samples/liquid.txt @@ -0,0 +1,18 @@ + +{% if customer.name == "kevin" %} + Hey Kevin! +{% elsif customer.name == "anonymous" %} + Hey Anonymous! +{% else %} + Hi Stranger! +{% endif %} + +{% assign handle = "cake" %} +{% case handle %} + {% when "cake" %} + This is a cake + {% when "cookie", "biscuit" %} + This is a cookie + {% else %} + This is not a cake nor a cookie +{% endcase %} diff --git a/demo/public/lang_samples/lua.txt b/demo/public/lang_samples/lua.txt new file mode 100644 index 0000000..ae36beb --- /dev/null +++ b/demo/public/lang_samples/lua.txt @@ -0,0 +1,22 @@ +--[[ function returning the max between two numbers --]] +function max(num1, num2) + + if (num1 > num2) then + result = num1; + else + result = num2; + end + + return result; +end + +function average(...) + result = 0 + local arg = {...} + for i,v in ipairs(arg) do + result = result + v + end + return result/#arg +end + +print("The average is",average(10,5,3,4,5,6)) diff --git a/demo/public/lang_samples/markdown.txt b/demo/public/lang_samples/markdown.txt new file mode 100644 index 0000000..bb3ec15 --- /dev/null +++ b/demo/public/lang_samples/markdown.txt @@ -0,0 +1,32 @@ +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 + +Emphasis, aka italics, with *asterisks* or _underscores_. + +Strong emphasis, aka bold, with **asterisks** or __underscores__. + +Combined emphasis with **asterisks and _underscores_**. + +Strikethrough uses two tildes. ~~Scratch this.~~ + +1. First ordered list item +2. Another item +⋅⋅⋅* Unordered sub-list. +1. Actual numbers don't matter, just that it's a number +⋅⋅⋅1. Ordered sub-list +4. And another item. + +⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown). + +⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅ +⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅ +⋅⋅⋅(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.) + + +* Unordered list can use asterisks +- Or minuses ++ Or pluses diff --git a/demo/public/lang_samples/mysql.txt b/demo/public/lang_samples/mysql.txt new file mode 100644 index 0000000..d746c13 --- /dev/null +++ b/demo/public/lang_samples/mysql.txt @@ -0,0 +1,13 @@ +CREATE TABLE students ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(50) NOT NULL, + age INT NOT NULL, + grade VARCHAR(10) +); + +INSERT INTO students (name, age, grade) VALUES +('Alice', 18, 'Sophomore'), +('Bob', 19, 'Junior'), +('Charlie', 20, 'Senior'); + +SELECT * FROM students; diff --git a/demo/public/lang_samples/nginx.txt b/demo/public/lang_samples/nginx.txt new file mode 100644 index 0000000..3f53d16 --- /dev/null +++ b/demo/public/lang_samples/nginx.txt @@ -0,0 +1,17 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + root /var/www/html; + + # Add index.php to the list if you are using PHP + index index.html index.htm index.nginx-debian.html; + + server_name _; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + try_files $uri $uri/ =404; + } +} diff --git a/demo/public/lang_samples/objective-c.txt b/demo/public/lang_samples/objective-c.txt new file mode 100644 index 0000000..00c938b --- /dev/null +++ b/demo/public/lang_samples/objective-c.txt @@ -0,0 +1,13 @@ +#import +#import "Dependency.h" + +@protocol WorldDataSource +@optional +- (NSString*)worldName; +@required +- (BOOL)allowsToLive; +@end + +@property (nonatomic, readonly) NSString *title; +- (IBAction) show; +@end diff --git a/demo/public/lang_samples/pascal.txt b/demo/public/lang_samples/pascal.txt new file mode 100644 index 0000000..670005c --- /dev/null +++ b/demo/public/lang_samples/pascal.txt @@ -0,0 +1,47 @@ +(***************************************************************************** + * A simple bubble sort program. Reads integers, one per line, and prints * + * them out in sorted order. Blows up if there are more than 49. * + *****************************************************************************) +PROGRAM Sort(input, output); + CONST + (* Max array size. *) + MaxElts = 50; + TYPE + (* Type of the element array. *) + IntArrType = ARRAY [1..MaxElts] OF Integer; + + VAR + (* Indexes, exchange temp, array size. *) + i, j, tmp, size: integer; + + (* Array of ints *) + arr: IntArrType; + + (* Read in the integers. *) + PROCEDURE ReadArr(VAR size: Integer; VAR a: IntArrType); + BEGIN + size := 1; + WHILE NOT eof DO BEGIN + readln(a[size]); + IF NOT eof THEN + size := size + 1 + END + END; + + BEGIN + (* Read *) + ReadArr(size, arr); + + (* Sort using bubble sort. *) + FOR i := size - 1 DOWNTO 1 DO + FOR j := 1 TO i DO + IF arr[j] > arr[j + 1] THEN BEGIN + tmp := arr[j]; + arr[j] := arr[j + 1]; + arr[j + 1] := tmp; + END; + + (* Print. *) + FOR i := 1 TO size DO + writeln(arr[i]) + END. diff --git a/demo/public/lang_samples/perl.txt b/demo/public/lang_samples/perl.txt new file mode 100644 index 0000000..d2bcaa4 --- /dev/null +++ b/demo/public/lang_samples/perl.txt @@ -0,0 +1,28 @@ +#!/usr/bin/perl +=begin + perl example code for Ace +=cut + +use v5.10; +use strict; +use warnings; + +use List::Util qw(first); +my @primes; + +# Put 2 as the first prime so we won't have an empty array +push @primes, 2; + +for my $number_to_check (3 .. 200) { + # Check if the current number is divisible by any previous prime + # if it is, skip to the next number. Use first to bail out as soon + # as we find a prime that divides it. + next if (first {$number_to_check % $_ == 0} @primes); + + # If we reached this point it means $number_to_check is not + # divisable by any prime number that came before it. + push @primes, $number_to_check; +} + +# List out all of the primes +say join(', ', @primes); diff --git a/demo/public/lang_samples/php.txt b/demo/public/lang_samples/php.txt new file mode 100644 index 0000000..73bdc00 --- /dev/null +++ b/demo/public/lang_samples/php.txt @@ -0,0 +1,19 @@ + diff --git a/demo/public/lang_samples/plaintext.txt b/demo/public/lang_samples/plaintext.txt new file mode 100644 index 0000000..bbf2076 --- /dev/null +++ b/demo/public/lang_samples/plaintext.txt @@ -0,0 +1,9 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus aliquet sapien, sed rhoncus leo ullamcorper ornare. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus feugiat eleifend nisl, aliquet rhoncus quam scelerisque vel. Morbi eu pellentesque ex. Nam suscipit maximus leo blandit cursus. Aenean sollicitudin nisi luctus, ornare nibh viverra, laoreet ex. Donec eget nibh sit amet dolor ornare elementum. Morbi sollicitudin enim vitae risus pretium vestibulum. Ut pretium hendrerit libero, non vulputate ante volutpat et. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam malesuada turpis vitae est porttitor, id tincidunt neque dignissim. Integer rhoncus vestibulum justo in iaculis. Praesent nec augue ut dui scelerisque gravida vel id velit. Donec vehicula feugiat mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. + +Praesent diam lorem, luctus quis ullamcorper non, consequat quis orci. Ut vel massa vel nunc sagittis porttitor a vitae ante. Quisque euismod lobortis imperdiet. Vestibulum tincidunt vehicula posuere. Nulla facilisi. Donec sodales imperdiet risus id ullamcorper. Nulla luctus orci tortor, vitae tincidunt urna aliquet nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam consequat dapibus massa. Sed ac pharetra magna, in imperdiet neque. Nullam nunc nisi, consequat vel nunc et, sagittis aliquam arcu. Aliquam non orci magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed id sem ut sem pulvinar rhoncus. Aenean venenatis nunc eget mi ornare, vitae maximus lacus varius. Quisque quis vestibulum justo. + +Donec euismod luctus volutpat. Donec sed lacinia enim. Vivamus aliquam elit cursus, convallis diam at, volutpat turpis. Sed lacinia nisl in auctor dapibus. Nunc turpis mi, mattis ut rhoncus id, lacinia sed lectus. Donec sodales tellus quis libero gravida pretium et quis magna. Etiam ultricies mollis purus, eget consequat velit. Duis vitae nibh vitae arcu tincidunt congue. Maecenas ut velit in ipsum condimentum dictum quis eget urna. Sed mattis nulla arcu, vitae mattis ligula dictum at. + +Praesent at dignissim dolor. Donec quis placerat sem. Cras vitae placerat sapien, eu sagittis ex. Mauris nec luctus risus. Cras imperdiet semper neque suscipit auctor. Mauris nisl massa, commodo sit amet dignissim id, malesuada sed ante. Praesent varius sapien eget eros vehicula porttitor. + +Mauris auctor nunc in quam tempor, eget consectetur nisi rhoncus. Donec et nulla imperdiet, gravida dui at, accumsan velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin sollicitudin condimentum auctor. Sed lacinia eleifend nisi, id scelerisque leo laoreet sit amet. Morbi congue augue a malesuada pulvinar. Curabitur nec ante finibus, commodo orci vel, aliquam libero. Morbi molestie purus non nunc placerat fermentum. Pellentesque commodo ligula sed pretium aliquam. Praesent ut nibh ex. Vivamus vestibulum velit in leo suscipit, vitae pellentesque urna vulputate. Suspendisse pretium placerat ligula eu ullamcorper. Nam eleifend mi tellus, ut tristique ante ultricies vitae. Quisque venenatis dapibus tellus sit amet mattis. Donec erat arcu, elementum vel nisl at, sagittis vulputate nisi. diff --git a/demo/public/lang_samples/pug.txt b/demo/public/lang_samples/pug.txt new file mode 100644 index 0000000..a6e5aab --- /dev/null +++ b/demo/public/lang_samples/pug.txt @@ -0,0 +1,19 @@ +a(href='//google.com') Google +| +| +a(class='button' href='//google.com') Google +| +| +a(class='button', href='//google.com') Google + +- var friends = 10 +case friends + when 0 + p you have no friends + when 1 + p you have a friend + default + p you have #{friends} friends + +- for (var x = 0; x < 3; x++) + li item diff --git a/demo/public/lang_samples/python.txt b/demo/public/lang_samples/python.txt new file mode 100644 index 0000000..17811a2 --- /dev/null +++ b/demo/public/lang_samples/python.txt @@ -0,0 +1,12 @@ +@requires_authorization(roles=["ADMIN"]) +def somefunc(param1='', param2=0): + r'''A docstring''' + if param1 > param2: # interesting + print 'Gre\'ater' + return (param2 - param1 + 1 + 0b10l) or None + +class SomeClass: + pass + +>>> message = '''interpreter +... prompt''' diff --git a/demo/public/lang_samples/r.txt b/demo/public/lang_samples/r.txt new file mode 100644 index 0000000..fdefadb --- /dev/null +++ b/demo/public/lang_samples/r.txt @@ -0,0 +1,20 @@ +Call: +lm(formula = y ~ x) + +Residuals: +1 2 3 4 5 6 +3.3333 -0.6667 -2.6667 -2.6667 -0.6667 3.3333 + +Coefficients: + Estimate Std. Error t value Pr(>|t|) +(Intercept) -9.3333 2.8441 -3.282 0.030453 * +x 7.0000 0.7303 9.585 0.000662 *** +--- +Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + +Residual standard error: 3.055 on 4 degrees of freedom +Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478 +F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662 + +> par(mfrow=c(2, 2)) # Request 2x2 plot layout +> plot(lm_1) # Diagnostic plot of regression model diff --git a/demo/public/lang_samples/ruby.txt b/demo/public/lang_samples/ruby.txt new file mode 100644 index 0000000..07282ae --- /dev/null +++ b/demo/public/lang_samples/ruby.txt @@ -0,0 +1,13 @@ +# The Greeter class +class Greeter + def initialize(name) + @name = name.capitalize + end + + def salute + puts "Hello #{@name}!" + end +end + +g = Greeter.new("world") +g.salute diff --git a/demo/public/lang_samples/rust.txt b/demo/public/lang_samples/rust.txt new file mode 100644 index 0000000..2fcb91c --- /dev/null +++ b/demo/public/lang_samples/rust.txt @@ -0,0 +1,58 @@ +use core::rand::RngUtil; + +fn main() { + for ["Alice", "Bob", "Carol"].each |&name| { + do spawn { + let v = rand::Rng().shuffle([1, 2, 3]); + for v.each |&num| { + print(fmt!("%s says: '%d'\n", name, num + 1)) + } + } + } +} + +fn map(vector: &[T], function: &fn(v: &T) -> U) -> ~[U] { + let mut accumulator = ~[]; + for vec::each(vector) |element| { + accumulator.push(function(element)); + } + return accumulator; +} + +struct ConstGenericStruct([(); N]); +// T constrains by being an argument to GenericTrait. +impl GenericTrait for i32 { /* ... */ } + +// T constrains by being an arguement to GenericStruct +impl Trait for GenericStruct { /* ... */ } + +// Likewise, N constrains by being an argument to ConstGenericStruct +impl Trait for ConstGenericStruct { /* ... */ } + +// T constrains by being in an associated type in a bound for type `U` which is +// itself a generic parameter constraining the trait. +impl GenericTrait for u32 where U: HasAssocType { /* ... */ } + +// Like previous, except the type is `(U, isize)`. `U` appears inside the type +// that includes `T`, and is not the type itself. +impl GenericStruct where (U, isize): HasAssocType { /* ... */ } + +//! - Inner line doc +//!! - Still an inner line doc (but with a bang at the beginning) + +/*! - Inner block doc */ +/*!! - Still an inner block doc (but with a bang at the beginning) */ + +/** - Outer block doc (exactly) 2 asterisks */ + +macro_rules! mac_variant { + ($vis:vis $name:ident) => { + enum $name { + $vis Unit, + + $vis Tuple(u8, u16), + + $vis Struct { f: u8 }, + } + } +} diff --git a/demo/public/lang_samples/sass.txt b/demo/public/lang_samples/sass.txt new file mode 100644 index 0000000..bb82003 --- /dev/null +++ b/demo/public/lang_samples/sass.txt @@ -0,0 +1,42 @@ +/* style.scss */ + +@use 'base' + +.inverse + background-color: base.$primary-color + color: white + +$font-stack: Helvetica, sans-serif +$primary-color: #333 + +body + font: 100% $font-stack + color: $primary-color + +nav + ul + margin: 0 + padding: 0 + list-style: none + + li + display: inline-block + + a + display: block + padding: 6px 12px + text-decoration: none + +@mixin theme($theme: DarkGray) + background: $theme + box-shadow: 0 0 1px rgba($theme, .25) + color: #fff + +.info + @include theme + +.alert + @include theme($theme: DarkRed) + +.success + @include theme($theme: DarkGreen) diff --git a/demo/public/lang_samples/scala.txt b/demo/public/lang_samples/scala.txt new file mode 100644 index 0000000..e3630e0 --- /dev/null +++ b/demo/public/lang_samples/scala.txt @@ -0,0 +1,69 @@ +// http://www.scala-lang.org/node/54 + +package examples.actors + +import scala.actors.Actor +import scala.actors.Actor._ + +abstract class PingMessage +case object Start extends PingMessage +case object SendPing extends PingMessage +case object Pong extends PingMessage + +abstract class PongMessage +case object Ping extends PongMessage +case object Stop extends PongMessage + +object pingpong extends Application { + val pong = new Pong + val ping = new Ping(100000, pong) + ping.start + pong.start + ping ! Start +} + +class Ping(count: Int, pong: Actor) extends Actor { + def act() { + println("Ping: Initializing with count "+count+": "+pong) + var pingsLeft = count + loop { + react { + case Start => + println("Ping: starting.") + pong ! Ping + pingsLeft = pingsLeft - 1 + case SendPing => + pong ! Ping + pingsLeft = pingsLeft - 1 + case Pong => + if (pingsLeft % 1000 == 0) + println("Ping: pong from: "+sender) + if (pingsLeft > 0) + self ! SendPing + else { + println("Ping: Stop.") + pong ! Stop + exit('stop) + } + } + } + } +} + +class Pong extends Actor { + def act() { + var pongCount = 0 + loop { + react { + case Ping => + if (pongCount % 1000 == 0) + println("Pong: ping "+pongCount+" from "+sender) + sender ! Pong + pongCount = pongCount + 1 + case Stop => + println("Pong: Stop.") + exit('stop) + } + } + } +} diff --git a/demo/public/lang_samples/scss.txt b/demo/public/lang_samples/scss.txt new file mode 100644 index 0000000..ca7c515 --- /dev/null +++ b/demo/public/lang_samples/scss.txt @@ -0,0 +1,49 @@ +/* style.scss */ + +@use 'base'; + +.inverse { + background-color: base.$primary-color; + color: white; +} + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin theme($theme: DarkGray) { + background: $theme; + box-shadow: 0 0 1px rgba($theme, .25); + color: #fff; +} + +.info { + @include theme; +} +.alert { + @include theme($theme: DarkRed); +} +.success { + @include theme($theme: DarkGreen); +} + diff --git a/demo/public/lang_samples/shell.txt b/demo/public/lang_samples/shell.txt new file mode 100644 index 0000000..3aa8fe4 --- /dev/null +++ b/demo/public/lang_samples/shell.txt @@ -0,0 +1,23 @@ +#!/bin/bash +# Counting the number of lines in a list of files +# for loop over arguments + +if [ $# -lt 1 ] +then + echo "Usage: $0 file ..." + exit 1 +fi + +echo "$0 counts the lines of code" +l=0 +n=0 +s=0 +for f in $* +do + l=`wc -l $f | sed 's/^\([0-9]*\).*$/\1/'` + echo "$f: $l" + n=$[ $n + 1 ] + s=$[ $s + $l ] +done + +echo "$n files in total, with $s lines in total" diff --git a/demo/public/lang_samples/sql.txt b/demo/public/lang_samples/sql.txt new file mode 100644 index 0000000..3ec99c6 --- /dev/null +++ b/demo/public/lang_samples/sql.txt @@ -0,0 +1,12 @@ +CREATE TABLE "topic" ( + "id" integer NOT NULL PRIMARY KEY, + "forum_id" integer NOT NULL, + "subject" varchar(255) NOT NULL +); +ALTER TABLE "topic" +ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id") +REFERENCES "forum" ("id"); + +-- Initials +insert into "topic" ("forum_id", "subject") +values (2, 'D''artagnian'); diff --git a/demo/public/lang_samples/swift.txt b/demo/public/lang_samples/swift.txt new file mode 100644 index 0000000..2d0ccc5 --- /dev/null +++ b/demo/public/lang_samples/swift.txt @@ -0,0 +1,15 @@ +import Foundation + +@objc class Person: Entity { + var name: String! + var age: Int! + + init(name: String, age: Int) { + /* /* ... */ */ + } + + // Return a descriptive string for this person + func description(offset: Int = 0) -> String { + return "\(name) is \(age + offset) years old" + } +} diff --git a/demo/public/lang_samples/tsx.txt b/demo/public/lang_samples/tsx.txt new file mode 100644 index 0000000..0426153 --- /dev/null +++ b/demo/public/lang_samples/tsx.txt @@ -0,0 +1,14 @@ +function MyButton({ title }: { title: string }) { + return ( + + ); +} + +export default function MyApp() { + return ( +
+

Welcome to my app

+ +
+ ); +} diff --git a/demo/public/lang_samples/typescript.txt b/demo/public/lang_samples/typescript.txt new file mode 100644 index 0000000..b0a1dbc --- /dev/null +++ b/demo/public/lang_samples/typescript.txt @@ -0,0 +1,72 @@ +class Greeter { + greeting: string; + constructor (message: string) { + this.greeting = message; + } + greet() { + return "Hello, " + this.greeting; + } +} + +var greeter = new Greeter("world"); + +var button = document.createElement('button') +button.innerText = "Say Hello"; +button.onclick = function() { + alert(greeter.greet()) +} + +document.body.appendChild(button) + +class Snake extends Animal { + move() { + alert("Slithering..."); + super(5); + } +} + +class Horse extends Animal { + move() { + alert("Galloping..."); + super.move(45); + } +} + +module Sayings { + export class Greeter { + greeting: string; + constructor (message: string) { + this.greeting = message; + } + greet() { + return "Hello, " + this.greeting; + } + } +} +module Mankala { + export class Features { + public turnContinues = false; + public seedStoredCount = 0; + public capturedCount = 0; + public spaceCaptured = NoSpace; + + public clear() { + this.turnContinues = false; + this.seedStoredCount = 0; + this.capturedCount = 0; + this.spaceCaptured = NoSpace; + } + + public toString() { + var stringBuilder = ""; + if (this.turnContinues) { + stringBuilder += " turn continues,"; + } + stringBuilder += " stores " + this.seedStoredCount; + if (this.capturedCount > 0) { + stringBuilder += " captures " + this.capturedCount + " from space " + this.spaceCaptured; + } + return stringBuilder; + } + } +} diff --git a/demo/public/lang_samples/vbscript.txt b/demo/public/lang_samples/vbscript.txt new file mode 100644 index 0000000..e5dba83 --- /dev/null +++ b/demo/public/lang_samples/vbscript.txt @@ -0,0 +1,23 @@ +myfilename = "C:\Wikipedia - VBScript - Example - Hello World.txt" +MakeHelloWorldFile myfilename + +Sub MakeHelloWorldFile (FileName) + 'Create a new file in C: drive or overwrite existing file + Set FSO = CreateObject("Scripting.FileSystemObject") + If FSO.FileExists(FileName) Then + Answer = MsgBox ("File " & FileName & " exists ... OK to overwrite?", vbOKCancel) + 'If button selected is not OK, then quit now + 'vbOK is a language constant + If Answer <> vbOK Then Exit Sub + Else + 'Confirm OK to create + Answer = MsgBox ("File " & FileName & " ... OK to create?", vbOKCancel) + If Answer <> vbOK Then Exit Sub + End If + 'Create new file (or replace an existing file) + Set FileObject = FSO.CreateTextFile (FileName) + FileObject.WriteLine "Time ... " & Now() + FileObject.WriteLine "Hello World" + FileObject.Close() + MsgBox "File " & FileName & " ... updated." +End Sub diff --git a/demo/public/lang_samples/vue.txt b/demo/public/lang_samples/vue.txt new file mode 100644 index 0000000..2f1f4f1 --- /dev/null +++ b/demo/public/lang_samples/vue.txt @@ -0,0 +1,43 @@ + + + + + diff --git a/demo/public/lang_samples/xml.txt b/demo/public/lang_samples/xml.txt new file mode 100644 index 0000000..6177eb2 --- /dev/null +++ b/demo/public/lang_samples/xml.txt @@ -0,0 +1,55 @@ + + + + true + + 26 + 25 + 21978 + + + + 24865670 + Continent + Africa + + + 24865675 + Continent + Europe + + + 24865673 + Continent + South America + + + 28289421 + Continent + Antarctic + + + 24865671 + Continent + Asia + + + 24865672 + Continent + North America + + + 55949070 + Continent + Australia + + + diff --git a/demo/public/lang_samples/yaml.txt b/demo/public/lang_samples/yaml.txt new file mode 100644 index 0000000..e8747db --- /dev/null +++ b/demo/public/lang_samples/yaml.txt @@ -0,0 +1,36 @@ +# This sample document was taken from wikipedia: +# http://en.wikipedia.org/wiki/YAML#Sample_document +--- +receipt: Oz-Ware Purchase Invoice +date: 2007-08-06 +customer: + given: Dorothy + family: Gale + +items: + - part_no: 'A4786' + descrip: Water Bucket (Filled) + price: 1.47 + quantity: 4 + + - part_no: 'E1628' + descrip: High Heeled "Ruby" Slippers + size: 8 + price: 100.27 + quantity: 1 + version: 1.2.3.4 + +bill-to: &id001 + street: | + 123 Tornado Alley + Suite 16 + city: East Centerville + state: KS + +ship-to: *id001 + +specialDelivery: > + Follow the Yellow Brick + Road to the Emerald City. + Pay no attention to the + man behind the curtain. From bf73732bc53ccaf3331fa6318c6f59e7aa162528 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 17:28:13 -0600 Subject: [PATCH 10/59] fix/improved editor playground --- .../app/playground/playground.component.html | 28 ++++++++- .../app/playground/playground.component.scss | 27 +++++++-- .../app/playground/playground.component.ts | 60 +++++++++++++++++-- 3 files changed, 102 insertions(+), 13 deletions(-) diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html index 444a579..8e35c3e 100644 --- a/demo/src/app/playground/playground.component.html +++ b/demo/src/app/playground/playground.component.html @@ -1,9 +1,33 @@ - +

Playground

- +
+ + Theme + + @for (theme of CodeMirrorThemes; track theme) { + {{ theme.viewValue }} + } + + + + + Language + + @for (lang of CodeMirrorLanguages; track lang) { + {{ lang.name }} + } + + +
+
diff --git a/demo/src/app/playground/playground.component.scss b/demo/src/app/playground/playground.component.scss index f564991..69dce9e 100644 --- a/demo/src/app/playground/playground.component.scss +++ b/demo/src/app/playground/playground.component.scss @@ -8,15 +8,14 @@ display: flex; flex-direction: row; justify-content: space-between; - flex-wrap: wrap; + flex-wrap: nowrap; @media (max-width: 768px) { flex-direction: column; } - .editor { - flex: 1 1 100%; // takes up 45% of the container width - margin: 2%; // provides a 2% margin + .editor-options, .editor { + margin: 0 1%; box-sizing: border-box; // includes padding and border in element's total width and height height: 100%; // takes up 100% of the container height @@ -25,8 +24,26 @@ } } + .editor-options { + display: flex; + flex-direction: column; + justify-content: space-between; + flex: 0 1 35%; // takes up 45% of the container width + position: sticky; + top: 80px; + } + .editor { + flex: 1 1 45%; // takes up 45% of the container width + height: 100%; + margin: auto; position: sticky; top: 80px; + box-sizing: border-box; // includes padding and border in element's total width and height + + @media (max-width: 768px) { + width: 100%; + margin: 0; + } } -} +} \ No newline at end of file diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index 560be98..770fe82 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -1,7 +1,18 @@ -import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit +} from '@angular/core'; import { CodeEditorComponent } from "ngx-codemirror"; import { FlexModule } from '@angular/flex-layout/flex'; +import { CodeMirrorThemes } from "@app/constants/const-codemirror-editor-themes"; +import { languages } from '@codemirror/language-data'; import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; +import { FormsModule } from "@angular/forms"; +import { MatFormFieldModule } from "@angular/material/form-field"; +import { MatOption, MatSelectModule } from "@angular/material/select"; @Component({ selector: 'app-playground', @@ -9,24 +20,61 @@ import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; CodeEditorComponent, FlexModule, ScrollspyNavLayoutComponent, + FormsModule, + MatFormFieldModule, + MatSelectModule, + MatOption, ], templateUrl: './playground.component.html', styleUrl: './playground.component.scss', changeDetection: ChangeDetectionStrategy.OnPush }) export default class PlaygroundComponent implements OnInit, OnDestroy { - // property to handle override as per marked documentation, if a renderer - // function returns `false` it will fall back to previous implementation - headings: Element[] | undefined; + protected readonly CodeMirrorThemes = CodeMirrorThemes; + protected readonly CodeMirrorLanguages = languages; + protected selectedTheme = this.CodeMirrorThemes[0]; + protected selectedLanguage = languages[0]; - constructor() { + private _editorContent = ''; + + get editorContent() { + return this._editorContent; + } + + set editorContent(value: string) { + this._editorContent = value; + this.changeDetector.detectChanges(); + } + + constructor( + private changeDetector: ChangeDetectorRef, + ) { } ngOnInit(): void { + this.onLanguageChange(this.selectedLanguage); } ngOnDestroy(): void { - this.headings = undefined; + this.changeDetector.detach(); } + // Add this method to the PlaygroundComponent class + onLanguageChange(lang: any) { + this.selectedLanguage = lang; + + const langFormated = lang.name.replace(' ', '_').replace('#', 'sharp'); + this.getLangSample(langFormated); + } + + getLangSample(lang: string): void { + try { + fetch(`lang_samples/${ lang.toLowerCase() }.txt`).then(async response => { + this._editorContent = response.ok ? await response.text() : ''; + this.changeDetector.detectChanges(); + }); + } catch (error) { + console.error('Error fetching language sample:', error); + } + } } From 802ea82116979754440a717f67ce752635fca6fa Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 17:30:16 -0600 Subject: [PATCH 11/59] fix/improved select styles --- demo/src/app/playground/playground.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html index 8e35c3e..d010a66 100644 --- a/demo/src/app/playground/playground.component.html +++ b/demo/src/app/playground/playground.component.html @@ -4,7 +4,7 @@

Playground

- + Theme @for (theme of CodeMirrorThemes; track theme) { @@ -13,7 +13,7 @@

Playground

- + Language @for (lang of CodeMirrorLanguages; track lang) { From 959fba9ff399efb121a01dad56235aa18f847ffb Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 22:04:10 -0600 Subject: [PATCH 12/59] fix/improve demo playground --- README.md | 10 +-- bun.lockb | Bin 568179 -> 568179 bytes .../app/constants/const-codemirror-setup.ts | 16 ++++ ...r-themes.ts => const-codemirror-themes.ts} | 69 ++++++------------ .../app/playground/playground.component.html | 54 +++++++++++++- .../app/playground/playground.component.ts | 16 +++- lib/src/code-editor/code-editor.component.ts | 7 +- 7 files changed, 114 insertions(+), 58 deletions(-) create mode 100644 demo/src/app/constants/const-codemirror-setup.ts rename demo/src/app/constants/{const-codemirror-editor-themes.ts => const-codemirror-themes.ts} (60%) diff --git a/README.md b/README.md index ec3f248..e227dc4 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,6 @@ - [Configuration](#configuration) - [Usage](#usage) - [Renderer](#renderer) -- [Syntax highlight](#syntax-highlight) - [Demo application](#demo-application) - [AoT compilation](#aot-compilation) - [Road map](#road-map) @@ -58,16 +57,17 @@ npm install @fsegurai/ngx-codemirror codemirror@^6.0.1 --save A demo is available @ [https://fsegurai.github.io/ngx-codemirror](https://fsegurai.github.io/ngx-codemirror) and its source code can be found inside the `demo` directory. - It's important to mention that for this project I'm using Node.js v20.11.1 and Yarn v1.22.22. + It's important to mention that for this project I'm using: + Node.js v20.11.1 and Bun v1.1.32 (or later). The following commands will clone the repository, install npm dependencies and serve the application @ [http://localhost:4200](http://localhost:4200) -> It is recommended to use `yarn` as the package manager to handle the large number of dependencies as it is faster than `npm` and it will mostly not cause any issues. +> It is advisable to use `bun` as the package manager for managing numerous dependencies, as it is faster than `npm` and generally more reliable. ```bash git clone https://github.com/fsegurai/ngx-codemirror.git -yarn install -yarn start +bun install +bun start ``` ## License diff --git a/bun.lockb b/bun.lockb index da6b5e55c38830028cdbdacc79d13ad9fda68432..0be67480aad739aa321d638e3f526663671b8695 100644 GIT binary patch delta 69 zcmex-P3iMBrG^&97N!>F7M3lnn(H|jF7M3lnn(H~37$9J};d)jbb|`Op%6isnHV9|>!Vosm_FwB+ NftYRkul4MezX9yE72E&- diff --git a/demo/src/app/constants/const-codemirror-setup.ts b/demo/src/app/constants/const-codemirror-setup.ts new file mode 100644 index 0000000..6da7bf4 --- /dev/null +++ b/demo/src/app/constants/const-codemirror-setup.ts @@ -0,0 +1,16 @@ +import { Setup } from "ngx-codemirror"; + +export const CodeMirrorSetup = [ + { + viewValue: 'Basic', + value: 'basic' as Setup, + }, + { + viewValue: 'Minimal', + value: 'minimal' as Setup, + }, + { + viewValue: 'None', + value: null as Setup, + } +] \ No newline at end of file diff --git a/demo/src/app/constants/const-codemirror-editor-themes.ts b/demo/src/app/constants/const-codemirror-themes.ts similarity index 60% rename from demo/src/app/constants/const-codemirror-editor-themes.ts rename to demo/src/app/constants/const-codemirror-themes.ts index 8a68c29..8dc1078 100644 --- a/demo/src/app/constants/const-codemirror-editor-themes.ts +++ b/demo/src/app/constants/const-codemirror-themes.ts @@ -29,118 +29,95 @@ import { */ export const CodeMirrorThemes = [ { - value: 0, viewValue: 'abcdef', - theme: abcdef, + value: abcdef, }, { - value: 1, viewValue: 'abyss', - theme: abyss, + value: abyss, }, { - value: 2, viewValue: 'android studio', - theme: androidStudio, + value: androidStudio, }, { - value: 3, viewValue: 'andromeda', - theme: andromeda, + value: andromeda, }, { - value: 4, viewValue: 'basic light', - theme: basicLight, + value: basicLight, }, { - value: 5, viewValue: 'basic dark', - theme: basicDark, + value: basicDark, }, { - value: 6, viewValue: 'forest', - theme: forest, + value: forest, }, { - value: 7, viewValue: 'github light', - theme: githubLight, + value: githubLight, }, { - value: 8, viewValue: 'github dark', - theme: githubDark, + value: githubDark, }, { - value: 9, viewValue: 'gruvbox light', - theme: gruvboxLight, + value: gruvboxLight, }, { - value: 10, viewValue: 'gruvbox dark', - theme: gruvboxDark, + value: gruvboxDark, }, { - value: 11, viewValue: 'material light', - theme: materialLight, + value: materialLight, }, { - value: 12, viewValue: 'material dark', - theme: materialDark, + value: materialDark, }, { - value: 13, viewValue: 'monokai', - theme: monokai, + value: monokai, }, { - value: 14, viewValue: 'nord', - theme: nord, + value: nord, }, { - value: 15, viewValue: 'palenight', - theme: palenight, + value: palenight, }, { - value: 16, viewValue: 'solarized light', - theme: solarizedLight, + value: solarizedLight, }, { - value: 17, viewValue: 'solarized dark', - theme: solarizedDark, + value: solarizedDark, }, { - value: 18, viewValue: 'tokyo night day', - theme: tokyoNightDay, + value: tokyoNightDay, }, { - value: 19, viewValue: 'tokyo night storm', - theme: tokyoNightStorm, + value: tokyoNightStorm, }, { - value: 20, viewValue: 'volcano', - theme: volcano, + value: volcano, }, { - value: 21, viewValue: 'vsCodeLight', - theme: vsCodeLight + value: vsCodeLight }, { - value: 22, viewValue: 'vsCodeDark', - theme: vsCodeDark + value: vsCodeDark } ]; diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html index d010a66..da9d9bd 100644 --- a/demo/src/app/playground/playground.component.html +++ b/demo/src/app/playground/playground.component.html @@ -21,13 +21,61 @@

Playground

}
+ + + Setup + + @for (setup of CodeMirrorSetup; track setup) { + {{ setup.viewValue }} + } + + + +

+ Disabled +

+ +

+ Readonly +

+ + + Placeholder + + + +

+ Indent with tab +

+ + + Indent unit + + + +

+ Line wrapping +

+ +

+ Highlight line (...) +

+
+ [setup]="selectedSetup.value" + [disabled]="isDisabled" + [readonly]="isReadOnly" + [placeholder]="placeholder" + [indentWithTab]="isTabIndent" + [indentUnit]="indentUnit" + [lineWrapping]="isLineWrapping" + [highlightWhitespace]="isHighlightWhitespace"/>
diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index 770fe82..b93aabf 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -7,12 +7,15 @@ import { } from '@angular/core'; import { CodeEditorComponent } from "ngx-codemirror"; import { FlexModule } from '@angular/flex-layout/flex'; -import { CodeMirrorThemes } from "@app/constants/const-codemirror-editor-themes"; +import { CodeMirrorThemes } from "@app/constants/const-codemirror-themes"; +import { CodeMirrorSetup } from "@app/constants/const-codemirror-setup"; import { languages } from '@codemirror/language-data'; import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; import { FormsModule } from "@angular/forms"; import { MatFormFieldModule } from "@angular/material/form-field"; import { MatOption, MatSelectModule } from "@angular/material/select"; +import { MatSlideToggle } from "@angular/material/slide-toggle"; +import { MatInput } from "@angular/material/input"; @Component({ selector: 'app-playground', @@ -24,6 +27,8 @@ import { MatOption, MatSelectModule } from "@angular/material/select"; MatFormFieldModule, MatSelectModule, MatOption, + MatSlideToggle, + MatInput, ], templateUrl: './playground.component.html', styleUrl: './playground.component.scss', @@ -31,9 +36,18 @@ import { MatOption, MatSelectModule } from "@angular/material/select"; }) export default class PlaygroundComponent implements OnInit, OnDestroy { protected readonly CodeMirrorThemes = CodeMirrorThemes; + protected readonly CodeMirrorSetup = CodeMirrorSetup; protected readonly CodeMirrorLanguages = languages; protected selectedTheme = this.CodeMirrorThemes[0]; protected selectedLanguage = languages[0]; + protected selectedSetup = this.CodeMirrorSetup[0]; + protected isDisabled = false; + protected isReadOnly = false; + protected placeholder = 'Type your code here...'; + protected isTabIndent = false; + protected indentUnit = 2; + protected isLineWrapping = true; + protected isHighlightWhitespace = false; private _editorContent = ''; diff --git a/lib/src/code-editor/code-editor.component.ts b/lib/src/code-editor/code-editor.component.ts index da237f0..9a847f6 100644 --- a/lib/src/code-editor/code-editor.component.ts +++ b/lib/src/code-editor/code-editor.component.ts @@ -86,7 +86,7 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro @Input({ transform: booleanAttribute }) indentWithTab = false; /** Should be a string consisting either entirely of the same whitespace character. */ - @Input() indentUnit = ''; + @Input() indentUnit = 0; /** Whether the editor wraps lines. */ @Input({ transform: booleanAttribute }) lineWrapping = false; @@ -320,8 +320,9 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro } /** Sets editor's indentUnit. */ - setIndentUnit(value: string) { - this._dispatchEffects(this._indentUnitConf.reconfigure(value ? indentUnit.of(value) : [])); + setIndentUnit(value: number) { + const spaceCount = Array.from({ length: value }).map(() => ' ').join(''); + this._dispatchEffects(this._indentUnitConf.reconfigure(value ? indentUnit.of(spaceCount) : [])); } /** Sets editor's lineWrapping. */ From b657b3b2157af93add866b302e6cda338e70f9ef Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 22:09:07 -0600 Subject: [PATCH 13/59] fix/README --- README.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e227dc4..f4181e5 100644 --- a/README.md +++ b/README.md @@ -36,33 +36,39 @@ - [Installation](#installation) - [Configuration](#configuration) - [Usage](#usage) -- [Renderer](#renderer) - [Demo application](#demo-application) -- [AoT compilation](#aot-compilation) -- [Road map](#road-map) -- [Contribution](#contribution) -- [Support Development](#support-development) +- [License](#license) ## Installation ### @fsegurai/ngx-codemirror -To add `@fsegurai/ngx-codemirror` along with the required codemirror library to your `package.json` use the following commands. +To add `@fsegurai/ngx-codemirror` along with the required codemirror library to your `package.json` use the following +commands. ```bash npm install @fsegurai/ngx-codemirror codemirror@^6.0.1 --save ``` +## Configuration +[PENDING] + +## Usage +[PENDING] + ## Demo application -A demo is available @ [https://fsegurai.github.io/ngx-codemirror](https://fsegurai.github.io/ngx-codemirror) and its source code can be found inside the `demo` directory. +A demo is available @ [https://fsegurai.github.io/ngx-codemirror](https://fsegurai.github.io/ngx-codemirror) and its +source code can be found inside the `demo` directory. It's important to mention that for this project I'm using: Node.js v20.11.1 and Bun v1.1.32 (or later). -The following commands will clone the repository, install npm dependencies and serve the application @ [http://localhost:4200](http://localhost:4200) +The following commands will clone the repository, install npm dependencies and serve the +application @ [http://localhost:4200](http://localhost:4200) -> It is advisable to use `bun` as the package manager for managing numerous dependencies, as it is faster than `npm` and generally more reliable. +> It is advisable to use `bun` as the package manager for managing numerous dependencies, as it is faster than `npm` and +> generally more reliable. ```bash git clone https://github.com/fsegurai/ngx-codemirror.git From b11d1fdc592972cbddeeb9a10fd4ff14b2a5b4ea Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 22:23:19 -0600 Subject: [PATCH 14/59] fix/workflows registry reference --- .npmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..5660f81 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org/ \ No newline at end of file From b8e43624f924c07e7b7555ba0d8dbfa56f04755f Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 22:32:23 -0600 Subject: [PATCH 15/59] fix/registry reference --- .npmrc | 1 - bun.lockb | Bin 568179 -> 567808 bytes package.json | 2 +- 3 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 .npmrc diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 5660f81..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -registry=https://registry.npmjs.org/ \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 0be67480aad739aa321d638e3f526663671b8695..a651734fbcf57070a374b8747c59d5a89cd6eb16 100644 GIT binary patch delta 49413 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 delta 50169 zcmb4s34BdQ`~SHoIah83u}55Mtsx;1xgl{aMQe*Kc0wXIlE{98SQA=nRq4UtRgI-+ zYA<3hwbi~=soH5vETxO8_5Xcl&g52K`g{N0Pv2+0GtWHp%rnnCGiT1pot$s0|Mp$= znGx!Zy!BmXnzQe=RFv9^l5+sG7U(k2>Y!Pm^+6**{XlCN^l1x4sSA7#vyj}&(} zhh-)tMLHFSGkusNW2EBSS5$O3(=r@T&$lm};^%oh<=YUoQb{hFbV|aOXAwx6@sA4LNKn->U_6F@e zSoAN^=|3_$IZ27m7?Kv9;dFFFKJ{}#tf0d{sX=epgzP}W7oFr(+CUER1%i^oMdK8u zET|7~1tnX_dD2;ECJp&96sQV@4WJc3=fn%gd^ALO{t@K+ApaOJ2|i~M3jfo^$|nd# ztV2b43@9lUlMy}G0gHW4`E8IMkpV&Bxv>V!gMQuNzp_nnnZ7QA)j0=dV;Xj3ShFB*L$L;G2kZ! z76Vg{Q-Ddqsh}jEhO!(v`!~oS(+HC&IipAEeTxN@x;aU-e-@PZ4^7e+6sw#)beiy# z&Y+}jV^CjEA0z+eRH4>2P@20tK`BIk0$LR`+sN+^`WA3gQ0jg~&?=zMrU-f&lqzkiOHpcz5LAQgFpFFQ7%F|MvnS-59rN>;+OiFZ0Y68Ma zT7q+MLQ1q^Wg_2mzUbGzdBT1t4Y~o8`Z?R6!v)RG8Gr#1{cdd`&>f4{K6+ zHWDR}Acm)lL<6@$Nq`dpM!~;RD}-n2pNk$32PKR21|^d=0j&aB0kkUU^P0wv2OgSI8pcSV9sYcm+?f|AQr1|=WZ1_dmjNe-b<)>@ID0_utU*tNP^ zvTe6+fTVXDP?~|*Cya=X&Qww}qNy87i7!R}OrRwGj}2nx7JyPSS3yZ!`bJT{C0$=o zGQ>A*v*`XJP^vc5puzciLCMO#xATQ^auJ@jMVL8rpkBRHEzj_6Vj2W))4P=lQ1@-s zCzPsHDs`uj6$47D7TKk5D^4j=TiGwThJsSZqCiO*Y&TLzq`+VY1TF_k ztrP>LVdw}xqWunvo}L6H&u<4>3Uo+n8YZTq^f35#AfG(HF0?26esYMLq4DYVY6CCgkS6grjRm%yQ89P1SY<$qk?a6YKAB|re~C?)vDTY(avP(Kzio_ zlU0+!PIwR~H9I&yb!b9tbjI=%qW|*@8h%p0P^NNryHkRl?`Vc)BsBvjG1BOzPm6L- zP|`*kTdw6vsY8Nk_mzD{)QfZaJF+q}qTRj~IMJD!5|@zV$V54*l@S*^n9P=x8XN75 zN7hJer>I|85hj!kP=DB=Zzvnkbnbc4>7k&dQ7t)osDlD)b6}d*_d!X`aiBh+k)RYV zc3;qa%T>-kb5V45;3dJ<6O^eqb>`tPXHy`SGXdyT!V5lUaleMmXY80 zy5QRkS_0*9sTux`=)v)IuZen&t31eL=bXJEqCf|Oap6s&xBrhqk?p8J0x)|s977yg zaloWtC6v>8;sr_yxf%SkP@l}#1oFuH#{Dd!*)34Qvu=rczkzxx?n=(>TYA&-m9xh} zE_ve^Jx*L2=5zct?0~D(X>rb+kwMMGg8F@~OQmpcLf}gOc1l zP?9qnl%njR`y6NIOhyJ-vWrpB0+c!!3`zs&3rdD421pj5sIlp4+j zr3ODR=x9)q*B+F@Z4fAp>P!?CG@ zGcyuW9AV(2o)38>>eU9O`Rxf>3G~?y!a~1-QoR}`u^!BNEIKj~)QcEH{t_AvLk4M@ z8J!j#ljKkaJl22psTI@psgR$B;Fgr>$Vl@~j!sh$5}t{Uj{zmaq=S+N$fv2nyn;hX z^XEGj<-l{{L9`Q#8L23kEc^j-_zQhhg@A0QV&YHR^-L!Ilw1y!?C1eX1N{Q!)Qw0` zTE=Xkqb&b-A2SG4338>5}b}Kuq*wLPeYKFkvbR;w?m2- zHF0NK2WmxrsF$d>29zxQDJc0)eNgyXcFuKAks-Iy4}qzZ@A@lQAr6g zGMXMNB}T)M0gN*hQ~nO4-YQU%zZ&`@+||qZ)abCyFh~ll=|5y-njHGf=nRshl=je< zSnb)e-_lM}FWLVCRk&Qy-&eXT22l1#_V-PbOxm?WC1IadpwKrvr@$&YP#OAC_`30y z5bR7C;>^Uc%qD~Z>R=`)4M41cCxB8|S_w*q%p4ZS4=ozk5_l{qx%>j79zES<1SyK# zG(^>=_OOqp-2pWmQb&xed_=tq2C}q#)QvQ-eANAC`9HUTsVR=kgk*=(xSmjaMP1Rs zgTUna9U#w=jYL=x;R1C)DW1x}AOnC55EhhEAbD&S{MQ16Wg;2~50nku0ETIEUigcK zn*oz+Hvr`>j1E)zj}1*qHV=SEP{t`k;BHW=um+Uo)FLDQBT$-z*#=HEXzxZMKQlRv zyVgZuk~cU$IwRJRsYHQ~ma2PG$y;Y~c!DvCUqlLvTxz(*E(2bARbgHo)2-ck(hEl^T;b}Qjqr?Zhk z4f(z;8dwWVkKHptX{_B0L48^aiyQ{6gZ#3{C+{!S*2LG|r)^Apaky#F<)9S6zXq)i z`k;wW!2Mm(&PZUgOmzo(PCYx00`m5^+6g?A&OlS+lrrt~CsiwFcQ*_qx6;jkN$=^< z}nYk-rz1Ce<*T@Xh}Hg+g6G z$s(Ik9zqoySvZ}>ll0C3qTyAbr1?TnYIp`HS!6sY@edoIw|}d0wtUW!&p|^`Oa_qc z?inQ7Pj+O+r^Y&!!Krw>!scWF+9enM2$b~i79;Al1tq<5kWc-oKUg%E89yv#D4b_B zFvl z0VPGIfl@S)&wSDq${-k!i4#yx3JwINh9;(q$(0I9a!P_yeqT@uZ$~mjdpLM=WYcMA zQxuTtDuPm2>j*(KBywwgBU22CGl?Ey6=nDfu|$1?e0sEKVJPsXL&1M}QhkHTE5?17sC59)^b{hLp<5W%_o@u$_X>8x8g33cOc@`!Q$!3C&wuy8vp20nS1wha7ap_T@fr*-l)E+6^iJL3%6z@YLJPaej3Wur$l zJO2z3V{;pnoM`rVF$Cv<$ti=To0LwV!zYL(>-P^#iXFJY43kn1)E9h}K~DpdFP!+u z#9unD0j&mXnkBscyP1N2De}pp*?1aHbPjQ(OhN`d8jJxYXW48ta9lSjLBu%O#NSGe zM1C{i7NAW)JwQW2znx}MfTxP*CcyR|s~P#F&&E8>8UgfGr|2y#q>-D+rV-RtBYM>S@qN`2v3j zN(#v%Jnmr#L6mcRsBblCRlo&^}GZQV zO-$jY2;Fa%UG?g$CxZ0vtmlF3@2nSqu&%n_$99X-O;OOr990kOXS2Ku)DTF~*Y~lh zS>5ykuxvzTI5JHvy_qT0)J;#+?W$jQJx{k=26Y#DnDmDq+bqk0nu60!Pe=7%y6cIv z?Usm0QC;C(oCbtZ$}#Eb18nN?NZoIa-BP><#)xN<6>@+=fZX-<{cV=rK-9Xbr}wvM z&w%XuYCX)-v?qFrd`*8CZL_2RksZw}u%ju|1BfJOY<;N7W_fHBx(gW6OY-v4Oh7W8 z!MqBP>bmI<(fU1uSK+8$Z(%GCA!sZhspigmwiU>z2!(zDB1^jK4<}+^`-mppIA=T% z4W666et^xg28imZ)Lr#vAKh<(-BP2k5UuHf2{y|hpvGYFG3wpR3IvYeh{)3s0$&XeChr|r6M%&+905|Y;~w9%I3&rOT-}I0&tW*Hp>JcQWTy%(57x1 zq$lRuH6>b6!gT+BVU{qYS{7Cv0|Zxs8^Yt%Q_*_jV!P@SqvtKQTe`(aP6)E-K-3*H z3C?pdGxb?a=)`vsJoJrI6928g^Iso-%9*o1&Sn`3MD_T{Sv~`z ziH+HT5x-$@!kd8nlf+|X_(dnF%-#)(wvtCQeaEg z{l2hU4k1(Y1+zu-N#T9$9cGC_ikP7fV$>%oy5B0hp`XdykzW+|O2+A5->O%bihiU4Qb-n#vKL6q z7@7bkgh@gwd-yhb1w_68MA!8_1KTQ~!a;REQZUYvvRPVFJjM`FAs_ zVVSyLZ@XnYa>G#r_UnWCKx8U75e#2t82Srjgot5)q?8dBzXYVVJVXQqA~~=W;&9tb?hd3{=&SR>J&V=MSlp@8jldjtf%+2S;hf1Lz!4C^RtA{3uGH9 zyc~Wx3y}|~BRFC5G@Iot5E&Fx2IE<2l4_jc#_4(acFV$XqVF1a z*YAKrAcO}8jm~s1@&m)P7Dx@!{WpbamywDiEwt7-iqe;-79j=8P$^Qa^?RGbEcM0< zxguO>4!~Bt;3`r*L*r2 z4R~rHQVBezeW)nWJQatODBX+H5T55Z1BU}V^$}77dFp;)s?$fZMjlc^1GkxyF9s=* zw;icoRM%2!mRudyBX+h2A|qqdc{$X>0O%vEQTAhF?D=f%4AcsYVg;TB^fnjwEmGv< zCJ{uex|mfIZ$mu*$PY35u`T$t5K%-q3q%tR^PKidrDw}QqrwhAR1uL7Yu0$6AdX1P zmjL(ars>9a%LApd-`Z}OOc@}LE zoKZ@*^akq8(R#cLS)}`&uxp2MY5x142-Au!rpZgG?nu4MQ~yCqlwK*!tGxuXlb1S? z5;e9WCHS5rCF-_WD*0w1CGx&UDuUOoy-b!mkuszpCHPFANqKFM5_umYCEEQSDN&=! za?EZnF99jRw;n0M_q;H#%?d-FI(3Dfc-C&YiVX4)cpYN-n$N{zBanL@!en7t6j1*{ zv<)b#5czz8AS;oU1r)=Q>tOJZa@7f0Wz=Em129}bk+P2E7EsSZWM3^-7@@~Zpx%XL zw}4#r!q=cfC@Z3`A0FxsfF~9_7M@0`DY7xEF}2FBH69RH;B-7yt=0W5*wwGs>WLsF z*6Dc{?3NDeWQ3r(_#sfRsJ_c)*#p!N2*DMh_Nh@O=39gH`0N;Ed?Ta{01DDqPYSbq zB=h-_?he#Y_g@fZxrbCo&QG$MY>)v44+iS!4SM1wyJZ71NhEZ~PUEdFekEag`5rw$s`9c?LF!fLm z0Nyxz*a*G>WZ1v2P5TunghG_1&K4Q@9^wf)2B-m=!eX_`W?2Rl!PUpAXZaPV3#lkV zZL6(9Jm2W5)3)k^V$fQ=Vgkr~I+9pOBo`jL<2*g7?AM@EjWHup9I}I30Pdb|C zc8FlBJ+P=F)lgqOB23NNuKWFDx2!@&DAm!i4Yu3_Y6?V8=Aot?dcjY2waX6O?`ON^ zgB?OuJeeUzqAU-YV|U735Y5Z2K&`l@v^OiWOCs{2o9J@1}f`w*Gf8zqFPNA~J|_wB03K0Wci-O_xYaBrM{ z#M{(i`}BhQc5MYR>x%}@fbADNVD2XiU^LZ{`}G23>_SE>=06hg>wxqS@~Iv`t++{O zx-cLz0`{qxbZ3ERd^yre90bzu4GgoSAVpq@d`P$j)LTdZYVnN`3xtnO2c$3~1nvM5 z0%@*10^;t>pV!+S(*1t3tE&&`iNDz`j}94X2{ECE1;lj36dwgdVi3D}g?a$I%fUk@ z9wCp26_VT1!hqVN43pu4&2kOMA4p8CT1SNtvrcn*3J^&_e8N-u$)kF~A9hQzW3ttB zSfewL=n7dX8;HgbkM+B3+Lu6~!b|QT8G-@~&|#Ze@3>wt!mbWEuIK$}S62an+&ixO zJ+^B#Pte&y@|187B*;4ueHYj)8-d7|jEAGg1{4vj(@EJQvLFL;RXkCMXk%35l+Xjw z;jm4M1hVVN$HU!`fMbscvm8cBxHI*q@@X;he5a=MC&U+>1xSe@BX9W@h#JIf!wmL1 zW6V+tglda3dg3$8d}NYXbmj}2

Z}5YKWYz7=J7klGgN0YF9Kkwl&Rt)BPXZaIKl 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

FX2v)cb_WLRv7hC%HdkPm!ps%q)Mwt| z*t!^oVt3k_eJRMwd1~bU?^%Y$NID+@!*``|t@3(DNry&cNQCS?#4A;;VZ zEAXp3L9yAo^)rj0?V+qDr}E#1TwVb=`p;ke_Y7Pf2kRLtSFc;_Br01Sx5T@QfO*yG z7PPD$;2N7Tx0ri#%=fX^SSV3roUQUY$}`IsM|Nq%jj3$uK8F(7z7f>uMB^k1>YQAEXWBXv-z* zpZSGe&`|j&i!>iX@Zq;#vkDq59=gvuwuYm;x`F=}>&OrfRjN|JHdOqVsV2j&RQ}aY z@_`k~memjtgkEfO8*KmI@Dzk?tkEiS$BZN+a#dcP2!%_EbmupO3rLf;GG+(O^Ge3h zl+}1-;LloeZIT@^+IuzoH5LA4Pasv71I-7toO>e*M*V4Bl$L>C8cXGymP8SkxFO`C zDiwW2y4a`4jRA{lXO5t)+nRQ85r-|y0u5WAG4IY;|KtU*9#h{ga%Jg~W~gpF1IsI7 z^ZngED{*4)uP8Cj#xHhZQK%~)$27d;5n_GWD#}0boE_+lr#_*2*(L~!@-nM67q{Q7 z=B)4QYDV7dSf|PDw##DXT~|~QWPI17;7(h1qN}-lC3(s1x%e}!zdhXhXO~D^gUeF8|4n2> zH*=|)-A&@wm>Y`NyBCQVJtD2{{Z`&4S@Ms1L7uYUK^Jzno7uJ6EAGebq#-!4&1qWAJ9%zuDx5Vau~=k$CdFJc8|xgon$U zJm+riu++o0?@v0SXoN$)K(x+&kAz3l@xmFn51v)iGEqa`qj;ufyCGNEjda&nSdclh z2WsH$#}c4SKhT32bvB|+8ur3OHSEX6^um%QuK*6OKVico-v&5C z#pjDWlJzUXHuS<#U{Vq0+uMBHDlZqlxMfBC1*YgvFyZLS3AA0>gLO%QnJas+%6&ln zJXrA<(2hme-GQKxl!Sb%ygc{LnU_0j);RY75=b>jXy?Ili9_C;{O*RY<9$1{aJbq? z^?F{s*KdtA|@cv1FiUwDGx46@2goB#8m^cQzq|$84ARKNUF2ia>gXvru)|;rotllZZ>JLW8 z|0=_Fqq17WiNE)Bpsu|_;pAE))8Ffj8xekb1Re^OJikkBB>SeJ5$1drZ z+MU~wn_7;{u?j2)oT6e`#vEpw+SiwzBq_1JtiXYu-1TLZ<3N{GVBG|zM%bb_gfMxl zbji;i+E?sfC0|a!pZ~9k8)r4Hrp{T=<RB$N#lf;A4<#nwN-oX>PComHuNm-|Jk(*l7t@;d`>G$#9L=?8yxKjCsZ)lkqO? z##_SehNP{%-EYqB`e+p&tCD_ih&3pQt-*Fcx|&&o%}fQIP=h@H4w09G_uf*mY|@30 zHm)AXYsG&ZxUkFbI}g(v3ZrkEYA}0>ONROe+0@4F6bwk?TI_ew5P8%3=DK0+NH~MZETtOj^mRHOSUUI0(Xz~Sna zbn*UmSGR<{>WedUc5b|8Zd{L@BvT%&C*1hayajpji(6X2LCX!C^`BcQxeZc{f9BF=TogHtg2q_3lT4e+cMz+B_U3cEr5MJ4AY}Q1D2D8QEJwJc@GDD;m@uTT~U|q9t|4NfK?p@z8ekL$HPJ2 zz-PVKQ2bR{x!HZZoRc$;@_z8p_+vvBFarH}^SHmpyJ%Ai_k)9uL0v-&d@lMwev6Ea z;~V-V`y-w!Un>b>JJ z8}a^?TpmODj~cJG`G(ObY!0?BJ_hzPrUz>=1`6Zb+y2P3zWIsem&R=7->O-0S1kVm z*n3>L8^d1oOLaYti0_XpG{z^w-gt&|efZ125Qh5lZsZ+JOb1UpzWMN@xhH zKNf1pJBO|1>c(8YdUUFbe@~l4=%r2Y$k%Alp$|u9(^=)o}6Yz4Kf&l3fd46s-hS+!@ zRHxZka5mOdd4c)t%R!q@489E2@Jz_JYVwNnCl6w}O`N_7e|Bg@D`l^ZEhJedY;1FO z;iGpD3&}zBlvk`T@#(X2?99zrq;U|%`}(_$CFOwK9Ll!kAV!o7W%qL+rg|vz7!QoU zE)5@V?ikW6R6JvE>Uy(UlH<_^>Oa1LMIYoJxvm)b{Nt0h2*g<9ZMotIWxK{hRz@g0 zPqID=WnI37J#rz-2ObwcJt6jo`O7-vLkd284V5jSti=TCL?~NCoIik*d^5-#w=)0O z^F(kWw%|!ixf9A}On}Tk|6ga<9T3%(^@j-#XkubPMKZyLiK_ z@lAPa!EOvuf(VMBhGO9=!4gX#uA)nfps`>yN)#1EjYh+ovKvit-8In^7x#Bx;f<8f z{nkHtzIVz!_uO;OZReg5$;Zi%zp0ZnOR)skAAVnb0eeB?Q!Fid=)v=E;`%PV3lRL% zjZ^+rU+U*3I4)ib2;EZ2+cmi7EpyPFAipKr7gCXm=<3oGoY~&iKIJ<3Ce_gfB*&e52(1 zN0Nla(1^OL7-WIfnZ`tt-Siu_l1@_mNs*+QzH7UK?XUq;&+-~K8flBqizEY=K(+Bl z)zi-izf~mml=KtCfOO%kU`mN3Nx(3#h$Oj7z??y#(m_s}jv}h!z*5vRJc`@~CN=%2H1N)jQe|EI z;KL2S2e+CI3T-N*hF&Nq{|`m1xAy1oE8@z%Kt5!ws^6(SSEtRYymkWA)B{0Vbxi}G z6+LD}lPA+r(_PV|3Qz0#XtmS*)b*o%a^sQ?@B`tD5>jy^I%fqC{tX0btftbp-U(?d zG&2xZ_a<3j!H4w0O>tnfwzZx0TfeExlu9VBWK3W6N5@M>J1?$2VEWyl)rvQRhiy4# zR+>~N`;zX$3M$t{#B(Eq15!7exwkX{O`bM1M!5d z-*(9_tbX6Xcpml;0?3>_D<2;d+{SD`TD(N=|KDnxJO?0VEGCZ-$?#@O{GEzgqz_KQlo6eeyB#@R4KtzkWe6J7qo=^fDRtHq5-! z%Ov$}VBSGe0(v#*+=z24FZO9O8<;p8hJBg*V#uwx(Kul-D#qcX1>?$!K1cIW6UHdb zuz<7x?dY6eM*4-E9->&4lkUm&jUhcUU?ih}q1@fEbvtw_Zpuzz&=r-PH+f>nOo}lL z7}R!$#a(!=YUJI%3WgGBnG{2|X24m*Jf}LG#t*VLPMrItA24W_#o0tAXlc0X*>l}W z4@UDCbI~>7M@**N81h6WYN_pI@Ow2mS{?}Bu~W*UR|ILmGG-ZdM`eXOoYv78l934= zm&cHTOgIEM!s9-Cr(M-ImzT zyV>{a1L6KDJ?T08x&~Q-FVis{(-cLJAs3%2G5#6TH8vC!#eR*)pHDcu{?cS z%TrcGLCTzC-m4^OCD50?N^(~sPH)g4wHeMHjp@}juds=NsW1knbrmqBL4;pr$+eCe zta{MU=SF3Wl76I1CC!7n2a_LwX`KlS+AR0RbnFvS8BNVX!&oqwv|o+toE}U@tcL0k zLA;s12M!^ZwD+(zcyBY5j9vqkb{guZT=_cn!b>lZ1=|KIF^$SH67j>OYhavpV~;WG zR^+Z5dkl!u1yowaZx;2NYW2cid$P;I^ckJbO0dv7iJO;k_Z8-l+EQ5MB` z78pUO+=IvDb=wa7jGLJhgO&&$$8xX`s5_)4Ds3c~^dLz@`_3n*KB9Ze2=2KY{-dhW zzl|jKX%OYzk)-unwD#Un>i03j-%YqLEkh_aN>c7XemshJfWeoHR)^foz|b4-&e=x8 zArQ1mhnEw8&^gom!$H@BnzzENU0HL&;y)Xmvkp6n->k(#Lj6Awlg0*1D)(eTx^1>;EG zI;dTb!q#pm(*TSiYeZ>IBu< zO*^(F@x`jkLp3YGG|YZb?O@$cUi@KaMN8~}VQQn;zfV*6242@QlhE{OQX^iK(Cmyn z7(&l;YMknnaS>w=R{Dog-pbU9cHV)I%l!HTa*bjxf_&5oE*=~>y+_KrvC0@m+sKqL zfiznWOf}3q*qR4S+Gy__=vEx{=3gQyrV_nv+A)E|0+T-o4C*ew=o5YIi=n?^q@?Bv zj|T&-JqOYy*Yu>v=oVM4xA-gCdnj_Zb_lv!3s%>%PE8|xX^1*0--zAvBNK^r6Dj~- z$!|h~zT`q4G(52%zX9K^!(3|9e8hb9WwYLaFB*$t^r!QiEPb0?0R~l$mf^yxq`JZT z0CK3Z>B0fs6mvo-w#l@>O-8&6-aorZ+PgRqo8cw5-$fboz3M3R{s%2ej-2g?Id)g5 zgZ^tQld#R`C3QzI9pkL58h+bdsqM}UPn%%SUY5y<&EVcw8=p$L%}st{S9_dM>$Km= zq!bwDvoiS{rRegQBr%zlo`-OhjCe}l$C##m;WqZ@t25$A8%74e>ZTl=wj0^H>f-hK=B+ZfL%%L?K_HFNF&9f)P(>0T_Lurbc zLY~}>X4$b72LxMzPUlmdyyJG=%$|Hu>9vaAY#Xm0!GC`vH+Oi%(Sd-_Art)>E64j= zAs(I8ZiBeLPa%ohXwxd+gRN(#s^U)BD)t?j*7+hR>1q_KjMz9*4vL`qDnz=!XJNx8 zBNq|1>jn-V&=rt}A{m(GJ8@($ed4z9cl7zsCL}Z;cJG{~9<|TE+OAo-`+2&BM*Td3 zY{~(lqs`svImtmy-lP5pD{tDpFnGr0TLy;LyDm|*(U8RLiKW2OA}nf#Dt1S#Kj}Ot zr&&_8eL^AKNT1*n1KBy60eO(XPB_^(3+sFLRN zNR#)mBoBI7^`7m=oSYLBhYZd&$4u~vz1|1w=CjDy_d)jbERunDK5~|ysXc@_l=|uX zHN`Ph7`pg}Fk=B}1;~kYmpd2vRoeie>o2tJj9KIw<+WrMxeH$Pw^Wbqxb%$DVz;C9 zPt7LbnCy^w+btoa3V*D1$5XU`vcIL$1nV@klmUMR4?Vy|O;*EN-#e?`9!s!Hc&F!z zZFD82ojT}KE3EN?cc89ibIHIRkXPeC5_e#%npaJ7De&vLZ-G*VC8E4F;v2_6Xdh!ks&)F)mJ0QhMnMzd!QwFw|+HB^_vm-QKf%h;(7~g zXuZHjU4RGkb+4rFjaQx4Q9P;b^)HPj3tDxflV`-H&<%hy@nm`-glu38gmpqon+q*{ z&3}2b_(ma)5yJxJtFAo+Pr5`+EO~uSnRt;^`Zz8&+w?xp*L%5Axl~c_d_ck{Mi9m%%9 z=RvF7GqRa>YLL?P?H){xS=dK`;4F(bX=xU$CxH;MHx@%Ew$(mn<`tWKi0@z~}gSo|KzXN*BTgA8f54dsZ=QE@(qY(DY-@^3ty_z?%ud>xTz=|vs1lRBbSn9#o)dW z7&KYk;9s4$wp{5LZ}2G4AeF}#n&J<&qI-Cnt(;p*VkvDV&M+|fN|GJp0-Sz*eain0 zv=s8uxagHfvbJCoOD{JpjqCuebx@j$!B6Ux`|I)Zbl#(Jk541lDfcbF=nfwLI9UGm zv`Mbc2F6)Ho(Cky@2#M}ulU5LTqI}+F9B`WboCd+<}dFtMt&nuG-yX_kn2LXWv>*w z>BgH@ZfZJ70Il^hFfbe>?d!VcnSYe5#+Ler_(JZBNO|rn{ zWZ*tX)@!-?n`u$bw23h{#V-tuHK%Zf zM}VYelJ*~A6|JYHJadALI&rnP<_zh)s4$aE2PS_uQ|&JOqdxt_{Ap1%szF!mm;ziv zcJywjpfjj^h&cW&8U>_nW%y;21K@7fOVfn5Hf-Q$R*}*Js>IiiAz=;;EYK69Xc=T` zl;MMmTrlxJvCy3kQE_WGit(;%y=pBfq;hHaxKyFbE`gfg9 z$Jg;5ZZxAwbUGdHzkS!`YKZRP@@Na_nEEKMjo~$t>+sqV_!tWe-;i8StW;aK4e_bX zxAuEoiEHan%~e%9l~avG*3f)4GwqDTRsF8ycl8;kZ z{l}y5YRPA9g`EF%BLBr}fBWV7@ekU-n_$0`UgED+L+ec~8lrV|$9{)*Rc0uD2lomL z8?W8oI){e7>#{ymLnYnEntd!hneUsDf>s=zK)!=&|Ey|N}pzssnwupxD6+wN8S zt~wU!_1ApN|Fl-pRxvgG2xTMDT9Acaoqu!$4w^;D>-Wg;8FTUy5`G@4tQ%^kMVgtk za27KEJepY5YiqLOJf=f>a7o>uW4Z~?ne^Zi(z+6)h^b>MVN_Ab$W7CgC3yGz@X?QZ zQfU~6qFyBvL?r^RcSaKH1x#=Lzrh*<8w|Y|NSD9^FJcM&hXOMFBKpXFNI{PtZ|C1# zUv@O}0(t_L%rsu0OoOz@9WrD8@^|Sf1snG?&g4=tIRIMgU0~4Ve8o3e-N$rl{j*6%TfYSCaAyJn=I{_HV z{%J+x?nW{3&l(td?)^!>CM5a4_+fuYMkj=rz`uHctN^W9lh9mxfRs{R|3J2Lx_a;& zU9xxAnv+c^FE#APdQhGHbYQa5kDEs%8jt}8$&;UfcAkbYdf434$KR@`G%z-6khZ&n zb{;FLPBtJ~vN|(Tv}I8q+%h#&adOPYso%ffWT28}O-U?NZ#p{#vNVlUQQCTw)+reE zrgc*wQG|150Teo^`I#+E#knrw4l`Jydr0hy8&-`~@ai`|^<#>cJDcr}W6WbNE;lXtB z$`$MtzI}qMy@FmaqKuT&XKY!{=O{d`Ox>q{a4BNA`NldLzCwE{40j$NbVG1XamJ!3 za|a61uGXmO=2+_@V9)`5)|cBabQm%4DPYj;YS40@lF+LtJg$uF{Tzj>g_*U_)`kn! z3H2u!+yW!A;VMpO)ECzL!Aa8b8mh3M5gB<6+=q+BTd!I6_?ds3OvYAWz?l_K=F{iW zc#?}}i#(hZ&@BCJ?mXCas&r2f?D{0WztUsBx`Ge88`R3pe{;)=cUtA_tNU`TdFeqj z@lN+m%KUcaKC^Oj&KkVa1D-FjQO^OI5i+=HyjK^h{?V{c8795g|Y`SL&r!oZR zbPQ;u5p$f26B$u(FpS3|$#%x&bqOxkA+m0#Ta;Nr5JVRzi8aJ6$ij{RmIzIL(QRXF zqA0spO@bGaQhkJsZt zfexp`?seFl4vula5)5j7+KlNlrb?4F2C~G{7I)da5Y@}Ek_(FB1rALhdj*&wt=8O+=AeS`8XIS z>y;T^@_HmeVBiXTL@4bN@VH(Bm>%yE1#~r!3kD1iB)aj}!^*HiyVK3X3!x=_)dzBm zZw)xe=Mn6z?0^C!k#`DSo`vIaLvJ3Jz<5PLMk_ddB*^+hKx173ryVVYKIe6Fyezq7 z0o{T_*L8}b=Y_IYk><(gREI@C Date: Tue, 3 Dec 2024 22:37:11 -0600 Subject: [PATCH 16/59] fix/registry reference --- bun.lockb | Bin 567808 -> 567777 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index a651734fbcf57070a374b8747c59d5a89cd6eb16..3e62d3762469a763439e6c38e795e8ab632b5d1b 100644 GIT binary patch delta 49678 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 delta 49680 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∾O=w~Y%lxm^HA-kNB6XVnmVA*j36*F=M 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 From 8663b0682a33bcd1f54ac6e21f24753363f1272d Mon Sep 17 00:00:00 2001 From: fsegurai Date: Tue, 3 Dec 2024 22:41:17 -0600 Subject: [PATCH 17/59] feat/new registry scripts --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 008e539..af23310 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,10 @@ "test-ci_cd:lib": "ng test --no-watch --no-progress --browsers=ChromeHeadless", "gh-pages:build": "bun build:demo --aot --base-href=./", "gh-pages:copy404": "cpy ./dist/demo/browser/index.html . --rename=404.html", - "gh-pages:postBuild": "cpy ./dist/demo/3rdpartylicenses.txt ./dist/demo/browser --flat" + "gh-pages:postBuild": "cpy ./dist/demo/3rdpartylicenses.txt ./dist/demo/browser --flat", + "registry:npm": "npm config set registry https://registry.npmjs.org/", + "registry:gh-npm": "npm config set registry https://npm.pkg.github.com/", + "registry:yarn": "npm config set registry https://registry.yarnpkg.com/" }, "dependencies": { "@angular/animations": "^19.0.0", From 93608432a89c5740a2b778fd67deff7b187ab764 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 16:24:22 -0600 Subject: [PATCH 18/59] fix/improved demo --- demo/src/app/playground/playground.component.scss | 4 ++++ demo/src/app/playground/playground.component.ts | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/demo/src/app/playground/playground.component.scss b/demo/src/app/playground/playground.component.scss index 69dce9e..24acfac 100644 --- a/demo/src/app/playground/playground.component.scss +++ b/demo/src/app/playground/playground.component.scss @@ -1,6 +1,10 @@ ::ng-deep { .outlet-wrapper { max-width: calc(100% - 20rem) !important; + + @media (max-width: 768px) { + max-width: 100% !important; + } } } diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index b93aabf..fbcecf0 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -73,7 +73,10 @@ export default class PlaygroundComponent implements OnInit, OnDestroy { this.changeDetector.detach(); } - // Add this method to the PlaygroundComponent class + /** + * Change the editor's language sample. + * @param lang The selected language. + */ onLanguageChange(lang: any) { this.selectedLanguage = lang; @@ -81,6 +84,10 @@ export default class PlaygroundComponent implements OnInit, OnDestroy { this.getLangSample(langFormated); } + /** + * Get the language sample from the server. + * @param lang The language name. + */ getLangSample(lang: string): void { try { fetch(`lang_samples/${ lang.toLowerCase() }.txt`).then(async response => { From 110333a2e309339134403dc345f696276acfb6e2 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 16:24:34 -0600 Subject: [PATCH 19/59] fix/improved README --- README.md | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++- bun.lockb | Bin 567777 -> 567777 bytes 2 files changed, 117 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f4181e5..487f26f 100644 --- a/README.md +++ b/README.md @@ -51,10 +51,124 @@ npm install @fsegurai/ngx-codemirror codemirror@^6.0.1 --save ``` ## Configuration -[PENDING] + +### Component Module + +For Not-Standalone mode, you need to import the `CodemirrorModule` in your Angular module. + +```typescript +import { CodemirrorModule } from '@fsegurai/ngx-codemirror'; + +@NgModule({ + imports: [ + CodemirrorModule.forRoot({ + // codemirror options + }), + ], +}) +export class AppModule { +} +``` + +### Standalone Component + +For Standalone mode, you just need to import the components you want to use. + +```typescript +/* CodemirrorComponent */ +import { CodemirrorComponent } from '@fsegurai/ngx-codemirror'; + +// or + +/* CodeDiffEditorComponent */ +import { CodeDiffEditorComponent } from '@fsegurai/ngx-codemirror'; +``` ## Usage -[PENDING] + +### Basic Usage + +```html + + +``` + +```typescript +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', +}) +export class AppComponent { + editorContent = '// Start coding...'; + + onEditorChange(content: string) { + console.log('Editor Content:', content); + } +} +``` + +### Advanced Usage + +Customize themes, languages, and editor behavior dynamically: + +```html + + +``` + +```typescript +@Component({ + selector: 'app-advanced-editor', + templateUrl: './advanced-editor.component.html', +}) +export class AdvancedEditorComponent { + editorContent = ''; + selectedTheme = 'dark'; + selectedLanguage = 'javascript'; + editorSetup = 'basic'; + + onEditorChange(updatedContent: string) { + console.log('Updated Content:', updatedContent); + } +} +``` + +### Integration + +The library provides a customizable editor component with various inputs and outputs for flexible usage. + +#### Inputs + +- `value` - The initial content of the editor. +- `theme` - The theme of the editor. +- `language` - The language mode of the editor. +- `placeholder` - The placeholder text of the editor. +- `lineWrapping` - Enable line wrapping in the editor. +- `indentWithTab` - Enable indentation with tabs in the editor. +- `setup` - The setup of the editor. +- `extensions` - The extensions of the editor. +- and more... + +#### Outputs + +- `change` - The output event when the editor content changes. +- `focus` - The output event when the editor is focused. +- `blur` - The output event when the editor is blurred. ## Demo application @@ -72,6 +186,7 @@ application @ [http://localhost:4200](http://localhost:4200) ```bash git clone https://github.com/fsegurai/ngx-codemirror.git +cd ngx-codemirror bun install bun start ``` diff --git a/bun.lockb b/bun.lockb index 3e62d3762469a763439e6c38e795e8ab632b5d1b..c6a67c0e05bc3f2217064ff988643735988c23c2 100644 GIT binary patch delta 68 zcmaEOS?S?rrG^&97N!>F7M3lnU)L!y#+m6E>KQUH2s1MPC)U}B6j Wv;;~Sw2QB21!A`C;_KN@{Q>~)*%cN5 delta 68 zcmaEOS?S?rrG^&97N!>F7M3lnU)L!yF+hPZGXsMd14D!3qR@zP(aZ=Ym`uC)dR8E2 L+b+JI{nRf2m+=xo From b1cff209971e764ed4c82fecfa163ef28314fa06 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 17:13:07 -0600 Subject: [PATCH 20/59] refactor/.gitignore for Jetbrains IDE --- .gitignore | 1 - .idea/.gitignore | 9 ++++ .idea/codeStyles/codeStyleConfig.xml | 5 +++ .idea/git_toolbox_blame.xml | 6 +++ .idea/inspectionProfiles/Project_Default.xml | 17 ++++++++ .idea/jsLibraryMappings.xml | 6 +++ .idea/modules.xml | 8 ++++ .idea/ngx-codemirror.iml | 12 ++++++ .idea/vcs.xml | 6 +++ .vscode/extensions.json | 4 ++ .vscode/launch.json | 20 +++++++++ .vscode/settings.json | 16 ------- .vscode/tasks.json | 42 +++++++++++++++++++ bun.lockb | Bin 567777 -> 564012 bytes 14 files changed, 135 insertions(+), 17 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/git_toolbox_blame.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jsLibraryMappings.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/ngx-codemirror.iml create mode 100644 .idea/vcs.xml create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json diff --git a/.gitignore b/.gitignore index 6df1de4..b27f64b 100644 --- a/.gitignore +++ b/.gitignore @@ -75,7 +75,6 @@ typings/ .history/ # IDE and editor files -.idea/ .project .classpath .c9/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..eb709bd --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,9 @@ +# Default ignored files +/shelf/ +/workspace.xml +/tasks.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml new file mode 100644 index 0000000..7dc1249 --- /dev/null +++ b/.idea/git_toolbox_blame.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..5b394fd --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..cc6eae0 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7f625b7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/ngx-codemirror.iml b/.idea/ngx-codemirror.iml new file mode 100644 index 0000000..a6e45c7 --- /dev/null +++ b/.idea/ngx-codemirror.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index d6836bc..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "editor.codeActionsOnSave": { - "source.fixAll": "explicit" - }, - "eslint.useFlatConfig": true, - "files.associations": { - "*.json": "jsonc", - "package.json": "json" - }, - "files.trimTrailingWhitespace": true, - "[markdown]": { - "files.trimTrailingWhitespace": false - }, - "typescript.tsdk": "node_modules\\typescript\\lib", - "vsicons.presets.angular": true -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/bun.lockb b/bun.lockb index c6a67c0e05bc3f2217064ff988643735988c23c2..d5802cf6166b62935a0e5527b9499fb1f2df52cc 100644 GIT binary patch delta 106378 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

ny4B)#ufLm5{VT9C`A}dj!hWuyP)Q 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�WL>n~!obW4(M=45)`Z20 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 Date: Thu, 5 Dec 2024 23:29:45 -0600 Subject: [PATCH 21/59] fix/improved README --- README.md | 6 +++--- demo/public/lang_samples/cql.txt | 0 demo/public/lang_samples/mariadb_sql.txt | 0 demo/public/lang_samples/ms_sql.txt | 0 demo/public/lang_samples/plsql.txt | 0 demo/src/app/constants/const-codemirror-diff-orientation.ts | 0 demo/src/app/constants/const-codemirror-mode.ts | 0 7 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 demo/public/lang_samples/cql.txt create mode 100644 demo/public/lang_samples/mariadb_sql.txt create mode 100644 demo/public/lang_samples/ms_sql.txt create mode 100644 demo/public/lang_samples/plsql.txt create mode 100644 demo/src/app/constants/const-codemirror-diff-orientation.ts create mode 100644 demo/src/app/constants/const-codemirror-mode.ts diff --git a/README.md b/README.md index 487f26f..d82c934 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ To add `@fsegurai/ngx-codemirror` along with the required codemirror library to commands. ```bash -npm install @fsegurai/ngx-codemirror codemirror@^6.0.1 --save +npm install @fsegurai/ngx-codemirror --save ``` ## Configuration @@ -95,7 +95,7 @@ import { CodeDiffEditorComponent } from '@fsegurai/ngx-codemirror'; [language]="'javascript'" [placeholder]="'Type your code here...'" [lineWrapping]="true" - (change)="onEditorChange($event)"> + (ngModelChange)="onEditorChange($event)"> ``` @@ -127,7 +127,7 @@ Customize themes, languages, and editor behavior dynamically: [setup]="editorSetup" [indentWithTab]="true" [lineWrapping]="true" - (change)="onEditorChange($event)"> + (ngModelChange)="onEditorChange($event)"> ``` diff --git a/demo/public/lang_samples/cql.txt b/demo/public/lang_samples/cql.txt new file mode 100644 index 0000000..e69de29 diff --git a/demo/public/lang_samples/mariadb_sql.txt b/demo/public/lang_samples/mariadb_sql.txt new file mode 100644 index 0000000..e69de29 diff --git a/demo/public/lang_samples/ms_sql.txt b/demo/public/lang_samples/ms_sql.txt new file mode 100644 index 0000000..e69de29 diff --git a/demo/public/lang_samples/plsql.txt b/demo/public/lang_samples/plsql.txt new file mode 100644 index 0000000..e69de29 diff --git a/demo/src/app/constants/const-codemirror-diff-orientation.ts b/demo/src/app/constants/const-codemirror-diff-orientation.ts new file mode 100644 index 0000000..e69de29 diff --git a/demo/src/app/constants/const-codemirror-mode.ts b/demo/src/app/constants/const-codemirror-mode.ts new file mode 100644 index 0000000..e69de29 From 8b7757aa42e3be07146277909247ee9156ea545c Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 23:30:04 -0600 Subject: [PATCH 22/59] feat/new languages support --- demo/public/lang_samples/cql.txt | 29 +++++++++++++++++++++ demo/public/lang_samples/mariadb_sql.txt | 32 +++++++++++++++++++++++ demo/public/lang_samples/ms_sql.txt | 32 +++++++++++++++++++++++ demo/public/lang_samples/plsql.txt | 33 ++++++++++++++++++++++++ 4 files changed, 126 insertions(+) diff --git a/demo/public/lang_samples/cql.txt b/demo/public/lang_samples/cql.txt index e69de29..5b6a2f5 100644 --- a/demo/public/lang_samples/cql.txt +++ b/demo/public/lang_samples/cql.txt @@ -0,0 +1,29 @@ +-- CQL (Cassandra Query Language) is a query language for Apache Cassandra. + +-- Create a keyspace +CREATE KEYSPACE IF NOT EXISTS my_keyspace +WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; + +-- Use the keyspace +USE my_keyspace; + +-- Create a table +CREATE TABLE IF NOT EXISTS users ( + user_id UUID PRIMARY KEY, + first_name TEXT, + last_name TEXT, + email TEXT +); + +-- Insert data into the table +INSERT INTO users (user_id, first_name, last_name, email) +VALUES (uuid(), 'John', 'Doe', 'john.doe@example.com'); + +-- Select data from the table +SELECT * FROM users; + +-- Update data in the table +UPDATE users SET email = 'john.new@example.com' WHERE user_id = ; + +-- Delete data from the table +DELETE FROM users WHERE user_id = ; \ No newline at end of file diff --git a/demo/public/lang_samples/mariadb_sql.txt b/demo/public/lang_samples/mariadb_sql.txt index e69de29..1291b32 100644 --- a/demo/public/lang_samples/mariadb_sql.txt +++ b/demo/public/lang_samples/mariadb_sql.txt @@ -0,0 +1,32 @@ +-- Create a new database +CREATE DATABASE sample_db; + +-- Use the newly created database +USE sample_db; + +-- Create a new table +CREATE TABLE users ( + id INT AUTO_INCREMENT PRIMARY KEY, + username VARCHAR(50) NOT NULL, + email VARCHAR(100) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Insert sample data into the table +INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com'); +INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com'); + +-- Select all data from the table +SELECT * FROM users; + +-- Update a record in the table +UPDATE users SET email = 'john.doe@example.com' WHERE username = 'john_doe'; + +-- Delete a record from the table +DELETE FROM users WHERE username = 'jane_doe'; + +-- Drop the table +DROP TABLE users; + +-- Drop the database +DROP DATABASE sample_db; \ No newline at end of file diff --git a/demo/public/lang_samples/ms_sql.txt b/demo/public/lang_samples/ms_sql.txt index e69de29..07c7ea0 100644 --- a/demo/public/lang_samples/ms_sql.txt +++ b/demo/public/lang_samples/ms_sql.txt @@ -0,0 +1,32 @@ +-- Create a new database +CREATE DATABASE SampleDB; + +-- Use the newly created database +USE SampleDB; + +-- Create a new table +CREATE TABLE Users ( + Id INT IDENTITY(1,1) PRIMARY KEY, + Username NVARCHAR(50) NOT NULL, + Email NVARCHAR(100) NOT NULL, + CreatedAt DATETIME DEFAULT GETDATE() +); + +-- Insert sample data into the table +INSERT INTO Users (Username, Email) VALUES ('john_doe', 'john@example.com'); +INSERT INTO Users (Username, Email) VALUES ('jane_doe', 'jane@example.com'); + +-- Select all data from the table +SELECT * FROM Users; + +-- Update a record in the table +UPDATE Users SET Email = 'john.doe@example.com' WHERE Username = 'john_doe'; + +-- Delete a record from the table +DELETE FROM Users WHERE Username = 'jane_doe'; + +-- Drop the table +DROP TABLE Users; + +-- Drop the database +DROP DATABASE SampleDB; \ No newline at end of file diff --git a/demo/public/lang_samples/plsql.txt b/demo/public/lang_samples/plsql.txt index e69de29..8482710 100644 --- a/demo/public/lang_samples/plsql.txt +++ b/demo/public/lang_samples/plsql.txt @@ -0,0 +1,33 @@ +-- PL/SQL sample code + +-- Create a new user-defined type +CREATE OR REPLACE TYPE user_type AS OBJECT ( + id NUMBER, + username VARCHAR2(50), + email VARCHAR2(100), + created_at DATE +); + +-- Create a new table using the user-defined type +CREATE TABLE users OF user_type ( + CONSTRAINT pk_users PRIMARY KEY (id) +); + +-- Insert sample data into the table +INSERT INTO users VALUES (1, 'john_doe', 'john@example.com', SYSDATE); +INSERT INTO users VALUES (2, 'jane_doe', 'jane@example.com', SYSDATE); + +-- Select all data from the table +SELECT * FROM users; + +-- Update a record in the table +UPDATE users SET email = 'john.doe@example.com' WHERE username = 'john_doe'; + +-- Delete a record from the table +DELETE FROM users WHERE username = 'jane_doe'; + +-- Drop the table +DROP TABLE users; + +-- Drop the user-defined type +DROP TYPE user_type; \ No newline at end of file From 254a70b3d1b7de4ef0355d1c14b9d4cbe8d393b3 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 23:31:44 -0600 Subject: [PATCH 23/59] feat/complete editor components demonstration for demo --- .../const-codemirror-diff-orientation.ts | 12 + .../app/constants/const-codemirror-mode.ts | 17 ++ .../get-started/get-started.component.html | 4 +- .../app/playground/playground.component.html | 212 +++++++++++++----- .../app/playground/playground.component.scss | 36 ++- .../app/playground/playground.component.ts | 41 +++- .../scrollspy-nav-layout.component.html | 18 +- .../scrollspy-nav-layout.component.ts | 30 ++- 8 files changed, 280 insertions(+), 90 deletions(-) diff --git a/demo/src/app/constants/const-codemirror-diff-orientation.ts b/demo/src/app/constants/const-codemirror-diff-orientation.ts index e69de29..5a607ce 100644 --- a/demo/src/app/constants/const-codemirror-diff-orientation.ts +++ b/demo/src/app/constants/const-codemirror-diff-orientation.ts @@ -0,0 +1,12 @@ +import { Orientation, RevertControls } from "ngx-codemirror"; + +export const CodeMirrorDiffOrientation = [ + { viewValue: 'a-b', value: 'a-b' as Orientation }, + { viewValue: 'b-a', value: 'b-a' as Orientation }, +]; + +export const CodeMirrorDiffRevControls = [ + { viewValue: 'a-to-b', value: 'a-to-b' as RevertControls }, + { viewValue: 'b-to-a', value: 'b-to-a' as RevertControls }, + { viewValue: 'none', value: '' as RevertControls }, +]; \ No newline at end of file diff --git a/demo/src/app/constants/const-codemirror-mode.ts b/demo/src/app/constants/const-codemirror-mode.ts index e69de29..40c0a35 100644 --- a/demo/src/app/constants/const-codemirror-mode.ts +++ b/demo/src/app/constants/const-codemirror-mode.ts @@ -0,0 +1,17 @@ +export const CodeMirrorMode = [ + { + viewValue: 'Code Editor', + value: 'editor', + index: 0 + }, + { + viewValue: 'Unified Diff Editor', + value: 'unified-diff', + index: 1 + }, + { + viewValue: 'Split Diff Editor', + value: 'diff', + index: 2 + } +]; \ No newline at end of file diff --git a/demo/src/app/get-started/get-started.component.html b/demo/src/app/get-started/get-started.component.html index 3205b3a..8db116a 100644 --- a/demo/src/app/get-started/get-started.component.html +++ b/demo/src/app/get-started/get-started.component.html @@ -1,5 +1,5 @@

Get Started

- + diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html index da9d9bd..396e328 100644 --- a/demo/src/app/playground/playground.component.html +++ b/demo/src/app/playground/playground.component.html @@ -4,7 +4,27 @@

Playground

- +
+ + Mode + + @for (mode of CodeMirrorMode; track mode) { + {{ mode.viewValue }} + } + + + + + Setup + + @for (setup of CodeMirrorSetup; track setup) { + {{ setup.viewValue }} + } + + +
+ + Theme @for (theme of CodeMirrorThemes; track theme) { @@ -13,69 +33,153 @@

Playground

- - Language - - @for (lang of CodeMirrorLanguages; track lang) { - {{ lang.name }} - } - - + @if (selectedMode.index != 2) { + + Language + + @for (lang of CodeMirrorLanguages; track lang) { + {{ lang.name }} + } + + + } @else { + + Orientation + + @for (orientation of CodeMirrorDiffOrientation; track orientation) { + {{ orientation.viewValue }} + } + + - - Setup - - @for (setup of CodeMirrorSetup; track setup) { - {{ setup.viewValue }} - } - - + + Revert Controls + + @for (revControl of CodeMirrorDiffRevControls; track revControl) { + {{ revControl.viewValue }} + } + + + } -

- Disabled -

+
+

+ Disabled +

-

- Readonly -

+ @if (selectedMode.index != 2) { +

+ Readonly +

+ } +
- - Placeholder - - + @if (selectedMode.index != 2) { + + Placeholder + + -

- Indent with tab -

+
+

+ Indent with tab +

+
- - Indent unit - - + + Indent unit + + + +
+

+ Line wrapping +

-

- Line wrapping -

+

+ Highlight line (...) +

+
-

- Highlight line (...) -

+ +
+

+ + Display output + +

+
+ } @else { +
+

+ + Highlight changes + +

+ +

+ + Gutter + +

+
+ }
- + + @switch (selectedMode.index) { + @case (0) { + + + @if (isOutputDisplayed) { + + Output + + + } + } + @case (1) { + + } + @case (2) { + + } + }
diff --git a/demo/src/app/playground/playground.component.scss b/demo/src/app/playground/playground.component.scss index 24acfac..551edc2 100644 --- a/demo/src/app/playground/playground.component.scss +++ b/demo/src/app/playground/playground.component.scss @@ -11,14 +11,14 @@ .playground { display: flex; flex-direction: row; - justify-content: space-between; + justify-content: space-evenly; flex-wrap: nowrap; @media (max-width: 768px) { flex-direction: column; } - .editor-options, .editor { + & .editor-options, & .editor { margin: 0 1%; box-sizing: border-box; // includes padding and border in element's total width and height height: 100%; // takes up 100% of the container height @@ -28,18 +28,42 @@ } } - .editor-options { + & .editor-options { display: flex; flex-direction: column; justify-content: space-between; flex: 0 1 35%; // takes up 45% of the container width position: sticky; - top: 80px; + top: 80px;; + + & .editor-options-group { + display: flex; + flex-direction: row; + justify-content: space-around; + margin: 0 auto; + width: 100%; + } + + & .editor-option { + width: 100%; + + &:first-child { + margin-right: 0.5rem; + } + + &:last-child { + margin-left: 0.5rem; + } + } + + mat-divider { + margin: 0 0 1rem; + } } - .editor { + & .editor { flex: 1 1 45%; // takes up 45% of the container width - height: 100%; + height: calc(100vh - 20rem); margin: auto; position: sticky; top: 80px; diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index fbcecf0..47b4785 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -5,8 +5,10 @@ import { OnDestroy, OnInit } from '@angular/core'; -import { CodeEditorComponent } from "ngx-codemirror"; +import { CodeDiffEditorComponent, CodeEditorComponent } from "ngx-codemirror"; import { FlexModule } from '@angular/flex-layout/flex'; +import { CodeMirrorDiffOrientation, CodeMirrorDiffRevControls } from "@app/constants/const-codemirror-diff-orientation"; +import { CodeMirrorMode } from "@app/constants/const-codemirror-mode"; import { CodeMirrorThemes } from "@app/constants/const-codemirror-themes"; import { CodeMirrorSetup } from "@app/constants/const-codemirror-setup"; import { languages } from '@codemirror/language-data'; @@ -17,6 +19,9 @@ import { MatOption, MatSelectModule } from "@angular/material/select"; import { MatSlideToggle } from "@angular/material/slide-toggle"; import { MatInput } from "@angular/material/input"; +import { unifiedMergeView } from '@codemirror/merge'; +import { MatDivider } from "@angular/material/divider"; + @Component({ selector: 'app-playground', imports: [ @@ -29,18 +34,28 @@ import { MatInput } from "@angular/material/input"; MatOption, MatSlideToggle, MatInput, + MatDivider, + CodeDiffEditorComponent, ], templateUrl: './playground.component.html', styleUrl: './playground.component.scss', changeDetection: ChangeDetectionStrategy.OnPush }) export default class PlaygroundComponent implements OnInit, OnDestroy { - protected readonly CodeMirrorThemes = CodeMirrorThemes; + protected readonly CodeMirrorDiffOrientation = CodeMirrorDiffOrientation; + protected readonly CodeMirrorDiffRevControls = CodeMirrorDiffRevControls; + protected readonly CodeMirrorMode = CodeMirrorMode; protected readonly CodeMirrorSetup = CodeMirrorSetup; - protected readonly CodeMirrorLanguages = languages; + protected readonly CodeMirrorThemes = CodeMirrorThemes; + protected readonly CodeMirrorLanguages = languages.sort((a, b) => a.name.localeCompare(b.name)); + + protected selectedDiffOrientation = this.CodeMirrorDiffOrientation[0]; + protected selectedDiffRevControl = this.CodeMirrorDiffRevControls[0]; + + protected selectedMode = this.CodeMirrorMode[0]; + protected selectedSetup = this.CodeMirrorSetup[0]; protected selectedTheme = this.CodeMirrorThemes[0]; protected selectedLanguage = languages[0]; - protected selectedSetup = this.CodeMirrorSetup[0]; protected isDisabled = false; protected isReadOnly = false; protected placeholder = 'Type your code here...'; @@ -48,7 +63,11 @@ export default class PlaygroundComponent implements OnInit, OnDestroy { protected indentUnit = 2; protected isLineWrapping = true; protected isHighlightWhitespace = false; + protected isOutputDisplayed = false; + protected isChangeHighlighted = true; + protected isGutter = true; + /* Code Editor Content */ private _editorContent = ''; get editorContent() { @@ -60,6 +79,20 @@ export default class PlaygroundComponent implements OnInit, OnDestroy { this.changeDetector.detectChanges(); } + /* Code Editor Diff Content */ + protected originalDiffCode = `one +two +three +four +five`; + protected modifiedDiffCode = this.originalDiffCode.replace(/t/g, 'T') + '\nSix'; + + protected unifiedExtension = [ + unifiedMergeView({ + original: this.originalDiffCode, + }), + ]; + constructor( private changeDetector: ChangeDetectorRef, ) { diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html index 14009d0..9ac080a 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html @@ -3,13 +3,13 @@ - @if (displayTOC) { - + @if (showScrollUpButton) { + + } } diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts index 0652ea2..bf65190 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.ts @@ -1,4 +1,3 @@ -import { NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, HostListener, Input } from '@angular/core'; import { ExtendedModule } from '@angular/flex-layout/extended'; import { FlexModule } from '@angular/flex-layout/flex'; @@ -9,20 +8,19 @@ import { ScrollspyNavComponent } from '@shared/scrollspy-nav'; import { ZOOM_ANIMATION } from './scrollspy-nav-layout.animation'; @Component({ - animations: [ZOOM_ANIMATION], - selector: 'app-scrollspy-nav-layout', - templateUrl: './scrollspy-nav-layout.component.html', - styleUrls: ['./scrollspy-nav-layout.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - ExtendedModule, - FlexModule, - MarkdownComponent, - MatButtonModule, - MatDividerModule, - NgIf, - ScrollspyNavComponent, - ] + animations: [ZOOM_ANIMATION], + selector: 'app-scrollspy-nav-layout', + templateUrl: './scrollspy-nav-layout.component.html', + styleUrls: ['./scrollspy-nav-layout.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + ExtendedModule, + FlexModule, + MarkdownComponent, + MatButtonModule, + MatDividerModule, + ScrollspyNavComponent, + ] }) export class ScrollspyNavLayoutComponent { @@ -32,7 +30,7 @@ export class ScrollspyNavLayoutComponent { @Input() displayTOC: boolean | undefined; - showScrollUpButton = false; + protected showScrollUpButton = false; @HostListener('window:scroll') onWindowScroll(): void { From 441602e2d6ac796a8bf01f4ad0a33e05121c950f Mon Sep 17 00:00:00 2001 From: fsegurai Date: Thu, 5 Dec 2024 23:32:13 -0600 Subject: [PATCH 24/59] fix/improved editors validations and previous limitations --- .../code-diff-editor.component.ts | 204 ++++++++++-------- lib/src/code-editor/code-editor.component.ts | 82 ++++--- 2 files changed, 157 insertions(+), 129 deletions(-) diff --git a/lib/src/code-diff-editor/code-diff-editor.component.ts b/lib/src/code-diff-editor/code-diff-editor.component.ts index 0635fc3..c0f0d09 100644 --- a/lib/src/code-diff-editor/code-diff-editor.component.ts +++ b/lib/src/code-diff-editor/code-diff-editor.component.ts @@ -15,10 +15,10 @@ import { } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { DiffConfig, MergeView } from '@codemirror/merge'; -import { Compartment, Extension } from '@codemirror/state'; +import { Compartment, Extension, StateEffect } from '@codemirror/state'; import { EditorView } from '@codemirror/view'; import { basicSetup, minimalSetup } from 'codemirror'; -import { External, Setup } from 'ngx-codemirror'; +import { External, Setup, Theme } from 'ngx-codemirror'; export type Orientation = 'a-b' | 'b-a'; export type RevertControls = 'a-to-b' | 'b-to-a'; @@ -63,6 +63,9 @@ export interface DiffEditorModel { ], }) export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, ControlValueAccessor { + /** The editor's theme. */ + @Input() theme: Theme = 'light'; + /** * The editor's built-in setup. The value can be set to * [`basic`](https://codemirror.net/docs/ref/#codemirror.basicSetup), @@ -89,8 +92,6 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co /** * The MergeView modified config's * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions). - * - * Don't support change dynamically! */ @Input() modifiedExtensions: Extension[] = []; @@ -144,12 +145,8 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co /** Event emitted when blur on the modified editor. */ @Output() modifiedBlur = new EventEmitter(); - private _onChange: (value: DiffEditorModel) => void = () => { - this._onTouched(); - }; - private _onTouched: () => void = () => { - this._onChange({ original: this.originalValue, modified: this.modifiedValue }); - }; + private _onChange: (value: DiffEditorModel) => void = () => {}; + private _onTouched: () => void = () => {}; constructor(private _elementRef: ElementRef) { } @@ -165,7 +162,7 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co this._onChange({ original: value, modified: this.modifiedValue }); this.originalValue = value; this.originalValueChange.emit(value); - } else if (editor == 'b') { + } else { this._onChange({ original: this.originalValue, modified: value }); this.modifiedValue = value; this.modifiedValueChange.emit(value); @@ -175,6 +172,18 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co }; private _editableConf = new Compartment(); + private _themeConf = new Compartment(); + + private _getAllExtensions(editor: 'a' | 'b'): Extension[] { + return [ + this._editableConf.of([]), + this._themeConf.of([]), + + this._updateListener(editor), + this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], + ...(editor === 'a' ? this.originalExtensions : this.modifiedExtensions), + ]; + } ngOnChanges(changes: SimpleChanges): void { if (changes['originalValue']) { @@ -183,53 +192,88 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co if (changes['modifiedValue']) { this.setValue('b', this.modifiedValue); } - if (changes['orientation']) { - this.mergeView?.reconfigure({ orientation: this.orientation }); - } - if (changes['revertControls']) { - this.mergeView?.reconfigure({ revertControls: this.revertControls }); - } - if (changes['renderRevertControl']) { - this.mergeView?.reconfigure({ renderRevertControl: this.renderRevertControl }); - } - if (changes['highlightChanges']) { - this.mergeView?.reconfigure({ highlightChanges: this.highlightChanges }); - } - if (changes['gutter']) { - this.mergeView?.reconfigure({ gutter: this.gutter }); - } - if (changes['collapseUnchanged']) { - this.mergeView?.reconfigure({ collapseUnchanged: this.collapseUnchanged }); - } - if (changes['diffConfig']) { - this.mergeView?.reconfigure({ diffConfig: this.diffConfig }); - } if (changes['disabled']) { - this.setEditable('a', !this.disabled); - this.setEditable('b', !this.disabled); + this.setEditable(!this.disabled); + } + if (changes['theme']) { + this.setTheme(this.theme); } + this.reconfigureMergeView(changes); } ngOnInit(): void { + this.initializeMergeView(); + this.addEventListeners(); + this.setEditable(!this.disabled); + this.setTheme(this.theme); + } + + ngOnDestroy(): void { + this.mergeView?.destroy(); + } + + writeValue(value: DiffEditorModel): void { + if (this.mergeView && value != null && typeof value === 'object') { + this.originalValue = value.original; + this.modifiedValue = value.modified; + this.setValue('a', value.original); + this.setValue('b', value.modified); + } + } + + registerOnChange(fn: (value: DiffEditorModel) => void) { + this._onChange = fn; + } + + registerOnTouched(fn: () => void) { + this._onTouched = fn; + } + + setDisabledState(isDisabled: boolean) { + this.disabled = isDisabled; + this.setEditable(!isDisabled); + } + + /** Sets diff-editor's value. */ + private setValue(editor: 'a' | 'b', value: string) { + this.mergeView?.[editor].dispatch({ + changes: { from: 0, to: this.mergeView[editor].state.doc.length, insert: value }, + }); + } + + /** Sets editor's editable state. */ + private setEditable(value: boolean) { + this._dispatchEffects(this._editableConf.reconfigure(EditorView.editable.of(value))); + } + + /** Sets editor's theme. */ + private setTheme(value: Theme) { + this._dispatchEffects(this._themeConf.reconfigure(value === 'light' ? [] : value)); + } + + /** Sets the root extensions of the editor state. */ + private setExtensions(editor: 'a' | 'b', value: Extension[]) { + this.mergeView?.[editor].dispatch({ + effects: StateEffect.reconfigure.of(value), + }); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private _dispatchEffects(effects: StateEffect | readonly StateEffect[]) { + this.mergeView?.a.dispatch({ effects }); + this.mergeView?.b.dispatch({ effects }); + } + + private initializeMergeView() { this.mergeView = new MergeView({ parent: this._elementRef.nativeElement, a: { doc: this.originalValue, - extensions: [ - this._updateListener('a'), - this._editableConf.of([]), - this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], - ...this.originalExtensions, - ], + extensions: this._getAllExtensions('a'), }, b: { doc: this.modifiedValue, - extensions: [ - this._updateListener('b'), - this._editableConf.of([]), - this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], - ...this.modifiedExtensions, - ], + extensions: this._getAllExtensions('b'), }, orientation: this.orientation, revertControls: this.revertControls, @@ -239,7 +283,9 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co collapseUnchanged: this.collapseUnchanged, diffConfig: this.diffConfig, }); + } + private addEventListeners() { this.mergeView?.a.contentDOM.addEventListener('focus', () => { this._onTouched(); this.originalFocus.emit(); @@ -259,49 +305,33 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co this._onTouched(); this.modifiedBlur.emit(); }); - - this.setEditable('a', !this.disabled); - this.setEditable('b', !this.disabled); - } - - ngOnDestroy(): void { - this.mergeView?.destroy(); } - writeValue(value: DiffEditorModel): void { - if (this.mergeView && value != null && typeof value === 'object') { - this.originalValue = value.original; - this.modifiedValue = value.modified; - this.setValue('a', value.original); - this.setValue('b', value.modified); + private reconfigureMergeView(changes: SimpleChanges) { + if (changes['orientation']) { + this.mergeView?.reconfigure({ orientation: this.orientation }); + } + if (changes['revertControls']) { + this.mergeView?.reconfigure({ revertControls: this.revertControls }); + } + if (changes['renderRevertControl']) { + this.mergeView?.reconfigure({ renderRevertControl: this.renderRevertControl }); + } + if (changes['highlightChanges']) { + this.mergeView?.reconfigure({ highlightChanges: this.highlightChanges }); + } + if (changes['gutter']) { + this.mergeView?.reconfigure({ gutter: this.gutter }); + } + if (changes['collapseUnchanged']) { + this.mergeView?.reconfigure({ collapseUnchanged: this.collapseUnchanged }); + } + if (changes['diffConfig']) { + this.mergeView?.reconfigure({ diffConfig: this.diffConfig }); + } + if (changes['setup'] || changes['originalExtensions'] || changes['modifiedExtensions']) { + this.setExtensions('a', this._getAllExtensions('a')); + this.setExtensions('b', this._getAllExtensions('b')); } - } - - registerOnChange(fn: (value: DiffEditorModel) => void) { - this._onChange = fn; - } - - registerOnTouched(fn: () => void) { - this._onTouched = fn; - } - - setDisabledState(isDisabled: boolean) { - this.disabled = isDisabled; - this.setEditable('a', !isDisabled); - this.setEditable('b', !isDisabled); - } - - /** Sets diff-editor's value. */ - setValue(editor: 'a' | 'b', value: string) { - this.mergeView?.[editor].dispatch({ - changes: { from: 0, to: this.mergeView[editor].state.doc.length, insert: value }, - }); - } - - /** Sets diff-editor's editable state. */ - setEditable(editor: 'a' | 'b', value: boolean) { - this.mergeView?.[editor].dispatch({ - effects: this._editableConf.reconfigure(EditorView.editable.of(value)), - }); } } diff --git a/lib/src/code-editor/code-editor.component.ts b/lib/src/code-editor/code-editor.component.ts index 9a847f6..670dbc7 100644 --- a/lib/src/code-editor/code-editor.component.ts +++ b/lib/src/code-editor/code-editor.component.ts @@ -127,12 +127,8 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro /** Event emitted when the editor has lost focus. */ @Output() blur = new EventEmitter(); - private _onChange: (value: string) => void = () => { - this.view?.focus(); - }; - private _onTouched: () => void = () => { - this.view?.focus(); - }; + private _onChange: (value: string) => void = () => {}; + private _onTouched: () => void = () => {}; constructor(private _elementRef: ElementRef) { } @@ -162,7 +158,7 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro private _highlightWhitespaceConf = new Compartment(); private _languageConf = new Compartment(); - private _getAllExtensions() { + private _getAllExtensions(): Extension[] { return [ this._updateListener, @@ -225,19 +221,9 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro state: EditorState.create({ doc: this.value, extensions: this._getAllExtensions() }), }); - if (this.autoFocus) { - this.view?.focus(); - } + if (this.autoFocus) this.view?.focus(); - this.view?.contentDOM.addEventListener('focus', () => { - this._onTouched(); - this.focus.emit(); - }); - - this.view?.contentDOM.addEventListener('blur', () => { - this._onTouched(); - this.blur.emit(); - }); + this.addEventListeners(); this.setEditable(!this.disabled); this.setReadonly(this.readonly); @@ -274,80 +260,75 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro } /** Sets editor's value. */ - setValue(value: string) { + private setValue(value: string) { this.view?.dispatch({ changes: { from: 0, to: this.view.state.doc.length, insert: value }, }); } - // eslint-disable-next-line @typescript-eslint/no-explicit-any - private _dispatchEffects(effects: StateEffect | readonly StateEffect[]) { - return this.view?.dispatch({ effects }); - } - - /** Sets the root extensions of the editor. */ - setExtensions(value: Extension[]) { - this._dispatchEffects(StateEffect.reconfigure.of(value)); - } - /** Sets editor's editable state. */ - setEditable(value: boolean) { + private setEditable(value: boolean) { this._dispatchEffects(this._editableConf.reconfigure(EditorView.editable.of(value))); } /** Sets editor's readonly state. */ - setReadonly(value: boolean) { + private setReadonly(value: boolean) { this._dispatchEffects(this._readonlyConf.reconfigure(EditorState.readOnly.of(value))); } /** Sets editor's theme. */ - setTheme(value: Theme) { + private setTheme(value: Theme) { this._dispatchEffects( this._themeConf.reconfigure(value === 'light' ? [] : value), ); } /** Sets editor's placeholder. */ - setPlaceholder(value: string) { + private setPlaceholder(value: string) { this._dispatchEffects(this._placeholderConf.reconfigure(value ? placeholder(value) : [])); } /** Sets editor' indentWithTab. */ - setIndentWithTab(value: boolean) { + private setIndentWithTab(value: boolean) { this._dispatchEffects( this._indentWithTabConf.reconfigure(value ? keymap.of([indentWithTab]) : []), ); } /** Sets editor's indentUnit. */ - setIndentUnit(value: number) { + private setIndentUnit(value: number) { const spaceCount = Array.from({ length: value }).map(() => ' ').join(''); this._dispatchEffects(this._indentUnitConf.reconfigure(value ? indentUnit.of(spaceCount) : [])); } /** Sets editor's lineWrapping. */ - setLineWrapping(value: boolean) { + private setLineWrapping(value: boolean) { this._dispatchEffects(this._lineWrappingConf.reconfigure(value ? EditorView.lineWrapping : [])); } /** Sets editor's highlightWhitespace. */ - setHighlightWhitespace(value: boolean) { + private setHighlightWhitespace(value: boolean) { this._dispatchEffects( this._highlightWhitespaceConf.reconfigure(value ? highlightWhitespace() : []), ); } + /** Sets the root extensions of the editor. */ + private setExtensions(value: Extension[]) { + this._dispatchEffects(StateEffect.reconfigure.of(value)); + } + /** Sets editor's language dynamically. */ - setLanguage(lang: string) { - if (!lang) { - return; - } + private setLanguage(lang: string) { + if (!lang) return; + if (this.languages.length === 0) { if (this.view) { console.error('No supported languages. Please set the `languages` prop at first.'); } return; } + const langDesc = this._findLanguage(lang); langDesc?.load().then(lang => { this._dispatchEffects(this._languageConf.reconfigure([lang])); @@ -367,4 +348,21 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro console.info('Supported language names:', this.languages.map(lang => lang.name).join(', ')); return null; } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private _dispatchEffects(effects: StateEffect | readonly StateEffect[]) { + return this.view?.dispatch({ effects }); + } + + private addEventListeners() { + this.view?.contentDOM.addEventListener('focus', () => { + this._onTouched(); + this.focus.emit(); + }); + + this.view?.contentDOM.addEventListener('blur', () => { + this._onTouched(); + this.blur.emit(); + }); + } } From f3232fe712360da76fe1b1e0d1edb1510ef7effd Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:04:36 -0600 Subject: [PATCH 25/59] fix/eslint errors --- .../app/playground/playground.component.html | 18 +++++++++--------- lib/package.json | 2 +- .../code-diff-editor.component.ts | 8 ++++++-- lib/src/code-editor/code-editor.component.ts | 8 ++++++-- package.json | 2 +- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/demo/src/app/playground/playground.component.html b/demo/src/app/playground/playground.component.html index 396e328..522dfa8 100644 --- a/demo/src/app/playground/playground.component.html +++ b/demo/src/app/playground/playground.component.html @@ -33,11 +33,11 @@

Playground

- @if (selectedMode.index != 2) { + @if (selectedMode.index !== 2) { Language + [disabled]="selectedMode.index !== 0"> @for (lang of CodeMirrorLanguages; track lang) { {{ lang.name }} } @@ -47,7 +47,7 @@

Playground

Orientation + [disabled]="selectedMode.index !== 2"> @for (orientation of CodeMirrorDiffOrientation; track orientation) { {{ orientation.viewValue }} } @@ -57,7 +57,7 @@

Playground

Revert Controls + [disabled]="selectedMode.index !== 2"> @for (revControl of CodeMirrorDiffRevControls; track revControl) { {{ revControl.viewValue }} } @@ -70,14 +70,14 @@

Playground

Disabled

- @if (selectedMode.index != 2) { + @if (selectedMode.index !== 2) {

Readonly

} - @if (selectedMode.index != 2) { + @if (selectedMode.index !== 2) { Placeholder @@ -108,7 +108,7 @@

Playground

- + Display output

@@ -116,13 +116,13 @@

Playground

} @else {

- + Highlight changes

- + Gutter

diff --git a/lib/package.json b/lib/package.json index 892ab1d..e911eb9 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,6 +1,6 @@ { "name": "@fsegurai/ngx-codemirror", - "version": "19.0.0-beta.1", + "version": "19.0.0", "description": "Angular library that uses codemirror to create a code editor", "homepage": "https://github.com/fsegurai/ngx-codemirror", "license": "MIT", diff --git a/lib/src/code-diff-editor/code-diff-editor.component.ts b/lib/src/code-diff-editor/code-diff-editor.component.ts index c0f0d09..dc4e75f 100644 --- a/lib/src/code-diff-editor/code-diff-editor.component.ts +++ b/lib/src/code-diff-editor/code-diff-editor.component.ts @@ -145,8 +145,12 @@ export class CodeDiffEditorComponent implements OnChanges, OnInit, OnDestroy, Co /** Event emitted when blur on the modified editor. */ @Output() modifiedBlur = new EventEmitter(); - private _onChange: (value: DiffEditorModel) => void = () => {}; - private _onTouched: () => void = () => {}; + private _onChange: (value: DiffEditorModel) => void = () => { + // Intentionally left blank + }; + private _onTouched: () => void = () => { + // Intentionally left blank + }; constructor(private _elementRef: ElementRef) { } diff --git a/lib/src/code-editor/code-editor.component.ts b/lib/src/code-editor/code-editor.component.ts index 670dbc7..b56b5c0 100644 --- a/lib/src/code-editor/code-editor.component.ts +++ b/lib/src/code-editor/code-editor.component.ts @@ -127,8 +127,12 @@ export class CodeEditorComponent implements OnChanges, OnInit, OnDestroy, Contro /** Event emitted when the editor has lost focus. */ @Output() blur = new EventEmitter(); - private _onChange: (value: string) => void = () => {}; - private _onTouched: () => void = () => {}; + private _onChange: (value: string) => void = () => { + // Intentionally left blank + }; + private _onTouched: () => void = () => { + // Intentionally left blank + }; constructor(private _elementRef: ElementRef) { } diff --git a/package.json b/package.json index af23310..390031c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fsegurai/ngx-codemirror", - "version": "19.0.0-beta.1", + "version": "19.0.0", "description": "Angular library that uses codemirror to create a code editor", "homepage": "https://github.com/fsegurai/ngx-codemirror", "license": "MIT", From 16d09ab43bf25887b079aa350fe8e0e9098ecb44 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:22:43 -0600 Subject: [PATCH 26/59] fix/packages registry --- bun.lockb | Bin 564012 -> 563962 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index d5802cf6166b62935a0e5527b9499fb1f2df52cc..e80773a355432db5532379fa1560d4d1c55d1e0f 100644 GIT binary patch delta 73115 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%0DC!}t4T3ePI^Gl(2{u^p5ecK!( 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 P8ys57mz6yGw*CJAZH*L> delta 73302 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 Date: Fri, 6 Dec 2024 09:25:38 -0600 Subject: [PATCH 27/59] fix/packages registry --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bed6da2..d572f9a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,12 +15,18 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Set up authentication for GitHub Package Registry + run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} uses: oven-sh/setup-bun@v2 with: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Build library From d739f05a66ba58a0a356ca4ec99d4802a24f7851 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:27:45 -0600 Subject: [PATCH 28/59] fix/packages registry --- .github/workflows/build.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d572f9a..56f1303 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,9 +15,6 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up authentication for GitHub Package Registry - run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc - - name: Set up Bun - Version ${{ vars.BUN_VERSION }} uses: oven-sh/setup-bun@v2 with: @@ -25,8 +22,7 @@ jobs: - name: Install dependencies env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: bun install - name: Build library From b29dc4ba0e2ddad8c35912cbb9121b66db636f3c Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:29:45 -0600 Subject: [PATCH 29/59] fix/packages registry --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56f1303..7dbe4bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: Install dependencies env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Build library @@ -51,6 +51,8 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Build demo From cbb6e7ca43de1d584f388c6185cac57ef9605760 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:30:51 -0600 Subject: [PATCH 30/59] fix/packages registry --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c27267a..70e36f4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,6 +37,8 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Test Lint (Library) From e5c47ddcbc385cb0c6535039151583bff5c19bf7 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:32:03 -0600 Subject: [PATCH 31/59] fix/packages registry --- .github/workflows/test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 70e36f4..d4f9f8a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,6 +38,7 @@ jobs: - name: Install dependencies env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install @@ -64,6 +65,9 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Test Lint (Demo) From b9f42ea5862b9544ddcf2ff8ddae565c8a3ce9a8 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:35:39 -0600 Subject: [PATCH 32/59] fix/packages registry --- .github/workflows/build.yml | 7 ++++--- .github/workflows/test.yml | 9 +++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7dbe4bd..20af95c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,9 @@ on: env: LIB_ARTIFACT_NAME: "build-lib-artifact" +permissions: + packages: read + jobs: build_library: runs-on: ubuntu-latest @@ -22,7 +25,7 @@ jobs: - name: Install dependencies env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: bun install - name: Build library @@ -51,8 +54,6 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Build demo diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d4f9f8a..063777d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,6 +22,9 @@ on: workflows: [ "Build PR" ] types: [ completed ] +permissions: + packages: read + jobs: test_library: runs-on: ubuntu-latest @@ -37,9 +40,6 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Test Lint (Library) @@ -65,9 +65,6 @@ jobs: bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_GH_TOKEN }} run: bun install - name: Test Lint (Demo) From 98e0f0c66726e714867295d4ca75eac5c70e432c Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:38:57 -0600 Subject: [PATCH 33/59] fix/packages registry --- .github/workflows/build.yml | 3 --- .github/workflows/checks.yml | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20af95c..56f1303 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,9 +6,6 @@ on: env: LIB_ARTIFACT_NAME: "build-lib-artifact" -permissions: - packages: read - jobs: build_library: runs-on: ubuntu-latest diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 009247f..3c867b6 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -17,6 +17,7 @@ on: permissions: pull-requests: write checks: write + packages: read concurrency: group: pr-checks-${{ github.event.number }} From f3504333e5bfd5ce9f3905726b45ebf24a5fa548 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:40:55 -0600 Subject: [PATCH 34/59] fix/packages registry --- .github/workflows/build.yml | 60 ++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56f1303..f2636fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,26 +9,38 @@ env: jobs: build_library: runs-on: ubuntu-latest - timeout-minutes: 2 + timeout-minutes: 3 environment: FSI_DEP_NodeJs steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Bun - Version ${{ vars.BUN_VERSION }} - uses: oven-sh/setup-bun@v2 + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 with: - bun-version: ${{ vars.BUN_VERSION }} + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Create cache directories + run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn + + - name: Cache Yarn dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Install dependencies - env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: bun install + run: yarn install --frozen-lockfile - name: Build library run: | - bun run build:lib - bun run postBuild:lib + yarn build:lib + yarn postBuild:lib - name: Upload build library artifacts uses: actions/upload-artifact@v4 @@ -39,22 +51,36 @@ jobs: build_demo: runs-on: ubuntu-latest - timeout-minutes: 2 + timeout-minutes: 3 environment: github-pages steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Bun - Version ${{ vars.BUN_VERSION }} - uses: oven-sh/setup-bun@v2 + - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ vars.NODE_VERSION }} + cache: 'yarn' + + - name: Create cache directories + run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn + + - name: Cache Yarn dependencies + uses: actions/cache@v4 with: - bun-version: ${{ vars.BUN_VERSION }} + path: | + ~/.cache/yarn + ${{ github.workspace }}/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Install dependencies - run: bun install + run: yarn install --frozen-lockfile - name: Build demo run: | - bun run gh-pages:build - bun run gh-pages:copy404 - bun run gh-pages:postBuild \ No newline at end of file + yarn gh-pages:build + yarn gh-pages:copy404 + yarn gh-pages:postBuild \ No newline at end of file From 351d576dfebc547ef72d1e19e7b6bd87abe170a3 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:46:03 -0600 Subject: [PATCH 35/59] fix/packages registry --- yarn.lock | 10226 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 10226 insertions(+) create mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..cd84f32 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10226 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@2.3.0", "@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@angular-devkit/architect@0.1900.4": + version "0.1900.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1900.4.tgz#ea0c187e6835685435184b6d0d868eaecb59e6a4" + integrity sha512-9XwZ21BPYS2vGOOwVB40fsMyuwJT0H1lWaAMo8Umwi6XbKBVfaWbEhjtR9dlarrySKtFuTz9hmTZkIXHLjXPdA== + dependencies: + "@angular-devkit/core" "19.0.4" + rxjs "7.8.1" + +"@angular-devkit/architect@>= 0.1800.0 < 0.1900.0": + version "0.1802.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1802.12.tgz#096f8e9cf71f8848c6f0172c03f3f1135509e133" + integrity sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw== + dependencies: + "@angular-devkit/core" "18.2.12" + rxjs "7.8.1" + +"@angular-devkit/build-angular@^19.0.0": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-19.0.4.tgz#4b42d372f8b9d64f0d9fcc2efa2e8f0cf0f3d4b7" + integrity sha512-n7fcRdNB7ed5j6aZI+qPI/1LylFv1OiRNgBIeJxX3HEmzQxsHHLcxWog2yZK2Fvw3390xFx/VjZaklITj6tBFA== + dependencies: + "@ampproject/remapping" "2.3.0" + "@angular-devkit/architect" "0.1900.4" + "@angular-devkit/build-webpack" "0.1900.4" + "@angular-devkit/core" "19.0.4" + "@angular/build" "19.0.4" + "@babel/core" "7.26.0" + "@babel/generator" "7.26.2" + "@babel/helper-annotate-as-pure" "7.25.9" + "@babel/helper-split-export-declaration" "7.24.7" + "@babel/plugin-transform-async-generator-functions" "7.25.9" + "@babel/plugin-transform-async-to-generator" "7.25.9" + "@babel/plugin-transform-runtime" "7.25.9" + "@babel/preset-env" "7.26.0" + "@babel/runtime" "7.26.0" + "@discoveryjs/json-ext" "0.6.3" + "@ngtools/webpack" "19.0.4" + "@vitejs/plugin-basic-ssl" "1.1.0" + ansi-colors "4.1.3" + autoprefixer "10.4.20" + babel-loader "9.2.1" + browserslist "^4.21.5" + copy-webpack-plugin "12.0.2" + css-loader "7.1.2" + esbuild-wasm "0.24.0" + fast-glob "3.3.2" + http-proxy-middleware "3.0.3" + istanbul-lib-instrument "6.0.3" + jsonc-parser "3.3.1" + karma-source-map-support "1.4.0" + less "4.2.0" + less-loader "12.2.0" + license-webpack-plugin "4.0.2" + loader-utils "3.3.1" + mini-css-extract-plugin "2.9.2" + open "10.1.0" + ora "5.4.1" + picomatch "4.0.2" + piscina "4.7.0" + postcss "8.4.49" + postcss-loader "8.1.1" + resolve-url-loader "5.0.0" + rxjs "7.8.1" + sass "1.80.7" + sass-loader "16.0.3" + semver "7.6.3" + source-map-loader "5.0.0" + source-map-support "0.5.21" + terser "5.36.0" + tree-kill "1.2.2" + tslib "2.8.1" + webpack "5.96.1" + webpack-dev-middleware "7.4.2" + webpack-dev-server "5.1.0" + webpack-merge "6.0.1" + webpack-subresource-integrity "5.1.0" + optionalDependencies: + esbuild "0.24.0" + +"@angular-devkit/build-webpack@0.1900.4": + version "0.1900.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1900.4.tgz#8567b798edf55669a48cf68914bee67f1a433d75" + integrity sha512-eovr5Am8EwxF7d/y0Hbfz/KYWnOXXVXVwquPUcg8JBI19lLbfctz4+71Vjz2qGroijr2FlZztRpmhd498SLt/A== + dependencies: + "@angular-devkit/architect" "0.1900.4" + rxjs "7.8.1" + +"@angular-devkit/core@18.2.12", "@angular-devkit/core@>= 18.0.0 < 19.0.0": + version "18.2.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.2.12.tgz#fb514e9b3c9ea87ddaa1582d3947f1b094c9b387" + integrity sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ== + dependencies: + ajv "8.17.1" + ajv-formats "3.0.1" + jsonc-parser "3.3.1" + picomatch "4.0.2" + rxjs "7.8.1" + source-map "0.7.4" + +"@angular-devkit/core@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.0.4.tgz#abc3835fecc57609b804ae9723ba0ebf521176d1" + integrity sha512-+imxIj1JLr2hbUYQePHgkTUKr0VmlxNSZvIREcCWtXUcdCypiwhJAtGXv6MfpB4hAx+FJZYEpVWeLwYOS/gW0A== + dependencies: + ajv "8.17.1" + ajv-formats "3.0.1" + jsonc-parser "3.3.1" + picomatch "4.0.2" + rxjs "7.8.1" + source-map "0.7.4" + +"@angular-devkit/schematics@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.0.4.tgz#15b568f5a0c8d7d02a5c6014787b605cf6cf9214" + integrity sha512-2r6Qs4N5NSPho+qzegCYS8kIgylXyH4DHaS7HJ5+4XvM1I8V8AII8payLWkUK0i29XufVoD5XfPUFnjxZrBfYQ== + dependencies: + "@angular-devkit/core" "19.0.4" + jsonc-parser "3.3.1" + magic-string "0.30.12" + ora "5.4.1" + rxjs "7.8.1" + +"@angular-devkit/schematics@>= 18.0.0 < 19.0.0": + version "18.2.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.2.12.tgz#15d1a8611bf9f18215435604672411b1929bf4d1" + integrity sha512-mMea9txHbnCX5lXLHlo0RAgfhFHDio45/jMsREM2PA8UtVf2S8ltXz7ZwUrUyMQRv8vaSfn4ijDstF4hDMnRgQ== + dependencies: + "@angular-devkit/core" "18.2.12" + jsonc-parser "3.3.1" + magic-string "0.30.11" + ora "5.4.1" + rxjs "7.8.1" + +"@angular-eslint/builder@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/builder/-/builder-18.4.3.tgz#800b8a68b464ddfc0d737b0ad38c7804b463d8e1" + integrity sha512-NzmrXlr7GFE+cjwipY/CxBscZXNqnuK0us1mO6Z2T6MeH6m+rRcdlY/rZyKoRniyNNvuzl6vpEsfMIMmnfebrA== + dependencies: + "@angular-devkit/architect" ">= 0.1800.0 < 0.1900.0" + "@angular-devkit/core" ">= 18.0.0 < 19.0.0" + +"@angular-eslint/bundled-angular-compiler@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz#0810f76045b854782e6370953cf5324112a65f80" + integrity sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg== + +"@angular-eslint/eslint-plugin-template@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz#3e9820735f087afad193361e3081fad54dbf4e51" + integrity sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ== + dependencies: + "@angular-eslint/bundled-angular-compiler" "18.4.3" + "@angular-eslint/utils" "18.4.3" + aria-query "5.3.2" + axobject-query "4.1.0" + +"@angular-eslint/eslint-plugin@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz#7618bc6056086a98ed4d888f31185fc62e6be2d1" + integrity sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA== + dependencies: + "@angular-eslint/bundled-angular-compiler" "18.4.3" + "@angular-eslint/utils" "18.4.3" + +"@angular-eslint/schematics@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/schematics/-/schematics-18.4.3.tgz#1d6e9026e0054d556c37750ccff0ecce701561c1" + integrity sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA== + dependencies: + "@angular-devkit/core" ">= 18.0.0 < 19.0.0" + "@angular-devkit/schematics" ">= 18.0.0 < 19.0.0" + "@angular-eslint/eslint-plugin" "18.4.3" + "@angular-eslint/eslint-plugin-template" "18.4.3" + ignore "6.0.2" + semver "7.6.3" + strip-json-comments "3.1.1" + +"@angular-eslint/template-parser@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-18.4.3.tgz#2c6c396563a278a6f2dfdb3fbe9d4310ad0c6dc6" + integrity sha512-JZMPtEB8yNip3kg4WDEWQyObSo2Hwf+opq2ElYuwe85GQkGhfJSJ2CQYo4FSwd+c5MUQAqESNRg9QqGYauDsiw== + dependencies: + "@angular-eslint/bundled-angular-compiler" "18.4.3" + eslint-scope "^8.0.2" + +"@angular-eslint/utils@18.4.3": + version "18.4.3" + resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-18.4.3.tgz#1ad0558b21aaa987ce69604a7624d4b213e84d8c" + integrity sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ== + dependencies: + "@angular-eslint/bundled-angular-compiler" "18.4.3" + +"@angular/animations@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-19.0.3.tgz#db9f370fbaa31744aec3829189d2bcfde48973ee" + integrity sha512-YWoXM2S5p+Eq6cX1xjtFaai23oVNnbf3u34pEQCyKDjZpqI5lMu8e63lQT0tf7fZttEWlNUYRTwQ9+MpZ0sjzQ== + dependencies: + tslib "^2.3.0" + +"@angular/build@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@angular/build/-/build-19.0.4.tgz#40a33de0ec99769f00feb258a21e9eec5bc84ddf" + integrity sha512-ubsNjLb54VkZwcPQ21Ke8aAHiIrRIcv7gG3R6/6XOoWeK1K2+tsv8bnO4mz5cHgzWOspLOT7FDC83NJjrKX3Nw== + dependencies: + "@ampproject/remapping" "2.3.0" + "@angular-devkit/architect" "0.1900.4" + "@babel/core" "7.26.0" + "@babel/helper-annotate-as-pure" "7.25.9" + "@babel/helper-split-export-declaration" "7.24.7" + "@babel/plugin-syntax-import-attributes" "7.26.0" + "@inquirer/confirm" "5.0.2" + "@vitejs/plugin-basic-ssl" "1.1.0" + beasties "0.1.0" + browserslist "^4.23.0" + esbuild "0.24.0" + fast-glob "3.3.2" + https-proxy-agent "7.0.5" + istanbul-lib-instrument "6.0.3" + listr2 "8.2.5" + magic-string "0.30.12" + mrmime "2.0.0" + parse5-html-rewriting-stream "7.0.0" + picomatch "4.0.2" + piscina "4.7.0" + rollup "4.26.0" + sass "1.80.7" + semver "7.6.3" + vite "5.4.11" + watchpack "2.4.2" + optionalDependencies: + lmdb "3.1.5" + +"@angular/cdk@^19.0.0": + version "19.0.2" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-19.0.2.tgz#0529cd283879950366236562502ef63d750b8641" + integrity sha512-eDjHJJWpgnzC3pR6N0gCdh51Q1ffoh6mql06YSqprj005aNKBjmCMnpU4bPPzdGSkKsjwAZWGUNWg4RS+R+iZQ== + dependencies: + tslib "^2.3.0" + optionalDependencies: + parse5 "^7.1.2" + +"@angular/cli@~19.0.0": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-19.0.4.tgz#9c311e860b9c2bdd9746adae6371a7403243d875" + integrity sha512-jxnD9qkhelcRMCrHDCxNsWgn6HQCvMIj8uI0T2eB9Vy93q2YWUo/fWl2Sy4gFlR+VNeF+1hYhPLb/vqLLzjWuA== + dependencies: + "@angular-devkit/architect" "0.1900.4" + "@angular-devkit/core" "19.0.4" + "@angular-devkit/schematics" "19.0.4" + "@inquirer/prompts" "7.1.0" + "@listr2/prompt-adapter-inquirer" "2.0.18" + "@schematics/angular" "19.0.4" + "@yarnpkg/lockfile" "1.1.0" + ini "5.0.0" + jsonc-parser "3.3.1" + listr2 "8.2.5" + npm-package-arg "12.0.0" + npm-pick-manifest "10.0.0" + pacote "20.0.0" + resolve "1.22.8" + semver "7.6.3" + symbol-observable "4.0.0" + yargs "17.7.2" + +"@angular/common@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-19.0.3.tgz#5412ab4f130c3a13e79e9191b3933af7d2d2dbc3" + integrity sha512-YyBVZU+LQ38R+/U5vF/b1T3muROKpR0kkupMw7VKnGhQfgrRX5Dk3H2nr9ritt0zPc7TOUuQSlHMf3QWah2GDg== + dependencies: + tslib "^2.3.0" + +"@angular/compiler-cli@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-19.0.3.tgz#210b17ee4f54b6736f4138348dd9dc78143ef1b3" + integrity sha512-nayLcC3hSHoGKXCZInMdFcIZJEHYkEGNsdAutgCMuSj+lXCGuRUysuGC0rGzJc2R6nhgfaLJnO8T/O5acqaqdA== + dependencies: + "@babel/core" "7.26.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + chokidar "^4.0.0" + convert-source-map "^1.5.1" + reflect-metadata "^0.2.0" + semver "^7.0.0" + tslib "^2.3.0" + yargs "^17.2.1" + +"@angular/compiler@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-19.0.3.tgz#970bf33c24c4ce73726a78b704b52edd47860fda" + integrity sha512-cxtK4SlHAPstcXfjwOaoR1dAszrzo2iDF8ZiihbZPgKUG3m27qIU3Lp5XBgxfZPlO4jh6TXkWznY7f6Tyxkb0Q== + dependencies: + tslib "^2.3.0" + +"@angular/core@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-19.0.3.tgz#1e3af41c7aed97400212af8dc23a80b36a24adb7" + integrity sha512-WM844gDzrbHtcM2TJB9DmfCmenUYyNSI6h924CeppDW5oG8ShinQGiWNjF5oI6EZ4tG60uK3QvCm3kjr1dmbOA== + dependencies: + tslib "^2.3.0" + +"@angular/flex-layout@15.0.0-beta.42": + version "15.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@angular/flex-layout/-/flex-layout-15.0.0-beta.42.tgz#ad5e1dda32ee6280ba73765be10fd916c222e38e" + integrity sha512-cTAPVMMxnyIFwpZwdq0PL5mdP9Qh+R8MB7ZBezVaN3Rz2fRrkagzKpLvPX3TFzepXrvHBdpKsU4b8u+NxEC/6g== + dependencies: + tslib "^2.3.0" + +"@angular/forms@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-19.0.3.tgz#db4c7c0fb5cd41c651fda4dc2ad5c6aee9148265" + integrity sha512-8wf8yDR6cW+lOhpzhmxUOiI5Wjr1Kf7o8NuJ2P5K6b7IMNRzRyR5q/6R4NUwtF6aaJ1wNqmSof+goQmtn1HOcw== + dependencies: + tslib "^2.3.0" + +"@angular/language-service@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-19.0.3.tgz#e0d29c81f877c1744ac2f2cf1a048e40367264f7" + integrity sha512-SkUFggQayulgMWW4rwslLVCD7woZ1m7dCB87NCQdlZv9NIrHbNkaPfxHzaX3YrdKhw+u65XcttzD7cworcMcVQ== + +"@angular/material@^19.0.0": + version "19.0.2" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-19.0.2.tgz#c6aeaa31dbd3f9dfa9e3d0ec87651b283704e573" + integrity sha512-IKU6znBKgD0xHEGo5WD3JWNK+WjamMCzAvSa72w4Evo2N6PWN+dAkbCMYxugW7dOfwoT8DvUnjIWclC+RRCl0A== + dependencies: + tslib "^2.3.0" + +"@angular/platform-browser-dynamic@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.3.tgz#913d3526eadb1f8e6e733e7cb40f93e805c400c7" + integrity sha512-gFh+QN7JvepnD3mS0XmOtDmfY8h5sSkk2/guesE2A68Na8q+M3fGZlz7I37tCXToLth5us1X0Gi0UPCSESc4SA== + dependencies: + tslib "^2.3.0" + +"@angular/platform-browser@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-19.0.3.tgz#f055ebf36c55753c4f818cb615f194b375443f0c" + integrity sha512-vggWHSzOsCpYqnGq5IIN+n7xdEvXfgUGaMdgzPhFMTsnlMTUs5+VEFl9tX9FANHkXKB5S1RttVyvEXRqJM9ncQ== + dependencies: + tslib "^2.3.0" + +"@angular/router@^19.0.0": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-19.0.3.tgz#1b514abdb8f8068dfad1ff8813f68232e6e7743b" + integrity sha512-L/s8crRC6nj5knmHsnPeOXMNdC7vUOSOvTQonXhmT0FdlP9bPnnRrNeVDnLnd8AzjPSBfIFE2eQw6T8jCwdxMA== + dependencies: + tslib "^2.3.0" + +"@antfu/install-pkg@^0.4.0": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1" + integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== + dependencies: + package-manager-detector "^0.2.0" + tinyexec "^0.3.0" + +"@antfu/utils@^0.7.10": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02" + integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== + +"@babel/core@7.26.0", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" + integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== + dependencies: + "@babel/parser" "^7.26.2" + "@babel/types" "^7.26.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.0", "@babel/generator@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019" + integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== + dependencies: + "@babel/parser" "^7.26.3" + "@babel/types" "^7.26.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@7.25.9", "@babel/helper-annotate-as-pure@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" + integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== + dependencies: + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" + integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/traverse" "^7.25.9" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" + integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" + integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" + integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-optimise-call-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" + integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + +"@babel/helper-remap-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" + integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-wrap-function" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-replace-supers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5" + integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" + integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-split-export-declaration@7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helper-wrap-function@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" + integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== + dependencies: + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== + dependencies: + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.0" + +"@babel/parser@^7.14.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2", "@babel/parser@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234" + integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== + dependencies: + "@babel/types" "^7.26.3" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" + integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" + integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" + integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" + integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" + integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-import-assertions@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" + integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-import-attributes@7.26.0", "@babel/plugin-syntax-import-attributes@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" + integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-async-generator-functions@7.25.9", "@babel/plugin-transform-async-generator-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2" + integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-remap-async-to-generator" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-async-to-generator@7.25.9", "@babel/plugin-transform-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" + integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-remap-async-to-generator" "^7.25.9" + +"@babel/plugin-transform-block-scoped-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz#5700691dbd7abb93de300ca7be94203764fce458" + integrity sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-block-scoping@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" + integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-class-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" + integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-class-static-block@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" + integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-classes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" + integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + "@babel/traverse" "^7.25.9" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" + integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/template" "^7.25.9" + +"@babel/plugin-transform-destructuring@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" + integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dotall-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" + integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-keys@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" + integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" + integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dynamic-import@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" + integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-exponentiation-operator@^7.25.9": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" + integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-export-namespace-from@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" + integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-for-of@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" + integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-function-name@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" + integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-json-strings@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" + integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" + integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-logical-assignment-operators@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" + integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-member-expression-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" + integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-amd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" + integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-commonjs@^7.25.9": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" + integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== + dependencies: + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-systemjs@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" + integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-modules-umd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" + integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" + integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-new-target@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" + integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz#bcb1b0d9e948168102d5f7104375ca21c3266949" + integrity sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-numeric-separator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" + integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-object-rest-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" + integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + +"@babel/plugin-transform-object-super@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" + integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + +"@babel/plugin-transform-optional-catch-binding@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" + integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" + integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-parameters@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" + integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-methods@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" + integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-property-in-object@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" + integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-property-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" + integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-regenerator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" + integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-regexp-modifiers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" + integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-reserved-words@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" + integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-runtime@7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz#62723ea3f5b31ffbe676da9d6dae17138ae580ea" + integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" + integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" + integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-sticky-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" + integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-template-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1" + integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-typeof-symbol@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" + integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-escapes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" + integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-property-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" + integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" + integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-sets-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" + integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/preset-env@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" + integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== + dependencies: + "@babel/compat-data" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.26.0" + "@babel/plugin-syntax-import-attributes" "^7.26.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.25.9" + "@babel/plugin-transform-async-generator-functions" "^7.25.9" + "@babel/plugin-transform-async-to-generator" "^7.25.9" + "@babel/plugin-transform-block-scoped-functions" "^7.25.9" + "@babel/plugin-transform-block-scoping" "^7.25.9" + "@babel/plugin-transform-class-properties" "^7.25.9" + "@babel/plugin-transform-class-static-block" "^7.26.0" + "@babel/plugin-transform-classes" "^7.25.9" + "@babel/plugin-transform-computed-properties" "^7.25.9" + "@babel/plugin-transform-destructuring" "^7.25.9" + "@babel/plugin-transform-dotall-regex" "^7.25.9" + "@babel/plugin-transform-duplicate-keys" "^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-dynamic-import" "^7.25.9" + "@babel/plugin-transform-exponentiation-operator" "^7.25.9" + "@babel/plugin-transform-export-namespace-from" "^7.25.9" + "@babel/plugin-transform-for-of" "^7.25.9" + "@babel/plugin-transform-function-name" "^7.25.9" + "@babel/plugin-transform-json-strings" "^7.25.9" + "@babel/plugin-transform-literals" "^7.25.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" + "@babel/plugin-transform-member-expression-literals" "^7.25.9" + "@babel/plugin-transform-modules-amd" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.25.9" + "@babel/plugin-transform-modules-systemjs" "^7.25.9" + "@babel/plugin-transform-modules-umd" "^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-new-target" "^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" + "@babel/plugin-transform-numeric-separator" "^7.25.9" + "@babel/plugin-transform-object-rest-spread" "^7.25.9" + "@babel/plugin-transform-object-super" "^7.25.9" + "@babel/plugin-transform-optional-catch-binding" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + "@babel/plugin-transform-private-methods" "^7.25.9" + "@babel/plugin-transform-private-property-in-object" "^7.25.9" + "@babel/plugin-transform-property-literals" "^7.25.9" + "@babel/plugin-transform-regenerator" "^7.25.9" + "@babel/plugin-transform-regexp-modifiers" "^7.26.0" + "@babel/plugin-transform-reserved-words" "^7.25.9" + "@babel/plugin-transform-shorthand-properties" "^7.25.9" + "@babel/plugin-transform-spread" "^7.25.9" + "@babel/plugin-transform-sticky-regex" "^7.25.9" + "@babel/plugin-transform-template-literals" "^7.25.9" + "@babel/plugin-transform-typeof-symbol" "^7.25.9" + "@babel/plugin-transform-unicode-escapes" "^7.25.9" + "@babel/plugin-transform-unicode-property-regex" "^7.25.9" + "@babel/plugin-transform-unicode-regex" "^7.25.9" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.38.1" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@7.26.0", "@babel/runtime@^7.8.4": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.25.9": + version "7.26.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd" + integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.3" + "@babel/parser" "^7.26.3" + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.3" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.4.4": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" + integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@braintree/sanitize-url@^7.0.1": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz#048e48aab4f1460e3121e22aa62459d16653dc85" + integrity sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg== + +"@chevrotain/cst-dts-gen@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz#5e0863cc57dc45e204ccfee6303225d15d9d4783" + integrity sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ== + dependencies: + "@chevrotain/gast" "11.0.3" + "@chevrotain/types" "11.0.3" + lodash-es "4.17.21" + +"@chevrotain/gast@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-11.0.3.tgz#e84d8880323fe8cbe792ef69ce3ffd43a936e818" + integrity sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q== + dependencies: + "@chevrotain/types" "11.0.3" + lodash-es "4.17.21" + +"@chevrotain/regexp-to-ast@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz#11429a81c74a8e6a829271ce02fc66166d56dcdb" + integrity sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA== + +"@chevrotain/types@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-11.0.3.tgz#f8a03914f7b937f594f56eb89312b3b8f1c91848" + integrity sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ== + +"@chevrotain/utils@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.0.3.tgz#e39999307b102cff3645ec4f5b3665f5297a2224" + integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ== + +"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.3.2", "@codemirror/autocomplete@^6.7.1": + version "6.18.3" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.18.3.tgz#f9ea79a2f369662516f71bc0b2f819454d3c8e00" + integrity sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@^6.0.0": + version "6.7.1" + resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.7.1.tgz#04561e95bc0779eaa49efd63e916c4efb3bbf6d6" + integrity sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.27.0" + "@lezer/common" "^1.1.0" + +"@codemirror/lang-angular@^0.1.0": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz#83035e7e9e1f0e2ba466e83d778407b519089a28" + integrity sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w== + dependencies: + "@codemirror/lang-html" "^6.0.0" + "@codemirror/lang-javascript" "^6.1.2" + "@codemirror/language" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.3.3" + +"@codemirror/lang-cpp@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz#076c98340c3beabde016d7d83e08eebe17254ef9" + integrity sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/cpp" "^1.0.0" + +"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.2.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-css/-/lang-css-6.3.1.tgz#763ca41aee81bb2431be55e3cfcc7cc8e91421a3" + integrity sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.0.2" + "@lezer/css" "^1.1.7" + +"@codemirror/lang-go@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-go/-/lang-go-6.0.1.tgz#598222c90f56eae28d11069c612ca64d0306b057" + integrity sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.6.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.0.0" + "@lezer/go" "^1.0.0" + +"@codemirror/lang-html@^6.0.0": + version "6.4.9" + resolved "https://registry.yarnpkg.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz#d586f2cc9c341391ae07d1d7c545990dfa069727" + integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/lang-css" "^6.0.0" + "@codemirror/lang-javascript" "^6.0.0" + "@codemirror/language" "^6.4.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + "@lezer/css" "^1.1.0" + "@lezer/html" "^1.3.0" + +"@codemirror/lang-java@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz#03bd06334da7c8feb9dff6db01ac6d85bd2e48bb" + integrity sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/java" "^1.0.0" + +"@codemirror/lang-javascript@^6.0.0", "@codemirror/lang-javascript@^6.1.2": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz#7141090b22994bef85bcc5608a3bc1257f2db2ad" + integrity sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.6.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + "@lezer/javascript" "^1.0.0" + +"@codemirror/lang-json@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz#0a0be701a5619c4b0f8991f9b5e95fe33f462330" + integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/json" "^1.0.0" + +"@codemirror/lang-less@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-less/-/lang-less-6.0.2.tgz#2e3d82a3ddb8710e6409689cd4a28c66558d0cb8" + integrity sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ== + dependencies: + "@codemirror/lang-css" "^6.2.0" + "@codemirror/language" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@codemirror/lang-liquid@^6.0.0": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-liquid/-/lang-liquid-6.2.2.tgz#5b5a2391ac14b6af85c520b8b81ea1f344d40a62" + integrity sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/lang-html" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + "@lezer/common" "^1.0.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.3.1" + +"@codemirror/lang-markdown@^6.0.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-markdown/-/lang-markdown-6.3.1.tgz#067e4e18993fa3520e2a980d2dce5fe23dd245a0" + integrity sha512-y3sSPuQjBKZQbQwe3ZJKrSW6Silyl9PnrU/Mf0m2OQgIlPoSYTtOvEL7xs94SVMkb8f4x+SQFnzXPdX4Wk2lsg== + dependencies: + "@codemirror/autocomplete" "^6.7.1" + "@codemirror/lang-html" "^6.0.0" + "@codemirror/language" "^6.3.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + "@lezer/common" "^1.2.1" + "@lezer/markdown" "^1.0.0" + +"@codemirror/lang-php@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz#fa34cc75562178325861a5731f79bd621f57ffaa" + integrity sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA== + dependencies: + "@codemirror/lang-html" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.0.0" + "@lezer/php" "^1.0.0" + +"@codemirror/lang-python@^6.0.0": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@codemirror/lang-python/-/lang-python-6.1.6.tgz#0c55e7e2dfa85b68be93b9692e5d3f76f284bbb2" + integrity sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg== + dependencies: + "@codemirror/autocomplete" "^6.3.2" + "@codemirror/language" "^6.8.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.2.1" + "@lezer/python" "^1.1.4" + +"@codemirror/lang-rust@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz#d6829fc7baa39a15bcd174a41a9e0a1bf7cf6ba8" + integrity sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/rust" "^1.0.0" + +"@codemirror/lang-sass@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz#38c1b0a1326cc9f5cb2741d2cd51cfbcd7abc0b2" + integrity sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q== + dependencies: + "@codemirror/lang-css" "^6.2.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.0.2" + "@lezer/sass" "^1.0.0" + +"@codemirror/lang-sql@^6.0.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@codemirror/lang-sql/-/lang-sql-6.8.0.tgz#1ae68ad49f378605ff88a4cc428ba667ce056068" + integrity sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@codemirror/lang-vue@^0.1.1": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz#bf79b9152cc18b4903d64c1f67e186ae045c8a97" + integrity sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug== + dependencies: + "@codemirror/lang-html" "^6.0.0" + "@codemirror/lang-javascript" "^6.1.2" + "@codemirror/language" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.3.1" + +"@codemirror/lang-wast@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz#d2b14175e5e80d7878cbbb29e20ec90dc12d3a2b" + integrity sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@codemirror/lang-xml@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz#e3e786e1a89fdc9520efe75c1d6d3de1c40eb91c" + integrity sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.4.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + "@lezer/common" "^1.0.0" + "@lezer/xml" "^1.0.0" + +"@codemirror/lang-yaml@^6.0.0": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz#6f6e4e16c5a4e6d549f462c9dc2053439e070d0d" + integrity sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.2.0" + "@lezer/yaml" "^1.0.0" + +"@codemirror/language-data@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@codemirror/language-data/-/language-data-6.5.1.tgz#5cb9413d5225ef27a577c23781bbc0b36c58bb67" + integrity sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w== + dependencies: + "@codemirror/lang-angular" "^0.1.0" + "@codemirror/lang-cpp" "^6.0.0" + "@codemirror/lang-css" "^6.0.0" + "@codemirror/lang-go" "^6.0.0" + "@codemirror/lang-html" "^6.0.0" + "@codemirror/lang-java" "^6.0.0" + "@codemirror/lang-javascript" "^6.0.0" + "@codemirror/lang-json" "^6.0.0" + "@codemirror/lang-less" "^6.0.0" + "@codemirror/lang-liquid" "^6.0.0" + "@codemirror/lang-markdown" "^6.0.0" + "@codemirror/lang-php" "^6.0.0" + "@codemirror/lang-python" "^6.0.0" + "@codemirror/lang-rust" "^6.0.0" + "@codemirror/lang-sass" "^6.0.0" + "@codemirror/lang-sql" "^6.0.0" + "@codemirror/lang-vue" "^0.1.1" + "@codemirror/lang-wast" "^6.0.0" + "@codemirror/lang-xml" "^6.0.0" + "@codemirror/lang-yaml" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/legacy-modes" "^6.4.0" + +"@codemirror/language@^6.0.0", "@codemirror/language@^6.3.0", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0", "@codemirror/language@^6.8.0": + version "6.10.6" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.6.tgz#3770aa55fce575b45b1037b390b576907f0061c7" + integrity sha512-KrsbdCnxEztLVbB5PycWXFxas4EOyk/fPAfruSOnDDppevQgid2XZ+KbJ9u+fDikP/e7MW7HPBTvTb8JlZK9vA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.1.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/legacy-modes@^6.4.0": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@codemirror/legacy-modes/-/legacy-modes-6.4.2.tgz#723a55aae21304d4c112575943d3467c9040d217" + integrity sha512-HsvWu08gOIIk303eZQCal4H4t65O/qp1V4ul4zVa3MHK5FJ0gz3qz3O55FIkm+aQUcshUOjBx38t2hPiJwW5/g== + dependencies: + "@codemirror/language" "^6.0.0" + +"@codemirror/lint@^6.0.0": + version "6.8.4" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.4.tgz#7d8aa5d1a6dec89ffcc23ad45ddca2e12e90982d" + integrity sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.35.0" + crelt "^1.0.5" + +"@codemirror/merge@^6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@codemirror/merge/-/merge-6.7.4.tgz#2ee6c4595f3ed1e0f5e62365f842f285065fe8d9" + integrity sha512-9FpIFTgzkaxkZE93XKoFR6caAB6sCAfYCW2NT+atGEmdv/1Mt1ouxA+hKxGRYdMvdH9Ph0KMJtYnzEi+QCGAiQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/highlight" "^1.0.0" + style-mod "^4.1.0" + +"@codemirror/search@^6.0.0": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.5.8.tgz#b59b3659b46184cc75d6108d7c050a4ca344c3a0" + integrity sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.4.1.tgz#da57143695c056d9a3c38705ed34136e2b68171b" + integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== + +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.35.0": + version "6.35.1" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.35.1.tgz#4ed9ab5cf4318414d39d18c6d90c4494f0cb63c0" + integrity sha512-OUs9Z2UabSfJxSoEnuHUzGF0wHpWiJ/3IW/cgrKBqbp5Yj7XTYXQAQaLHZUP48ctRMvxgarEXTginrocUG8J7A== + dependencies: + "@codemirror/state" "^6.4.0" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@discoveryjs/json-ext@0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz#f13c7c205915eb91ae54c557f5e92bddd8be0e83" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/aix-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" + integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" + integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-arm@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" + integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/android-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" + integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" + integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/darwin-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" + integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" + integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/freebsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" + integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" + integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-arm@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" + integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" + integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-loong64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" + integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-mips64el@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" + integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" + integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-riscv64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" + integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-s390x@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" + integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/linux-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" + integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/netbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" + integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== + +"@esbuild/openbsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" + integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/openbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" + integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/sunos-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" + integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" + integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" + integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@esbuild/win32-x64@0.24.0": + version "0.24.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" + integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint/config-array@^0.19.0": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" + integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== + dependencies: + "@eslint/object-schema" "^2.1.5" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1" + integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" + integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^10.0.1" + globals "^14.0.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@9.16.0", "@eslint/js@^9.15.0": + version "9.16.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" + integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== + +"@eslint/object-schema@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" + integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== + +"@eslint/plugin-kit@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792" + integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== + dependencies: + levn "^0.4.1" + +"@fsegurai/codemirror-theme-abcdef@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-abcdef/6.1.1/ff20f465d487634ce3280872003d0fb2f1eead02#ff20f465d487634ce3280872003d0fb2f1eead02" + integrity sha512-qhx6IHWj1ZoLHxKAK/UOXdf1RXycrxKICuoT0ychpkSPAyx1jyN++UQjWnanby30Rm+AoJ4vQQ8RhNv/GIKmjg== + +"@fsegurai/codemirror-theme-abyss@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-abyss/6.1.1/f6a3ca25bfa668643248bfd5d66ce55bf9e87579#f6a3ca25bfa668643248bfd5d66ce55bf9e87579" + integrity sha512-Aab7gageF+P7LO2sGKYgbRVxZk9NmApzZn6lSS2l4D+ijnzXMoDFFxTDrDQ4G4M1qYzBd8mUKYeZftuXtgk3mA== + +"@fsegurai/codemirror-theme-android-studio@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-android-studio/6.1.1/12918ed8d68c2b980d0dd0cbd61a0631a7c2a4a0#12918ed8d68c2b980d0dd0cbd61a0631a7c2a4a0" + integrity sha512-Z9G5vLRfeJiHomNTTuyjRbziVMW1k+CQImuXKPJQA2+qdfDfFKmYPSfiRFE/EpP7M78sK/Vo5AgbtvzPElixBg== + +"@fsegurai/codemirror-theme-andromeda@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-andromeda/6.1.1/933f6188ec56fabf7f645bd29888bd07d6bdf040#933f6188ec56fabf7f645bd29888bd07d6bdf040" + integrity sha512-jiqY9BwIh0WbL6JHRZYe+yivqTjSzszkhJz0MSJRk+mYyTR09G9D7ihl+q9rhX6nu6T5MMGbdt5gIvncWAiZpQ== + +"@fsegurai/codemirror-theme-basic-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-basic-dark/6.1.1/5427d732f4eeda8697e624c4c99adb71e87fc559#5427d732f4eeda8697e624c4c99adb71e87fc559" + integrity sha512-tEiYz98hfffqSaqsneR9K5fZnttWDT1jaYBFQlg3WT2rzJgkbmI1ghJrSiNukfIo8mABskFR1KcwLPXW4nL2RQ== + +"@fsegurai/codemirror-theme-basic-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-basic-light/6.1.1/7e36b87c32dbd550058c500d2f66139c6e5dbce5#7e36b87c32dbd550058c500d2f66139c6e5dbce5" + integrity sha512-Xv6wgE1juAMFgQDs1T5P3/DUrBBkz9y1y9BFngWzi7dRZ87RjWKAUdeR5fP8SOui0ZVezhY4XODY8czWkmemxQ== + +"@fsegurai/codemirror-theme-bundle@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-bundle/6.1.1/1afe5f45a005452b882272ce5df121692352d951#1afe5f45a005452b882272ce5df121692352d951" + integrity sha512-oWfYh9kxu4FnnKQQ5L4MONjkoFm50nEZVtyyip1ImVXsdQ04WxD1R/pFTPypFjjC5ncartxekr3A2c5gslK7SA== + dependencies: + "@fsegurai/codemirror-theme-abcdef" "^6.1.1" + "@fsegurai/codemirror-theme-abyss" "^6.1.1" + "@fsegurai/codemirror-theme-android-studio" "^6.1.1" + "@fsegurai/codemirror-theme-andromeda" "^6.1.1" + "@fsegurai/codemirror-theme-basic-dark" "^6.1.1" + "@fsegurai/codemirror-theme-basic-light" "^6.1.1" + "@fsegurai/codemirror-theme-forest" "^6.1.1" + "@fsegurai/codemirror-theme-github-dark" "^6.1.1" + "@fsegurai/codemirror-theme-github-light" "^6.1.1" + "@fsegurai/codemirror-theme-gruvbox-dark" "^6.1.1" + "@fsegurai/codemirror-theme-gruvbox-light" "^6.1.1" + "@fsegurai/codemirror-theme-material-dark" "^6.1.1" + "@fsegurai/codemirror-theme-material-light" "^6.1.1" + "@fsegurai/codemirror-theme-monokai" "^6.1.1" + "@fsegurai/codemirror-theme-nord" "^6.1.1" + "@fsegurai/codemirror-theme-palenight" "^6.1.1" + "@fsegurai/codemirror-theme-solarized-dark" "^6.1.1" + "@fsegurai/codemirror-theme-solarized-light" "^6.1.1" + "@fsegurai/codemirror-theme-tokyo-night-day" "^6.1.1" + "@fsegurai/codemirror-theme-tokyo-night-storm" "^6.1.1" + "@fsegurai/codemirror-theme-volcano" "^6.1.1" + "@fsegurai/codemirror-theme-vscode-dark" "^6.1.1" + "@fsegurai/codemirror-theme-vscode-light" "^6.1.1" + +"@fsegurai/codemirror-theme-forest@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-forest/6.1.1/ac688e2c9d58df5c77c61e4192ef16aeda771a76#ac688e2c9d58df5c77c61e4192ef16aeda771a76" + integrity sha512-JwHwZbQH25PcI3eb9ai803USDLX4Tw+YKAL1fUAtbBj0n7DcC5sKBAqFrXnHBHrbUywmqUFo+xwOM8KNOz+KgQ== + +"@fsegurai/codemirror-theme-github-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-github-dark/6.1.1/f9ceef4915ac57dfe46db124f84bf183eb742712#f9ceef4915ac57dfe46db124f84bf183eb742712" + integrity sha512-TdOJSF7n21OqBS4OjZdXlLVV4nOlO/AXatqK6KP1wVtXS3kfNf1WylPopcB4dq9jZrj2AXzCgVJg1iLSINUj/Q== + +"@fsegurai/codemirror-theme-github-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-github-light/6.1.1/9fc7ebd3c6f75eeedf2ade8fcba9d85d583ae572#9fc7ebd3c6f75eeedf2ade8fcba9d85d583ae572" + integrity sha512-9xj/FBUTgcy0HeJVm93e7H9ikgmf85REe+b77NnIQzGkqOfQZ8DImjj1EAnpnqHhRwmSZeL27VyDsV67EYVX+g== + +"@fsegurai/codemirror-theme-gruvbox-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-gruvbox-dark/6.1.1/545ca2c5152f8d0dc57a3c8b6f0df09b76f9999a#545ca2c5152f8d0dc57a3c8b6f0df09b76f9999a" + integrity sha512-EotSqXyRyj4ovPXnyjMOzpAp4URaxs9ig+bJN5hrM66h2xmE1/Jnoe5WwrfZ1KDqK+DWv+Pb+R/cd3utB8llQw== + +"@fsegurai/codemirror-theme-gruvbox-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-gruvbox-light/6.1.1/085baaad06b43e50cbf8d19ba3f6fc43c55a3505#085baaad06b43e50cbf8d19ba3f6fc43c55a3505" + integrity sha512-QCS7Xj/+jyvIAv7yEmrHOdDKPCtrw3th2Qq6UqEqZcp9sOXImBypVXs5fc/y9Bp3T9g/Oc3CEXC3f+UPmsl/PQ== + +"@fsegurai/codemirror-theme-material-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-material-dark/6.1.1/a552ac2310150a543f505d311f925203e48541cd#a552ac2310150a543f505d311f925203e48541cd" + integrity sha512-JS9ztWGxPSbmp+vQaDHwQ+CkcoKVaX4cBfEsH7JZq8aRh9tIGqfUs3CteXegipNeHdPLGNT9olSeBRD+itOrcQ== + +"@fsegurai/codemirror-theme-material-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-material-light/6.1.1/374c03b3857747638b86d6b4f6344158bce81170#374c03b3857747638b86d6b4f6344158bce81170" + integrity sha512-Y4tXv3pwo1hSr6UX7dBDXBCls29NcSZO6/8QJZHRHb9O3m5jqqKqW6+wsptJYljPtRBkWPjuKmmGhRdiytm0CA== + +"@fsegurai/codemirror-theme-monokai@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-monokai/6.1.1/fa67411b0e5efe52abca56759c4fe72b81968eb0#fa67411b0e5efe52abca56759c4fe72b81968eb0" + integrity sha512-gznpV6rb/8d6om11FHzazUqH4OAQjqbLf+aERo20zxSL9j3u9Qz5ie2YuVM0rU9atTZQX4MDmSiWZr6AtYag7A== + +"@fsegurai/codemirror-theme-nord@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-nord/6.1.1/a3ce195605fd65bc40dedd8f54943e409451486f#a3ce195605fd65bc40dedd8f54943e409451486f" + integrity sha512-niwAK8c1tWBM95o+XaKjM9OFene0GCX2ddrWVfdRNz+DSM22sa2vf5InF2xhIp+vwwVHMnV0/K5vmzERSs3K7g== + +"@fsegurai/codemirror-theme-palenight@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-palenight/6.1.1/f64620a617e3e638bcfcafa0661e390c1146128a#f64620a617e3e638bcfcafa0661e390c1146128a" + integrity sha512-dKmfLEXiA2UtZhL6I/rHZT4Gnv7CKd5RQ9cMv0v8qyaqs3EM1pgHkXKDp/putMY8tkxizv4a97Q4LvKapzLlWA== + +"@fsegurai/codemirror-theme-solarized-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-solarized-dark/6.1.1/e83e642a18081d552403d7ed846c5ef4f8f51c04#e83e642a18081d552403d7ed846c5ef4f8f51c04" + integrity sha512-sWDOz3VSf1mW/Ie21iLzUU5F1PbUJ+pF96g4FhUFWh57KG+QolneKKQ6dlAsSNX4tPyFBVoGE+nLR/0X/xXD3A== + +"@fsegurai/codemirror-theme-solarized-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-solarized-light/6.1.1/be0b8e00f3a2eafb6b518853668ab5338a078957#be0b8e00f3a2eafb6b518853668ab5338a078957" + integrity sha512-ib6eMR/HK0ixt9u8N8w4HiZtFZmmEClf7I2m+MmEZSeND2hPeaTP81XNaM5UhcMdQwkHsl8ADu+35/IxYoYFhQ== + +"@fsegurai/codemirror-theme-tokyo-night-day@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-tokyo-night-day/6.1.1/5a0758aa1e6d4982d2310bd266c29ca5463ca378#5a0758aa1e6d4982d2310bd266c29ca5463ca378" + integrity sha512-M+zVhVesPVYIf9oh0nox+uMoiVHckIWtV+cL5awZFGDGz0+m+3rWlXsoREm+KVonO1OF9iqBKs/WE359z4AbDA== + +"@fsegurai/codemirror-theme-tokyo-night-storm@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-tokyo-night-storm/6.1.1/433afeeb9c458770dc8fc320fcd62a2174c12c17#433afeeb9c458770dc8fc320fcd62a2174c12c17" + integrity sha512-Vg+USAwjbExPvPJAeRGoa/vHGWj6W4bX5B7qjhnEn8bfxF5nooF2/SIGUdHTy9RlpnkUlbVgdOPgmATeWQGB4w== + +"@fsegurai/codemirror-theme-volcano@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-volcano/6.1.1/8c01088fc063297931dea44bb35c553af91c96d5#8c01088fc063297931dea44bb35c553af91c96d5" + integrity sha512-j5AbsYiDen86XW/+/iLcwrNJRXd0ujMAQBjVTk5fP1HGYqwMAnJUHYVyhcZ6A+MXVeTs8tsBsJTTT/TUz8BuUQ== + +"@fsegurai/codemirror-theme-vscode-dark@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-vscode-dark/6.1.1/55b58187411ddaf31beb7b2482c9c8f27778b5a8#55b58187411ddaf31beb7b2482c9c8f27778b5a8" + integrity sha512-nprPXuY49KNtDl7cWEScrccraOUklf9osqRRKvAGZUmZrw55MCU2AFUqXxsboy5sB97dp+UHnqW5UUIYVsgcbw== + +"@fsegurai/codemirror-theme-vscode-light@^6.1.1": + version "6.1.1" + resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-vscode-light/6.1.1/b389cae358e1886fb25a76c4c41db3f3833c74a0#b389cae358e1886fb25a76c4c41db3f3833c74a0" + integrity sha512-6P0i8NkCIPx0uS4VW9PzO2EQGchaZRlkSlZnJ9cMvy2Z1TkfdLh8SzO1YpgyM9IDvfkbpwsjbl/Ylr6ugeJy6Q== + +"@fsegurai/ngx-markdown@^19.1.0": + version "19.1.0" + resolved "https://npm.pkg.github.com/download/@fsegurai/ngx-markdown/19.1.0/cff90e3347c85ef2404c334159773dd9f7656194#cff90e3347c85ef2404c334159773dd9f7656194" + integrity sha512-G2+iaM484SiYM1wlT9v32yNDNJK5eCCSuRtPYZNdvG9psGiJ61PAAzFgrKIinMNUcZbqwU847yuO3VhIP9a+nQ== + dependencies: + tslib "^2.8.1" + optionalDependencies: + clipboard "^2.0.11" + emoji-toolkit "^9.0.1" + katex "^0.16.11" + mermaid "^11.4.1" + prismjs "^1.29.0" + +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@humanwhocodes/retry@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== + +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^2.1.32": + version "2.1.33" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.1.33.tgz#cbf7242a52fd0ec58c42d37d28e4406b5327e8c0" + integrity sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw== + dependencies: + "@antfu/install-pkg" "^0.4.0" + "@antfu/utils" "^0.7.10" + "@iconify/types" "^2.0.0" + debug "^4.3.6" + kolorist "^1.8.0" + local-pkg "^0.5.0" + mlly "^1.7.1" + +"@inquirer/checkbox@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.0.2.tgz#e45e0ad2611f2cb2d337ba36c7d955b53f195914" + integrity sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/figures" "^1.0.8" + "@inquirer/type" "^3.0.1" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + +"@inquirer/confirm@5.0.2", "@inquirer/confirm@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.0.2.tgz#2b9dcf6b7da5f518c74abe4aeaf3173253d83c93" + integrity sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + +"@inquirer/core@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.0.tgz#c5fdc34c4cafd7248da29a3c3b3120fe6e1c45be" + integrity sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ== + dependencies: + "@inquirer/figures" "^1.0.8" + "@inquirer/type" "^3.0.1" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + mute-stream "^2.0.0" + signal-exit "^4.1.0" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/editor@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.1.0.tgz#bc1a8bebe5897d4b44b0bfab1aeb1b5172f8d812" + integrity sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + external-editor "^3.1.0" + +"@inquirer/expand@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.2.tgz#7b5c332ad604d7d076e7052b8e5006a3b61c3274" + integrity sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.8.tgz#d9e414a1376a331a0e71b151fea27c48845788b0" + integrity sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg== + +"@inquirer/input@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.0.2.tgz#be77b79a1ed182444a6eef2d850309639aa9df22" + integrity sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + +"@inquirer/number@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.2.tgz#7e8315b41601d377cc09802b66f32b481e14fd68" + integrity sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + +"@inquirer/password@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.2.tgz#5913e2818b3de1ee6f63ec1b0891a43c1d4bdca9" + integrity sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + ansi-escapes "^4.3.2" + +"@inquirer/prompts@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.1.0.tgz#a55ee589c0eed0ca2ee0fbc7fc63f42f4c31a24e" + integrity sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA== + dependencies: + "@inquirer/checkbox" "^4.0.2" + "@inquirer/confirm" "^5.0.2" + "@inquirer/editor" "^4.1.0" + "@inquirer/expand" "^4.0.2" + "@inquirer/input" "^4.0.2" + "@inquirer/number" "^3.0.2" + "@inquirer/password" "^4.0.2" + "@inquirer/rawlist" "^4.0.2" + "@inquirer/search" "^3.0.2" + "@inquirer/select" "^4.0.2" + +"@inquirer/rawlist@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.2.tgz#78a58294505bed2a5e133153340f187967916702" + integrity sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/type" "^3.0.1" + yoctocolors-cjs "^2.1.2" + +"@inquirer/search@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.2.tgz#71fccc766045f2ec37afc402d72ce31838768281" + integrity sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/figures" "^1.0.8" + "@inquirer/type" "^3.0.1" + yoctocolors-cjs "^2.1.2" + +"@inquirer/select@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.2.tgz#c38ef154524a6859de4a1af11a90ad3f9638c9f2" + integrity sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg== + dependencies: + "@inquirer/core" "^10.1.0" + "@inquirer/figures" "^1.0.8" + "@inquirer/type" "^3.0.1" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + +"@inquirer/type@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.5.tgz#303ea04ce7ad2e585b921b662b3be36ef7b4f09b" + integrity sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== + dependencies: + mute-stream "^1.0.0" + +"@inquirer/type@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.1.tgz#619ce9f65c3e114d8e39c41822bed3440d20b478" + integrity sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/fs-minipass@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" + integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== + dependencies: + minipass "^7.0.4" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jsonjoy.com/base64@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/json-pack@^1.0.3": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz#33ca57ee29d12feef540f2139225597469dec894" + integrity sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg== + dependencies: + "@jsonjoy.com/base64" "^1.1.1" + "@jsonjoy.com/util" "^1.1.2" + hyperdyperid "^1.2.0" + thingies "^1.20.0" + +"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c" + integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA== + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@lezer/common@^1.0.0", "@lezer/common@^1.0.2", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.2.1": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd" + integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== + +"@lezer/cpp@^1.0.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@lezer/cpp/-/cpp-1.1.2.tgz#1db93b09e011e8a7a08c347c9d5b7749971253bf" + integrity sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/css@^1.1.0", "@lezer/css@^1.1.7": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@lezer/css/-/css-1.1.9.tgz#404563d361422c5a1fe917295f1527ee94845ed1" + integrity sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/go@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@lezer/go/-/go-1.0.0.tgz#26cd2463f8583e630f52e714dca6d7420c5f7d7e" + integrity sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b" + integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/html@^1.3.0": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@lezer/html/-/html-1.3.10.tgz#1be9a029a6fe835c823b20a98a449a630416b2af" + integrity sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/java@^1.0.0": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@lezer/java/-/java-1.1.3.tgz#9efd6a29b4142d07f211076a6fb5e8061c85e147" + integrity sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/javascript@^1.0.0": + version "1.4.21" + resolved "https://registry.yarnpkg.com/@lezer/javascript/-/javascript-1.4.21.tgz#8ebf7d1f891c70e3d00864f5a03ac42c75d19492" + integrity sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.1.3" + "@lezer/lr" "^1.3.0" + +"@lezer/json@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.2.tgz#bdc849e174113e2d9a569a5e6fb1a27e2f703eaf" + integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/lr@^1.0.0", "@lezer/lr@^1.1.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.3.1", "@lezer/lr@^1.3.3", "@lezer/lr@^1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" + integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/markdown@^1.0.0": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@lezer/markdown/-/markdown-1.3.2.tgz#9d648b2a6cb47523f3d7ab494eee8c7be4f1ea9e" + integrity sha512-Wu7B6VnrKTbBEohqa63h5vxXjiC4pO5ZQJ/TDbhJxPQaaIoRD/6UVDhSDtVsCwVZV12vvN9KxuLL3ATMnlG0oQ== + dependencies: + "@lezer/common" "^1.0.0" + "@lezer/highlight" "^1.0.0" + +"@lezer/php@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@lezer/php/-/php-1.0.2.tgz#7c291631fc1e7f7efe99977522bc48bdc732658a" + integrity sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.1.0" + +"@lezer/python@^1.1.4": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@lezer/python/-/python-1.1.15.tgz#14a21b3bf1997d1b578f0bb959bf2062641798a2" + integrity sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/rust@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@lezer/rust/-/rust-1.0.2.tgz#cc9a75605d67182a0e799ac40b1965a61dcc6ef0" + integrity sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/sass@^1.0.0": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@lezer/sass/-/sass-1.0.7.tgz#e90066b1d386eee6160edc88a39293844e4ba106" + integrity sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/xml@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@lezer/xml/-/xml-1.0.5.tgz#4bb7fd3e527f41b78372477aa753f035b41c3846" + integrity sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/yaml@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@lezer/yaml/-/yaml-1.0.3.tgz#b23770ab42b390056da6b187d861b998fd60b1ff" + integrity sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.4.0" + +"@listr2/prompt-adapter-inquirer@2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz#f1bff90f201269914023b17cb383c8febd6287f2" + integrity sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q== + dependencies: + "@inquirer/type" "^1.5.5" + +"@lmdb/lmdb-darwin-arm64@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz#72d229714c0eb66ce0b235bea1ff62f68e762407" + integrity sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA== + +"@lmdb/lmdb-darwin-x64@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz#e9fa7e7e915cca533e9cec79d68c0309e49594d2" + integrity sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw== + +"@lmdb/lmdb-linux-arm64@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz#ca7ff0df918edb65c91330e16e81076cd85edaff" + integrity sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ== + +"@lmdb/lmdb-linux-arm@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz#94dbd35ce8faa0810b6e7babbfb4f505bd80b2a3" + integrity sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg== + +"@lmdb/lmdb-linux-x64@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz#0aa94acf4ef029690569119c1f811bebe9d3d8f9" + integrity sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw== + +"@lmdb/lmdb-win32-x64@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz#d748edd97f62cace4f716395cc1b8807616ecdae" + integrity sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA== + +"@mermaid-js/parser@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.3.0.tgz#7a28714599f692f93df130b299fa1aadc9f9c8ab" + integrity sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA== + dependencies: + langium "3.0.0" + +"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11" + integrity sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw== + +"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz#33677a275204898ad8acbf62734fc4dc0b6a4855" + integrity sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw== + +"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz#19edf7cdc2e7063ee328403c1d895a86dd28f4bb" + integrity sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg== + +"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz#94fb0543ba2e28766c3fc439cabbe0440ae70159" + integrity sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw== + +"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz#4a0609ab5fe44d07c9c60a11e4484d3c38bbd6e3" + integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg== + +"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242" + integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ== + +"@napi-rs/nice-android-arm-eabi@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz#9a0cba12706ff56500df127d6f4caf28ddb94936" + integrity sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w== + +"@napi-rs/nice-android-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz#32fc32e9649bd759d2a39ad745e95766f6759d2f" + integrity sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA== + +"@napi-rs/nice-darwin-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz#d3c44c51b94b25a82d45803e2255891e833e787b" + integrity sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA== + +"@napi-rs/nice-darwin-x64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz#f1b1365a8370c6a6957e90085a9b4873d0e6a957" + integrity sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ== + +"@napi-rs/nice-freebsd-x64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz#4280f081efbe0b46c5165fdaea8b286e55a8f89e" + integrity sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw== + +"@napi-rs/nice-linux-arm-gnueabihf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz#07aec23a9467ed35eb7602af5e63d42c5d7bd473" + integrity sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q== + +"@napi-rs/nice-linux-arm64-gnu@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz#038a77134cc6df3c48059d5a5e199d6f50fb9a90" + integrity sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA== + +"@napi-rs/nice-linux-arm64-musl@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz#715d0906582ba0cff025109f42e5b84ea68c2bcc" + integrity sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw== + +"@napi-rs/nice-linux-ppc64-gnu@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz#ac1c8f781c67b0559fa7a1cd4ae3ca2299dc3d06" + integrity sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q== + +"@napi-rs/nice-linux-riscv64-gnu@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz#b0a430549acfd3920ffd28ce544e2fe17833d263" + integrity sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig== + +"@napi-rs/nice-linux-s390x-gnu@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz#5b95caf411ad72a965885217db378c4d09733e97" + integrity sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg== + +"@napi-rs/nice-linux-x64-gnu@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz#a98cdef517549f8c17a83f0236a69418a90e77b7" + integrity sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA== + +"@napi-rs/nice-linux-x64-musl@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz#5e26843eafa940138aed437c870cca751c8a8957" + integrity sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ== + +"@napi-rs/nice-win32-arm64-msvc@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz#bd62617d02f04aa30ab1e9081363856715f84cd8" + integrity sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg== + +"@napi-rs/nice-win32-ia32-msvc@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz#b8b7aad552a24836027473d9b9f16edaeabecf18" + integrity sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw== + +"@napi-rs/nice-win32-x64-msvc@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz#37d8718b8f722f49067713e9f1e85540c9a3dd09" + integrity sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg== + +"@napi-rs/nice@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@napi-rs/nice/-/nice-1.0.1.tgz#483d3ff31e5661829a1efb4825591a135c3bfa7d" + integrity sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ== + optionalDependencies: + "@napi-rs/nice-android-arm-eabi" "1.0.1" + "@napi-rs/nice-android-arm64" "1.0.1" + "@napi-rs/nice-darwin-arm64" "1.0.1" + "@napi-rs/nice-darwin-x64" "1.0.1" + "@napi-rs/nice-freebsd-x64" "1.0.1" + "@napi-rs/nice-linux-arm-gnueabihf" "1.0.1" + "@napi-rs/nice-linux-arm64-gnu" "1.0.1" + "@napi-rs/nice-linux-arm64-musl" "1.0.1" + "@napi-rs/nice-linux-ppc64-gnu" "1.0.1" + "@napi-rs/nice-linux-riscv64-gnu" "1.0.1" + "@napi-rs/nice-linux-s390x-gnu" "1.0.1" + "@napi-rs/nice-linux-x64-gnu" "1.0.1" + "@napi-rs/nice-linux-x64-musl" "1.0.1" + "@napi-rs/nice-win32-arm64-msvc" "1.0.1" + "@napi-rs/nice-win32-ia32-msvc" "1.0.1" + "@napi-rs/nice-win32-x64-msvc" "1.0.1" + +"@ngtools/webpack@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-19.0.4.tgz#4084b797cf211718a716256287ee1fd029f919d3" + integrity sha512-N3WCbQz5ipdAZoSWHNf81RLET6+isq35+GZu9u0StpFtJCpXAmRRAv4vdMUYL7DLOzRmvEgwww6Rd5AwGeLFSw== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@nolyfill/is-core-module@1.0.39": + version "1.0.39" + resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" + integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== + +"@npmcli/agent@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-3.0.0.tgz#1685b1fbd4a1b7bb4f930cbb68ce801edfe7aa44" + integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + +"@npmcli/fs@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-4.0.0.tgz#a1eb1aeddefd2a4a347eca0fab30bc62c0e1c0f2" + integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-6.0.1.tgz#9ee894a35c2082d0b41883e267ff140aece457d5" + integrity sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw== + dependencies: + "@npmcli/promise-spawn" "^8.0.0" + ini "^5.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^10.0.0" + proc-log "^5.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^5.0.0" + +"@npmcli/installed-package-contents@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz#2c1170ff4f70f68af125e2842e1853a93223e4d1" + integrity sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q== + dependencies: + npm-bundled "^4.0.0" + npm-normalize-package-bin "^4.0.0" + +"@npmcli/node-gyp@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz#01f900bae62f0f27f9a5a127b40d443ddfb9d4c6" + integrity sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA== + +"@npmcli/package-json@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-6.1.0.tgz#34f0875da178b04df1a7746c02bdc26479819afb" + integrity sha512-t6G+6ZInT4X+tqj2i+wlLIeCKnKOTuz9/VFYDtj+TGTur5q7sp/OYrQA19LdBbWfXDOi0Y4jtedV6xtB8zQ9ug== + dependencies: + "@npmcli/git" "^6.0.0" + glob "^10.2.2" + hosted-git-info "^8.0.0" + json-parse-even-better-errors "^4.0.0" + normalize-package-data "^7.0.0" + proc-log "^5.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^8.0.0": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz#053688f8bc2b4ecc036d2d52c691fd82af58ea5e" + integrity sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ== + dependencies: + which "^5.0.0" + +"@npmcli/redact@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-3.0.0.tgz#ab3b6413355be7f3c02e87c36c2b0c2f9773fce4" + integrity sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ== + +"@npmcli/run-script@^9.0.0": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-9.0.2.tgz#621f993d59bae770104a5b655a38c6579d5ce6be" + integrity sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw== + dependencies: + "@npmcli/node-gyp" "^4.0.0" + "@npmcli/package-json" "^6.0.0" + "@npmcli/promise-spawn" "^8.0.0" + node-gyp "^11.0.0" + proc-log "^5.0.0" + which "^5.0.0" + +"@parcel/watcher-android-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz#e32d3dda6647791ee930556aee206fcd5ea0fb7a" + integrity sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ== + +"@parcel/watcher-darwin-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz#0d9e680b7e9ec1c8f54944f1b945aa8755afb12f" + integrity sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw== + +"@parcel/watcher-darwin-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz#f9f1d5ce9d5878d344f14ef1856b7a830c59d1bb" + integrity sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA== + +"@parcel/watcher-freebsd-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz#2b77f0c82d19e84ff4c21de6da7f7d096b1a7e82" + integrity sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw== + +"@parcel/watcher-linux-arm-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz#92ed322c56dbafa3d2545dcf2803334aee131e42" + integrity sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA== + +"@parcel/watcher-linux-arm-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz#cd48e9bfde0cdbbd2ecd9accfc52967e22f849a4" + integrity sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA== + +"@parcel/watcher-linux-arm64-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz#7b81f6d5a442bb89fbabaf6c13573e94a46feb03" + integrity sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA== + +"@parcel/watcher-linux-arm64-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz#dcb8ff01077cdf59a18d9e0a4dff7a0cfe5fd732" + integrity sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q== + +"@parcel/watcher-linux-x64-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz#2e254600fda4e32d83942384d1106e1eed84494d" + integrity sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw== + +"@parcel/watcher-linux-x64-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz#01fcea60fedbb3225af808d3f0a7b11229792eef" + integrity sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA== + +"@parcel/watcher-win32-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz#87cdb16e0783e770197e52fb1dc027bb0c847154" + integrity sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig== + +"@parcel/watcher-win32-ia32@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz#778c39b56da33e045ba21c678c31a9f9d7c6b220" + integrity sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA== + +"@parcel/watcher-win32-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz#33873876d0bbc588aacce38e90d1d7480ce81cb7" + integrity sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw== + +"@parcel/watcher@^2.4.1": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.0.tgz#5c88818b12b8de4307a9d3e6dc3e28eba0dfbd10" + integrity sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.0" + "@parcel/watcher-darwin-arm64" "2.5.0" + "@parcel/watcher-darwin-x64" "2.5.0" + "@parcel/watcher-freebsd-x64" "2.5.0" + "@parcel/watcher-linux-arm-glibc" "2.5.0" + "@parcel/watcher-linux-arm-musl" "2.5.0" + "@parcel/watcher-linux-arm64-glibc" "2.5.0" + "@parcel/watcher-linux-arm64-musl" "2.5.0" + "@parcel/watcher-linux-x64-glibc" "2.5.0" + "@parcel/watcher-linux-x64-musl" "2.5.0" + "@parcel/watcher-win32-arm64" "2.5.0" + "@parcel/watcher-win32-ia32" "2.5.0" + "@parcel/watcher-win32-x64" "2.5.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@rollup/plugin-json@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz#fbe784e29682e9bb6dee28ea75a1a83702e7b805" + integrity sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== + dependencies: + "@rollup/pluginutils" "^5.1.0" + +"@rollup/pluginutils@^5.1.0": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf" + integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz#f221c519a6efb5d3652bff32351522e0fb98e392" + integrity sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ== + +"@rollup/rollup-android-arm-eabi@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz#7f4c4d8cd5ccab6e95d6750dbe00321c1f30791e" + integrity sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ== + +"@rollup/rollup-android-arm64@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz#196a2379d81011422fe1128e512a8811605ede16" + integrity sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ== + +"@rollup/rollup-android-arm64@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz#17ea71695fb1518c2c324badbe431a0bd1879f2d" + integrity sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA== + +"@rollup/rollup-darwin-arm64@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz#0c83e5f25adae7f0543ac29a0ebd485a0e7cd3e4" + integrity sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw== + +"@rollup/rollup-darwin-arm64@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz#dac0f0d0cfa73e7d5225ae6d303c13c8979e7999" + integrity sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ== + +"@rollup/rollup-darwin-x64@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz#8131b174ca8cec04e2041e42eb8382afe31095c8" + integrity sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA== + +"@rollup/rollup-darwin-x64@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz#8f63baa1d31784904a380d2e293fa1ddf53dd4a2" + integrity sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ== + +"@rollup/rollup-freebsd-arm64@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz#550a0ebf5bea6ceee79dc2f75a0bcef7d660de2c" + integrity sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg== + +"@rollup/rollup-freebsd-arm64@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz#30ed247e0df6e8858cdc6ae4090e12dbeb8ce946" + integrity sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA== + +"@rollup/rollup-freebsd-x64@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz#51ca2e6d9ce72e63d5201607651732e5300a6f81" + integrity sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg== + +"@rollup/rollup-freebsd-x64@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz#57846f382fddbb508412ae07855b8a04c8f56282" + integrity sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz#ae71d6aa81e702c4efb72c1a67a6a4e790267a1b" + integrity sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA== + +"@rollup/rollup-linux-arm-gnueabihf@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz#378ca666c9dae5e6f94d1d351e7497c176e9b6df" + integrity sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA== + +"@rollup/rollup-linux-arm-musleabihf@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz#6aa7baa5c39c095fa5f9804e283e126697e0342a" + integrity sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg== + +"@rollup/rollup-linux-arm-musleabihf@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz#a692eff3bab330d5c33a5d5813a090c15374cddb" + integrity sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg== + +"@rollup/rollup-linux-arm64-gnu@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz#2b06e147ca68c7729ca38e5c7a514d1b00f4d151" + integrity sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ== + +"@rollup/rollup-linux-arm64-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz#6b1719b76088da5ac1ae1feccf48c5926b9e3db9" + integrity sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA== + +"@rollup/rollup-linux-arm64-musl@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz#70f8cacb255800e4cad41bdbe447432354288909" + integrity sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q== + +"@rollup/rollup-linux-arm64-musl@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz#865baf5b6f5ff67acb32e5a359508828e8dc5788" + integrity sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A== + +"@rollup/rollup-linux-loongarch64-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz#23c6609ba0f7fa7a7f2038b6b6a08555a5055a87" + integrity sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz#21aed3ef42518b7fe33f4037a14b0939a071cf75" + integrity sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz#652ef0d9334a9f25b9daf85731242801cb0fc41c" + integrity sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A== + +"@rollup/rollup-linux-riscv64-gnu@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz#fe27eb8cbd3a6e0706459781c2463b624f785696" + integrity sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew== + +"@rollup/rollup-linux-riscv64-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz#1eb6651839ee6ebca64d6cc64febbd299e95e6bd" + integrity sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA== + +"@rollup/rollup-linux-s390x-gnu@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz#80289a528dd333b0e277efd93bfa8e2cdd27e5eb" + integrity sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ== + +"@rollup/rollup-linux-s390x-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz#015c52293afb3ff2a293cf0936b1d43975c1e9cd" + integrity sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg== + +"@rollup/rollup-linux-x64-gnu@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz#9909570be5cb738c23858c94308d37dde363eb7e" + integrity sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA== + +"@rollup/rollup-linux-x64-gnu@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz#b83001b5abed2bcb5e2dbeec6a7e69b194235c1e" + integrity sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw== + +"@rollup/rollup-linux-x64-musl@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz#371315e032497f7a46f64b4ebcd207313b7f6669" + integrity sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg== + +"@rollup/rollup-linux-x64-musl@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz#6cc7c84cd4563737f8593e66f33b57d8e228805b" + integrity sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g== + +"@rollup/rollup-win32-arm64-msvc@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz#f4b4e0747710ba287eb2e2a011538ee2ed7f74d3" + integrity sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ== + +"@rollup/rollup-win32-arm64-msvc@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz#631ffeee094d71279fcd1fe8072bdcf25311bc11" + integrity sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A== + +"@rollup/rollup-win32-ia32-msvc@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz#2eeabbc99342dafe04613a76c441be4ebcca49c3" + integrity sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg== + +"@rollup/rollup-win32-ia32-msvc@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz#06d1d60d5b9f718e8a6c4a43f82e3f9e3254587f" + integrity sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA== + +"@rollup/rollup-win32-x64-msvc@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz#a3ae3da434a4ba0785312e963ae4c1239470403a" + integrity sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag== + +"@rollup/rollup-win32-x64-msvc@4.28.1": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz#4dff5c4259ebe6c5b4a8f2c5bc3829b7a8447ff0" + integrity sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA== + +"@rollup/wasm-node@^4.24.0": + version "4.28.1" + resolved "https://registry.yarnpkg.com/@rollup/wasm-node/-/wasm-node-4.28.1.tgz#e3f1067e2f83cd3dac0747fd817f89d0f7be8d5f" + integrity sha512-t4ckEC09V3wbe0r6T4fGjq85lEbvGcGxn7QYYgjHyKNzZaQU5kFqr4FsavXYHRiVNYq8m+dRhdGjpfcC9UzzPg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + fsevents "~2.3.2" + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@schematics/angular@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-19.0.4.tgz#24ee669714012f1062b29364d6316d4e0d23a9f8" + integrity sha512-1fXBtkA/AjgMPxHLpGlw7NuT/wggCqAwBAmDnSiRnBBV7Pgs/tHorLgh7A9eoUi3c8CYCuAh8zqWNyjBGGigOQ== + dependencies: + "@angular-devkit/core" "19.0.4" + "@angular-devkit/schematics" "19.0.4" + jsonc-parser "3.3.1" + +"@sigstore/bundle@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-3.0.0.tgz#ffffc750436c6eb8330ead1ca65bc892f893a7c5" + integrity sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + +"@sigstore/core@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-2.0.0.tgz#f888a8e4c8fdaa27848514a281920b6fd8eca955" + integrity sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg== + +"@sigstore/protobuf-specs@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" + integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== + +"@sigstore/sign@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-3.0.0.tgz#70752aaa54dfeafa0b0fbe1f58ebe9fe3d621f8f" + integrity sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw== + dependencies: + "@sigstore/bundle" "^3.0.0" + "@sigstore/core" "^2.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + make-fetch-happen "^14.0.1" + proc-log "^5.0.0" + promise-retry "^2.0.1" + +"@sigstore/tuf@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-3.0.0.tgz#5f657e3052e93cb09e1735ee7f52b7938351278d" + integrity sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + tuf-js "^3.0.1" + +"@sigstore/verify@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-2.0.0.tgz#4ad96e9234b71b57622c3c446b63bad805351030" + integrity sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg== + dependencies: + "@sigstore/bundle" "^3.0.0" + "@sigstore/core" "^2.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + +"@sindresorhus/merge-streams@^2.1.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" + integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-3.0.1.tgz#5aebb782ebb9e06f071ae7831c1f35b462b0319c" + integrity sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.5" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.17" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" + integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== + dependencies: + "@types/node" "*" + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" + integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" + integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" + integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== + +"@types/d3-scale@*": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.11.tgz#bd7a45fc0a8c3167a631675e61bc2ca2b058d4a3" + integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" + integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" + integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz#812d2871e5eea17fb0bd5214dda7a7b748c0e12a" + integrity sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.33": + version "4.19.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" + integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.0.tgz#13a7d1f75295e90d19ed6e74cab3678488eaa96c" + integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/geojson@*": + version "7946.0.15" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.15.tgz#f9d55fd5a0aa2de9dc80b1b04e437538b7298868" + integrity sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.15", "@types/http-proxy@^1.17.8": + version "1.17.15" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.15.tgz#12118141ce9775a6499ecb4c01d02f90fc839d36" + integrity sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ== + dependencies: + "@types/node" "*" + +"@types/jasmine@~5.1.4": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-5.1.5.tgz#bba343c504f48e596837415f0558e10b8a0e5f7d" + integrity sha512-SaCZ3kM5NjOiJqMRYwHpLbTfUC2Dyk1KS3QanNFsUYPGTk70CWVK/J9ueun6zNhw/UkgV7xl8V4ZLQZNRbfnNw== + +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^22.10.1": + version "22.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.1.tgz#41ffeee127b8975a05f8c4f83fb89bcb2987d766" + integrity sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ== + dependencies: + undici-types "~6.20.0" + +"@types/qs@*": + version "6.9.17" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.17.tgz#fc560f60946d0aeff2f914eb41679659d3310e1a" + integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.15.5": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/trusted-types@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/ws@^8.5.10": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@8.17.0", "@typescript-eslint/eslint-plugin@^8.16.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz#2ee073c421f4e81e02d10e731241664b6253b23c" + integrity sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.17.0" + "@typescript-eslint/type-utils" "8.17.0" + "@typescript-eslint/utils" "8.17.0" + "@typescript-eslint/visitor-keys" "8.17.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@8.17.0", "@typescript-eslint/parser@^8.16.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.17.0.tgz#2ee972bb12fa69ac625b85813dc8d9a5a053ff52" + integrity sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg== + dependencies: + "@typescript-eslint/scope-manager" "8.17.0" + "@typescript-eslint/types" "8.17.0" + "@typescript-eslint/typescript-estree" "8.17.0" + "@typescript-eslint/visitor-keys" "8.17.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@8.17.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz#a3f49bf3d4d27ff8d6b2ea099ba465ef4dbcaa3a" + integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg== + dependencies: + "@typescript-eslint/types" "8.17.0" + "@typescript-eslint/visitor-keys" "8.17.0" + +"@typescript-eslint/type-utils@8.17.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz#d326569f498cdd0edf58d5bb6030b4ad914e63d3" + integrity sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw== + dependencies: + "@typescript-eslint/typescript-estree" "8.17.0" + "@typescript-eslint/utils" "8.17.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.16.0.tgz#49c92ae1b57942458ab83d9ec7ccab3005e64737" + integrity sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ== + +"@typescript-eslint/types@8.17.0", "@typescript-eslint/types@^8.0.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.17.0.tgz#ef84c709ef8324e766878834970bea9a7e3b72cf" + integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA== + +"@typescript-eslint/typescript-estree@8.17.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz#40b5903bc929b1e8dd9c77db3cb52cfb199a2a34" + integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw== + dependencies: + "@typescript-eslint/types" "8.17.0" + "@typescript-eslint/visitor-keys" "8.17.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@8.17.0", "@typescript-eslint/utils@^8.0.0", "@typescript-eslint/utils@^8.16.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.17.0.tgz#41c05105a2b6ab7592f513d2eeb2c2c0236d8908" + integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.17.0" + "@typescript-eslint/types" "8.17.0" + "@typescript-eslint/typescript-estree" "8.17.0" + +"@typescript-eslint/visitor-keys@8.17.0": + version "8.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz#4dbcd0e28b9bf951f4293805bf34f98df45e1aa8" + integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg== + dependencies: + "@typescript-eslint/types" "8.17.0" + eslint-visitor-keys "^4.2.0" + +"@vitejs/plugin-basic-ssl@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz#8b840305a6b48e8764803435ec0c716fa27d3802" + integrity sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A== + +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@yarnpkg/lockfile@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +accepts@~1.3.4, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.14.0, acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + +adjust-sourcemap-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" + integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + +ajv-formats@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== + dependencies: + ajv "^8.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@8.17.1, ajv@^8.0.0, ajv@^8.17.1, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +angular-eslint@^18.4.2: + version "18.4.3" + resolved "https://registry.yarnpkg.com/angular-eslint/-/angular-eslint-18.4.3.tgz#d149df075304af9d4f57661c6886b0e1135c2f2b" + integrity sha512-0ZjLzzADGRLUhZC8ZpwSo6CE/m6QhQB/oljMJ0mEfP+lB1sy1v8PBKNsJboIcfEEgGW669Z/efVQ3df88yJLYg== + dependencies: + "@angular-devkit/core" ">= 18.0.0 < 19.0.0" + "@angular-devkit/schematics" ">= 18.0.0 < 19.0.0" + "@angular-eslint/builder" "18.4.3" + "@angular-eslint/eslint-plugin" "18.4.3" + "@angular-eslint/eslint-plugin-template" "18.4.3" + "@angular-eslint/schematics" "18.4.3" + "@angular-eslint/template-parser" "18.4.3" + "@typescript-eslint/types" "^8.0.0" + "@typescript-eslint/utils" "^8.0.0" + +ansi-colors@4.1.3, ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc" + integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw== + +autoprefixer@10.4.20: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axobject-query@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + +babel-loader@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" + integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.12" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" + integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.3" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.6: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" + integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +beasties@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/beasties/-/beasties-0.1.0.tgz#f8f8ba22ff79c86f4dcebe50527cefdf9f0d52c4" + integrity sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw== + dependencies: + css-select "^5.1.0" + css-what "^6.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + htmlparser2 "^9.0.0" + picocolors "^1.1.1" + postcss "^8.4.47" + postcss-media-query-parser "^0.2.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.3, body-parser@^1.19.0: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.21.5, browserslist@^4.22.1, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.2: + version "4.24.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" + integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== + dependencies: + caniuse-lite "^1.0.30001669" + electron-to-chromium "^1.5.41" + node-releases "^2.0.18" + update-browserslist-db "^1.1.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^19.0.0, cacache@^19.0.1: + version "19.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-19.0.1.tgz#3370cc28a758434c85c2585008bd5bdcff17d6cd" + integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== + dependencies: + "@npmcli/fs" "^4.0.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^7.0.2" + ssri "^12.0.0" + tar "^7.4.3" + unique-filename "^4.0.0" + +call-bind-apply-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz#33127b42608972f76812a501d69db5d8ce404979" + integrity sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669: + version "1.0.30001687" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" + integrity sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ== + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chevrotain-allstar@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz#b7412755f5d83cc139ab65810cdb00d8db40e6ca" + integrity sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw== + dependencies: + lodash-es "^4.17.21" + +chevrotain@~11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-11.0.3.tgz#88ffc1fb4b5739c715807eaeedbbf200e202fc1b" + integrity sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw== + dependencies: + "@chevrotain/cst-dts-gen" "11.0.3" + "@chevrotain/gast" "11.0.3" + "@chevrotain/regexp-to-ast" "11.0.3" + "@chevrotain/types" "11.0.3" + "@chevrotain/utils" "11.0.3" + lodash-es "4.17.21" + +chokidar@^3.5.1, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^4.0.0, chokidar@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== + dependencies: + readdirp "^4.0.1" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chownr@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" + integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + +clipboard@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +codemirror@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29" + integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.10, colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@7: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +commander@^2.15.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" + integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.1, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +copy-webpack-plugin@12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz#935e57b8e6183c82f95bd937df658a59f6a2da28" + integrity sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA== + dependencies: + fast-glob "^3.3.2" + glob-parent "^6.0.1" + globby "^14.0.0" + normalize-path "^3.0.0" + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" + +core-js-compat@^3.38.0, core-js-compat@^3.38.1: + version "3.39.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61" + integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== + dependencies: + browserslist "^4.24.2" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +cp-file@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-10.0.0.tgz#bbae9ecb9f505951b862880d2901e1f56de7a4dc" + integrity sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg== + dependencies: + graceful-fs "^4.2.10" + nested-error-stacks "^2.1.1" + p-event "^5.0.1" + +cpy-cli@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-5.0.0.tgz#facd60da2e98d9a830f93162f9769d2a86667a16" + integrity sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ== + dependencies: + cpy "^10.1.0" + meow "^12.0.1" + +cpy@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/cpy/-/cpy-10.1.0.tgz#85517387036b9be480f6424e54089261fc6f4bab" + integrity sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ== + dependencies: + arrify "^3.0.0" + cp-file "^10.0.0" + globby "^13.1.4" + junk "^4.0.1" + micromatch "^4.0.5" + nested-error-stacks "^2.1.1" + p-filter "^3.0.0" + p-map "^6.0.0" + +crelt@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +cross-spawn@^7.0.0, cross-spawn@^7.0.5: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-loader@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.2.tgz#64671541c6efe06b0e22e750503106bdd86880f8" + integrity sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.29.2: + version "3.30.4" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.4.tgz#3404da0a159c00a1a3df2c85b2b43fdc66a0e28e" + integrity sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A== + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.11: + version "7.0.11" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz#2237e726c0577bfe67d1a7cfd2265b9ab2c15c40" + integrity sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw== + dependencies: + d3 "^7.9.0" + lodash-es "^4.17.21" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== + +dayjs@^1.11.10: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.6, debug@^4.3.7: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delaunator@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dependency-graph@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-1.0.0.tgz#bb5e85aec1310bc13b22dbd76e3196c4ee4c10d2" + integrity sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-libc@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +dom-serialize@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.2.tgz#6c0518745e81686c74a684f5af1e5613e7cc0246" + integrity sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw== + optionalDependencies: + "@types/trusted-types" "^2.0.7" + +domutils@^3.0.1, domutils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.5.41: + version "1.5.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz#d8b5dba1e55b320f2f4e9b1ca80738f53fcfec2b" + integrity sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA== + +emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emoji-toolkit@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/emoji-toolkit/-/emoji-toolkit-9.0.1.tgz#b3da51a4d9b1e89608b6a8506a5df6dbc3125495" + integrity sha512-sMMNqKNLVHXJfIKoPbrRJwtYuysVNC9GlKetr72zE3SSVbHqoeDLWVrxP0uM0AE0qvdl3hbUk+tJhhwXZrDHaw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== + +engine.io@~6.6.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.2.tgz#32bd845b4db708f8c774a4edef4e5c8a98b3da72" + integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.7.2" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + +enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +ent@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.1.tgz#68dc99a002f115792c26239baedaaea9e70c0ca2" + integrity sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A== + dependencies: + punycode "^1.4.1" + +entities@^4.2.0, entities@^4.3.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +errno@^0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.5: + version "1.23.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" + integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +esbuild-wasm@0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz#99f44feb1dfccd25dbe7de1a26326ea1c7aca0d8" + integrity sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg== + +esbuild@0.24.0, esbuild@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" + integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.24.0" + "@esbuild/android-arm" "0.24.0" + "@esbuild/android-arm64" "0.24.0" + "@esbuild/android-x64" "0.24.0" + "@esbuild/darwin-arm64" "0.24.0" + "@esbuild/darwin-x64" "0.24.0" + "@esbuild/freebsd-arm64" "0.24.0" + "@esbuild/freebsd-x64" "0.24.0" + "@esbuild/linux-arm" "0.24.0" + "@esbuild/linux-arm64" "0.24.0" + "@esbuild/linux-ia32" "0.24.0" + "@esbuild/linux-loong64" "0.24.0" + "@esbuild/linux-mips64el" "0.24.0" + "@esbuild/linux-ppc64" "0.24.0" + "@esbuild/linux-riscv64" "0.24.0" + "@esbuild/linux-s390x" "0.24.0" + "@esbuild/linux-x64" "0.24.0" + "@esbuild/netbsd-x64" "0.24.0" + "@esbuild/openbsd-arm64" "0.24.0" + "@esbuild/openbsd-x64" "0.24.0" + "@esbuild/sunos-x64" "0.24.0" + "@esbuild/win32-arm64" "0.24.0" + "@esbuild/win32-ia32" "0.24.0" + "@esbuild/win32-x64" "0.24.0" + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-formatter-checkstyle@^8.40.0: + version "8.40.0" + resolved "https://registry.yarnpkg.com/eslint-formatter-checkstyle/-/eslint-formatter-checkstyle-8.40.0.tgz#137c10a20542a1f8d59536959d5bb3379fcf3fec" + integrity sha512-OpYAiI2yejMPUlB1O2pkfyNfBQrKNWrMK6X2eOn2vg/q94roDiHnOYExK0isdNglKeaYHA5JtgmuBtokFdj0AA== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-import-resolver-typescript@^3.6.3: + version "3.7.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz#e69925936a771a9cb2de418ccebc4cdf6c0818aa" + integrity sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow== + dependencies: + "@nolyfill/is-core-module" "1.0.39" + debug "^4.3.7" + enhanced-resolve "^5.15.0" + fast-glob "^3.3.2" + get-tsconfig "^4.7.5" + is-bun-module "^1.0.2" + is-glob "^4.0.3" + stable-hash "^0.0.4" + +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.31.0: + version "2.31.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + string.prototype.trimend "^1.0.8" + tsconfig-paths "^3.15.0" + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^8.0.2, eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + +eslint@^9.15.0: + version "9.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" + integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.19.0" + "@eslint/core" "^0.9.0" + "@eslint/eslintrc" "^3.2.0" + "@eslint/js" "9.16.0" + "@eslint/plugin-kit" "^0.2.3" + "@humanfs/node" "^0.16.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.4.1" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.5" + debug "^4.3.2" + escape-string-regexp "^4.0.0" + eslint-scope "^8.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + esquery "^1.5.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^8.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + json-stable-stringify-without-jsonify "^1.0.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + +espree@^10.0.1, espree@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== + dependencies: + acorn "^8.14.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.0" + +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +express@^4.19.2: + version "4.21.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@3.3.2, fast-glob@^3.3.0, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-uri@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" + integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.7, flatted@^3.2.9: + version "3.3.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" + integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== + +follow-redirects@^1.0.0: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" + integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== + +get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-tsconfig@^4.7.5: + version "4.8.1" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" + integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^10.2.2, glob@^10.3.10, glob@^10.3.7: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.0.tgz#6031df0d7b65eaa1ccb9b29b5ced16cea658e77e" + integrity sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^4.0.1" + minimatch "^10.0.0" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + +glob@^7.1.3, glob@^7.1.7: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^13.1.4: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +globby@^14.0.0: + version "14.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.2.tgz#06554a54ccfe9264e5a9ff8eded46aa1e306482f" + integrity sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw== + dependencies: + "@sindresorhus/merge-streams" "^2.1.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +gopd@^1.0.1, gopd@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gumshoejs@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/gumshoejs/-/gumshoejs-5.1.2.tgz#82748afe83f3b76cbaef029e58322262f853b7d2" + integrity sha512-wIRdZGTNkWMP8dY3po8mtNYmCfiSva41LxXIEek2yEHceETpxRmO7DfW7aUbHsuucC9z2oDPu3alN3+00FUqlw== + +hachure-fill@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/hachure-fill/-/hachure-fill-0.5.2.tgz#d19bc4cc8750a5962b47fb1300557a85fcf934cc" + integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg== + +hammerjs@~2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.1.0.tgz#deb10494cbbe8809bce168a3b961f42969f5ed43" + integrity sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q== + dependencies: + call-bind "^1.0.7" + +has-symbols@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hosted-git-info@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-8.0.2.tgz#5bd7d8b5395616e41cc0d6578381a32f669b14b2" + integrity sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg== + dependencies: + lru-cache "^10.0.1" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.4.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +htmlparser2@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" + integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.1.0" + entities "^4.5.0" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http-proxy-middleware@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz#dc1313c75bd00d81e103823802551ee30130ebd1" + integrity sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg== + dependencies: + "@types/http-proxy" "^1.17.15" + debug "^4.3.6" + http-proxy "^1.18.1" + is-glob "^4.0.3" + is-plain-object "^5.0.0" + micromatch "^4.0.8" + +http-proxy-middleware@^2.0.3: + version "2.0.7" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" + integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-proxy-agent@7.0.5, https-proxy-agent@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-7.0.0.tgz#8350e475cf4375969c12eb49618b3fd9cca6704f" + integrity sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ== + dependencies: + minimatch "^9.0.0" + +ignore@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" + integrity sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A== + +ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +immutable@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.0.3.tgz#aa037e2313ea7b5d400cd9298fa14e404c933db1" + integrity sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@5.0.0, ini@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-5.0.0.tgz#a7a4615339843d9a8ccc2d85c9d81cf93ffbc638" + integrity sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw== + +injection-js@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" + integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== + dependencies: + tslib "^2.0.0" + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.0.tgz#9743641e80a62c094b5941c5bb791d66a88e497a" + integrity sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw== + dependencies: + call-bind "^1.0.7" + has-tostringtag "^1.0.2" + +is-bun-module@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.3.0.tgz#ea4d24fdebfcecc98e81bcbcb506827fee288760" + integrity sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA== + dependencies: + semver "^7.6.3" + +is-callable@^1.1.3, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" + integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== + dependencies: + call-bind "^1.0.7" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-network-error@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" + integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + +is-number-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.0.tgz#5a867e9ecc3d294dda740d9f127835857af7eb05" + integrity sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw== + dependencies: + call-bind "^1.0.7" + has-tostringtag "^1.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.0.tgz#41b9d266e7eb7451312c64efc37e8a7d453077cf" + integrity sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA== + dependencies: + call-bind "^1.0.7" + gopd "^1.1.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.7, is-string@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.0.tgz#8cb83c5d57311bf8058bc6c8db294711641da45d" + integrity sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g== + dependencies: + call-bind "^1.0.7" + has-tostringtag "^1.0.2" + +is-symbol@^1.0.4, is-symbol@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.0.tgz#ae993830a56d4781886d39f9f0a46b3e89b7b60b" + integrity sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A== + dependencies: + call-bind "^1.0.7" + has-symbols "^1.0.3" + safe-regex-test "^1.0.3" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.5: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.2.tgz#11f9468a3730c6ff6f56823a820d7e3be9bef015" + integrity sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== + dependencies: + "@isaacs/cliui" "^8.0.2" + +jasmine-core@^4.1.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.6.1.tgz#5ebb8afa07282078f8d7b15871737a83b74e58f2" + integrity sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ== + +jasmine-core@~5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-5.4.0.tgz#86c5610dfa0804d7d2791f556a5e704fbcb85b2a" + integrity sha512-T4fio3W++llLd7LGSGsioriDHgWyhoL6YTu4k37uwJLF7DzOzspz7mNxRoM3cQdLWtL/ebazQpIf/yZGJx/gzg== + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + +jsesc@^3.0.2, jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz#d3f67bd5925e81d3e31aa466acc821c8375cec43" + integrity sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@3.3.1, jsonc-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +junk@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed" + integrity sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== + +karma-chrome-launcher@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== + dependencies: + which "^1.2.1" + +karma-coverage@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-2.2.1.tgz#e1cc074f93ace9dc4fb7e7aeca7135879c2e358c" + integrity sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A== + dependencies: + istanbul-lib-coverage "^3.2.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.1" + istanbul-reports "^3.0.5" + minimatch "^3.0.4" + +karma-jasmine-html-reporter@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz#f951ad00b08d61d03595402c914d1a589c4930e3" + integrity sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ== + +karma-jasmine@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.1.0.tgz#3af4558a6502fa16856a0f346ec2193d4b884b2f" + integrity sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ== + dependencies: + jasmine-core "^4.1.0" + +karma-junit-reporter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz#d34eef7f0b2fd064e0896954e8851a90cf14c8f3" + integrity sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw== + dependencies: + path-is-absolute "^1.0.0" + xmlbuilder "12.0.0" + +karma-source-map-support@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b" + integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== + dependencies: + source-map-support "^0.5.5" + +karma@~6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== + dependencies: + "@colors/colors" "1.5.0" + body-parser "^1.19.0" + braces "^3.0.2" + chokidar "^3.5.1" + connect "^3.7.0" + di "^0.0.1" + dom-serialize "^2.2.1" + glob "^7.1.7" + graceful-fs "^4.2.6" + http-proxy "^1.18.1" + isbinaryfile "^4.0.8" + lodash "^4.17.21" + log4js "^6.4.1" + mime "^2.5.2" + minimatch "^3.0.4" + mkdirp "^0.5.5" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^4.7.2" + source-map "^0.6.1" + tmp "^0.2.1" + ua-parser-js "^0.7.30" + yargs "^16.1.1" + +katex@^0.16.11, katex@^0.16.9: + version "0.16.11" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.11.tgz#4bc84d5584f996abece5f01c6ad11304276a33f5" + integrity sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ== + dependencies: + commander "^8.3.0" + +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +khroma@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +langium@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/langium/-/langium-3.0.0.tgz#4938294eb57c59066ef955070ac4d0c917b26026" + integrity sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg== + dependencies: + chevrotain "~11.0.3" + chevrotain-allstar "~0.3.0" + vscode-languageserver "~9.0.1" + vscode-languageserver-textdocument "~1.0.11" + vscode-uri "~3.0.8" + +launch-editor@^2.6.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" + integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + +less-loader@12.2.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-12.2.0.tgz#e1e94522f6abe9e064ef396c29a3151bc6c1b6cc" + integrity sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg== + +less@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== + dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" + tslib "^2.3.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + needle "^3.1.0" + source-map "~0.6.0" + +less@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/less/-/less-4.2.1.tgz#fe4c9848525ab44614c0cf2c00abd8d031bb619a" + integrity sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg== + dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" + tslib "^2.3.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + needle "^3.1.0" + source-map "~0.6.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +license-webpack-plugin@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz#1e18442ed20b754b82f1adeff42249b81d11aec6" + integrity sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw== + dependencies: + webpack-sources "^3.0.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linklocal@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/linklocal/-/linklocal-2.8.2.tgz#c69e8864daac79369029892b17d5a8089275dca7" + integrity sha512-yK4/+mX/Xra3++mF3GKfO4yPCTL5EwoQ+5otBcdXt2z14e0RmVrySU9pIkR4B9Kpn9LzYyoed6C5mYs8Af0/YA== + dependencies: + commander "^2.15.0" + debug "^3.1.0" + map-limit "0.0.1" + mkdirp "^0.5.1" + rimraf "^2.6.2" + +listr2@8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.5.tgz#5c9db996e1afeb05db0448196d3d5f64fec2593d" + integrity sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" + +lmdb@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-3.1.5.tgz#3e6c2f4e765a2a61cc10e08477e0a267e423183f" + integrity sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw== + dependencies: + msgpackr "^1.11.2" + node-addon-api "^6.1.0" + node-gyp-build-optional-packages "5.2.2" + ordered-binary "^1.5.3" + weak-lru-cache "^1.2.2" + optionalDependencies: + "@lmdb/lmdb-darwin-arm64" "3.1.5" + "@lmdb/lmdb-darwin-x64" "3.1.5" + "@lmdb/lmdb-linux-arm" "3.1.5" + "@lmdb/lmdb-linux-arm64" "3.1.5" + "@lmdb/lmdb-linux-x64" "3.1.5" + "@lmdb/lmdb-win32-x64" "3.1.5" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" + integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +local-pkg@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" + integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== + dependencies: + mlly "^1.7.3" + pkg-types "^1.2.1" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@4.17.21, lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +log4js@^6.4.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" + rfdc "^1.3.0" + streamroller "^3.1.5" + +lru-cache@^10.0.1, lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^11.0.0: + version "11.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" + integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@0.30.11: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +magic-string@0.30.12: + version "0.30.12" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" + integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-fetch-happen@^14.0.0, make-fetch-happen@^14.0.1, make-fetch-happen@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz#d74c3ecb0028f08ab604011e0bc6baed483fcdcd" + integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== + dependencies: + "@npmcli/agent" "^3.0.0" + cacache "^19.0.1" + http-cache-semantics "^4.1.1" + minipass "^7.0.2" + minipass-fetch "^4.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^1.0.0" + proc-log "^5.0.0" + promise-retry "^2.0.1" + ssri "^12.0.0" + +map-limit@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" + integrity sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg== + dependencies: + once "~1.3.0" + +marked-gfm-heading-id@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.1.tgz#c6a46a10272745f63c6b03439dc239543a8324e8" + integrity sha512-EeQZieAQmsI6c2tWLx0ETd0VjPwLV8qi+HT0dIsfVMERm0rCIuXfRvZXJbo1SgUi++lmuR1LVY+QzgNiLNvVpw== + dependencies: + github-slugger "^2.0.0" + +marked@^13.0.2: + version "13.0.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" + integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^4.6.0: + version "4.14.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.14.1.tgz#3e2dcba9b5a8dd559e41e4603b7b1eff7a75cfb3" + integrity sha512-Fq5CMEth+2iprLJ5mNizRcWuiwRZYjNkUD0zKk224jZunE9CRacTRDK8QLALbMBlNX2y3nY6lKZbesCwDwacig== + dependencies: + "@jsonjoy.com/json-pack" "^1.0.3" + "@jsonjoy.com/util" "^1.3.0" + tree-dump "^1.0.1" + tslib "^2.0.0" + +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@^11.4.1: + version "11.4.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.1.tgz#577fad5c31a01a06d9f793e298d411f1379eecc8" + integrity sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A== + dependencies: + "@braintree/sanitize-url" "^7.0.1" + "@iconify/utils" "^2.1.32" + "@mermaid-js/parser" "^0.3.0" + "@types/d3" "^7.4.3" + cytoscape "^3.29.2" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.2.0" + d3 "^7.9.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.11" + dayjs "^1.11.10" + dompurify "^3.2.1" + katex "^0.16.9" + khroma "^2.1.0" + lodash-es "^4.17.21" + marked "^13.0.2" + roughjs "^4.6.6" + stylis "^4.3.1" + ts-dedent "^2.2.0" + uuid "^9.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + +mini-css-extract-plugin@2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" + integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.0, minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-4.0.0.tgz#b8ea716464747aeafb7edf2e110114c38089a09c" + integrity sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^3.0.1" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +minizlib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" + integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== + dependencies: + minipass "^7.0.4" + rimraf "^5.0.5" + +mkdirp@^0.5.1, mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mlly@^1.7.1, mlly@^1.7.2, mlly@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.3.tgz#d86c0fcd8ad8e16395eb764a5f4b831590cee48c" + integrity sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A== + dependencies: + acorn "^8.14.0" + pathe "^1.1.2" + pkg-types "^1.2.1" + ufo "^1.5.4" + +mrmime@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +msgpackr-extract@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz#e9d87023de39ce714872f9e9504e3c1996d61012" + integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA== + dependencies: + node-gyp-build-optional-packages "5.2.2" + optionalDependencies: + "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3" + +msgpackr@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.11.2.tgz#4463b7f7d68f2e24865c395664973562ad24473d" + integrity sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g== + optionalDependencies: + msgpackr-extract "^3.0.2" + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== + +nanoid@^3.3.7: + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" + integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== + dependencies: + iconv-lite "^0.6.3" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" + integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nested-error-stacks@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" + integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== + +ng-packagr@^19.0.1: + version "19.0.1" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-19.0.1.tgz#012e1aed39a1b3e527d9b0be88e3aefaf75cf830" + integrity sha512-PnXa/y3ce3v4bKJNtUBS7qcNoyv5g/tSthoMe23NyMV5kjNY4+hJT7h64zK+8tnJWTelCbIpoep7tmSPsOifBA== + dependencies: + "@rollup/plugin-json" "^6.1.0" + "@rollup/wasm-node" "^4.24.0" + ajv "^8.17.1" + ansi-colors "^4.1.3" + browserslist "^4.22.1" + chokidar "^4.0.1" + commander "^12.1.0" + convert-source-map "^2.0.0" + dependency-graph "^1.0.0" + esbuild "^0.24.0" + fast-glob "^3.3.2" + find-cache-dir "^3.3.2" + injection-js "^2.4.0" + jsonc-parser "^3.3.1" + less "^4.2.0" + ora "^5.1.0" + piscina "^4.7.0" + postcss "^8.4.47" + rxjs "^7.8.1" + sass "^1.79.5" + optionalDependencies: + rollup "^4.24.0" + +"ngx-codemirror@file:lib": + version "19.0.0" + dependencies: + "@codemirror/language-data" "^6.5.1" + "@codemirror/merge" "^6.7.4" + codemirror "^6.0.1" + tslib "^2.8.1" + +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build-optional-packages@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz#522f50c2d53134d7f3a76cd7255de4ab6c96a3a4" + integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== + dependencies: + detect-libc "^2.0.1" + +node-gyp@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-11.0.0.tgz#1e029056e8c040424ba380e1d5be54ad1757ae3c" + integrity sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^14.0.3" + nopt "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + tar "^7.4.3" + which "^5.0.0" + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +nopt@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-8.0.0.tgz#644f1e78da564b70e3606ab8db4836b0e32e198a" + integrity sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-7.0.0.tgz#ab4f49d02f2e25108d3f4326f3c13f0de6fa6a0a" + integrity sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA== + dependencies: + hosted-git-info "^8.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +npm-bundled@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-4.0.0.tgz#f5b983f053fe7c61566cf07241fab2d4e9d513d3" + integrity sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA== + dependencies: + npm-normalize-package-bin "^4.0.0" + +npm-install-checks@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-7.1.1.tgz#e9d679fc8a1944c75cdcc96478a22f9d0f763632" + integrity sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz#df79e70cd0a113b77c02d1fe243c96b8e618acb1" + integrity sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w== + +npm-package-arg@12.0.0, npm-package-arg@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-12.0.0.tgz#c2a6631c09d244c6bc35a46c38cbd94d53e9829a" + integrity sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A== + dependencies: + hosted-git-info "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + validate-npm-package-name "^6.0.0" + +npm-packlist@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-9.0.0.tgz#8e9b061bab940de639dd93d65adc95c34412c7d0" + integrity sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ== + dependencies: + ignore-walk "^7.0.0" + +npm-pick-manifest@10.0.0, npm-pick-manifest@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz#6cc120c6473ceea56dfead500f00735b2b892851" + integrity sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ== + dependencies: + npm-install-checks "^7.1.0" + npm-normalize-package-bin "^4.0.0" + npm-package-arg "^12.0.0" + semver "^7.3.5" + +npm-registry-fetch@^18.0.0: + version "18.0.2" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz#340432f56b5a8b1af068df91aae0435d2de646b5" + integrity sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ== + dependencies: + "@npmcli/redact" "^3.0.0" + jsonparse "^1.3.1" + make-fetch-happen "^14.0.0" + minipass "^7.0.2" + minipass-fetch "^4.0.0" + minizlib "^3.0.1" + npm-package-arg "^12.0.0" + proc-log "^5.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1, object-inspect@^1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" + integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1, on-finished@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + integrity sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + +open@10.1.0, open@^10.0.3: + version "10.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" + integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@5.4.1, ora@^5.1.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ordered-binary@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.3.tgz#8bee2aa7a82c3439caeb1e80c272fd4cf51170fb" + integrity sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA== + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-event@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" + integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== + dependencies: + p-timeout "^5.0.2" + +p-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" + integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== + dependencies: + p-map "^5.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^5.1.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + +p-map@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-6.0.0.tgz#4d9c40d3171632f86c47601b709f4b4acd70fed4" + integrity sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw== + +p-map@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.3.tgz#7ac210a2d36f81ec28b736134810f7ba4418cdb6" + integrity sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA== + +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== + dependencies: + "@types/retry" "0.12.2" + is-network-error "^1.0.0" + retry "^0.13.1" + +p-timeout@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" + integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +package-manager-detector@^0.2.0: + version "0.2.7" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.7.tgz#6c3e47d7794fdd513512d02e2160c24ba559e39b" + integrity sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ== + +pacote@20.0.0: + version "20.0.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-20.0.0.tgz#c974373d8e0859d00e8f9158574350f8c1b168e5" + integrity sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A== + dependencies: + "@npmcli/git" "^6.0.0" + "@npmcli/installed-package-contents" "^3.0.0" + "@npmcli/package-json" "^6.0.0" + "@npmcli/promise-spawn" "^8.0.0" + "@npmcli/run-script" "^9.0.0" + cacache "^19.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^12.0.0" + npm-packlist "^9.0.0" + npm-pick-manifest "^10.0.0" + npm-registry-fetch "^18.0.0" + proc-log "^5.0.0" + promise-retry "^2.0.1" + sigstore "^3.0.0" + ssri "^12.0.0" + tar "^6.1.11" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse5-html-rewriting-stream@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz#e376d3e762d2950ccbb6bb59823fc1d7e9fdac36" + integrity sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg== + dependencies: + entities "^4.3.0" + parse5 "^7.0.0" + parse5-sax-parser "^7.0.0" + +parse5-sax-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz#4c05064254f0488676aca75fb39ca069ec96dee5" + integrity sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg== + dependencies: + parse5 "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.2: + version "7.2.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" + integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== + dependencies: + entities "^4.5.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-data-parser@0.1.0, path-data-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" + integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" + integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@4.0.2, picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +piscina@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.7.0.tgz#68936fc77128db00541366531330138e366dc851" + integrity sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw== + optionalDependencies: + "@napi-rs/nice" "^1.0.1" + +piscina@^4.7.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.8.0.tgz#5f5c5b1f4f3f50f8de894239c98b7b10d41ba4a6" + integrity sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA== + optionalDependencies: + "@napi-rs/nice" "^1.0.1" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkg-types@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.2.1.tgz#6ac4e455a5bb4b9a6185c1c79abd544c901db2e5" + integrity sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw== + dependencies: + confbox "^0.1.8" + mlly "^1.7.2" + pathe "^1.1.2" + +points-on-curve@0.2.0, points-on-curve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" + integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A== + +points-on-path@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/points-on-path/-/points-on-path-0.2.1.tgz#553202b5424c53bed37135b318858eacff85dd52" + integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g== + dependencies: + path-data-parser "0.1.0" + points-on-curve "0.2.0" + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-loader@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-8.1.1.tgz#2822589e7522927344954acb55bbf26e8b195dfe" + integrity sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ== + dependencies: + cosmiconfig "^9.0.0" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz#b0db6bc81ffc7bdc52eb0f84d6ca0bedf0e36d21" + integrity sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-selector-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz#41bd8b56f177c093ca49435f65731befe25d6b9c" + integrity sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.49, postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.43, postcss@^8.4.47: + version "8.4.49" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" + integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prismjs@^1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +proc-log@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-5.0.0.tgz#e6c93cf37aef33f835c53485f314f50ea906a9d8" + integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qjobs@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" + integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reflect-metadata@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + +reflect.getprototypeof@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz#04311b33a1b713ca5eb7b5aed9950a86481858e5" + integrity sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + which-builtin-type "^1.1.4" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-parser@^2.2.11: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" + integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== + +regexp.prototype.flags@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve-url-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795" + integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== + dependencies: + adjust-sourcemap-loader "^4.0.0" + convert-source-map "^1.7.0" + loader-utils "^2.0.0" + postcss "^8.2.14" + source-map "0.6.1" + +resolve@1.22.8, resolve@^1.14.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0, rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^5.0.5: + version "5.0.10" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" + integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== + dependencies: + glob "^10.3.7" + +rimraf@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.0.1.tgz#ffb8ad8844dd60332ab15f52bc104bc3ed71ea4e" + integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A== + dependencies: + glob "^11.0.0" + package-json-from-dist "^1.0.0" + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup@4.26.0: + version "4.26.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.26.0.tgz#a3e5fb29d50953633a2fd4506da6448d93268944" + integrity sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.26.0" + "@rollup/rollup-android-arm64" "4.26.0" + "@rollup/rollup-darwin-arm64" "4.26.0" + "@rollup/rollup-darwin-x64" "4.26.0" + "@rollup/rollup-freebsd-arm64" "4.26.0" + "@rollup/rollup-freebsd-x64" "4.26.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.26.0" + "@rollup/rollup-linux-arm-musleabihf" "4.26.0" + "@rollup/rollup-linux-arm64-gnu" "4.26.0" + "@rollup/rollup-linux-arm64-musl" "4.26.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.26.0" + "@rollup/rollup-linux-riscv64-gnu" "4.26.0" + "@rollup/rollup-linux-s390x-gnu" "4.26.0" + "@rollup/rollup-linux-x64-gnu" "4.26.0" + "@rollup/rollup-linux-x64-musl" "4.26.0" + "@rollup/rollup-win32-arm64-msvc" "4.26.0" + "@rollup/rollup-win32-ia32-msvc" "4.26.0" + "@rollup/rollup-win32-x64-msvc" "4.26.0" + fsevents "~2.3.2" + +rollup@^4.20.0, rollup@^4.24.0: + version "4.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.28.1.tgz#7718ba34d62b449dfc49adbfd2f312b4fe0df4de" + integrity sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.28.1" + "@rollup/rollup-android-arm64" "4.28.1" + "@rollup/rollup-darwin-arm64" "4.28.1" + "@rollup/rollup-darwin-x64" "4.28.1" + "@rollup/rollup-freebsd-arm64" "4.28.1" + "@rollup/rollup-freebsd-x64" "4.28.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.28.1" + "@rollup/rollup-linux-arm-musleabihf" "4.28.1" + "@rollup/rollup-linux-arm64-gnu" "4.28.1" + "@rollup/rollup-linux-arm64-musl" "4.28.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.28.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.28.1" + "@rollup/rollup-linux-riscv64-gnu" "4.28.1" + "@rollup/rollup-linux-s390x-gnu" "4.28.1" + "@rollup/rollup-linux-x64-gnu" "4.28.1" + "@rollup/rollup-linux-x64-musl" "4.28.1" + "@rollup/rollup-win32-arm64-msvc" "4.28.1" + "@rollup/rollup-win32-ia32-msvc" "4.28.1" + "@rollup/rollup-win32-x64-msvc" "4.28.1" + fsevents "~2.3.2" + +roughjs@^4.6.6: + version "4.6.6" + resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.6.tgz#1059f49a5e0c80dee541a005b20cc322b222158b" + integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ== + dependencies: + hachure-fill "^0.5.2" + path-data-parser "^0.1.0" + points-on-curve "^0.2.0" + points-on-path "^0.2.1" + +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rxjs@7.8.1, rxjs@^7.8.1, rxjs@~7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.3.tgz#17b944fab6702dc7a52c5d2a88cbfa38c39cdc75" + integrity sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA== + dependencies: + neo-async "^2.6.2" + +sass@1.80.7: + version "1.80.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.80.7.tgz#7569334c39220f8ca62fcea38dce60f809ba345c" + integrity sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" + +sass@^1.79.5: + version "1.82.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70" + integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver@7.6.3, semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-3.0.0.tgz#d6eadcc6590185a7f1c16184078ce8a9ef6db937" + integrity sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA== + dependencies: + "@sigstore/bundle" "^3.0.0" + "@sigstore/core" "^2.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + "@sigstore/sign" "^3.0.0" + "@sigstore/tuf" "^3.0.0" + "@sigstore/verify" "^2.0.0" + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socket.io-adapter@~2.5.2: + version "2.5.5" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082" + integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== + dependencies: + debug "~4.3.4" + ws "~8.17.1" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +socket.io@^4.7.2: + version "4.8.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== + dependencies: + accepts "~1.3.4" + base64id "~2.0.0" + cors "~2.8.5" + debug "~4.3.2" + engine.io "~6.6.0" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +socks-proxy-agent@^8.0.3: + version "8.0.4" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" + integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== + dependencies: + agent-base "^7.1.1" + debug "^4.3.4" + socks "^2.8.3" + +socks@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== + dependencies: + iconv-lite "^0.6.3" + source-map-js "^1.0.2" + +source-map-support@0.5.21, source-map-support@^0.5.5, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +ssri@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-12.0.0.tgz#bcb4258417c702472f8191981d3c8a771fee6832" + integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== + dependencies: + minipass "^7.0.3" + +stable-hash@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.4.tgz#55ae7dadc13e4b3faed13601587cec41859b42f7" + integrity sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +streamroller@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== + +stylis@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" + integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-observable@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^6.1.11: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" + integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== + dependencies: + "@isaacs/fs-minipass" "^4.0.0" + chownr "^3.0.0" + minipass "^7.1.2" + minizlib "^3.0.1" + mkdirp "^3.0.1" + yallist "^5.0.0" + +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@5.36.0: + version "5.36.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" + integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +terser@^5.26.0: + version "5.37.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +thingies@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" + integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinyexec@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" + integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tree-dump@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" + integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-api-utils@^1.3.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== + +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@2.8.1, tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tuf-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-3.0.1.tgz#e3f07ed3d8e87afaa70607bd1ef801d5c1f57177" + integrity sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA== + dependencies: + "@tufjs/models" "3.0.1" + debug "^4.3.6" + make-fetch-happen "^14.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz#3fa9f22567700cc86aaf86a1e7176f74b59600f2" + integrity sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + reflect.getprototypeof "^1.0.6" + +typed-array-length@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typed-assert@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" + integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== + +typescript-eslint@^8.16.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.17.0.tgz#fa4033c26b3b40f778287bc12918d985481b220b" + integrity sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA== + dependencies: + "@typescript-eslint/eslint-plugin" "8.17.0" + "@typescript-eslint/parser" "8.17.0" + "@typescript-eslint/utils" "8.17.0" + +typescript@~5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== + +ua-parser-js@^0.7.30: + version "0.7.39" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.39.tgz#c71efb46ebeabc461c4612d22d54f88880fabe7e" + integrity sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w== + +ufo@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +unique-filename@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-4.0.0.tgz#a06534d370e7c977a939cd1d11f7f0ab8f1fed13" + integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== + dependencies: + unique-slug "^5.0.0" + +unique-slug@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-5.0.0.tgz#ca72af03ad0dbab4dad8aa683f633878b1accda8" + integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz#3add966c853cfe36e0e8e6a762edd72ae6f1d6ac" + integrity sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vite@5.4.11: + version "5.4.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5" + integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + +vscode-jsonrpc@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" + integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== + +vscode-languageserver-protocol@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz#864a8b8f390835572f4e13bd9f8313d0e3ac4bea" + integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== + dependencies: + vscode-jsonrpc "8.2.0" + vscode-languageserver-types "3.17.5" + +vscode-languageserver-textdocument@~1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631" + integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== + +vscode-languageserver-types@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== + +vscode-languageserver@~9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz#500aef82097eb94df90d008678b0b6b5f474015b" + integrity sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g== + dependencies: + vscode-languageserver-protocol "3.17.5" + +vscode-uri@~3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +watchpack@2.4.2, watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +weak-lru-cache@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" + integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== + +webpack-dev-middleware@7.4.2, webpack-dev-middleware@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz#40e265a3d3d26795585cff8207630d3a8ff05877" + integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== + dependencies: + colorette "^2.0.10" + memfs "^4.6.0" + mime-types "^2.1.31" + on-finished "^2.4.1" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz#8f44147402b4d8ab99bfeb9b6880daa1411064e5" + integrity sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" + ansi-html-community "^0.0.8" + bonjour-service "^1.2.1" + chokidar "^3.6.0" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + express "^4.19.2" + graceful-fs "^4.2.6" + html-entities "^2.4.0" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^2.4.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" + +webpack-merge@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.0.0, webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-subresource-integrity@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz#8b7606b033c6ccac14e684267cb7fb1f5c2a132a" + integrity sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q== + dependencies: + typed-assert "^1.0.8" + +webpack@5.96.1: + version "5.96.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c" + integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which-boxed-primitive@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz#2d850d6c4ac37b95441a67890e19f3fda8b6c6d9" + integrity sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.0" + is-number-object "^1.1.0" + is-string "^1.1.0" + is-symbol "^1.1.0" + +which-builtin-type@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.0.tgz#58042ac9602d78a6d117c7e811349df1268ba63c" + integrity sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA== + dependencies: + call-bind "^1.0.7" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.2" + which-typed-array "^1.1.15" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.16" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" + integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-5.0.0.tgz#d93f2d93f79834d4363c7d0c23e00d07c466c8d6" + integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== + dependencies: + isexe "^3.1.1" + +wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +xmlbuilder@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-12.0.0.tgz#e2ed675e06834a089ddfb84db96e2c2b03f78c1a" + integrity sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yallist@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" + integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@17.7.2, yargs@^17.2.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" + integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== + +zone.js@~0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.15.0.tgz#4810624e58d6dcf7b8379c1631765589917a0d8f" + integrity sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA== From 826cb211e8d26f09f886575a4f26c1f305955966 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 09:54:18 -0600 Subject: [PATCH 36/59] fix/packages registry --- .github/workflows/build.yml | 58 +- bun.lockb | Bin 563962 -> 563560 bytes yarn.lock | 10226 ---------------------------------- 3 files changed, 15 insertions(+), 10269 deletions(-) delete mode 100644 yarn.lock diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f2636fd..bed6da2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,38 +9,24 @@ env: jobs: build_library: runs-on: ubuntu-latest - timeout-minutes: 3 + timeout-minutes: 2 environment: FSI_DEP_NodeJs steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Create cache directories - run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn - - - name: Cache Yarn dependencies - uses: actions/cache@v4 - with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build library run: | - yarn build:lib - yarn postBuild:lib + bun run build:lib + bun run postBuild:lib - name: Upload build library artifacts uses: actions/upload-artifact@v4 @@ -51,36 +37,22 @@ jobs: build_demo: runs-on: ubuntu-latest - timeout-minutes: 3 + timeout-minutes: 2 environment: github-pages steps: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - Version ${{ vars.NODE_VERSION }} - uses: actions/setup-node@v4 - with: - node-version: ${{ vars.NODE_VERSION }} - cache: 'yarn' - - - name: Create cache directories - run: mkdir -p ~/.cache/yarn && mkdir -p ${{ github.workspace }}/.yarn - - - name: Cache Yarn dependencies - uses: actions/cache@v4 + - name: Set up Bun - Version ${{ vars.BUN_VERSION }} + uses: oven-sh/setup-bun@v2 with: - path: | - ~/.cache/yarn - ${{ github.workspace }}/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + bun-version: ${{ vars.BUN_VERSION }} - name: Install dependencies - run: yarn install --frozen-lockfile + run: bun install - name: Build demo run: | - yarn gh-pages:build - yarn gh-pages:copy404 - yarn gh-pages:postBuild \ No newline at end of file + bun run gh-pages:build + bun run gh-pages:copy404 + bun run gh-pages:postBuild \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index e80773a355432db5532379fa1560d4d1c55d1e0f..a2b3331585634587a1988cc0fac8fac17cba90b8 100644 GIT binary patch delta 54184 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 GN&P=<0SO@h delta 55682 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
      lbx@QuCk}$@zHRdj4DV&zJvN zd2LGXs1-RCzYmHp75`i`YAcWQM-ylK{zJX>RlRQ*z<}LmJ*}h|3t`h>^#5#2@ze1A z?RGSG8pcM)c612e#n2A2y*c0W{IW}}-xvdB#eryq!K7+{oI0#ea>dYD_d7;QYK#jy zDpjWr6q$li+z$vgT>7qh*gGKfOjikEV~CN+VTN{Jqp{P=XN6%;nwd@JpHJ;T3sF|L z00^f4n@+8sv?2Dw2q3JiUcG8X2g(CNy`=+vn*vVdwH^Eslwjlj?D0=FUe zI?%OL$P4x`91(9iRY!U1320Qh{n8CVXC)GEcx~S!q8H*RtYfY0|~1on>ZfyxC`QANy}?5zVdceB`is zYTmGsC9KaXK9Z;!neR!Rso8Aw{l?DJdp3IXzny9RY{(W-!vDj5H;JM0bL8Ls=iql_ z7h24IckDt}=AcDBV}vDs5nmiU7dr8BeDPGicju=pr11^n59eZTywOc|SSn>14}5US zwhVmhWesf6owkFzkNP8<%RSJ!J6#7teWM#ao{Jp|%*e^}@LP#0M9gjWJhTKcwgvMv z4eS2gLzZ6oUUDB@sqL$GR?nv|N2Se)r;y z1QxTz7sR8H!^XaC&)b7)zc&9z3#ebM1V#6jZcvAa6Z*?- z4yn;bM7F-CR226R8c-s9|@8 z2|V5sD4oDNeAj#e?}tZ_ZZ%r}@)}k#@5^GTD-i11BPn*ZCR*!@NjkY&W31a4?-Vk9 z_OtbkX$CKFgsnmCIU}hjOMg$Ixh(y@JRMpCE}nt{)BB{$HG@w(8&8rA0~-=)ada05 zHjztHXzg^3+3a)eA~n|+ld>e~`gB}cct0KMNp-x;FILof=@{)VZ?|AwYBXVw#P?NU zmNWbc1+4{NN~m$vT1@RT`qRL*XcjDD8dBZc?c_C9Sih5r+PDF4qgmX#%C@p{DFpLg z8ch#bq3=dhcm`xqFk05f+}S6RR_1hK`}u6c0Sl5E2{e=;ObPNTX5G|dTYudY#1=w) zr>;W+MZE{5*q)&Y_1$6LWmZtB{HJ?)Ud22mEq~=QAxarF zs`_~yR%L#oAzD)w3i_lCd$75_*!SC zEc~e^3vlHA9QJHVZqOJ@Ai{!d8#D&>mPCq!OQrMiz5tg6*BEwDT%UtRUf6&h635Y< z4QM&8i#E$d_r2MNdS{{)y1x9dYD;9^&$ArLvY#2WiIfYZk1Oy=6J%302PyMt+vN?W z$(0*1-Na{K9(4 z$o5_Ek|RtkANV?-_b;Uj3oA0|I!uG_+lCTi4(AgHjIe14e8@**=+aIEB7d z`j8w=1+{czP(mEwIUD~qHTF*Fdbn~7{g84xzDLO@>-)B$geaLw*^GJwXlPOY3->=I zL<-OOOm(MS{hR72FZB;HseqMz%n=PMHNb<1KfLEf)J3ZpRY#R4Wh&Iv-uLDtzDLpT zgR?ap@x}d=n#u3?TJA-(%A^z^#1K$tI|SV$&o$CjueimFh~+si+&h(cK7(7WjCv5L zv$8MT|CA6vWRiNbrcEhnCyTCPiz-lnnyUJyQ0!)m{el!)zZtdreu;tI>8Y10FM{Td zJ5*2IK5&#epgg{?=#QqUl(`+M+%uKJk05#9ut8-P%Rn zyZm)kKDw5q8#a>$qO7j%OnHkwwsi9mn{JhgmCLd|jhjhnjQTQ;7=CB%jFvMRTfEfw z@tjhvPw7)PoLS<{xi*uov9hIR1*qOct6CZ+tXpxeW=}67oagMk*Khfi$SwW7IXz}k z_`kqe5)f?5CvQf=f@9xZU+qO~oJB){5KnSMs- zRp@Nm$;!5#9iVy()Vn;g-P!a_?TOy9aXjbZ@oBipSowxGXXR{q!Z>^R&_e0W+}Whx z2I{|n20Xcx9oP1k#IyE4d1+LdBj!d$Aet~Uxa7}17ho-W!!+;1!+5dcU`iD`& z9re73<;ZD_oK*o+v_CIAhQku2Y~CC?jk3BsKtuqMw4hl(&xF$KES*!=&0X~&hv1?^TPa*$x;- zj@Ny^NcQB$KZ!Fu+cA12ctAJ_i=n%{h~5WMR9>*o|J)e)`Q=uvfxuA&TbF1T2dHX+ z|LOx%yMM15&vu>oE{3p}%I}2ynk@-XH3Gt>J>Atha0&}#;fP^NC~7CX6aV$&858LZ z8r~wEf7M^Mj0R`PZG}^!#jOQBdjzHM3pUT?R0u1{PkAaxky}wYD!=~@S5)4G=oRg! z7k(@KvXLm7^$+S}`84$-I9AH@JFQmBo5bzQWdD|$x4ACF$j1jSE)E8Q9a#=E&6u}m z^|Nzc#7yL{arsru;KNnV#DCz;DI^MCkNy;W1nB=%ha$eB;wUQ4C+QT=)R{M5X}LOW zEgfRt6)`FFc=s0L4Jd_TQ4W;fg*xtqj`_QCe)3UVF+_?K<9tlTyC$TU-9>F4U@5_SoOyz+=Jz z7^$Z4$5@c~ltVpI-u`rsY^V{tE3)gdFZ77Qr9aO8X?`Io`D{s1sVV;9Kdq+-UgzJQ z6hS^8k4lS+aIDMNA$!nQhy3*L`tgt7fOWy-fMY?GQi4;|y&U!c8-`GO!~%0)ThWQ4 zJox*r;NH)ou7@$57Ts|O4mg=5d-EdRc4HHjIeF3QKazLh2#wiKBYIe_TT8nRYig*w zX48ekY=>czylz#Vw(}BFSmjky_dKtaem=VVOINXC{`#?yMSejaihh?@Hta41+Mf66 zE8Ffn+=I>V2Pad|XRr!feiZc?g2!Ifb|1q;+8=^3PWwz_41Kw5CjR~uJ9m_5KNpby zcj$^Px0HpD($%ur*J@ZWPSMz)qP2VDY9RK%iR)=Qlk`Vn3SJI>V_QpbhE%Nuavg== zB=1~Qp`Aw&Qp|&1bT0?gvJebxE~%t27$Xnn3!&&^*bX|jTb|96-Meoe{B8Ga#;7Dm zl^oe(q}|6f!__RN;5fAL{~1n_c^un}enLT_+3Slj2nkW+A)$oNp+_zE$ouSfx7=U% z#gQdnVx(ZL&Cc?>@SIBNT}K~S@E&u)+3r1LGiVRxva(ZvU^@lpeoPDRSEtIKC8f(E zObSbRPRqeL_PPP<^1L~l_fYvSAo%@2u;a*iv$Q1>vVV#2BJ%f86cFN%KuEi>=cZNK&w7oq(1py7{_Q%bhj(+-?5CljlJFZa`8lvQ&Mb?pww%ZQH;4!^$V;CuTR4e5|W zHU0oyVSH=?f_Y1|3~BR@t9#->BL#8x00o}_A5S@=Z}+ihj!!vv(TjNNpj@_UwsyzS zT?Nyw$d1RPu5sV>c@?V#@a**pn>XY;PJ`h7l*Cn5ebUw-PT!uRJ5;ZIII zksgPWa>^~Bh?6M04+wS(qIy!7fS-~trFaqj=V2!lIhwH-TygpLurmbxfZdtGNpRL;*^&)5MY1%!IGyLIdv-D@>2Kt zT%S}HPwqvZ!nULK7^R=W(7b$%@{#I(IwtGzoD+SY)Tz_#9@hs*`Q9-C1zl&Ae!itkBC18UKlvznSn_RGmPNErAr2Zf%~M5@iP)c+g`eK?VlSo-NiN=I7h zE5wE|v;D@sXIZE6c55+yPU3sVBRTT!L*4t@%1-geJGb$h332J={pq@ldD;i~&31#n z2*^sWzHH+v-9C9U_eS@VpT}M$%QiNCF(8b!Sx7)V*K z2Wq;@wKz;xo73(#30AkkY85>WqhPm)PP5Z&a5+pKlhtH$TFiF+@UdeP5}P(@@^@{J zYADx(w?Pmbg4JNPm<;6Thwvti*|%O(5WQJ8Vv~V6|BE zF0kt~8TB5gOElVz28-EgFggvEe?+`|ZE~6+q zjpz}|$t{|Vc7s)KHMj%;%5QR6+%BtGbYd)+JywrkaO%y)7tppUfn~Y$ zJ)&7O>g}Sz;zlhdtHbGW+C6r?C>q=*o8DupYA-(V;5PzGb(2-zZgRQ}HbK-2 z9+xOMoMyet?Q(%#v(0RBoAoxcU@&7S6oWW*eIu|gC+o3`OwS#9H=6GjjCKclQM3rq zAdlOE@oTV&R=1-#BZ-l%PI(mrOVizofu*{0k(;1&dJ{&hV6m7jOe|K>B|6L=(PW0v zft1`1w2LsV#B9YwvJqSfk#fdz{$kKnXeoESA`gU#sn7(~0*sa~qQ~y=SYTZQSX!IaYIV5u z77QV%i@7+%h7*qs4h&K(t-)wBSYh^DqSa}1*sOXeq6=#75)H6dCP><8wEvR{w6EPU zDKU``d5;K= 0.1800.0 < 0.1900.0": - version "0.1802.12" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1802.12.tgz#096f8e9cf71f8848c6f0172c03f3f1135509e133" - integrity sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw== - dependencies: - "@angular-devkit/core" "18.2.12" - rxjs "7.8.1" - -"@angular-devkit/build-angular@^19.0.0": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-19.0.4.tgz#4b42d372f8b9d64f0d9fcc2efa2e8f0cf0f3d4b7" - integrity sha512-n7fcRdNB7ed5j6aZI+qPI/1LylFv1OiRNgBIeJxX3HEmzQxsHHLcxWog2yZK2Fvw3390xFx/VjZaklITj6tBFA== - dependencies: - "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.1900.4" - "@angular-devkit/build-webpack" "0.1900.4" - "@angular-devkit/core" "19.0.4" - "@angular/build" "19.0.4" - "@babel/core" "7.26.0" - "@babel/generator" "7.26.2" - "@babel/helper-annotate-as-pure" "7.25.9" - "@babel/helper-split-export-declaration" "7.24.7" - "@babel/plugin-transform-async-generator-functions" "7.25.9" - "@babel/plugin-transform-async-to-generator" "7.25.9" - "@babel/plugin-transform-runtime" "7.25.9" - "@babel/preset-env" "7.26.0" - "@babel/runtime" "7.26.0" - "@discoveryjs/json-ext" "0.6.3" - "@ngtools/webpack" "19.0.4" - "@vitejs/plugin-basic-ssl" "1.1.0" - ansi-colors "4.1.3" - autoprefixer "10.4.20" - babel-loader "9.2.1" - browserslist "^4.21.5" - copy-webpack-plugin "12.0.2" - css-loader "7.1.2" - esbuild-wasm "0.24.0" - fast-glob "3.3.2" - http-proxy-middleware "3.0.3" - istanbul-lib-instrument "6.0.3" - jsonc-parser "3.3.1" - karma-source-map-support "1.4.0" - less "4.2.0" - less-loader "12.2.0" - license-webpack-plugin "4.0.2" - loader-utils "3.3.1" - mini-css-extract-plugin "2.9.2" - open "10.1.0" - ora "5.4.1" - picomatch "4.0.2" - piscina "4.7.0" - postcss "8.4.49" - postcss-loader "8.1.1" - resolve-url-loader "5.0.0" - rxjs "7.8.1" - sass "1.80.7" - sass-loader "16.0.3" - semver "7.6.3" - source-map-loader "5.0.0" - source-map-support "0.5.21" - terser "5.36.0" - tree-kill "1.2.2" - tslib "2.8.1" - webpack "5.96.1" - webpack-dev-middleware "7.4.2" - webpack-dev-server "5.1.0" - webpack-merge "6.0.1" - webpack-subresource-integrity "5.1.0" - optionalDependencies: - esbuild "0.24.0" - -"@angular-devkit/build-webpack@0.1900.4": - version "0.1900.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1900.4.tgz#8567b798edf55669a48cf68914bee67f1a433d75" - integrity sha512-eovr5Am8EwxF7d/y0Hbfz/KYWnOXXVXVwquPUcg8JBI19lLbfctz4+71Vjz2qGroijr2FlZztRpmhd498SLt/A== - dependencies: - "@angular-devkit/architect" "0.1900.4" - rxjs "7.8.1" - -"@angular-devkit/core@18.2.12", "@angular-devkit/core@>= 18.0.0 < 19.0.0": - version "18.2.12" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.2.12.tgz#fb514e9b3c9ea87ddaa1582d3947f1b094c9b387" - integrity sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ== - dependencies: - ajv "8.17.1" - ajv-formats "3.0.1" - jsonc-parser "3.3.1" - picomatch "4.0.2" - rxjs "7.8.1" - source-map "0.7.4" - -"@angular-devkit/core@19.0.4": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.0.4.tgz#abc3835fecc57609b804ae9723ba0ebf521176d1" - integrity sha512-+imxIj1JLr2hbUYQePHgkTUKr0VmlxNSZvIREcCWtXUcdCypiwhJAtGXv6MfpB4hAx+FJZYEpVWeLwYOS/gW0A== - dependencies: - ajv "8.17.1" - ajv-formats "3.0.1" - jsonc-parser "3.3.1" - picomatch "4.0.2" - rxjs "7.8.1" - source-map "0.7.4" - -"@angular-devkit/schematics@19.0.4": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.0.4.tgz#15b568f5a0c8d7d02a5c6014787b605cf6cf9214" - integrity sha512-2r6Qs4N5NSPho+qzegCYS8kIgylXyH4DHaS7HJ5+4XvM1I8V8AII8payLWkUK0i29XufVoD5XfPUFnjxZrBfYQ== - dependencies: - "@angular-devkit/core" "19.0.4" - jsonc-parser "3.3.1" - magic-string "0.30.12" - ora "5.4.1" - rxjs "7.8.1" - -"@angular-devkit/schematics@>= 18.0.0 < 19.0.0": - version "18.2.12" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.2.12.tgz#15d1a8611bf9f18215435604672411b1929bf4d1" - integrity sha512-mMea9txHbnCX5lXLHlo0RAgfhFHDio45/jMsREM2PA8UtVf2S8ltXz7ZwUrUyMQRv8vaSfn4ijDstF4hDMnRgQ== - dependencies: - "@angular-devkit/core" "18.2.12" - jsonc-parser "3.3.1" - magic-string "0.30.11" - ora "5.4.1" - rxjs "7.8.1" - -"@angular-eslint/builder@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/builder/-/builder-18.4.3.tgz#800b8a68b464ddfc0d737b0ad38c7804b463d8e1" - integrity sha512-NzmrXlr7GFE+cjwipY/CxBscZXNqnuK0us1mO6Z2T6MeH6m+rRcdlY/rZyKoRniyNNvuzl6vpEsfMIMmnfebrA== - dependencies: - "@angular-devkit/architect" ">= 0.1800.0 < 0.1900.0" - "@angular-devkit/core" ">= 18.0.0 < 19.0.0" - -"@angular-eslint/bundled-angular-compiler@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz#0810f76045b854782e6370953cf5324112a65f80" - integrity sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg== - -"@angular-eslint/eslint-plugin-template@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz#3e9820735f087afad193361e3081fad54dbf4e51" - integrity sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ== - dependencies: - "@angular-eslint/bundled-angular-compiler" "18.4.3" - "@angular-eslint/utils" "18.4.3" - aria-query "5.3.2" - axobject-query "4.1.0" - -"@angular-eslint/eslint-plugin@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz#7618bc6056086a98ed4d888f31185fc62e6be2d1" - integrity sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA== - dependencies: - "@angular-eslint/bundled-angular-compiler" "18.4.3" - "@angular-eslint/utils" "18.4.3" - -"@angular-eslint/schematics@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/schematics/-/schematics-18.4.3.tgz#1d6e9026e0054d556c37750ccff0ecce701561c1" - integrity sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA== - dependencies: - "@angular-devkit/core" ">= 18.0.0 < 19.0.0" - "@angular-devkit/schematics" ">= 18.0.0 < 19.0.0" - "@angular-eslint/eslint-plugin" "18.4.3" - "@angular-eslint/eslint-plugin-template" "18.4.3" - ignore "6.0.2" - semver "7.6.3" - strip-json-comments "3.1.1" - -"@angular-eslint/template-parser@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-18.4.3.tgz#2c6c396563a278a6f2dfdb3fbe9d4310ad0c6dc6" - integrity sha512-JZMPtEB8yNip3kg4WDEWQyObSo2Hwf+opq2ElYuwe85GQkGhfJSJ2CQYo4FSwd+c5MUQAqESNRg9QqGYauDsiw== - dependencies: - "@angular-eslint/bundled-angular-compiler" "18.4.3" - eslint-scope "^8.0.2" - -"@angular-eslint/utils@18.4.3": - version "18.4.3" - resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-18.4.3.tgz#1ad0558b21aaa987ce69604a7624d4b213e84d8c" - integrity sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ== - dependencies: - "@angular-eslint/bundled-angular-compiler" "18.4.3" - -"@angular/animations@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-19.0.3.tgz#db9f370fbaa31744aec3829189d2bcfde48973ee" - integrity sha512-YWoXM2S5p+Eq6cX1xjtFaai23oVNnbf3u34pEQCyKDjZpqI5lMu8e63lQT0tf7fZttEWlNUYRTwQ9+MpZ0sjzQ== - dependencies: - tslib "^2.3.0" - -"@angular/build@19.0.4": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@angular/build/-/build-19.0.4.tgz#40a33de0ec99769f00feb258a21e9eec5bc84ddf" - integrity sha512-ubsNjLb54VkZwcPQ21Ke8aAHiIrRIcv7gG3R6/6XOoWeK1K2+tsv8bnO4mz5cHgzWOspLOT7FDC83NJjrKX3Nw== - dependencies: - "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.1900.4" - "@babel/core" "7.26.0" - "@babel/helper-annotate-as-pure" "7.25.9" - "@babel/helper-split-export-declaration" "7.24.7" - "@babel/plugin-syntax-import-attributes" "7.26.0" - "@inquirer/confirm" "5.0.2" - "@vitejs/plugin-basic-ssl" "1.1.0" - beasties "0.1.0" - browserslist "^4.23.0" - esbuild "0.24.0" - fast-glob "3.3.2" - https-proxy-agent "7.0.5" - istanbul-lib-instrument "6.0.3" - listr2 "8.2.5" - magic-string "0.30.12" - mrmime "2.0.0" - parse5-html-rewriting-stream "7.0.0" - picomatch "4.0.2" - piscina "4.7.0" - rollup "4.26.0" - sass "1.80.7" - semver "7.6.3" - vite "5.4.11" - watchpack "2.4.2" - optionalDependencies: - lmdb "3.1.5" - -"@angular/cdk@^19.0.0": - version "19.0.2" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-19.0.2.tgz#0529cd283879950366236562502ef63d750b8641" - integrity sha512-eDjHJJWpgnzC3pR6N0gCdh51Q1ffoh6mql06YSqprj005aNKBjmCMnpU4bPPzdGSkKsjwAZWGUNWg4RS+R+iZQ== - dependencies: - tslib "^2.3.0" - optionalDependencies: - parse5 "^7.1.2" - -"@angular/cli@~19.0.0": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-19.0.4.tgz#9c311e860b9c2bdd9746adae6371a7403243d875" - integrity sha512-jxnD9qkhelcRMCrHDCxNsWgn6HQCvMIj8uI0T2eB9Vy93q2YWUo/fWl2Sy4gFlR+VNeF+1hYhPLb/vqLLzjWuA== - dependencies: - "@angular-devkit/architect" "0.1900.4" - "@angular-devkit/core" "19.0.4" - "@angular-devkit/schematics" "19.0.4" - "@inquirer/prompts" "7.1.0" - "@listr2/prompt-adapter-inquirer" "2.0.18" - "@schematics/angular" "19.0.4" - "@yarnpkg/lockfile" "1.1.0" - ini "5.0.0" - jsonc-parser "3.3.1" - listr2 "8.2.5" - npm-package-arg "12.0.0" - npm-pick-manifest "10.0.0" - pacote "20.0.0" - resolve "1.22.8" - semver "7.6.3" - symbol-observable "4.0.0" - yargs "17.7.2" - -"@angular/common@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-19.0.3.tgz#5412ab4f130c3a13e79e9191b3933af7d2d2dbc3" - integrity sha512-YyBVZU+LQ38R+/U5vF/b1T3muROKpR0kkupMw7VKnGhQfgrRX5Dk3H2nr9ritt0zPc7TOUuQSlHMf3QWah2GDg== - dependencies: - tslib "^2.3.0" - -"@angular/compiler-cli@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-19.0.3.tgz#210b17ee4f54b6736f4138348dd9dc78143ef1b3" - integrity sha512-nayLcC3hSHoGKXCZInMdFcIZJEHYkEGNsdAutgCMuSj+lXCGuRUysuGC0rGzJc2R6nhgfaLJnO8T/O5acqaqdA== - dependencies: - "@babel/core" "7.26.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - chokidar "^4.0.0" - convert-source-map "^1.5.1" - reflect-metadata "^0.2.0" - semver "^7.0.0" - tslib "^2.3.0" - yargs "^17.2.1" - -"@angular/compiler@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-19.0.3.tgz#970bf33c24c4ce73726a78b704b52edd47860fda" - integrity sha512-cxtK4SlHAPstcXfjwOaoR1dAszrzo2iDF8ZiihbZPgKUG3m27qIU3Lp5XBgxfZPlO4jh6TXkWznY7f6Tyxkb0Q== - dependencies: - tslib "^2.3.0" - -"@angular/core@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-19.0.3.tgz#1e3af41c7aed97400212af8dc23a80b36a24adb7" - integrity sha512-WM844gDzrbHtcM2TJB9DmfCmenUYyNSI6h924CeppDW5oG8ShinQGiWNjF5oI6EZ4tG60uK3QvCm3kjr1dmbOA== - dependencies: - tslib "^2.3.0" - -"@angular/flex-layout@15.0.0-beta.42": - version "15.0.0-beta.42" - resolved "https://registry.yarnpkg.com/@angular/flex-layout/-/flex-layout-15.0.0-beta.42.tgz#ad5e1dda32ee6280ba73765be10fd916c222e38e" - integrity sha512-cTAPVMMxnyIFwpZwdq0PL5mdP9Qh+R8MB7ZBezVaN3Rz2fRrkagzKpLvPX3TFzepXrvHBdpKsU4b8u+NxEC/6g== - dependencies: - tslib "^2.3.0" - -"@angular/forms@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-19.0.3.tgz#db4c7c0fb5cd41c651fda4dc2ad5c6aee9148265" - integrity sha512-8wf8yDR6cW+lOhpzhmxUOiI5Wjr1Kf7o8NuJ2P5K6b7IMNRzRyR5q/6R4NUwtF6aaJ1wNqmSof+goQmtn1HOcw== - dependencies: - tslib "^2.3.0" - -"@angular/language-service@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-19.0.3.tgz#e0d29c81f877c1744ac2f2cf1a048e40367264f7" - integrity sha512-SkUFggQayulgMWW4rwslLVCD7woZ1m7dCB87NCQdlZv9NIrHbNkaPfxHzaX3YrdKhw+u65XcttzD7cworcMcVQ== - -"@angular/material@^19.0.0": - version "19.0.2" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-19.0.2.tgz#c6aeaa31dbd3f9dfa9e3d0ec87651b283704e573" - integrity sha512-IKU6znBKgD0xHEGo5WD3JWNK+WjamMCzAvSa72w4Evo2N6PWN+dAkbCMYxugW7dOfwoT8DvUnjIWclC+RRCl0A== - dependencies: - tslib "^2.3.0" - -"@angular/platform-browser-dynamic@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.3.tgz#913d3526eadb1f8e6e733e7cb40f93e805c400c7" - integrity sha512-gFh+QN7JvepnD3mS0XmOtDmfY8h5sSkk2/guesE2A68Na8q+M3fGZlz7I37tCXToLth5us1X0Gi0UPCSESc4SA== - dependencies: - tslib "^2.3.0" - -"@angular/platform-browser@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-19.0.3.tgz#f055ebf36c55753c4f818cb615f194b375443f0c" - integrity sha512-vggWHSzOsCpYqnGq5IIN+n7xdEvXfgUGaMdgzPhFMTsnlMTUs5+VEFl9tX9FANHkXKB5S1RttVyvEXRqJM9ncQ== - dependencies: - tslib "^2.3.0" - -"@angular/router@^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-19.0.3.tgz#1b514abdb8f8068dfad1ff8813f68232e6e7743b" - integrity sha512-L/s8crRC6nj5knmHsnPeOXMNdC7vUOSOvTQonXhmT0FdlP9bPnnRrNeVDnLnd8AzjPSBfIFE2eQw6T8jCwdxMA== - dependencies: - tslib "^2.3.0" - -"@antfu/install-pkg@^0.4.0": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1" - integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== - dependencies: - package-manager-detector "^0.2.0" - tinyexec "^0.3.0" - -"@antfu/utils@^0.7.10": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02" - integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== - -"@babel/core@7.26.0", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" - integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== - dependencies: - "@babel/parser" "^7.26.2" - "@babel/types" "^7.26.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/generator@^7.26.0", "@babel/generator@^7.26.3": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019" - integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== - dependencies: - "@babel/parser" "^7.26.3" - "@babel/types" "^7.26.3" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@7.25.9", "@babel/helper-annotate-as-pure@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" - integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" - integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== - dependencies: - "@babel/compat-data" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" - integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.25.9" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" - integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - regexpu-core "^6.2.0" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" - integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-member-expression-to-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" - integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-optimise-call-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" - integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" - integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== - -"@babel/helper-remap-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" - integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-wrap-function" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-replace-supers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5" - integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" - integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-split-export-declaration@7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" - integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== - dependencies: - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== - -"@babel/helper-wrap-function@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" - integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== - dependencies: - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== - dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" - -"@babel/parser@^7.14.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2", "@babel/parser@^7.26.3": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234" - integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== - dependencies: - "@babel/types" "^7.26.3" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" - integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" - integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" - integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" - integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" - integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-import-assertions@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" - integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-import-attributes@7.26.0", "@babel/plugin-syntax-import-attributes@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" - integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" - integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-async-generator-functions@7.25.9", "@babel/plugin-transform-async-generator-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2" - integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-transform-async-to-generator@7.25.9", "@babel/plugin-transform-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" - integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" - -"@babel/plugin-transform-block-scoped-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz#5700691dbd7abb93de300ca7be94203764fce458" - integrity sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-block-scoping@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" - integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-class-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" - integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-class-static-block@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" - integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-classes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" - integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/traverse" "^7.25.9" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" - integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/template" "^7.25.9" - -"@babel/plugin-transform-destructuring@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" - integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-dotall-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" - integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-duplicate-keys@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" - integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" - integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-dynamic-import@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" - integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-exponentiation-operator@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" - integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-export-namespace-from@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" - integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-for-of@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" - integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-function-name@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" - integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== - dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-transform-json-strings@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" - integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" - integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-logical-assignment-operators@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" - integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-member-expression-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" - integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-amd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" - integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-commonjs@^7.25.9": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" - integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== - dependencies: - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-systemjs@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" - integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-transform-modules-umd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" - integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" - integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-new-target@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" - integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz#bcb1b0d9e948168102d5f7104375ca21c3266949" - integrity sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-numeric-separator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" - integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-object-rest-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" - integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== - dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - -"@babel/plugin-transform-object-super@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" - integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - -"@babel/plugin-transform-optional-catch-binding@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" - integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" - integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-parameters@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" - integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-private-methods@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" - integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-private-property-in-object@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" - integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-property-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" - integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-regenerator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" - integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-regexp-modifiers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" - integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-reserved-words@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" - integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-runtime@7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz#62723ea3f5b31ffbe676da9d6dae17138ae580ea" - integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" - semver "^6.3.1" - -"@babel/plugin-transform-shorthand-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" - integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" - integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-sticky-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" - integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-template-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1" - integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-typeof-symbol@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" - integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-escapes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" - integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-property-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" - integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" - integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-sets-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" - integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/preset-env@7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" - integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== - dependencies: - "@babel/compat-data" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.26.0" - "@babel/plugin-syntax-import-attributes" "^7.26.0" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.25.9" - "@babel/plugin-transform-async-generator-functions" "^7.25.9" - "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.25.9" - "@babel/plugin-transform-block-scoping" "^7.25.9" - "@babel/plugin-transform-class-properties" "^7.25.9" - "@babel/plugin-transform-class-static-block" "^7.26.0" - "@babel/plugin-transform-classes" "^7.25.9" - "@babel/plugin-transform-computed-properties" "^7.25.9" - "@babel/plugin-transform-destructuring" "^7.25.9" - "@babel/plugin-transform-dotall-regex" "^7.25.9" - "@babel/plugin-transform-duplicate-keys" "^7.25.9" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.25.9" - "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.25.9" - "@babel/plugin-transform-function-name" "^7.25.9" - "@babel/plugin-transform-json-strings" "^7.25.9" - "@babel/plugin-transform-literals" "^7.25.9" - "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" - "@babel/plugin-transform-member-expression-literals" "^7.25.9" - "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-modules-systemjs" "^7.25.9" - "@babel/plugin-transform-modules-umd" "^7.25.9" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" - "@babel/plugin-transform-numeric-separator" "^7.25.9" - "@babel/plugin-transform-object-rest-spread" "^7.25.9" - "@babel/plugin-transform-object-super" "^7.25.9" - "@babel/plugin-transform-optional-catch-binding" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - "@babel/plugin-transform-private-methods" "^7.25.9" - "@babel/plugin-transform-private-property-in-object" "^7.25.9" - "@babel/plugin-transform-property-literals" "^7.25.9" - "@babel/plugin-transform-regenerator" "^7.25.9" - "@babel/plugin-transform-regexp-modifiers" "^7.26.0" - "@babel/plugin-transform-reserved-words" "^7.25.9" - "@babel/plugin-transform-shorthand-properties" "^7.25.9" - "@babel/plugin-transform-spread" "^7.25.9" - "@babel/plugin-transform-sticky-regex" "^7.25.9" - "@babel/plugin-transform-template-literals" "^7.25.9" - "@babel/plugin-transform-typeof-symbol" "^7.25.9" - "@babel/plugin-transform-unicode-escapes" "^7.25.9" - "@babel/plugin-transform-unicode-property-regex" "^7.25.9" - "@babel/plugin-transform-unicode-regex" "^7.25.9" - "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.38.1" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@7.26.0", "@babel/runtime@^7.8.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/traverse@^7.25.9": - version "7.26.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd" - integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.3" - "@babel/parser" "^7.26.3" - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.3" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.4.4": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" - integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@braintree/sanitize-url@^7.0.1": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz#048e48aab4f1460e3121e22aa62459d16653dc85" - integrity sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg== - -"@chevrotain/cst-dts-gen@11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz#5e0863cc57dc45e204ccfee6303225d15d9d4783" - integrity sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ== - dependencies: - "@chevrotain/gast" "11.0.3" - "@chevrotain/types" "11.0.3" - lodash-es "4.17.21" - -"@chevrotain/gast@11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-11.0.3.tgz#e84d8880323fe8cbe792ef69ce3ffd43a936e818" - integrity sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q== - dependencies: - "@chevrotain/types" "11.0.3" - lodash-es "4.17.21" - -"@chevrotain/regexp-to-ast@11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz#11429a81c74a8e6a829271ce02fc66166d56dcdb" - integrity sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA== - -"@chevrotain/types@11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-11.0.3.tgz#f8a03914f7b937f594f56eb89312b3b8f1c91848" - integrity sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ== - -"@chevrotain/utils@11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.0.3.tgz#e39999307b102cff3645ec4f5b3665f5297a2224" - integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ== - -"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.3.2", "@codemirror/autocomplete@^6.7.1": - version "6.18.3" - resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.18.3.tgz#f9ea79a2f369662516f71bc0b2f819454d3c8e00" - integrity sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - -"@codemirror/commands@^6.0.0": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.7.1.tgz#04561e95bc0779eaa49efd63e916c4efb3bbf6d6" - integrity sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw== - dependencies: - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.4.0" - "@codemirror/view" "^6.27.0" - "@lezer/common" "^1.1.0" - -"@codemirror/lang-angular@^0.1.0": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz#83035e7e9e1f0e2ba466e83d778407b519089a28" - integrity sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-javascript" "^6.1.2" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.3" - -"@codemirror/lang-cpp@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz#076c98340c3beabde016d7d83e08eebe17254ef9" - integrity sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/cpp" "^1.0.0" - -"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.2.0": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-css/-/lang-css-6.3.1.tgz#763ca41aee81bb2431be55e3cfcc7cc8e91421a3" - integrity sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.2" - "@lezer/css" "^1.1.7" - -"@codemirror/lang-go@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-go/-/lang-go-6.0.1.tgz#598222c90f56eae28d11069c612ca64d0306b057" - integrity sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.6.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/go" "^1.0.0" - -"@codemirror/lang-html@^6.0.0": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz#d586f2cc9c341391ae07d1d7c545990dfa069727" - integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/lang-css" "^6.0.0" - "@codemirror/lang-javascript" "^6.0.0" - "@codemirror/language" "^6.4.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - "@lezer/css" "^1.1.0" - "@lezer/html" "^1.3.0" - -"@codemirror/lang-java@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz#03bd06334da7c8feb9dff6db01ac6d85bd2e48bb" - integrity sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/java" "^1.0.0" - -"@codemirror/lang-javascript@^6.0.0", "@codemirror/lang-javascript@^6.1.2": - version "6.2.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz#7141090b22994bef85bcc5608a3bc1257f2db2ad" - integrity sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.6.0" - "@codemirror/lint" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/common" "^1.0.0" - "@lezer/javascript" "^1.0.0" - -"@codemirror/lang-json@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz#0a0be701a5619c4b0f8991f9b5e95fe33f462330" - integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/json" "^1.0.0" - -"@codemirror/lang-less@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-less/-/lang-less-6.0.2.tgz#2e3d82a3ddb8710e6409689cd4a28c66558d0cb8" - integrity sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ== - dependencies: - "@codemirror/lang-css" "^6.2.0" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-liquid@^6.0.0": - version "6.2.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-liquid/-/lang-liquid-6.2.2.tgz#5b5a2391ac14b6af85c520b8b81ea1f344d40a62" - integrity sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.1" - -"@codemirror/lang-markdown@^6.0.0": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-markdown/-/lang-markdown-6.3.1.tgz#067e4e18993fa3520e2a980d2dce5fe23dd245a0" - integrity sha512-y3sSPuQjBKZQbQwe3ZJKrSW6Silyl9PnrU/Mf0m2OQgIlPoSYTtOvEL7xs94SVMkb8f4x+SQFnzXPdX4Wk2lsg== - dependencies: - "@codemirror/autocomplete" "^6.7.1" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.3.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.2.1" - "@lezer/markdown" "^1.0.0" - -"@codemirror/lang-php@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz#fa34cc75562178325861a5731f79bd621f57ffaa" - integrity sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/php" "^1.0.0" - -"@codemirror/lang-python@^6.0.0": - version "6.1.6" - resolved "https://registry.yarnpkg.com/@codemirror/lang-python/-/lang-python-6.1.6.tgz#0c55e7e2dfa85b68be93b9692e5d3f76f284bbb2" - integrity sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg== - dependencies: - "@codemirror/autocomplete" "^6.3.2" - "@codemirror/language" "^6.8.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.1" - "@lezer/python" "^1.1.4" - -"@codemirror/lang-rust@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz#d6829fc7baa39a15bcd174a41a9e0a1bf7cf6ba8" - integrity sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/rust" "^1.0.0" - -"@codemirror/lang-sass@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz#38c1b0a1326cc9f5cb2741d2cd51cfbcd7abc0b2" - integrity sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q== - dependencies: - "@codemirror/lang-css" "^6.2.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.0.2" - "@lezer/sass" "^1.0.0" - -"@codemirror/lang-sql@^6.0.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@codemirror/lang-sql/-/lang-sql-6.8.0.tgz#1ae68ad49f378605ff88a4cc428ba667ce056068" - integrity sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-vue@^0.1.1": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz#bf79b9152cc18b4903d64c1f67e186ae045c8a97" - integrity sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug== - dependencies: - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-javascript" "^6.1.2" - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.3.1" - -"@codemirror/lang-wast@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz#d2b14175e5e80d7878cbbb29e20ec90dc12d3a2b" - integrity sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q== - dependencies: - "@codemirror/language" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@codemirror/lang-xml@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz#e3e786e1a89fdc9520efe75c1d6d3de1c40eb91c" - integrity sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.4.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - "@lezer/common" "^1.0.0" - "@lezer/xml" "^1.0.0" - -"@codemirror/lang-yaml@^6.0.0": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz#6f6e4e16c5a4e6d549f462c9dc2053439e070d0d" - integrity sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.2.0" - "@lezer/yaml" "^1.0.0" - -"@codemirror/language-data@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@codemirror/language-data/-/language-data-6.5.1.tgz#5cb9413d5225ef27a577c23781bbc0b36c58bb67" - integrity sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w== - dependencies: - "@codemirror/lang-angular" "^0.1.0" - "@codemirror/lang-cpp" "^6.0.0" - "@codemirror/lang-css" "^6.0.0" - "@codemirror/lang-go" "^6.0.0" - "@codemirror/lang-html" "^6.0.0" - "@codemirror/lang-java" "^6.0.0" - "@codemirror/lang-javascript" "^6.0.0" - "@codemirror/lang-json" "^6.0.0" - "@codemirror/lang-less" "^6.0.0" - "@codemirror/lang-liquid" "^6.0.0" - "@codemirror/lang-markdown" "^6.0.0" - "@codemirror/lang-php" "^6.0.0" - "@codemirror/lang-python" "^6.0.0" - "@codemirror/lang-rust" "^6.0.0" - "@codemirror/lang-sass" "^6.0.0" - "@codemirror/lang-sql" "^6.0.0" - "@codemirror/lang-vue" "^0.1.1" - "@codemirror/lang-wast" "^6.0.0" - "@codemirror/lang-xml" "^6.0.0" - "@codemirror/lang-yaml" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/legacy-modes" "^6.4.0" - -"@codemirror/language@^6.0.0", "@codemirror/language@^6.3.0", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0", "@codemirror/language@^6.8.0": - version "6.10.6" - resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.6.tgz#3770aa55fce575b45b1037b390b576907f0061c7" - integrity sha512-KrsbdCnxEztLVbB5PycWXFxas4EOyk/fPAfruSOnDDppevQgid2XZ+KbJ9u+fDikP/e7MW7HPBTvTb8JlZK9vA== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.23.0" - "@lezer/common" "^1.1.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - style-mod "^4.0.0" - -"@codemirror/legacy-modes@^6.4.0": - version "6.4.2" - resolved "https://registry.yarnpkg.com/@codemirror/legacy-modes/-/legacy-modes-6.4.2.tgz#723a55aae21304d4c112575943d3467c9040d217" - integrity sha512-HsvWu08gOIIk303eZQCal4H4t65O/qp1V4ul4zVa3MHK5FJ0gz3qz3O55FIkm+aQUcshUOjBx38t2hPiJwW5/g== - dependencies: - "@codemirror/language" "^6.0.0" - -"@codemirror/lint@^6.0.0": - version "6.8.4" - resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.4.tgz#7d8aa5d1a6dec89ffcc23ad45ddca2e12e90982d" - integrity sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.35.0" - crelt "^1.0.5" - -"@codemirror/merge@^6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@codemirror/merge/-/merge-6.7.4.tgz#2ee6c4595f3ed1e0f5e62365f842f285065fe8d9" - integrity sha512-9FpIFTgzkaxkZE93XKoFR6caAB6sCAfYCW2NT+atGEmdv/1Mt1ouxA+hKxGRYdMvdH9Ph0KMJtYnzEi+QCGAiQ== - dependencies: - "@codemirror/language" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.17.0" - "@lezer/highlight" "^1.0.0" - style-mod "^4.1.0" - -"@codemirror/search@^6.0.0": - version "6.5.8" - resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.5.8.tgz#b59b3659b46184cc75d6108d7c050a4ca344c3a0" - integrity sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig== - dependencies: - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - crelt "^1.0.5" - -"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.4.1.tgz#da57143695c056d9a3c38705ed34136e2b68171b" - integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== - -"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.35.0": - version "6.35.1" - resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.35.1.tgz#4ed9ab5cf4318414d39d18c6d90c4494f0cb63c0" - integrity sha512-OUs9Z2UabSfJxSoEnuHUzGF0wHpWiJ/3IW/cgrKBqbp5Yj7XTYXQAQaLHZUP48ctRMvxgarEXTginrocUG8J7A== - dependencies: - "@codemirror/state" "^6.4.0" - style-mod "^4.1.0" - w3c-keyname "^2.2.4" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@discoveryjs/json-ext@0.6.3": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz#f13c7c205915eb91ae54c557f5e92bddd8be0e83" - integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== - -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/aix-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" - integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" - integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" - integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/android-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" - integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" - integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/darwin-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" - integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" - integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/freebsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" - integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" - integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" - integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" - integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-loong64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" - integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-mips64el@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" - integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" - integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-riscv64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" - integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-s390x@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" - integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/linux-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" - integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/netbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" - integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== - -"@esbuild/openbsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" - integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/openbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" - integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/sunos-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" - integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" - integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" - integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - -"@esbuild/win32-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" - integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/config-array@^0.19.0": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" - integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== - dependencies: - "@eslint/object-schema" "^2.1.5" - debug "^4.3.1" - minimatch "^3.1.2" - -"@eslint/core@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1" - integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== - dependencies: - "@types/json-schema" "^7.0.15" - -"@eslint/eslintrc@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" - integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@9.16.0", "@eslint/js@^9.15.0": - version "9.16.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" - integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== - -"@eslint/object-schema@^2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" - integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== - -"@eslint/plugin-kit@^0.2.3": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792" - integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== - dependencies: - levn "^0.4.1" - -"@fsegurai/codemirror-theme-abcdef@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-abcdef/6.1.1/ff20f465d487634ce3280872003d0fb2f1eead02#ff20f465d487634ce3280872003d0fb2f1eead02" - integrity sha512-qhx6IHWj1ZoLHxKAK/UOXdf1RXycrxKICuoT0ychpkSPAyx1jyN++UQjWnanby30Rm+AoJ4vQQ8RhNv/GIKmjg== - -"@fsegurai/codemirror-theme-abyss@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-abyss/6.1.1/f6a3ca25bfa668643248bfd5d66ce55bf9e87579#f6a3ca25bfa668643248bfd5d66ce55bf9e87579" - integrity sha512-Aab7gageF+P7LO2sGKYgbRVxZk9NmApzZn6lSS2l4D+ijnzXMoDFFxTDrDQ4G4M1qYzBd8mUKYeZftuXtgk3mA== - -"@fsegurai/codemirror-theme-android-studio@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-android-studio/6.1.1/12918ed8d68c2b980d0dd0cbd61a0631a7c2a4a0#12918ed8d68c2b980d0dd0cbd61a0631a7c2a4a0" - integrity sha512-Z9G5vLRfeJiHomNTTuyjRbziVMW1k+CQImuXKPJQA2+qdfDfFKmYPSfiRFE/EpP7M78sK/Vo5AgbtvzPElixBg== - -"@fsegurai/codemirror-theme-andromeda@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-andromeda/6.1.1/933f6188ec56fabf7f645bd29888bd07d6bdf040#933f6188ec56fabf7f645bd29888bd07d6bdf040" - integrity sha512-jiqY9BwIh0WbL6JHRZYe+yivqTjSzszkhJz0MSJRk+mYyTR09G9D7ihl+q9rhX6nu6T5MMGbdt5gIvncWAiZpQ== - -"@fsegurai/codemirror-theme-basic-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-basic-dark/6.1.1/5427d732f4eeda8697e624c4c99adb71e87fc559#5427d732f4eeda8697e624c4c99adb71e87fc559" - integrity sha512-tEiYz98hfffqSaqsneR9K5fZnttWDT1jaYBFQlg3WT2rzJgkbmI1ghJrSiNukfIo8mABskFR1KcwLPXW4nL2RQ== - -"@fsegurai/codemirror-theme-basic-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-basic-light/6.1.1/7e36b87c32dbd550058c500d2f66139c6e5dbce5#7e36b87c32dbd550058c500d2f66139c6e5dbce5" - integrity sha512-Xv6wgE1juAMFgQDs1T5P3/DUrBBkz9y1y9BFngWzi7dRZ87RjWKAUdeR5fP8SOui0ZVezhY4XODY8czWkmemxQ== - -"@fsegurai/codemirror-theme-bundle@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-bundle/6.1.1/1afe5f45a005452b882272ce5df121692352d951#1afe5f45a005452b882272ce5df121692352d951" - integrity sha512-oWfYh9kxu4FnnKQQ5L4MONjkoFm50nEZVtyyip1ImVXsdQ04WxD1R/pFTPypFjjC5ncartxekr3A2c5gslK7SA== - dependencies: - "@fsegurai/codemirror-theme-abcdef" "^6.1.1" - "@fsegurai/codemirror-theme-abyss" "^6.1.1" - "@fsegurai/codemirror-theme-android-studio" "^6.1.1" - "@fsegurai/codemirror-theme-andromeda" "^6.1.1" - "@fsegurai/codemirror-theme-basic-dark" "^6.1.1" - "@fsegurai/codemirror-theme-basic-light" "^6.1.1" - "@fsegurai/codemirror-theme-forest" "^6.1.1" - "@fsegurai/codemirror-theme-github-dark" "^6.1.1" - "@fsegurai/codemirror-theme-github-light" "^6.1.1" - "@fsegurai/codemirror-theme-gruvbox-dark" "^6.1.1" - "@fsegurai/codemirror-theme-gruvbox-light" "^6.1.1" - "@fsegurai/codemirror-theme-material-dark" "^6.1.1" - "@fsegurai/codemirror-theme-material-light" "^6.1.1" - "@fsegurai/codemirror-theme-monokai" "^6.1.1" - "@fsegurai/codemirror-theme-nord" "^6.1.1" - "@fsegurai/codemirror-theme-palenight" "^6.1.1" - "@fsegurai/codemirror-theme-solarized-dark" "^6.1.1" - "@fsegurai/codemirror-theme-solarized-light" "^6.1.1" - "@fsegurai/codemirror-theme-tokyo-night-day" "^6.1.1" - "@fsegurai/codemirror-theme-tokyo-night-storm" "^6.1.1" - "@fsegurai/codemirror-theme-volcano" "^6.1.1" - "@fsegurai/codemirror-theme-vscode-dark" "^6.1.1" - "@fsegurai/codemirror-theme-vscode-light" "^6.1.1" - -"@fsegurai/codemirror-theme-forest@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-forest/6.1.1/ac688e2c9d58df5c77c61e4192ef16aeda771a76#ac688e2c9d58df5c77c61e4192ef16aeda771a76" - integrity sha512-JwHwZbQH25PcI3eb9ai803USDLX4Tw+YKAL1fUAtbBj0n7DcC5sKBAqFrXnHBHrbUywmqUFo+xwOM8KNOz+KgQ== - -"@fsegurai/codemirror-theme-github-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-github-dark/6.1.1/f9ceef4915ac57dfe46db124f84bf183eb742712#f9ceef4915ac57dfe46db124f84bf183eb742712" - integrity sha512-TdOJSF7n21OqBS4OjZdXlLVV4nOlO/AXatqK6KP1wVtXS3kfNf1WylPopcB4dq9jZrj2AXzCgVJg1iLSINUj/Q== - -"@fsegurai/codemirror-theme-github-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-github-light/6.1.1/9fc7ebd3c6f75eeedf2ade8fcba9d85d583ae572#9fc7ebd3c6f75eeedf2ade8fcba9d85d583ae572" - integrity sha512-9xj/FBUTgcy0HeJVm93e7H9ikgmf85REe+b77NnIQzGkqOfQZ8DImjj1EAnpnqHhRwmSZeL27VyDsV67EYVX+g== - -"@fsegurai/codemirror-theme-gruvbox-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-gruvbox-dark/6.1.1/545ca2c5152f8d0dc57a3c8b6f0df09b76f9999a#545ca2c5152f8d0dc57a3c8b6f0df09b76f9999a" - integrity sha512-EotSqXyRyj4ovPXnyjMOzpAp4URaxs9ig+bJN5hrM66h2xmE1/Jnoe5WwrfZ1KDqK+DWv+Pb+R/cd3utB8llQw== - -"@fsegurai/codemirror-theme-gruvbox-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-gruvbox-light/6.1.1/085baaad06b43e50cbf8d19ba3f6fc43c55a3505#085baaad06b43e50cbf8d19ba3f6fc43c55a3505" - integrity sha512-QCS7Xj/+jyvIAv7yEmrHOdDKPCtrw3th2Qq6UqEqZcp9sOXImBypVXs5fc/y9Bp3T9g/Oc3CEXC3f+UPmsl/PQ== - -"@fsegurai/codemirror-theme-material-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-material-dark/6.1.1/a552ac2310150a543f505d311f925203e48541cd#a552ac2310150a543f505d311f925203e48541cd" - integrity sha512-JS9ztWGxPSbmp+vQaDHwQ+CkcoKVaX4cBfEsH7JZq8aRh9tIGqfUs3CteXegipNeHdPLGNT9olSeBRD+itOrcQ== - -"@fsegurai/codemirror-theme-material-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-material-light/6.1.1/374c03b3857747638b86d6b4f6344158bce81170#374c03b3857747638b86d6b4f6344158bce81170" - integrity sha512-Y4tXv3pwo1hSr6UX7dBDXBCls29NcSZO6/8QJZHRHb9O3m5jqqKqW6+wsptJYljPtRBkWPjuKmmGhRdiytm0CA== - -"@fsegurai/codemirror-theme-monokai@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-monokai/6.1.1/fa67411b0e5efe52abca56759c4fe72b81968eb0#fa67411b0e5efe52abca56759c4fe72b81968eb0" - integrity sha512-gznpV6rb/8d6om11FHzazUqH4OAQjqbLf+aERo20zxSL9j3u9Qz5ie2YuVM0rU9atTZQX4MDmSiWZr6AtYag7A== - -"@fsegurai/codemirror-theme-nord@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-nord/6.1.1/a3ce195605fd65bc40dedd8f54943e409451486f#a3ce195605fd65bc40dedd8f54943e409451486f" - integrity sha512-niwAK8c1tWBM95o+XaKjM9OFene0GCX2ddrWVfdRNz+DSM22sa2vf5InF2xhIp+vwwVHMnV0/K5vmzERSs3K7g== - -"@fsegurai/codemirror-theme-palenight@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-palenight/6.1.1/f64620a617e3e638bcfcafa0661e390c1146128a#f64620a617e3e638bcfcafa0661e390c1146128a" - integrity sha512-dKmfLEXiA2UtZhL6I/rHZT4Gnv7CKd5RQ9cMv0v8qyaqs3EM1pgHkXKDp/putMY8tkxizv4a97Q4LvKapzLlWA== - -"@fsegurai/codemirror-theme-solarized-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-solarized-dark/6.1.1/e83e642a18081d552403d7ed846c5ef4f8f51c04#e83e642a18081d552403d7ed846c5ef4f8f51c04" - integrity sha512-sWDOz3VSf1mW/Ie21iLzUU5F1PbUJ+pF96g4FhUFWh57KG+QolneKKQ6dlAsSNX4tPyFBVoGE+nLR/0X/xXD3A== - -"@fsegurai/codemirror-theme-solarized-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-solarized-light/6.1.1/be0b8e00f3a2eafb6b518853668ab5338a078957#be0b8e00f3a2eafb6b518853668ab5338a078957" - integrity sha512-ib6eMR/HK0ixt9u8N8w4HiZtFZmmEClf7I2m+MmEZSeND2hPeaTP81XNaM5UhcMdQwkHsl8ADu+35/IxYoYFhQ== - -"@fsegurai/codemirror-theme-tokyo-night-day@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-tokyo-night-day/6.1.1/5a0758aa1e6d4982d2310bd266c29ca5463ca378#5a0758aa1e6d4982d2310bd266c29ca5463ca378" - integrity sha512-M+zVhVesPVYIf9oh0nox+uMoiVHckIWtV+cL5awZFGDGz0+m+3rWlXsoREm+KVonO1OF9iqBKs/WE359z4AbDA== - -"@fsegurai/codemirror-theme-tokyo-night-storm@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-tokyo-night-storm/6.1.1/433afeeb9c458770dc8fc320fcd62a2174c12c17#433afeeb9c458770dc8fc320fcd62a2174c12c17" - integrity sha512-Vg+USAwjbExPvPJAeRGoa/vHGWj6W4bX5B7qjhnEn8bfxF5nooF2/SIGUdHTy9RlpnkUlbVgdOPgmATeWQGB4w== - -"@fsegurai/codemirror-theme-volcano@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-volcano/6.1.1/8c01088fc063297931dea44bb35c553af91c96d5#8c01088fc063297931dea44bb35c553af91c96d5" - integrity sha512-j5AbsYiDen86XW/+/iLcwrNJRXd0ujMAQBjVTk5fP1HGYqwMAnJUHYVyhcZ6A+MXVeTs8tsBsJTTT/TUz8BuUQ== - -"@fsegurai/codemirror-theme-vscode-dark@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-vscode-dark/6.1.1/55b58187411ddaf31beb7b2482c9c8f27778b5a8#55b58187411ddaf31beb7b2482c9c8f27778b5a8" - integrity sha512-nprPXuY49KNtDl7cWEScrccraOUklf9osqRRKvAGZUmZrw55MCU2AFUqXxsboy5sB97dp+UHnqW5UUIYVsgcbw== - -"@fsegurai/codemirror-theme-vscode-light@^6.1.1": - version "6.1.1" - resolved "https://npm.pkg.github.com/download/@fsegurai/codemirror-theme-vscode-light/6.1.1/b389cae358e1886fb25a76c4c41db3f3833c74a0#b389cae358e1886fb25a76c4c41db3f3833c74a0" - integrity sha512-6P0i8NkCIPx0uS4VW9PzO2EQGchaZRlkSlZnJ9cMvy2Z1TkfdLh8SzO1YpgyM9IDvfkbpwsjbl/Ylr6ugeJy6Q== - -"@fsegurai/ngx-markdown@^19.1.0": - version "19.1.0" - resolved "https://npm.pkg.github.com/download/@fsegurai/ngx-markdown/19.1.0/cff90e3347c85ef2404c334159773dd9f7656194#cff90e3347c85ef2404c334159773dd9f7656194" - integrity sha512-G2+iaM484SiYM1wlT9v32yNDNJK5eCCSuRtPYZNdvG9psGiJ61PAAzFgrKIinMNUcZbqwU847yuO3VhIP9a+nQ== - dependencies: - tslib "^2.8.1" - optionalDependencies: - clipboard "^2.0.11" - emoji-toolkit "^9.0.1" - katex "^0.16.11" - mermaid "^11.4.1" - prismjs "^1.29.0" - -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== - -"@humanfs/node@^0.16.6": - version "0.16.6" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" - integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== - dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.3.0" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/retry@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" - integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== - -"@humanwhocodes/retry@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" - integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== - -"@iconify/types@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" - integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== - -"@iconify/utils@^2.1.32": - version "2.1.33" - resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.1.33.tgz#cbf7242a52fd0ec58c42d37d28e4406b5327e8c0" - integrity sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw== - dependencies: - "@antfu/install-pkg" "^0.4.0" - "@antfu/utils" "^0.7.10" - "@iconify/types" "^2.0.0" - debug "^4.3.6" - kolorist "^1.8.0" - local-pkg "^0.5.0" - mlly "^1.7.1" - -"@inquirer/checkbox@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.0.2.tgz#e45e0ad2611f2cb2d337ba36c7d955b53f195914" - integrity sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/figures" "^1.0.8" - "@inquirer/type" "^3.0.1" - ansi-escapes "^4.3.2" - yoctocolors-cjs "^2.1.2" - -"@inquirer/confirm@5.0.2", "@inquirer/confirm@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.0.2.tgz#2b9dcf6b7da5f518c74abe4aeaf3173253d83c93" - integrity sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - -"@inquirer/core@^10.1.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.0.tgz#c5fdc34c4cafd7248da29a3c3b3120fe6e1c45be" - integrity sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ== - dependencies: - "@inquirer/figures" "^1.0.8" - "@inquirer/type" "^3.0.1" - ansi-escapes "^4.3.2" - cli-width "^4.1.0" - mute-stream "^2.0.0" - signal-exit "^4.1.0" - strip-ansi "^6.0.1" - wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" - -"@inquirer/editor@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.1.0.tgz#bc1a8bebe5897d4b44b0bfab1aeb1b5172f8d812" - integrity sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - external-editor "^3.1.0" - -"@inquirer/expand@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.2.tgz#7b5c332ad604d7d076e7052b8e5006a3b61c3274" - integrity sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - yoctocolors-cjs "^2.1.2" - -"@inquirer/figures@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.8.tgz#d9e414a1376a331a0e71b151fea27c48845788b0" - integrity sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg== - -"@inquirer/input@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.0.2.tgz#be77b79a1ed182444a6eef2d850309639aa9df22" - integrity sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - -"@inquirer/number@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.2.tgz#7e8315b41601d377cc09802b66f32b481e14fd68" - integrity sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - -"@inquirer/password@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.2.tgz#5913e2818b3de1ee6f63ec1b0891a43c1d4bdca9" - integrity sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - ansi-escapes "^4.3.2" - -"@inquirer/prompts@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.1.0.tgz#a55ee589c0eed0ca2ee0fbc7fc63f42f4c31a24e" - integrity sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA== - dependencies: - "@inquirer/checkbox" "^4.0.2" - "@inquirer/confirm" "^5.0.2" - "@inquirer/editor" "^4.1.0" - "@inquirer/expand" "^4.0.2" - "@inquirer/input" "^4.0.2" - "@inquirer/number" "^3.0.2" - "@inquirer/password" "^4.0.2" - "@inquirer/rawlist" "^4.0.2" - "@inquirer/search" "^3.0.2" - "@inquirer/select" "^4.0.2" - -"@inquirer/rawlist@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.2.tgz#78a58294505bed2a5e133153340f187967916702" - integrity sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/type" "^3.0.1" - yoctocolors-cjs "^2.1.2" - -"@inquirer/search@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.2.tgz#71fccc766045f2ec37afc402d72ce31838768281" - integrity sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/figures" "^1.0.8" - "@inquirer/type" "^3.0.1" - yoctocolors-cjs "^2.1.2" - -"@inquirer/select@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.2.tgz#c38ef154524a6859de4a1af11a90ad3f9638c9f2" - integrity sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg== - dependencies: - "@inquirer/core" "^10.1.0" - "@inquirer/figures" "^1.0.8" - "@inquirer/type" "^3.0.1" - ansi-escapes "^4.3.2" - yoctocolors-cjs "^2.1.2" - -"@inquirer/type@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.5.tgz#303ea04ce7ad2e585b921b662b3be36ef7b4f09b" - integrity sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== - dependencies: - mute-stream "^1.0.0" - -"@inquirer/type@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.1.tgz#619ce9f65c3e114d8e39c41822bed3440d20b478" - integrity sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@isaacs/fs-minipass@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" - integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== - dependencies: - minipass "^7.0.4" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jsonjoy.com/base64@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz#33ca57ee29d12feef540f2139225597469dec894" - integrity sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c" - integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA== - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" - integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== - -"@lezer/common@^1.0.0", "@lezer/common@^1.0.2", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.2.1": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd" - integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== - -"@lezer/cpp@^1.0.0": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@lezer/cpp/-/cpp-1.1.2.tgz#1db93b09e011e8a7a08c347c9d5b7749971253bf" - integrity sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/css@^1.1.0", "@lezer/css@^1.1.7": - version "1.1.9" - resolved "https://registry.yarnpkg.com/@lezer/css/-/css-1.1.9.tgz#404563d361422c5a1fe917295f1527ee94845ed1" - integrity sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/go@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@lezer/go/-/go-1.0.0.tgz#26cd2463f8583e630f52e714dca6d7420c5f7d7e" - integrity sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b" - integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA== - dependencies: - "@lezer/common" "^1.0.0" - -"@lezer/html@^1.3.0": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@lezer/html/-/html-1.3.10.tgz#1be9a029a6fe835c823b20a98a449a630416b2af" - integrity sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/java@^1.0.0": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@lezer/java/-/java-1.1.3.tgz#9efd6a29b4142d07f211076a6fb5e8061c85e147" - integrity sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/javascript@^1.0.0": - version "1.4.21" - resolved "https://registry.yarnpkg.com/@lezer/javascript/-/javascript-1.4.21.tgz#8ebf7d1f891c70e3d00864f5a03ac42c75d19492" - integrity sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.1.3" - "@lezer/lr" "^1.3.0" - -"@lezer/json@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.2.tgz#bdc849e174113e2d9a569a5e6fb1a27e2f703eaf" - integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/lr@^1.0.0", "@lezer/lr@^1.1.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.3.1", "@lezer/lr@^1.3.3", "@lezer/lr@^1.4.0": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" - integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== - dependencies: - "@lezer/common" "^1.0.0" - -"@lezer/markdown@^1.0.0": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@lezer/markdown/-/markdown-1.3.2.tgz#9d648b2a6cb47523f3d7ab494eee8c7be4f1ea9e" - integrity sha512-Wu7B6VnrKTbBEohqa63h5vxXjiC4pO5ZQJ/TDbhJxPQaaIoRD/6UVDhSDtVsCwVZV12vvN9KxuLL3ATMnlG0oQ== - dependencies: - "@lezer/common" "^1.0.0" - "@lezer/highlight" "^1.0.0" - -"@lezer/php@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@lezer/php/-/php-1.0.2.tgz#7c291631fc1e7f7efe99977522bc48bdc732658a" - integrity sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.1.0" - -"@lezer/python@^1.1.4": - version "1.1.15" - resolved "https://registry.yarnpkg.com/@lezer/python/-/python-1.1.15.tgz#14a21b3bf1997d1b578f0bb959bf2062641798a2" - integrity sha512-aVQ43m2zk4FZYedCqL0KHPEUsqZOrmAvRhkhHlVPnDD1HODDyyQv5BRIuod4DadkgBEZd53vQOtXTonNbEgjrQ== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/rust@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@lezer/rust/-/rust-1.0.2.tgz#cc9a75605d67182a0e799ac40b1965a61dcc6ef0" - integrity sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/sass@^1.0.0": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@lezer/sass/-/sass-1.0.7.tgz#e90066b1d386eee6160edc88a39293844e4ba106" - integrity sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/xml@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@lezer/xml/-/xml-1.0.5.tgz#4bb7fd3e527f41b78372477aa753f035b41c3846" - integrity sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.0.0" - -"@lezer/yaml@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@lezer/yaml/-/yaml-1.0.3.tgz#b23770ab42b390056da6b187d861b998fd60b1ff" - integrity sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA== - dependencies: - "@lezer/common" "^1.2.0" - "@lezer/highlight" "^1.0.0" - "@lezer/lr" "^1.4.0" - -"@listr2/prompt-adapter-inquirer@2.0.18": - version "2.0.18" - resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz#f1bff90f201269914023b17cb383c8febd6287f2" - integrity sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q== - dependencies: - "@inquirer/type" "^1.5.5" - -"@lmdb/lmdb-darwin-arm64@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz#72d229714c0eb66ce0b235bea1ff62f68e762407" - integrity sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA== - -"@lmdb/lmdb-darwin-x64@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz#e9fa7e7e915cca533e9cec79d68c0309e49594d2" - integrity sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw== - -"@lmdb/lmdb-linux-arm64@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz#ca7ff0df918edb65c91330e16e81076cd85edaff" - integrity sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ== - -"@lmdb/lmdb-linux-arm@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz#94dbd35ce8faa0810b6e7babbfb4f505bd80b2a3" - integrity sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg== - -"@lmdb/lmdb-linux-x64@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz#0aa94acf4ef029690569119c1f811bebe9d3d8f9" - integrity sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw== - -"@lmdb/lmdb-win32-x64@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz#d748edd97f62cace4f716395cc1b8807616ecdae" - integrity sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA== - -"@mermaid-js/parser@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.3.0.tgz#7a28714599f692f93df130b299fa1aadc9f9c8ab" - integrity sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA== - dependencies: - langium "3.0.0" - -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11" - integrity sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw== - -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz#33677a275204898ad8acbf62734fc4dc0b6a4855" - integrity sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw== - -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz#19edf7cdc2e7063ee328403c1d895a86dd28f4bb" - integrity sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg== - -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz#94fb0543ba2e28766c3fc439cabbe0440ae70159" - integrity sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw== - -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz#4a0609ab5fe44d07c9c60a11e4484d3c38bbd6e3" - integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg== - -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242" - integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ== - -"@napi-rs/nice-android-arm-eabi@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz#9a0cba12706ff56500df127d6f4caf28ddb94936" - integrity sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w== - -"@napi-rs/nice-android-arm64@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz#32fc32e9649bd759d2a39ad745e95766f6759d2f" - integrity sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA== - -"@napi-rs/nice-darwin-arm64@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz#d3c44c51b94b25a82d45803e2255891e833e787b" - integrity sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA== - -"@napi-rs/nice-darwin-x64@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz#f1b1365a8370c6a6957e90085a9b4873d0e6a957" - integrity sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ== - -"@napi-rs/nice-freebsd-x64@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz#4280f081efbe0b46c5165fdaea8b286e55a8f89e" - integrity sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw== - -"@napi-rs/nice-linux-arm-gnueabihf@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz#07aec23a9467ed35eb7602af5e63d42c5d7bd473" - integrity sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q== - -"@napi-rs/nice-linux-arm64-gnu@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz#038a77134cc6df3c48059d5a5e199d6f50fb9a90" - integrity sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA== - -"@napi-rs/nice-linux-arm64-musl@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz#715d0906582ba0cff025109f42e5b84ea68c2bcc" - integrity sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw== - -"@napi-rs/nice-linux-ppc64-gnu@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz#ac1c8f781c67b0559fa7a1cd4ae3ca2299dc3d06" - integrity sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q== - -"@napi-rs/nice-linux-riscv64-gnu@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz#b0a430549acfd3920ffd28ce544e2fe17833d263" - integrity sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig== - -"@napi-rs/nice-linux-s390x-gnu@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz#5b95caf411ad72a965885217db378c4d09733e97" - integrity sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg== - -"@napi-rs/nice-linux-x64-gnu@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz#a98cdef517549f8c17a83f0236a69418a90e77b7" - integrity sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA== - -"@napi-rs/nice-linux-x64-musl@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz#5e26843eafa940138aed437c870cca751c8a8957" - integrity sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ== - -"@napi-rs/nice-win32-arm64-msvc@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz#bd62617d02f04aa30ab1e9081363856715f84cd8" - integrity sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg== - -"@napi-rs/nice-win32-ia32-msvc@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz#b8b7aad552a24836027473d9b9f16edaeabecf18" - integrity sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw== - -"@napi-rs/nice-win32-x64-msvc@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz#37d8718b8f722f49067713e9f1e85540c9a3dd09" - integrity sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg== - -"@napi-rs/nice@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@napi-rs/nice/-/nice-1.0.1.tgz#483d3ff31e5661829a1efb4825591a135c3bfa7d" - integrity sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ== - optionalDependencies: - "@napi-rs/nice-android-arm-eabi" "1.0.1" - "@napi-rs/nice-android-arm64" "1.0.1" - "@napi-rs/nice-darwin-arm64" "1.0.1" - "@napi-rs/nice-darwin-x64" "1.0.1" - "@napi-rs/nice-freebsd-x64" "1.0.1" - "@napi-rs/nice-linux-arm-gnueabihf" "1.0.1" - "@napi-rs/nice-linux-arm64-gnu" "1.0.1" - "@napi-rs/nice-linux-arm64-musl" "1.0.1" - "@napi-rs/nice-linux-ppc64-gnu" "1.0.1" - "@napi-rs/nice-linux-riscv64-gnu" "1.0.1" - "@napi-rs/nice-linux-s390x-gnu" "1.0.1" - "@napi-rs/nice-linux-x64-gnu" "1.0.1" - "@napi-rs/nice-linux-x64-musl" "1.0.1" - "@napi-rs/nice-win32-arm64-msvc" "1.0.1" - "@napi-rs/nice-win32-ia32-msvc" "1.0.1" - "@napi-rs/nice-win32-x64-msvc" "1.0.1" - -"@ngtools/webpack@19.0.4": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-19.0.4.tgz#4084b797cf211718a716256287ee1fd029f919d3" - integrity sha512-N3WCbQz5ipdAZoSWHNf81RLET6+isq35+GZu9u0StpFtJCpXAmRRAv4vdMUYL7DLOzRmvEgwww6Rd5AwGeLFSw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@nolyfill/is-core-module@1.0.39": - version "1.0.39" - resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" - integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== - -"@npmcli/agent@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-3.0.0.tgz#1685b1fbd4a1b7bb4f930cbb68ce801edfe7aa44" - integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== - dependencies: - agent-base "^7.1.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.1" - lru-cache "^10.0.1" - socks-proxy-agent "^8.0.3" - -"@npmcli/fs@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-4.0.0.tgz#a1eb1aeddefd2a4a347eca0fab30bc62c0e1c0f2" - integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== - dependencies: - semver "^7.3.5" - -"@npmcli/git@^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-6.0.1.tgz#9ee894a35c2082d0b41883e267ff140aece457d5" - integrity sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw== - dependencies: - "@npmcli/promise-spawn" "^8.0.0" - ini "^5.0.0" - lru-cache "^10.0.1" - npm-pick-manifest "^10.0.0" - proc-log "^5.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^5.0.0" - -"@npmcli/installed-package-contents@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz#2c1170ff4f70f68af125e2842e1853a93223e4d1" - integrity sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q== - dependencies: - npm-bundled "^4.0.0" - npm-normalize-package-bin "^4.0.0" - -"@npmcli/node-gyp@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz#01f900bae62f0f27f9a5a127b40d443ddfb9d4c6" - integrity sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA== - -"@npmcli/package-json@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-6.1.0.tgz#34f0875da178b04df1a7746c02bdc26479819afb" - integrity sha512-t6G+6ZInT4X+tqj2i+wlLIeCKnKOTuz9/VFYDtj+TGTur5q7sp/OYrQA19LdBbWfXDOi0Y4jtedV6xtB8zQ9ug== - dependencies: - "@npmcli/git" "^6.0.0" - glob "^10.2.2" - hosted-git-info "^8.0.0" - json-parse-even-better-errors "^4.0.0" - normalize-package-data "^7.0.0" - proc-log "^5.0.0" - semver "^7.5.3" - -"@npmcli/promise-spawn@^8.0.0": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz#053688f8bc2b4ecc036d2d52c691fd82af58ea5e" - integrity sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ== - dependencies: - which "^5.0.0" - -"@npmcli/redact@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-3.0.0.tgz#ab3b6413355be7f3c02e87c36c2b0c2f9773fce4" - integrity sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ== - -"@npmcli/run-script@^9.0.0": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-9.0.2.tgz#621f993d59bae770104a5b655a38c6579d5ce6be" - integrity sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw== - dependencies: - "@npmcli/node-gyp" "^4.0.0" - "@npmcli/package-json" "^6.0.0" - "@npmcli/promise-spawn" "^8.0.0" - node-gyp "^11.0.0" - proc-log "^5.0.0" - which "^5.0.0" - -"@parcel/watcher-android-arm64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz#e32d3dda6647791ee930556aee206fcd5ea0fb7a" - integrity sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ== - -"@parcel/watcher-darwin-arm64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz#0d9e680b7e9ec1c8f54944f1b945aa8755afb12f" - integrity sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw== - -"@parcel/watcher-darwin-x64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz#f9f1d5ce9d5878d344f14ef1856b7a830c59d1bb" - integrity sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA== - -"@parcel/watcher-freebsd-x64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz#2b77f0c82d19e84ff4c21de6da7f7d096b1a7e82" - integrity sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw== - -"@parcel/watcher-linux-arm-glibc@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz#92ed322c56dbafa3d2545dcf2803334aee131e42" - integrity sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA== - -"@parcel/watcher-linux-arm-musl@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz#cd48e9bfde0cdbbd2ecd9accfc52967e22f849a4" - integrity sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA== - -"@parcel/watcher-linux-arm64-glibc@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz#7b81f6d5a442bb89fbabaf6c13573e94a46feb03" - integrity sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA== - -"@parcel/watcher-linux-arm64-musl@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz#dcb8ff01077cdf59a18d9e0a4dff7a0cfe5fd732" - integrity sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q== - -"@parcel/watcher-linux-x64-glibc@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz#2e254600fda4e32d83942384d1106e1eed84494d" - integrity sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw== - -"@parcel/watcher-linux-x64-musl@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz#01fcea60fedbb3225af808d3f0a7b11229792eef" - integrity sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA== - -"@parcel/watcher-win32-arm64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz#87cdb16e0783e770197e52fb1dc027bb0c847154" - integrity sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig== - -"@parcel/watcher-win32-ia32@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz#778c39b56da33e045ba21c678c31a9f9d7c6b220" - integrity sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA== - -"@parcel/watcher-win32-x64@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz#33873876d0bbc588aacce38e90d1d7480ce81cb7" - integrity sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw== - -"@parcel/watcher@^2.4.1": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.0.tgz#5c88818b12b8de4307a9d3e6dc3e28eba0dfbd10" - integrity sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.0" - "@parcel/watcher-darwin-arm64" "2.5.0" - "@parcel/watcher-darwin-x64" "2.5.0" - "@parcel/watcher-freebsd-x64" "2.5.0" - "@parcel/watcher-linux-arm-glibc" "2.5.0" - "@parcel/watcher-linux-arm-musl" "2.5.0" - "@parcel/watcher-linux-arm64-glibc" "2.5.0" - "@parcel/watcher-linux-arm64-musl" "2.5.0" - "@parcel/watcher-linux-x64-glibc" "2.5.0" - "@parcel/watcher-linux-x64-musl" "2.5.0" - "@parcel/watcher-win32-arm64" "2.5.0" - "@parcel/watcher-win32-ia32" "2.5.0" - "@parcel/watcher-win32-x64" "2.5.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@rollup/plugin-json@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz#fbe784e29682e9bb6dee28ea75a1a83702e7b805" - integrity sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== - dependencies: - "@rollup/pluginutils" "^5.1.0" - -"@rollup/pluginutils@^5.1.0": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf" - integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^4.0.2" - -"@rollup/rollup-android-arm-eabi@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz#f221c519a6efb5d3652bff32351522e0fb98e392" - integrity sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ== - -"@rollup/rollup-android-arm-eabi@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz#7f4c4d8cd5ccab6e95d6750dbe00321c1f30791e" - integrity sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ== - -"@rollup/rollup-android-arm64@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz#196a2379d81011422fe1128e512a8811605ede16" - integrity sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ== - -"@rollup/rollup-android-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz#17ea71695fb1518c2c324badbe431a0bd1879f2d" - integrity sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA== - -"@rollup/rollup-darwin-arm64@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz#0c83e5f25adae7f0543ac29a0ebd485a0e7cd3e4" - integrity sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw== - -"@rollup/rollup-darwin-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz#dac0f0d0cfa73e7d5225ae6d303c13c8979e7999" - integrity sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ== - -"@rollup/rollup-darwin-x64@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz#8131b174ca8cec04e2041e42eb8382afe31095c8" - integrity sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA== - -"@rollup/rollup-darwin-x64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz#8f63baa1d31784904a380d2e293fa1ddf53dd4a2" - integrity sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ== - -"@rollup/rollup-freebsd-arm64@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz#550a0ebf5bea6ceee79dc2f75a0bcef7d660de2c" - integrity sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg== - -"@rollup/rollup-freebsd-arm64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz#30ed247e0df6e8858cdc6ae4090e12dbeb8ce946" - integrity sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA== - -"@rollup/rollup-freebsd-x64@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz#51ca2e6d9ce72e63d5201607651732e5300a6f81" - integrity sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg== - -"@rollup/rollup-freebsd-x64@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz#57846f382fddbb508412ae07855b8a04c8f56282" - integrity sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz#ae71d6aa81e702c4efb72c1a67a6a4e790267a1b" - integrity sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA== - -"@rollup/rollup-linux-arm-gnueabihf@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz#378ca666c9dae5e6f94d1d351e7497c176e9b6df" - integrity sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA== - -"@rollup/rollup-linux-arm-musleabihf@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz#6aa7baa5c39c095fa5f9804e283e126697e0342a" - integrity sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg== - -"@rollup/rollup-linux-arm-musleabihf@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz#a692eff3bab330d5c33a5d5813a090c15374cddb" - integrity sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg== - -"@rollup/rollup-linux-arm64-gnu@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz#2b06e147ca68c7729ca38e5c7a514d1b00f4d151" - integrity sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ== - -"@rollup/rollup-linux-arm64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz#6b1719b76088da5ac1ae1feccf48c5926b9e3db9" - integrity sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA== - -"@rollup/rollup-linux-arm64-musl@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz#70f8cacb255800e4cad41bdbe447432354288909" - integrity sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q== - -"@rollup/rollup-linux-arm64-musl@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz#865baf5b6f5ff67acb32e5a359508828e8dc5788" - integrity sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A== - -"@rollup/rollup-linux-loongarch64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz#23c6609ba0f7fa7a7f2038b6b6a08555a5055a87" - integrity sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz#21aed3ef42518b7fe33f4037a14b0939a071cf75" - integrity sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw== - -"@rollup/rollup-linux-powerpc64le-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz#652ef0d9334a9f25b9daf85731242801cb0fc41c" - integrity sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A== - -"@rollup/rollup-linux-riscv64-gnu@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz#fe27eb8cbd3a6e0706459781c2463b624f785696" - integrity sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew== - -"@rollup/rollup-linux-riscv64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz#1eb6651839ee6ebca64d6cc64febbd299e95e6bd" - integrity sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA== - -"@rollup/rollup-linux-s390x-gnu@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz#80289a528dd333b0e277efd93bfa8e2cdd27e5eb" - integrity sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ== - -"@rollup/rollup-linux-s390x-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz#015c52293afb3ff2a293cf0936b1d43975c1e9cd" - integrity sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg== - -"@rollup/rollup-linux-x64-gnu@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz#9909570be5cb738c23858c94308d37dde363eb7e" - integrity sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA== - -"@rollup/rollup-linux-x64-gnu@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz#b83001b5abed2bcb5e2dbeec6a7e69b194235c1e" - integrity sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw== - -"@rollup/rollup-linux-x64-musl@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz#371315e032497f7a46f64b4ebcd207313b7f6669" - integrity sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg== - -"@rollup/rollup-linux-x64-musl@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz#6cc7c84cd4563737f8593e66f33b57d8e228805b" - integrity sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g== - -"@rollup/rollup-win32-arm64-msvc@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz#f4b4e0747710ba287eb2e2a011538ee2ed7f74d3" - integrity sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ== - -"@rollup/rollup-win32-arm64-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz#631ffeee094d71279fcd1fe8072bdcf25311bc11" - integrity sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A== - -"@rollup/rollup-win32-ia32-msvc@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz#2eeabbc99342dafe04613a76c441be4ebcca49c3" - integrity sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg== - -"@rollup/rollup-win32-ia32-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz#06d1d60d5b9f718e8a6c4a43f82e3f9e3254587f" - integrity sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA== - -"@rollup/rollup-win32-x64-msvc@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz#a3ae3da434a4ba0785312e963ae4c1239470403a" - integrity sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag== - -"@rollup/rollup-win32-x64-msvc@4.28.1": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz#4dff5c4259ebe6c5b4a8f2c5bc3829b7a8447ff0" - integrity sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA== - -"@rollup/wasm-node@^4.24.0": - version "4.28.1" - resolved "https://registry.yarnpkg.com/@rollup/wasm-node/-/wasm-node-4.28.1.tgz#e3f1067e2f83cd3dac0747fd817f89d0f7be8d5f" - integrity sha512-t4ckEC09V3wbe0r6T4fGjq85lEbvGcGxn7QYYgjHyKNzZaQU5kFqr4FsavXYHRiVNYq8m+dRhdGjpfcC9UzzPg== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - fsevents "~2.3.2" - -"@rtsao/scc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" - integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== - -"@schematics/angular@19.0.4": - version "19.0.4" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-19.0.4.tgz#24ee669714012f1062b29364d6316d4e0d23a9f8" - integrity sha512-1fXBtkA/AjgMPxHLpGlw7NuT/wggCqAwBAmDnSiRnBBV7Pgs/tHorLgh7A9eoUi3c8CYCuAh8zqWNyjBGGigOQ== - dependencies: - "@angular-devkit/core" "19.0.4" - "@angular-devkit/schematics" "19.0.4" - jsonc-parser "3.3.1" - -"@sigstore/bundle@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-3.0.0.tgz#ffffc750436c6eb8330ead1ca65bc892f893a7c5" - integrity sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - -"@sigstore/core@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-2.0.0.tgz#f888a8e4c8fdaa27848514a281920b6fd8eca955" - integrity sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg== - -"@sigstore/protobuf-specs@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" - integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== - -"@sigstore/sign@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-3.0.0.tgz#70752aaa54dfeafa0b0fbe1f58ebe9fe3d621f8f" - integrity sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - make-fetch-happen "^14.0.1" - proc-log "^5.0.0" - promise-retry "^2.0.1" - -"@sigstore/tuf@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-3.0.0.tgz#5f657e3052e93cb09e1735ee7f52b7938351278d" - integrity sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - tuf-js "^3.0.1" - -"@sigstore/verify@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-2.0.0.tgz#4ad96e9234b71b57622c3c446b63bad805351030" - integrity sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - -"@sindresorhus/merge-streams@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" - integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== - -"@socket.io/component-emitter@~3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" - integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== - -"@tufjs/canonical-json@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" - integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== - -"@tufjs/models@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-3.0.1.tgz#5aebb782ebb9e06f071ae7831c1f35b462b0319c" - integrity sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA== - dependencies: - "@tufjs/canonical-json" "2.0.0" - minimatch "^9.0.5" - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.5.4": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/cors@^2.8.12": - version "2.8.17" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" - integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== - dependencies: - "@types/node" "*" - -"@types/d3-array@*": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" - integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== - -"@types/d3-axis@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" - integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-brush@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" - integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-chord@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" - integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== - -"@types/d3-color@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" - integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== - -"@types/d3-contour@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" - integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== - dependencies: - "@types/d3-array" "*" - "@types/geojson" "*" - -"@types/d3-delaunay@*": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" - integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== - -"@types/d3-dispatch@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" - integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== - -"@types/d3-drag@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" - integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-dsv@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" - integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== - -"@types/d3-ease@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" - integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== - -"@types/d3-fetch@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" - integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@*": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" - integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== - -"@types/d3-format@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" - integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== - -"@types/d3-geo@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" - integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@*": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" - integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== - -"@types/d3-interpolate@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" - integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" - integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== - -"@types/d3-polygon@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" - integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== - -"@types/d3-quadtree@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" - integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== - -"@types/d3-random@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" - integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== - -"@types/d3-scale-chromatic@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" - integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== - -"@types/d3-scale@*": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" - integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== - dependencies: - "@types/d3-time" "*" - -"@types/d3-selection@*": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.11.tgz#bd7a45fc0a8c3167a631675e61bc2ca2b058d4a3" - integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== - -"@types/d3-shape@*": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" - integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time-format@*": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" - integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== - -"@types/d3-time@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" - integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== - -"@types/d3-timer@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" - integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== - -"@types/d3-transition@*": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" - integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-zoom@*": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" - integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== - dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" - -"@types/d3@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" - integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== - dependencies: - "@types/d3-array" "*" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@types/d3-delaunay" "*" - "@types/d3-dispatch" "*" - "@types/d3-drag" "*" - "@types/d3-dsv" "*" - "@types/d3-ease" "*" - "@types/d3-fetch" "*" - "@types/d3-force" "*" - "@types/d3-format" "*" - "@types/d3-geo" "*" - "@types/d3-hierarchy" "*" - "@types/d3-interpolate" "*" - "@types/d3-path" "*" - "@types/d3-polygon" "*" - "@types/d3-quadtree" "*" - "@types/d3-random" "*" - "@types/d3-scale" "*" - "@types/d3-scale-chromatic" "*" - "@types/d3-selection" "*" - "@types/d3-shape" "*" - "@types/d3-time" "*" - "@types/d3-time-format" "*" - "@types/d3-timer" "*" - "@types/d3-transition" "*" - "@types/d3-zoom" "*" - -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz#812d2871e5eea17fb0bd5214dda7a7b748c0e12a" - integrity sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.0.tgz#13a7d1f75295e90d19ed6e74cab3678488eaa96c" - integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^5.0.0" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/express@^4.17.21": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/geojson@*": - version "7946.0.15" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.15.tgz#f9d55fd5a0aa2de9dc80b1b04e437538b7298868" - integrity sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA== - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/http-proxy@^1.17.15", "@types/http-proxy@^1.17.8": - version "1.17.15" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.15.tgz#12118141ce9775a6499ecb4c01d02f90fc839d36" - integrity sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ== - dependencies: - "@types/node" "*" - -"@types/jasmine@~5.1.4": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-5.1.5.tgz#bba343c504f48e596837415f0558e10b8a0e5f7d" - integrity sha512-SaCZ3kM5NjOiJqMRYwHpLbTfUC2Dyk1KS3QanNFsUYPGTk70CWVK/J9ueun6zNhw/UkgV7xl8V4ZLQZNRbfnNw== - -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@>=10.0.0", "@types/node@^22.10.1": - version "22.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.1.tgz#41ffeee127b8975a05f8c4f83fb89bcb2987d766" - integrity sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ== - dependencies: - undici-types "~6.20.0" - -"@types/qs@*": - version "6.9.17" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.17.tgz#fc560f60946d0aeff2f914eb41679659d3310e1a" - integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.4": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.15.5": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== - dependencies: - "@types/http-errors" "*" - "@types/node" "*" - "@types/send" "*" - -"@types/sockjs@^0.3.36": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/trusted-types@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" - integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== - -"@types/ws@^8.5.10": - version "8.5.13" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" - integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@8.17.0", "@typescript-eslint/eslint-plugin@^8.16.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz#2ee073c421f4e81e02d10e731241664b6253b23c" - integrity sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.17.0" - "@typescript-eslint/type-utils" "8.17.0" - "@typescript-eslint/utils" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - graphemer "^1.4.0" - ignore "^5.3.1" - natural-compare "^1.4.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/parser@8.17.0", "@typescript-eslint/parser@^8.16.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.17.0.tgz#2ee972bb12fa69ac625b85813dc8d9a5a053ff52" - integrity sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg== - dependencies: - "@typescript-eslint/scope-manager" "8.17.0" - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/typescript-estree" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz#a3f49bf3d4d27ff8d6b2ea099ba465ef4dbcaa3a" - integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg== - dependencies: - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - -"@typescript-eslint/type-utils@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz#d326569f498cdd0edf58d5bb6030b4ad914e63d3" - integrity sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw== - dependencies: - "@typescript-eslint/typescript-estree" "8.17.0" - "@typescript-eslint/utils" "8.17.0" - debug "^4.3.4" - ts-api-utils "^1.3.0" - -"@typescript-eslint/types@8.16.0": - version "8.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.16.0.tgz#49c92ae1b57942458ab83d9ec7ccab3005e64737" - integrity sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ== - -"@typescript-eslint/types@8.17.0", "@typescript-eslint/types@^8.0.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.17.0.tgz#ef84c709ef8324e766878834970bea9a7e3b72cf" - integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA== - -"@typescript-eslint/typescript-estree@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz#40b5903bc929b1e8dd9c77db3cb52cfb199a2a34" - integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw== - dependencies: - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/visitor-keys" "8.17.0" - debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/utils@8.17.0", "@typescript-eslint/utils@^8.0.0", "@typescript-eslint/utils@^8.16.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.17.0.tgz#41c05105a2b6ab7592f513d2eeb2c2c0236d8908" - integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.17.0" - "@typescript-eslint/types" "8.17.0" - "@typescript-eslint/typescript-estree" "8.17.0" - -"@typescript-eslint/visitor-keys@8.17.0": - version "8.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz#4dbcd0e28b9bf951f4293805bf34f98df45e1aa8" - integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg== - dependencies: - "@typescript-eslint/types" "8.17.0" - eslint-visitor-keys "^4.2.0" - -"@vitejs/plugin-basic-ssl@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz#8b840305a6b48e8764803435ec0c716fa27d3802" - integrity sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A== - -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/lockfile@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -abbrev@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" - integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== - -accepts@~1.3.4, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== - -adjust-sourcemap-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" - integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -aggregate-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" - integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== - dependencies: - clean-stack "^4.0.0" - indent-string "^5.0.0" - -ajv-formats@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" - integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== - dependencies: - ajv "^8.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@8.17.1, ajv@^8.0.0, ajv@^8.17.1, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -angular-eslint@^18.4.2: - version "18.4.3" - resolved "https://registry.yarnpkg.com/angular-eslint/-/angular-eslint-18.4.3.tgz#d149df075304af9d4f57661c6886b0e1135c2f2b" - integrity sha512-0ZjLzzADGRLUhZC8ZpwSo6CE/m6QhQB/oljMJ0mEfP+lB1sy1v8PBKNsJboIcfEEgGW669Z/efVQ3df88yJLYg== - dependencies: - "@angular-devkit/core" ">= 18.0.0 < 19.0.0" - "@angular-devkit/schematics" ">= 18.0.0 < 19.0.0" - "@angular-eslint/builder" "18.4.3" - "@angular-eslint/eslint-plugin" "18.4.3" - "@angular-eslint/eslint-plugin-template" "18.4.3" - "@angular-eslint/schematics" "18.4.3" - "@angular-eslint/template-parser" "18.4.3" - "@typescript-eslint/types" "^8.0.0" - "@typescript-eslint/utils" "^8.0.0" - -ansi-colors@4.1.3, ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-escapes@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" - integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== - dependencies: - environment "^1.0.0" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" - integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== - -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" - -array.prototype.findlastindex@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" - integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -arrify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc" - integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw== - -autoprefixer@10.4.20: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== - dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" - fraction.js "^4.3.7" - normalize-range "^0.1.2" - picocolors "^1.0.1" - postcss-value-parser "^4.2.0" - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -axobject-query@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" - integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== - -babel-loader@9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" - integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== - dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" - -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.12" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" - integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.3" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" - -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" - integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0, base64id@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -beasties@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/beasties/-/beasties-0.1.0.tgz#f8f8ba22ff79c86f4dcebe50527cefdf9f0d52c4" - integrity sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw== - dependencies: - css-select "^5.1.0" - css-what "^6.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - htmlparser2 "^9.0.0" - picocolors "^1.1.1" - postcss "^8.4.47" - postcss-media-query-parser "^0.2.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -body-parser@1.20.3, body-parser@^1.19.0: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.21.5, browserslist@^4.22.1, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.2: - version "4.24.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== - dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" - update-browserslist-db "^1.1.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacache@^19.0.0, cacache@^19.0.1: - version "19.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-19.0.1.tgz#3370cc28a758434c85c2585008bd5bdcff17d6cd" - integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== - dependencies: - "@npmcli/fs" "^4.0.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^10.0.1" - minipass "^7.0.3" - minipass-collect "^2.0.1" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^7.0.2" - ssri "^12.0.0" - tar "^7.4.3" - unique-filename "^4.0.0" - -call-bind-apply-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz#33127b42608972f76812a501d69db5d8ce404979" - integrity sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669: - version "1.0.30001687" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" - integrity sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ== - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chevrotain-allstar@~0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz#b7412755f5d83cc139ab65810cdb00d8db40e6ca" - integrity sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw== - dependencies: - lodash-es "^4.17.21" - -chevrotain@~11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-11.0.3.tgz#88ffc1fb4b5739c715807eaeedbbf200e202fc1b" - integrity sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw== - dependencies: - "@chevrotain/cst-dts-gen" "11.0.3" - "@chevrotain/gast" "11.0.3" - "@chevrotain/regexp-to-ast" "11.0.3" - "@chevrotain/types" "11.0.3" - "@chevrotain/utils" "11.0.3" - lodash-es "4.17.21" - -chokidar@^3.5.1, chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^4.0.0, chokidar@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" - integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== - dependencies: - readdirp "^4.0.1" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chownr@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" - integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== - -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -clean-stack@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" - integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== - dependencies: - escape-string-regexp "5.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -cli-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" - integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== - -clipboard@^2.0.11: - version "2.0.11" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" - integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -codemirror@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29" - integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== - dependencies: - "@codemirror/autocomplete" "^6.0.0" - "@codemirror/commands" "^6.0.0" - "@codemirror/language" "^6.0.0" - "@codemirror/lint" "^6.0.0" - "@codemirror/search" "^6.0.0" - "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.10, colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -commander@7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^2.15.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compressible@~2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" - integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== - dependencies: - bytes "3.1.2" - compressible "~2.0.18" - debug "2.6.9" - negotiator "~0.6.4" - on-headers "~1.0.2" - safe-buffer "5.2.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -connect@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== - -cookie@~0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" - integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== - -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" - -copy-webpack-plugin@12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz#935e57b8e6183c82f95bd937df658a59f6a2da28" - integrity sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA== - dependencies: - fast-glob "^3.3.2" - glob-parent "^6.0.1" - globby "^14.0.0" - normalize-path "^3.0.0" - schema-utils "^4.2.0" - serialize-javascript "^6.0.2" - -core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.39.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61" - integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== - dependencies: - browserslist "^4.24.2" - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@~2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cose-base@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" - integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== - dependencies: - layout-base "^1.0.0" - -cose-base@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" - integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== - dependencies: - layout-base "^2.0.0" - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -cp-file@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-10.0.0.tgz#bbae9ecb9f505951b862880d2901e1f56de7a4dc" - integrity sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg== - dependencies: - graceful-fs "^4.2.10" - nested-error-stacks "^2.1.1" - p-event "^5.0.1" - -cpy-cli@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-5.0.0.tgz#facd60da2e98d9a830f93162f9769d2a86667a16" - integrity sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ== - dependencies: - cpy "^10.1.0" - meow "^12.0.1" - -cpy@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/cpy/-/cpy-10.1.0.tgz#85517387036b9be480f6424e54089261fc6f4bab" - integrity sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ== - dependencies: - arrify "^3.0.0" - cp-file "^10.0.0" - globby "^13.1.4" - junk "^4.0.1" - micromatch "^4.0.5" - nested-error-stacks "^2.1.1" - p-filter "^3.0.0" - p-map "^6.0.0" - -crelt@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" - integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== - -cross-spawn@^7.0.0, cross-spawn@^7.0.5: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-loader@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.2.tgz#64671541c6efe06b0e22e750503106bdd86880f8" - integrity sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.33" - postcss-modules-extract-imports "^3.1.0" - postcss-modules-local-by-default "^4.0.5" - postcss-modules-scope "^3.2.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.5.4" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== - -cytoscape-cose-bilkent@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" - integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== - dependencies: - cose-base "^1.0.0" - -cytoscape-fcose@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" - integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== - dependencies: - cose-base "^2.2.0" - -cytoscape@^3.29.2: - version "3.30.4" - resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.4.tgz#3404da0a159c00a1a3df2c85b2b43fdc66a0e28e" - integrity sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A== - -"d3-array@1 - 2": - version "2.12.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" - integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== - dependencies: - internmap "^1.0.0" - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== - dependencies: - internmap "1 - 2" - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== - dependencies: - d3-path "1 - 3" - -"d3-color@1 - 3", d3-color@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -d3-contour@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" - integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== - dependencies: - d3-array "^3.2.0" - -d3-delaunay@6: - version "6.0.4" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" - integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== - dependencies: - delaunator "5" - -"d3-dispatch@1 - 3", d3-dispatch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -"d3-drag@2 - 3", d3-drag@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" - integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== - dependencies: - d3-dispatch "1 - 3" - d3-selection "3" - -"d3-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -"d3-ease@1 - 3", d3-ease@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" - integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -d3-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-sankey@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" - integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== - dependencies: - d3-array "1 - 2" - d3-shape "^1.2.0" - -d3-scale-chromatic@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" - integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -"d3-selection@2 - 3", d3-selection@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" - integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== - -d3-shape@3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -d3-shape@^1.2.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -"d3-time-format@2 - 4", d3-time-format@4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -"d3-transition@2 - 3", d3-transition@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" - integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== - dependencies: - d3-color "1 - 3" - d3-dispatch "1 - 3" - d3-ease "1 - 3" - d3-interpolate "1 - 3" - d3-timer "1 - 3" - -d3-zoom@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "2 - 3" - d3-transition "2 - 3" - -d3@^7.9.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" - integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "4" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -dagre-d3-es@7.0.11: - version "7.0.11" - resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz#2237e726c0577bfe67d1a7cfd2265b9ab2c15c40" - integrity sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw== - dependencies: - d3 "^7.9.0" - lodash-es "^4.17.21" - -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -date-format@^4.0.14: - version "4.0.14" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" - integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== - -dayjs@^1.11.10: - version "1.11.13" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" - integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.6, debug@^4.3.7: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - -debug@^3.1.0, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delaunator@5: - version "5.0.1" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" - integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== - dependencies: - robust-predicates "^3.0.2" - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -dependency-graph@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-1.0.0.tgz#bb5e85aec1310bc13b22dbd76e3196c4ee4c10d2" - integrity sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-libc@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -dom-serialize@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -dompurify@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.2.tgz#6c0518745e81686c74a684f5af1e5613e7cc0246" - integrity sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw== - optionalDependencies: - "@types/trusted-types" "^2.0.7" - -domutils@^3.0.1, domutils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.5.41: - version "1.5.71" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz#d8b5dba1e55b320f2f4e9b1ca80738f53fcfec2b" - integrity sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA== - -emoji-regex@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" - integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emoji-toolkit@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/emoji-toolkit/-/emoji-toolkit-9.0.1.tgz#b3da51a4d9b1e89608b6a8506a5df6dbc3125495" - integrity sha512-sMMNqKNLVHXJfIKoPbrRJwtYuysVNC9GlKetr72zE3SSVbHqoeDLWVrxP0uM0AE0qvdl3hbUk+tJhhwXZrDHaw== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -engine.io-parser@~5.2.1: - version "5.2.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" - integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== - -engine.io@~6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.2.tgz#32bd845b4db708f8c774a4edef4e5c8a98b3da72" - integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw== - dependencies: - "@types/cookie" "^0.4.1" - "@types/cors" "^2.8.12" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.7.2" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.17.1" - -enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -ent@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.1.tgz#68dc99a002f115792c26239baedaaea9e70c0ca2" - integrity sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A== - dependencies: - punycode "^1.4.1" - -entities@^4.2.0, entities@^4.3.0, entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -env-paths@^2.2.0, env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -errno@^0.1.1: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.5: - version "1.23.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" - integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.3" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.3" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.2.1, es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^1.2.1: - version "1.5.4" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" - integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== - -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" - integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== - dependencies: - is-callable "^1.2.7" - is-date-object "^1.0.5" - is-symbol "^1.0.4" - -esbuild-wasm@0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz#99f44feb1dfccd25dbe7de1a26326ea1c7aca0d8" - integrity sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg== - -esbuild@0.24.0, esbuild@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" - integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== - optionalDependencies: - "@esbuild/aix-ppc64" "0.24.0" - "@esbuild/android-arm" "0.24.0" - "@esbuild/android-arm64" "0.24.0" - "@esbuild/android-x64" "0.24.0" - "@esbuild/darwin-arm64" "0.24.0" - "@esbuild/darwin-x64" "0.24.0" - "@esbuild/freebsd-arm64" "0.24.0" - "@esbuild/freebsd-x64" "0.24.0" - "@esbuild/linux-arm" "0.24.0" - "@esbuild/linux-arm64" "0.24.0" - "@esbuild/linux-ia32" "0.24.0" - "@esbuild/linux-loong64" "0.24.0" - "@esbuild/linux-mips64el" "0.24.0" - "@esbuild/linux-ppc64" "0.24.0" - "@esbuild/linux-riscv64" "0.24.0" - "@esbuild/linux-s390x" "0.24.0" - "@esbuild/linux-x64" "0.24.0" - "@esbuild/netbsd-x64" "0.24.0" - "@esbuild/openbsd-arm64" "0.24.0" - "@esbuild/openbsd-x64" "0.24.0" - "@esbuild/sunos-x64" "0.24.0" - "@esbuild/win32-arm64" "0.24.0" - "@esbuild/win32-ia32" "0.24.0" - "@esbuild/win32-x64" "0.24.0" - -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-formatter-checkstyle@^8.40.0: - version "8.40.0" - resolved "https://registry.yarnpkg.com/eslint-formatter-checkstyle/-/eslint-formatter-checkstyle-8.40.0.tgz#137c10a20542a1f8d59536959d5bb3379fcf3fec" - integrity sha512-OpYAiI2yejMPUlB1O2pkfyNfBQrKNWrMK6X2eOn2vg/q94roDiHnOYExK0isdNglKeaYHA5JtgmuBtokFdj0AA== - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@^3.6.3: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz#e69925936a771a9cb2de418ccebc4cdf6c0818aa" - integrity sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow== - dependencies: - "@nolyfill/is-core-module" "1.0.39" - debug "^4.3.7" - enhanced-resolve "^5.15.0" - fast-glob "^3.3.2" - get-tsconfig "^4.7.5" - is-bun-module "^1.0.2" - is-glob "^4.0.3" - stable-hash "^0.0.4" - -eslint-module-utils@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" - integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@^2.31.0: - version "2.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" - integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== - dependencies: - "@rtsao/scc" "^1.1.0" - array-includes "^3.1.8" - array.prototype.findlastindex "^1.2.5" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.12.0" - hasown "^2.0.2" - is-core-module "^2.15.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.8" - object.groupby "^1.0.3" - object.values "^1.2.0" - semver "^6.3.1" - string.prototype.trimend "^1.0.8" - tsconfig-paths "^3.15.0" - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^8.0.2, eslint-scope@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" - integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" - integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== - -eslint@^9.15.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" - integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.19.0" - "@eslint/core" "^0.9.0" - "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.16.0" - "@eslint/plugin-kit" "^0.2.3" - "@humanfs/node" "^0.16.6" - "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.1" - "@types/estree" "^1.0.6" - "@types/json-schema" "^7.0.15" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.5" - debug "^4.3.2" - escape-string-regexp "^4.0.0" - eslint-scope "^8.2.0" - eslint-visitor-keys "^4.2.0" - espree "^10.3.0" - esquery "^1.5.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^8.0.0" - find-up "^5.0.0" - glob-parent "^6.0.2" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - json-stable-stringify-without-jsonify "^1.0.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - -espree@^10.0.1, espree@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" - integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== - dependencies: - acorn "^8.14.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.0" - -esquery@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - -express@^4.19.2: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.12" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@3.3.2, fast-glob@^3.3.0, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" - integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - dependencies: - debug "2.6.9" - encodeurl "~2.0.0" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -flat-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" - integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.2.7, flatted@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" - integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== - -follow-redirects@^1.0.0: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-minipass@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" - integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== - dependencies: - minipass "^7.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" - integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== - -get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== - dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - -get-tsconfig@^4.7.5: - version "4.8.1" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" - integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== - dependencies: - resolve-pkg-maps "^1.0.0" - -github-slugger@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" - integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1, glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^10.2.2, glob@^10.3.10, glob@^10.3.7: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -glob@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.0.tgz#6031df0d7b65eaa1ccb9b29b5ced16cea658e77e" - integrity sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^4.0.1" - minimatch "^10.0.0" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^2.0.0" - -glob@^7.1.3, glob@^7.1.7: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - -globalthis@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -globby@^13.1.4: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - -globby@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.2.tgz#06554a54ccfe9264e5a9ff8eded46aa1e306482f" - integrity sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw== - dependencies: - "@sindresorhus/merge-streams" "^2.1.0" - fast-glob "^3.3.2" - ignore "^5.2.4" - path-type "^5.0.0" - slash "^5.1.0" - unicorn-magic "^0.1.0" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== - dependencies: - delegate "^3.1.2" - -gopd@^1.0.1, gopd@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -gumshoejs@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/gumshoejs/-/gumshoejs-5.1.2.tgz#82748afe83f3b76cbaef029e58322262f853b7d2" - integrity sha512-wIRdZGTNkWMP8dY3po8mtNYmCfiSva41LxXIEek2yEHceETpxRmO7DfW7aUbHsuucC9z2oDPu3alN3+00FUqlw== - -hachure-fill@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/hachure-fill/-/hachure-fill-0.5.2.tgz#d19bc4cc8750a5962b47fb1300557a85fcf934cc" - integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg== - -hammerjs@~2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.1.0.tgz#deb10494cbbe8809bce168a3b961f42969f5ed43" - integrity sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q== - dependencies: - call-bind "^1.0.7" - -has-symbols@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-8.0.2.tgz#5bd7d8b5395616e41cc0d6578381a32f669b14b2" - integrity sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg== - dependencies: - lru-cache "^10.0.1" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^2.4.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -htmlparser2@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" - integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.1.0" - entities "^4.5.0" - -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-agent@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" - integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - -http-proxy-middleware@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz#dc1313c75bd00d81e103823802551ee30130ebd1" - integrity sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg== - dependencies: - "@types/http-proxy" "^1.17.15" - debug "^4.3.6" - http-proxy "^1.18.1" - is-glob "^4.0.3" - is-plain-object "^5.0.0" - micromatch "^4.0.8" - -http-proxy-middleware@^2.0.3: - version "2.0.7" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" - integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-proxy-agent@7.0.5, https-proxy-agent@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== - dependencies: - agent-base "^7.0.2" - debug "4" - -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-walk@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-7.0.0.tgz#8350e475cf4375969c12eb49618b3fd9cca6704f" - integrity sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ== - dependencies: - minimatch "^9.0.0" - -ignore@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" - integrity sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A== - -ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== - -immutable@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.0.3.tgz#aa037e2313ea7b5d400cd9298fa14e404c933db1" - integrity sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw== - -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@5.0.0, ini@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-5.0.0.tgz#a7a4615339843d9a8ccc2d85c9d81cf93ffbc638" - integrity sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw== - -injection-js@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" - integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== - dependencies: - tslib "^2.0.0" - -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -internmap@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" - integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== - -ip-address@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" - integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== - dependencies: - jsbn "1.1.0" - sprintf-js "^1.1.3" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== - dependencies: - has-tostringtag "^1.0.0" - -is-bigint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" - integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== - dependencies: - has-bigints "^1.0.2" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.0.tgz#9743641e80a62c094b5941c5bb791d66a88e497a" - integrity sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw== - dependencies: - call-bind "^1.0.7" - has-tostringtag "^1.0.2" - -is-bun-module@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.3.0.tgz#ea4d24fdebfcecc98e81bcbcb506827fee288760" - integrity sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA== - dependencies: - semver "^7.6.3" - -is-callable@^1.1.3, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0, is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== - dependencies: - is-typed-array "^1.1.13" - -is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" - integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== - dependencies: - call-bind "^1.0.7" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== - dependencies: - get-east-asian-width "^1.0.0" - -is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" - integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-network-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" - integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== - -is-number-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.0.tgz#5a867e9ecc3d294dda740d9f127835857af7eb05" - integrity sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw== - dependencies: - call-bind "^1.0.7" - has-tostringtag "^1.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-regex@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.0.tgz#41b9d266e7eb7451312c64efc37e8a7d453077cf" - integrity sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA== - dependencies: - call-bind "^1.0.7" - gopd "^1.1.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-set@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" - integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== - -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - -is-string@^1.0.7, is-string@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.0.tgz#8cb83c5d57311bf8058bc6c8db294711641da45d" - integrity sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g== - dependencies: - call-bind "^1.0.7" - has-tostringtag "^1.0.2" - -is-symbol@^1.0.4, is-symbol@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.0.tgz#ae993830a56d4781886d39f9f0a46b3e89b7b60b" - integrity sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A== - dependencies: - call-bind "^1.0.7" - has-symbols "^1.0.3" - safe-regex-test "^1.0.3" - -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-weakmap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" - integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isbinaryfile@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" - integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isexe@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" - integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.5: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jackspeak@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.2.tgz#11f9468a3730c6ff6f56823a820d7e3be9bef015" - integrity sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== - dependencies: - "@isaacs/cliui" "^8.0.2" - -jasmine-core@^4.1.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.6.1.tgz#5ebb8afa07282078f8d7b15871737a83b74e58f2" - integrity sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ== - -jasmine-core@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-5.4.0.tgz#86c5610dfa0804d7d2791f556a5e704fbcb85b2a" - integrity sha512-T4fio3W++llLd7LGSGsioriDHgWyhoL6YTu4k37uwJLF7DzOzspz7mNxRoM3cQdLWtL/ebazQpIf/yZGJx/gzg== - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jiti@^1.20.0: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - -jsesc@^3.0.2, jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-parse-even-better-errors@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz#d3f67bd5925e81d3e31aa466acc821c8375cec43" - integrity sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonc-parser@3.3.1, jsonc-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" - integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -junk@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed" - integrity sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== - -karma-chrome-launcher@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" - integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== - dependencies: - which "^1.2.1" - -karma-coverage@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-2.2.1.tgz#e1cc074f93ace9dc4fb7e7aeca7135879c2e358c" - integrity sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A== - dependencies: - istanbul-lib-coverage "^3.2.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.1" - istanbul-reports "^3.0.5" - minimatch "^3.0.4" - -karma-jasmine-html-reporter@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz#f951ad00b08d61d03595402c914d1a589c4930e3" - integrity sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ== - -karma-jasmine@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.1.0.tgz#3af4558a6502fa16856a0f346ec2193d4b884b2f" - integrity sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ== - dependencies: - jasmine-core "^4.1.0" - -karma-junit-reporter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz#d34eef7f0b2fd064e0896954e8851a90cf14c8f3" - integrity sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw== - dependencies: - path-is-absolute "^1.0.0" - xmlbuilder "12.0.0" - -karma-source-map-support@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b" - integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== - dependencies: - source-map-support "^0.5.5" - -karma@~6.4.4: - version "6.4.4" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" - integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== - dependencies: - "@colors/colors" "1.5.0" - body-parser "^1.19.0" - braces "^3.0.2" - chokidar "^3.5.1" - connect "^3.7.0" - di "^0.0.1" - dom-serialize "^2.2.1" - glob "^7.1.7" - graceful-fs "^4.2.6" - http-proxy "^1.18.1" - isbinaryfile "^4.0.8" - lodash "^4.17.21" - log4js "^6.4.1" - mime "^2.5.2" - minimatch "^3.0.4" - mkdirp "^0.5.5" - qjobs "^1.2.0" - range-parser "^1.2.1" - rimraf "^3.0.2" - socket.io "^4.7.2" - source-map "^0.6.1" - tmp "^0.2.1" - ua-parser-js "^0.7.30" - yargs "^16.1.1" - -katex@^0.16.11, katex@^0.16.9: - version "0.16.11" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.11.tgz#4bc84d5584f996abece5f01c6ad11304276a33f5" - integrity sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ== - dependencies: - commander "^8.3.0" - -keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -khroma@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" - integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kolorist@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" - integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== - -langium@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/langium/-/langium-3.0.0.tgz#4938294eb57c59066ef955070ac4d0c917b26026" - integrity sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg== - dependencies: - chevrotain "~11.0.3" - chevrotain-allstar "~0.3.0" - vscode-languageserver "~9.0.1" - vscode-languageserver-textdocument "~1.0.11" - vscode-uri "~3.0.8" - -launch-editor@^2.6.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" - integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" - -layout-base@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" - integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== - -layout-base@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" - integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== - -less-loader@12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-12.2.0.tgz#e1e94522f6abe9e064ef396c29a3151bc6c1b6cc" - integrity sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg== - -less@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" - integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== - dependencies: - copy-anything "^2.0.1" - parse-node-version "^1.0.1" - tslib "^2.3.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^3.1.0" - source-map "~0.6.0" - -less@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/less/-/less-4.2.1.tgz#fe4c9848525ab44614c0cf2c00abd8d031bb619a" - integrity sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg== - dependencies: - copy-anything "^2.0.1" - parse-node-version "^1.0.1" - tslib "^2.3.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^3.1.0" - source-map "~0.6.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -license-webpack-plugin@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz#1e18442ed20b754b82f1adeff42249b81d11aec6" - integrity sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw== - dependencies: - webpack-sources "^3.0.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linklocal@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/linklocal/-/linklocal-2.8.2.tgz#c69e8864daac79369029892b17d5a8089275dca7" - integrity sha512-yK4/+mX/Xra3++mF3GKfO4yPCTL5EwoQ+5otBcdXt2z14e0RmVrySU9pIkR4B9Kpn9LzYyoed6C5mYs8Af0/YA== - dependencies: - commander "^2.15.0" - debug "^3.1.0" - map-limit "0.0.1" - mkdirp "^0.5.1" - rimraf "^2.6.2" - -listr2@8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.5.tgz#5c9db996e1afeb05db0448196d3d5f64fec2593d" - integrity sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -lmdb@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-3.1.5.tgz#3e6c2f4e765a2a61cc10e08477e0a267e423183f" - integrity sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw== - dependencies: - msgpackr "^1.11.2" - node-addon-api "^6.1.0" - node-gyp-build-optional-packages "5.2.2" - ordered-binary "^1.5.3" - weak-lru-cache "^1.2.2" - optionalDependencies: - "@lmdb/lmdb-darwin-arm64" "3.1.5" - "@lmdb/lmdb-darwin-x64" "3.1.5" - "@lmdb/lmdb-linux-arm" "3.1.5" - "@lmdb/lmdb-linux-arm64" "3.1.5" - "@lmdb/lmdb-linux-x64" "3.1.5" - "@lmdb/lmdb-win32-x64" "3.1.5" - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" - integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== - -loader-utils@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -local-pkg@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" - integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== - dependencies: - mlly "^1.7.3" - pkg-types "^1.2.1" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - -lodash-es@4.17.21, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -log4js@^6.4.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" - integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== - dependencies: - date-format "^4.0.14" - debug "^4.3.4" - flatted "^3.2.7" - rfdc "^1.3.0" - streamroller "^3.1.5" - -lru-cache@^10.0.1, lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -lru-cache@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" - integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -magic-string@0.30.11: - version "0.30.11" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" - integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - -magic-string@0.30.12: - version "0.30.12" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" - integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-fetch-happen@^14.0.0, make-fetch-happen@^14.0.1, make-fetch-happen@^14.0.3: - version "14.0.3" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz#d74c3ecb0028f08ab604011e0bc6baed483fcdcd" - integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== - dependencies: - "@npmcli/agent" "^3.0.0" - cacache "^19.0.1" - http-cache-semantics "^4.1.1" - minipass "^7.0.2" - minipass-fetch "^4.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^1.0.0" - proc-log "^5.0.0" - promise-retry "^2.0.1" - ssri "^12.0.0" - -map-limit@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" - integrity sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg== - dependencies: - once "~1.3.0" - -marked-gfm-heading-id@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.1.tgz#c6a46a10272745f63c6b03439dc239543a8324e8" - integrity sha512-EeQZieAQmsI6c2tWLx0ETd0VjPwLV8qi+HT0dIsfVMERm0rCIuXfRvZXJbo1SgUi++lmuR1LVY+QzgNiLNvVpw== - dependencies: - github-slugger "^2.0.0" - -marked@^13.0.2: - version "13.0.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" - integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^4.6.0: - version "4.14.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.14.1.tgz#3e2dcba9b5a8dd559e41e4603b7b1eff7a75cfb3" - integrity sha512-Fq5CMEth+2iprLJ5mNizRcWuiwRZYjNkUD0zKk224jZunE9CRacTRDK8QLALbMBlNX2y3nY6lKZbesCwDwacig== - dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.3.0" - tree-dump "^1.0.1" - tslib "^2.0.0" - -meow@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" - integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -mermaid@^11.4.1: - version "11.4.1" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.1.tgz#577fad5c31a01a06d9f793e298d411f1379eecc8" - integrity sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A== - dependencies: - "@braintree/sanitize-url" "^7.0.1" - "@iconify/utils" "^2.1.32" - "@mermaid-js/parser" "^0.3.0" - "@types/d3" "^7.4.3" - cytoscape "^3.29.2" - cytoscape-cose-bilkent "^4.1.0" - cytoscape-fcose "^2.2.0" - d3 "^7.9.0" - d3-sankey "^0.12.3" - dagre-d3-es "7.0.11" - dayjs "^1.11.10" - dompurify "^3.2.1" - katex "^0.16.9" - khroma "^2.1.0" - lodash-es "^4.17.21" - marked "^13.0.2" - roughjs "^4.6.6" - stylis "^4.3.1" - ts-dedent "^2.2.0" - uuid "^9.0.1" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -"mime-db@>= 1.43.0 < 2": - version "1.53.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" - integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== - -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.5.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -mini-css-extract-plugin@2.9.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" - integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== - dependencies: - schema-utils "^4.0.0" - tapable "^2.2.1" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" - integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.0, minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass-collect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" - integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== - dependencies: - minipass "^7.0.3" - -minipass-fetch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-4.0.0.tgz#b8ea716464747aeafb7edf2e110114c38089a09c" - integrity sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^3.0.1" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -minizlib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" - integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== - dependencies: - minipass "^7.0.4" - rimraf "^5.0.5" - -mkdirp@^0.5.1, mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - -mlly@^1.7.1, mlly@^1.7.2, mlly@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.3.tgz#d86c0fcd8ad8e16395eb764a5f4b831590cee48c" - integrity sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A== - dependencies: - acorn "^8.14.0" - pathe "^1.1.2" - pkg-types "^1.2.1" - ufo "^1.5.4" - -mrmime@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" - integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.3, ms@^2.1.1, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msgpackr-extract@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz#e9d87023de39ce714872f9e9504e3c1996d61012" - integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA== - dependencies: - node-gyp-build-optional-packages "5.2.2" - optionalDependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3" - "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3" - -msgpackr@^1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.11.2.tgz#4463b7f7d68f2e24865c395664973562ad24473d" - integrity sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g== - optionalDependencies: - msgpackr-extract "^3.0.2" - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -mute-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - -mute-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" - integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== - -nanoid@^3.3.7: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -needle@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" - integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== - dependencies: - iconv-lite "^0.6.3" - sax "^1.2.4" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -negotiator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" - integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== - -negotiator@~0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nested-error-stacks@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" - integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== - -ng-packagr@^19.0.1: - version "19.0.1" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-19.0.1.tgz#012e1aed39a1b3e527d9b0be88e3aefaf75cf830" - integrity sha512-PnXa/y3ce3v4bKJNtUBS7qcNoyv5g/tSthoMe23NyMV5kjNY4+hJT7h64zK+8tnJWTelCbIpoep7tmSPsOifBA== - dependencies: - "@rollup/plugin-json" "^6.1.0" - "@rollup/wasm-node" "^4.24.0" - ajv "^8.17.1" - ansi-colors "^4.1.3" - browserslist "^4.22.1" - chokidar "^4.0.1" - commander "^12.1.0" - convert-source-map "^2.0.0" - dependency-graph "^1.0.0" - esbuild "^0.24.0" - fast-glob "^3.3.2" - find-cache-dir "^3.3.2" - injection-js "^2.4.0" - jsonc-parser "^3.3.1" - less "^4.2.0" - ora "^5.1.0" - piscina "^4.7.0" - postcss "^8.4.47" - rxjs "^7.8.1" - sass "^1.79.5" - optionalDependencies: - rollup "^4.24.0" - -"ngx-codemirror@file:lib": - version "19.0.0" - dependencies: - "@codemirror/language-data" "^6.5.1" - "@codemirror/merge" "^6.7.4" - codemirror "^6.0.1" - tslib "^2.8.1" - -node-addon-api@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" - integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== - -node-addon-api@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" - integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-gyp-build-optional-packages@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz#522f50c2d53134d7f3a76cd7255de4ab6c96a3a4" - integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== - dependencies: - detect-libc "^2.0.1" - -node-gyp@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-11.0.0.tgz#1e029056e8c040424ba380e1d5be54ad1757ae3c" - integrity sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw== - dependencies: - env-paths "^2.2.0" - exponential-backoff "^3.1.1" - glob "^10.3.10" - graceful-fs "^4.2.6" - make-fetch-happen "^14.0.3" - nopt "^8.0.0" - proc-log "^5.0.0" - semver "^7.3.5" - tar "^7.4.3" - which "^5.0.0" - -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -nopt@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-8.0.0.tgz#644f1e78da564b70e3606ab8db4836b0e32e198a" - integrity sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw== - dependencies: - abbrev "^2.0.0" - -normalize-package-data@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-7.0.0.tgz#ab4f49d02f2e25108d3f4326f3c13f0de6fa6a0a" - integrity sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA== - dependencies: - hosted-git-info "^8.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -npm-bundled@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-4.0.0.tgz#f5b983f053fe7c61566cf07241fab2d4e9d513d3" - integrity sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA== - dependencies: - npm-normalize-package-bin "^4.0.0" - -npm-install-checks@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-7.1.1.tgz#e9d679fc8a1944c75cdcc96478a22f9d0f763632" - integrity sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz#df79e70cd0a113b77c02d1fe243c96b8e618acb1" - integrity sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w== - -npm-package-arg@12.0.0, npm-package-arg@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-12.0.0.tgz#c2a6631c09d244c6bc35a46c38cbd94d53e9829a" - integrity sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A== - dependencies: - hosted-git-info "^8.0.0" - proc-log "^5.0.0" - semver "^7.3.5" - validate-npm-package-name "^6.0.0" - -npm-packlist@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-9.0.0.tgz#8e9b061bab940de639dd93d65adc95c34412c7d0" - integrity sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ== - dependencies: - ignore-walk "^7.0.0" - -npm-pick-manifest@10.0.0, npm-pick-manifest@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz#6cc120c6473ceea56dfead500f00735b2b892851" - integrity sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ== - dependencies: - npm-install-checks "^7.1.0" - npm-normalize-package-bin "^4.0.0" - npm-package-arg "^12.0.0" - semver "^7.3.5" - -npm-registry-fetch@^18.0.0: - version "18.0.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz#340432f56b5a8b1af068df91aae0435d2de646b5" - integrity sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ== - dependencies: - "@npmcli/redact" "^3.0.0" - jsonparse "^1.3.1" - make-fetch-happen "^14.0.0" - minipass "^7.0.2" - minipass-fetch "^4.0.0" - minizlib "^3.0.1" - npm-package-arg "^12.0.0" - proc-log "^5.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.1, object-inspect@^1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.groupby@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" - integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - -object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1, on-finished@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - integrity sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w== - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -open@10.1.0, open@^10.0.3: - version "10.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" - integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -ora@5.4.1, ora@^5.1.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ordered-binary@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.3.tgz#8bee2aa7a82c3439caeb1e80c272fd4cf51170fb" - integrity sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA== - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-event@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" - integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== - dependencies: - p-timeout "^5.0.2" - -p-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" - integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== - dependencies: - p-map "^5.1.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^5.1.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" - integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== - dependencies: - aggregate-error "^4.0.0" - -p-map@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-6.0.0.tgz#4d9c40d3171632f86c47601b709f4b4acd70fed4" - integrity sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw== - -p-map@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.3.tgz#7ac210a2d36f81ec28b736134810f7ba4418cdb6" - integrity sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA== - -p-retry@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" - integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== - dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" - retry "^0.13.1" - -p-timeout@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" - integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -package-manager-detector@^0.2.0: - version "0.2.7" - resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.7.tgz#6c3e47d7794fdd513512d02e2160c24ba559e39b" - integrity sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ== - -pacote@20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-20.0.0.tgz#c974373d8e0859d00e8f9158574350f8c1b168e5" - integrity sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A== - dependencies: - "@npmcli/git" "^6.0.0" - "@npmcli/installed-package-contents" "^3.0.0" - "@npmcli/package-json" "^6.0.0" - "@npmcli/promise-spawn" "^8.0.0" - "@npmcli/run-script" "^9.0.0" - cacache "^19.0.0" - fs-minipass "^3.0.0" - minipass "^7.0.2" - npm-package-arg "^12.0.0" - npm-packlist "^9.0.0" - npm-pick-manifest "^10.0.0" - npm-registry-fetch "^18.0.0" - proc-log "^5.0.0" - promise-retry "^2.0.1" - sigstore "^3.0.0" - ssri "^12.0.0" - tar "^6.1.11" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-node-version@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parse5-html-rewriting-stream@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz#e376d3e762d2950ccbb6bb59823fc1d7e9fdac36" - integrity sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg== - dependencies: - entities "^4.3.0" - parse5 "^7.0.0" - parse5-sax-parser "^7.0.0" - -parse5-sax-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz#4c05064254f0488676aca75fb39ca069ec96dee5" - integrity sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg== - dependencies: - parse5 "^7.0.0" - -parse5@^7.0.0, parse5@^7.1.2: - version "7.2.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== - dependencies: - entities "^4.5.0" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-data-parser@0.1.0, path-data-parser@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" - integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-scurry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" - integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== - dependencies: - lru-cache "^11.0.0" - minipass "^7.1.2" - -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - -pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@4.0.2, picomatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -piscina@4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.7.0.tgz#68936fc77128db00541366531330138e366dc851" - integrity sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw== - optionalDependencies: - "@napi-rs/nice" "^1.0.1" - -piscina@^4.7.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.8.0.tgz#5f5c5b1f4f3f50f8de894239c98b7b10d41ba4a6" - integrity sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA== - optionalDependencies: - "@napi-rs/nice" "^1.0.1" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - -pkg-types@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.2.1.tgz#6ac4e455a5bb4b9a6185c1c79abd544c901db2e5" - integrity sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw== - dependencies: - confbox "^0.1.8" - mlly "^1.7.2" - pathe "^1.1.2" - -points-on-curve@0.2.0, points-on-curve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" - integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A== - -points-on-path@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/points-on-path/-/points-on-path-0.2.1.tgz#553202b5424c53bed37135b318858eacff85dd52" - integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g== - dependencies: - path-data-parser "0.1.0" - points-on-curve "0.2.0" - -possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - -postcss-loader@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-8.1.1.tgz#2822589e7522927344954acb55bbf26e8b195dfe" - integrity sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ== - dependencies: - cosmiconfig "^9.0.0" - jiti "^1.20.0" - semver "^7.5.4" - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== - -postcss-modules-extract-imports@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" - integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== - -postcss-modules-local-by-default@^4.0.5: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz#b0db6bc81ffc7bdc52eb0f84d6ca0bedf0e36d21" - integrity sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^7.0.0" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" - integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== - dependencies: - postcss-selector-parser "^7.0.0" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-selector-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz#41bd8b56f177c093ca49435f65731befe25d6b9c" - integrity sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@8.4.49, postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.43, postcss@^8.4.47: - version "8.4.49" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" - integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== - dependencies: - nanoid "^3.3.7" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prismjs@^1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== - -proc-log@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-5.0.0.tgz#e6c93cf37aef33f835c53485f314f50ea906a9d8" - integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -qjobs@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" - integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reflect-metadata@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" - integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== - -reflect.getprototypeof@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz#04311b33a1b713ca5eb7b5aed9950a86481858e5" - integrity sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - which-builtin-type "^1.1.4" - -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-parser@^2.2.11: - version "2.3.0" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" - integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== - -regexp.prototype.flags@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.2" - -regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" - regjsgen "^0.8.0" - regjsparser "^0.12.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== - dependencies: - jsesc "~3.0.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -resolve-url-loader@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795" - integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== - dependencies: - adjust-sourcemap-loader "^4.0.0" - convert-source-map "^1.7.0" - loader-utils "^2.0.0" - postcss "^8.2.14" - source-map "0.6.1" - -resolve@1.22.8, resolve@^1.14.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0, rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^5.0.5: - version "5.0.10" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" - integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== - dependencies: - glob "^10.3.7" - -rimraf@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.0.1.tgz#ffb8ad8844dd60332ab15f52bc104bc3ed71ea4e" - integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A== - dependencies: - glob "^11.0.0" - package-json-from-dist "^1.0.0" - -robust-predicates@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" - integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== - -rollup@4.26.0: - version "4.26.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.26.0.tgz#a3e5fb29d50953633a2fd4506da6448d93268944" - integrity sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.26.0" - "@rollup/rollup-android-arm64" "4.26.0" - "@rollup/rollup-darwin-arm64" "4.26.0" - "@rollup/rollup-darwin-x64" "4.26.0" - "@rollup/rollup-freebsd-arm64" "4.26.0" - "@rollup/rollup-freebsd-x64" "4.26.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.26.0" - "@rollup/rollup-linux-arm-musleabihf" "4.26.0" - "@rollup/rollup-linux-arm64-gnu" "4.26.0" - "@rollup/rollup-linux-arm64-musl" "4.26.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.26.0" - "@rollup/rollup-linux-riscv64-gnu" "4.26.0" - "@rollup/rollup-linux-s390x-gnu" "4.26.0" - "@rollup/rollup-linux-x64-gnu" "4.26.0" - "@rollup/rollup-linux-x64-musl" "4.26.0" - "@rollup/rollup-win32-arm64-msvc" "4.26.0" - "@rollup/rollup-win32-ia32-msvc" "4.26.0" - "@rollup/rollup-win32-x64-msvc" "4.26.0" - fsevents "~2.3.2" - -rollup@^4.20.0, rollup@^4.24.0: - version "4.28.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.28.1.tgz#7718ba34d62b449dfc49adbfd2f312b4fe0df4de" - integrity sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.28.1" - "@rollup/rollup-android-arm64" "4.28.1" - "@rollup/rollup-darwin-arm64" "4.28.1" - "@rollup/rollup-darwin-x64" "4.28.1" - "@rollup/rollup-freebsd-arm64" "4.28.1" - "@rollup/rollup-freebsd-x64" "4.28.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.28.1" - "@rollup/rollup-linux-arm-musleabihf" "4.28.1" - "@rollup/rollup-linux-arm64-gnu" "4.28.1" - "@rollup/rollup-linux-arm64-musl" "4.28.1" - "@rollup/rollup-linux-loongarch64-gnu" "4.28.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.28.1" - "@rollup/rollup-linux-riscv64-gnu" "4.28.1" - "@rollup/rollup-linux-s390x-gnu" "4.28.1" - "@rollup/rollup-linux-x64-gnu" "4.28.1" - "@rollup/rollup-linux-x64-musl" "4.28.1" - "@rollup/rollup-win32-arm64-msvc" "4.28.1" - "@rollup/rollup-win32-ia32-msvc" "4.28.1" - "@rollup/rollup-win32-x64-msvc" "4.28.1" - fsevents "~2.3.2" - -roughjs@^4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.6.tgz#1059f49a5e0c80dee541a005b20cc322b222158b" - integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ== - dependencies: - hachure-fill "^0.5.2" - path-data-parser "^0.1.0" - points-on-curve "^0.2.0" - points-on-path "^0.2.1" - -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -rxjs@7.8.1, rxjs@^7.8.1, rxjs@~7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.3.tgz#17b944fab6702dc7a52c5d2a88cbfa38c39cdc75" - integrity sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA== - dependencies: - neo-async "^2.6.2" - -sass@1.80.7: - version "1.80.7" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.80.7.tgz#7569334c39220f8ca62fcea38dce60f809ba345c" - integrity sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -sass@^1.79.5: - version "1.82.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70" - integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -sax@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - -schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0, schema-utils@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== - -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -semver@7.6.3, semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== - -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1, signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -sigstore@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-3.0.0.tgz#d6eadcc6590185a7f1c16184078ce8a9ef6db937" - integrity sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - "@sigstore/sign" "^3.0.0" - "@sigstore/tuf" "^3.0.0" - "@sigstore/verify" "^2.0.0" - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -slash@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" - integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" - integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socket.io-adapter@~2.5.2: - version "2.5.5" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082" - integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== - dependencies: - debug "~4.3.4" - ws "~8.17.1" - -socket.io-parser@~4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" - integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - -socket.io@^4.7.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" - integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== - dependencies: - accepts "~1.3.4" - base64id "~2.0.0" - cors "~2.8.5" - debug "~4.3.2" - engine.io "~6.6.0" - socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.4" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -socks-proxy-agent@^8.0.3: - version "8.0.4" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" - integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== - dependencies: - agent-base "^7.1.1" - debug "^4.3.4" - socks "^2.8.3" - -socks@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== - dependencies: - ip-address "^9.0.5" - smart-buffer "^4.2.0" - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-loader@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" - integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== - dependencies: - iconv-lite "^0.6.3" - source-map-js "^1.0.2" - -source-map-support@0.5.21, source-map-support@^0.5.5, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.20" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" - integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -sprintf-js@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" - integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== - -ssri@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-12.0.0.tgz#bcb4258417c702472f8191981d3c8a771fee6832" - integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== - dependencies: - minipass "^7.0.3" - -stable-hash@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.4.tgz#55ae7dadc13e4b3faed13601587cec41859b42f7" - integrity sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -streamroller@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" - integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== - dependencies: - date-format "^4.0.14" - debug "^4.3.4" - fs-extra "^8.1.0" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-mod@^4.0.0, style-mod@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" - integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== - -stylis@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" - integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-observable@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" - integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== - -tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tar@^6.1.11: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" - integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== - dependencies: - "@isaacs/fs-minipass" "^4.0.0" - chownr "^3.0.0" - minipass "^7.1.2" - minizlib "^3.0.1" - mkdirp "^3.0.1" - yallist "^5.0.0" - -terser-webpack-plugin@^5.3.10: - version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.20" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.26.0" - -terser@5.36.0: - version "5.36.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" - integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.26.0: - version "5.37.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" - integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tinyexec@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" - integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tree-dump@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" - integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== - -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-api-utils@^1.3.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" - integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== - -ts-dedent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" - integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== - -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@2.8.1, tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tuf-js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-3.0.1.tgz#e3f07ed3d8e87afaa70607bd1ef801d5c1f57177" - integrity sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA== - dependencies: - "@tufjs/models" "3.0.1" - debug "^4.3.6" - make-fetch-happen "^14.0.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-byte-offset@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz#3fa9f22567700cc86aaf86a1e7176f74b59600f2" - integrity sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - reflect.getprototypeof "^1.0.6" - -typed-array-length@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" - integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - reflect.getprototypeof "^1.0.6" - -typed-assert@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" - integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== - -typescript-eslint@^8.16.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.17.0.tgz#fa4033c26b3b40f778287bc12918d985481b220b" - integrity sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA== - dependencies: - "@typescript-eslint/eslint-plugin" "8.17.0" - "@typescript-eslint/parser" "8.17.0" - "@typescript-eslint/utils" "8.17.0" - -typescript@~5.6.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - -ua-parser-js@^0.7.30: - version "0.7.39" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.39.tgz#c71efb46ebeabc461c4612d22d54f88880fabe7e" - integrity sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w== - -ufo@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" - integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" - integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - -unique-filename@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-4.0.0.tgz#a06534d370e7c977a939cd1d11f7f0ab8f1fed13" - integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== - dependencies: - unique-slug "^5.0.0" - -unique-slug@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-5.0.0.tgz#ca72af03ad0dbab4dad8aa683f633878b1accda8" - integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -validate-npm-package-license@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz#3add966c853cfe36e0e8e6a762edd72ae6f1d6ac" - integrity sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vite@5.4.11: - version "5.4.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5" - integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== - -vscode-jsonrpc@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" - integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== - -vscode-languageserver-protocol@3.17.5: - version "3.17.5" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz#864a8b8f390835572f4e13bd9f8313d0e3ac4bea" - integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== - dependencies: - vscode-jsonrpc "8.2.0" - vscode-languageserver-types "3.17.5" - -vscode-languageserver-textdocument@~1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631" - integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== - -vscode-languageserver-types@3.17.5: - version "3.17.5" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" - integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== - -vscode-languageserver@~9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz#500aef82097eb94df90d008678b0b6b5f474015b" - integrity sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g== - dependencies: - vscode-languageserver-protocol "3.17.5" - -vscode-uri@~3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" - integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== - -w3c-keyname@^2.2.4: - version "2.2.8" - resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" - integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== - -watchpack@2.4.2, watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -weak-lru-cache@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" - integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== - -webpack-dev-middleware@7.4.2, webpack-dev-middleware@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz#40e265a3d3d26795585cff8207630d3a8ff05877" - integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== - dependencies: - colorette "^2.0.10" - memfs "^4.6.0" - mime-types "^2.1.31" - on-finished "^2.4.1" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz#8f44147402b4d8ab99bfeb9b6880daa1411064e5" - integrity sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" - ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - express "^4.19.2" - graceful-fs "^4.2.6" - html-entities "^2.4.0" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - schema-utils "^4.2.0" - selfsigned "^2.4.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^7.4.2" - ws "^8.18.0" - -webpack-merge@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" - integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.1" - -webpack-sources@^3.0.0, webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-subresource-integrity@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz#8b7606b033c6ccac14e684267cb7fb1f5c2a132a" - integrity sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q== - dependencies: - typed-assert "^1.0.8" - -webpack@5.96.1: - version "5.96.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c" - integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" - acorn "^8.14.0" - browserslist "^4.24.0" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-boxed-primitive@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz#2d850d6c4ac37b95441a67890e19f3fda8b6c6d9" - integrity sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng== - dependencies: - is-bigint "^1.1.0" - is-boolean-object "^1.2.0" - is-number-object "^1.1.0" - is-string "^1.1.0" - is-symbol "^1.1.0" - -which-builtin-type@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.0.tgz#58042ac9602d78a6d117c7e811349df1268ba63c" - integrity sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA== - dependencies: - call-bind "^1.0.7" - function.prototype.name "^1.1.6" - has-tostringtag "^1.0.2" - is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.1.0" - is-generator-function "^1.0.10" - is-regex "^1.1.4" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.2" - which-typed-array "^1.1.15" - -which-collection@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" - integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== - dependencies: - is-map "^2.0.3" - is-set "^2.0.3" - is-weakmap "^2.0.2" - is-weakset "^2.0.3" - -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.16" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" - integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-5.0.0.tgz#d93f2d93f79834d4363c7d0c23e00d07c466c8d6" - integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== - dependencies: - isexe "^3.1.1" - -wildcard@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrap-ansi@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" - integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -ws@~8.17.1: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - -xmlbuilder@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-12.0.0.tgz#e2ed675e06834a089ddfb84db96e2c2b03f78c1a" - integrity sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yallist@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" - integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@17.7.2, yargs@^17.2.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yargs@^16.1.1: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== - -yoctocolors-cjs@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" - integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== - -zone.js@~0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.15.0.tgz#4810624e58d6dcf7b8379c1631765589917a0d8f" - integrity sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA== From 374a1d0d9343d1a31b40154313aca02f44cfd0c8 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 21:16:08 -0600 Subject: [PATCH 37/59] fix/improved demo TOC rendering --- .../get-started/get-started.component.html | 4 +-- .../app/get-started/get-started.component.ts | 31 ++++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/demo/src/app/get-started/get-started.component.html b/demo/src/app/get-started/get-started.component.html index 8db116a..5c50dee 100644 --- a/demo/src/app/get-started/get-started.component.html +++ b/demo/src/app/get-started/get-started.component.html @@ -1,5 +1,5 @@ - +

      Get Started

      + src="https://raw.githubusercontent.com/fsegurai/ngx-codemirror/main/README.md">
      diff --git a/demo/src/app/get-started/get-started.component.ts b/demo/src/app/get-started/get-started.component.ts index 763681d..e11321d 100644 --- a/demo/src/app/get-started/get-started.component.ts +++ b/demo/src/app/get-started/get-started.component.ts @@ -3,11 +3,11 @@ import { MarkdownComponent } from '@fsegurai/ngx-markdown'; import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; @Component({ - selector: 'app-get-started', - templateUrl: './get-started.component.html', - styleUrls: ['./get-started.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [MarkdownComponent, ScrollspyNavLayoutComponent] + selector: 'app-get-started', + templateUrl: './get-started.component.html', + styleUrls: ['./get-started.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [MarkdownComponent, ScrollspyNavLayoutComponent] }) export default class GetStartedComponent { headings: Element[] | undefined; @@ -20,19 +20,26 @@ export default class GetStartedComponent { this.setHeadings(); } + /** + * Set the headings for the scrollspy + * @private - This method is private and should not be accessed outside of this class + */ private setHeadings(): void { - const headings: Element[] = []; - this.elementRef.nativeElement - .querySelectorAll('h2') - .forEach((x) => headings.push(x)); - this.headings = headings; + this.headings = Array.from(this.elementRef.nativeElement.querySelectorAll('h2')).map((heading) => { + if (!heading.id) heading.id = heading.textContent!.toLowerCase().replace(/\s/g, '-'); + return heading; + }); } + /** + * Strip the content of the markdown to remove the first two paragraphs and the table of contents + * @private - This method is private and should not be accessed outside of this class + */ private stripContent(): void { this.elementRef.nativeElement - .querySelector('markdown')! + .querySelector('ngx-markdown')! .querySelectorAll( - 'markdown > p:nth-child(-n + 2), #ngx-markdown, #table-of-contents + ul, #table-of-contents', + 'ngx-markdown > p:nth-child(-n + 2), #ngx-markdown, #table-of-contents + ul, #table-of-contents', ) .forEach((x) => x.remove()); } From 50cdb78149fe99f431ab8af1aea2fd36808eff14 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 21:25:50 -0600 Subject: [PATCH 38/59] upg/libraries version - fix/improved demo TOC rendering --- bun.lockb | Bin 563560 -> 561434 bytes lib/package.json | 2 +- package.json | 8 ++++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bun.lockb b/bun.lockb index a2b3331585634587a1988cc0fac8fac17cba90b8..97ba1eb7007d893c5be4e129672e3ed48a0c2efd 100644 GIT binary patch delta 48075 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�fMtEpfSfWg_K%~XZKR8 z$^?AMmMyvk`={6K+P`rR;}i-yvLY>AVY2T4!J=Rn+r*V+oNt&O(QXeJod9Cs9uYCh zC#a%qX;qCLF?WyF^#t$Babpit`YANuwUjDxRa%vbhFX4NRDIX3eICIa(wg&CDLt&< zO&Y^y14~I=j>XLzVD=Ku+-uv zDoQe?>sQD7x+Z}IMlf{|Ffz<|~r?9qpJ0D zM9%DfvWhnw)NGfS<5@g5Hkquxe%~JVY{!#yd2hNhW2N!maL;n?((WPQg7Z zDBbiqc`V>^lZ7_ylVtc8nW$Br;h$b6*B=yS6#2Enoa#C$c&*J2g{wt7;Y}v%plP8v z@D$H1aO$bD(Z-!obdgIhGXGSqIEfEyPn@N&pzIoj8UD6?%y*?36kV7EL#lhO_?%XqQ}m$F^H9j`g#tClbBgX{A-mfs(LkwR^)a;@kytK%Cf@|9Jbj&T})&f_9x|BP_(CcpD2`KBNG}K g4kVi<=&Ssq;)1z$+Y3dpf;4CN7TQCN47aBK3%+&2uK)l5 delta 49186 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 diff --git a/lib/package.json b/lib/package.json index e911eb9..76bcc5b 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,6 +1,6 @@ { "name": "@fsegurai/ngx-codemirror", - "version": "19.0.0", + "version": "19.1.0", "description": "Angular library that uses codemirror to create a code editor", "homepage": "https://github.com/fsegurai/ngx-codemirror", "license": "MIT", diff --git a/package.json b/package.json index 390031c..828adc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fsegurai/ngx-codemirror", - "version": "19.0.0", + "version": "19.1.0", "description": "Angular library that uses codemirror to create a code editor", "homepage": "https://github.com/fsegurai/ngx-codemirror", "license": "MIT", @@ -85,15 +85,15 @@ "@types/node": "^22.10.1", "@typescript-eslint/eslint-plugin": "^8.16.0", "@typescript-eslint/parser": "^8.16.0", - "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/types": "8.17.0", "@typescript-eslint/utils": "^8.16.0", - "angular-eslint": "^18.4.2", + "angular-eslint": "^19.0.1", "cpy-cli": "^5.0.0", "eslint": "^9.15.0", "eslint-formatter-checkstyle": "^8.40.0", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-import": "^2.31.0", - "jasmine-core": "~5.4.0", + "jasmine-core": "~5.5.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", From 236038d2c951c7ed4b1ffbb907334cc0907eb154 Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 21:29:54 -0600 Subject: [PATCH 39/59] fix/optimize imports for playground demo --- demo/src/app/playground/playground.component.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index 47b4785..81a16a1 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -1,10 +1,4 @@ -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - OnDestroy, - OnInit -} from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { CodeDiffEditorComponent, CodeEditorComponent } from "ngx-codemirror"; import { FlexModule } from '@angular/flex-layout/flex'; import { CodeMirrorDiffOrientation, CodeMirrorDiffRevControls } from "@app/constants/const-codemirror-diff-orientation"; From 9d8fff343d6860980fcd8ff4c710ecc8bce5799c Mon Sep 17 00:00:00 2001 From: fsegurai Date: Fri, 6 Dec 2024 21:56:16 -0600 Subject: [PATCH 40/59] refactor/migrated signals for inputs, outputs, service injection and control flow syntax --- demo/src/app/app.component.html | 20 ++-- demo/src/app/app.component.ts | 73 ++++++------ .../get-started/get-started.component.html | 2 +- .../app/get-started/get-started.component.ts | 7 +- .../app/playground/playground.component.ts | 9 +- demo/src/app/shared/anchor/anchor.service.ts | 37 +++--- .../clipboard-button.component.ts | 18 ++- .../http-raw-loader.service.ts | 8 +- .../scrollspy-nav-layout.component.html | 6 +- .../scrollspy-nav-layout.component.ts | 9 +- .../scrollspy-nav.component.html | 8 +- .../scrollspy-nav/scrollspy-nav.component.ts | 18 +-- .../code-diff-editor.component.ts | 84 +++++++------- lib/src/code-editor/code-editor.component.ts | 106 ++++++++---------- 14 files changed, 182 insertions(+), 223 deletions(-) diff --git a/demo/src/app/app.component.html b/demo/src/app/app.component.html index d7d944b..809edbf 100644 --- a/demo/src/app/app.component.html +++ b/demo/src/app/app.component.html @@ -16,15 +16,17 @@

      @fsegurai/ngx-codemirror

      (DOCUMENT); + private anchorService = inject(AnchorService); + private router = inject(Router); + routes: Route[]; theme = DEFAULT_THEME; - @ViewChild('tabHeader', { read: ElementRef, static: true }) - tabHeader: ElementRef | undefined; + readonly tabHeader = viewChild('tabHeader', { read: ElementRef }); private readonly stickyClassName = 'mat-mdc-tab-nav-bar--sticky'; - constructor( - @Inject(DOCUMENT) private document: Document, - private anchorService: AnchorService, - private router: Router, - ) { + constructor() { this.routes = this.router.config.filter( (route) => route.data && route.data['label'], ); @@ -53,19 +51,16 @@ export class AppComponent implements OnInit { @HostListener('window:scroll') onWindowScroll(): void { - if (this.tabHeader == null) { - return; - } - const tabHeader = this.tabHeader.nativeElement; + const tabHeaderValue = this.tabHeader(); + if (tabHeaderValue == null) return; + + const tabHeader = tabHeaderValue.nativeElement; const tabHeaderOffset = Math.ceil(tabHeader.offsetTop); const windowOffset = Math.ceil(window.scrollY); const hasStickyClass = tabHeader.classList.contains(this.stickyClassName); - if (!hasStickyClass && windowOffset >= tabHeaderOffset) { - tabHeader.classList.add(this.stickyClassName); - } - if (hasStickyClass && windowOffset < tabHeaderOffset) { - tabHeader.classList.remove(this.stickyClassName); - } + + if (!hasStickyClass && windowOffset >= tabHeaderOffset) tabHeader.classList.add(this.stickyClassName); + if (hasStickyClass && windowOffset < tabHeaderOffset) tabHeader.classList.remove(this.stickyClassName); } ngOnInit(): void { @@ -83,10 +78,10 @@ export class AppComponent implements OnInit { this.theme = theme; const bodyClassList = this.document.querySelector('body')!.classList; const removeClassList = /\w*-theme\b/.exec(bodyClassList.value); - if (removeClassList) { - bodyClassList.remove(...removeClassList); - } - bodyClassList.add(`${this.theme}-theme`); + + if (removeClassList) bodyClassList.remove(...removeClassList); + + bodyClassList.add(`${ this.theme }-theme`); localStorage.setItem(LOCAL_STORAGE_THEME_KEY, this.theme); } diff --git a/demo/src/app/get-started/get-started.component.html b/demo/src/app/get-started/get-started.component.html index 5c50dee..b366b40 100644 --- a/demo/src/app/get-started/get-started.component.html +++ b/demo/src/app/get-started/get-started.component.html @@ -1,4 +1,4 @@ - +

      Get Started

      diff --git a/demo/src/app/get-started/get-started.component.ts b/demo/src/app/get-started/get-started.component.ts index e11321d..1f1d13f 100644 --- a/demo/src/app/get-started/get-started.component.ts +++ b/demo/src/app/get-started/get-started.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core'; +import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core'; import { MarkdownComponent } from '@fsegurai/ngx-markdown'; import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; @@ -10,10 +10,9 @@ import { ScrollspyNavLayoutComponent } from '@shared/scrollspy-nav-layout'; imports: [MarkdownComponent, ScrollspyNavLayoutComponent] }) export default class GetStartedComponent { - headings: Element[] | undefined; + private elementRef = inject>(ElementRef); - constructor(private elementRef: ElementRef) { - } + headings: Element[] | undefined; onLoad(): void { this.stripContent(); diff --git a/demo/src/app/playground/playground.component.ts b/demo/src/app/playground/playground.component.ts index 81a16a1..680cf95 100644 --- a/demo/src/app/playground/playground.component.ts +++ b/demo/src/app/playground/playground.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core'; import { CodeDiffEditorComponent, CodeEditorComponent } from "ngx-codemirror"; import { FlexModule } from '@angular/flex-layout/flex'; import { CodeMirrorDiffOrientation, CodeMirrorDiffRevControls } from "@app/constants/const-codemirror-diff-orientation"; @@ -36,6 +36,8 @@ import { MatDivider } from "@angular/material/divider"; changeDetection: ChangeDetectionStrategy.OnPush }) export default class PlaygroundComponent implements OnInit, OnDestroy { + private changeDetector = inject(ChangeDetectorRef); + protected readonly CodeMirrorDiffOrientation = CodeMirrorDiffOrientation; protected readonly CodeMirrorDiffRevControls = CodeMirrorDiffRevControls; protected readonly CodeMirrorMode = CodeMirrorMode; @@ -87,11 +89,6 @@ five`; }), ]; - constructor( - private changeDetector: ChangeDetectorRef, - ) { - } - ngOnInit(): void { this.onLanguageChange(this.selectedLanguage); } diff --git a/demo/src/app/shared/anchor/anchor.service.ts b/demo/src/app/shared/anchor/anchor.service.ts index 65901af..ddf2f70 100644 --- a/demo/src/app/shared/anchor/anchor.service.ts +++ b/demo/src/app/shared/anchor/anchor.service.ts @@ -1,5 +1,5 @@ import { LocationStrategy, ViewportScroller } from '@angular/common'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { ActivatedRoute, Router, UrlTree } from '@angular/router'; /** @@ -33,14 +33,10 @@ import { ActivatedRoute, Router, UrlTree } from '@angular/router'; */ @Injectable({ providedIn: 'root' }) export class AnchorService { - - constructor( - private locationStrategy: LocationStrategy, - private route: ActivatedRoute, - private router: Router, - private viewportScroller: ViewportScroller, - ) { - } + private locationStrategy = inject(LocationStrategy); + private route = inject(ActivatedRoute); + private router = inject(Router); + private viewportScroller = inject(ViewportScroller); /** * Intercept clicks on `HTMLAnchorElement` to use `Router.navigate()` @@ -49,13 +45,11 @@ export class AnchorService { */ interceptClick(event: Event): void { const element = event.target; - if (!(element instanceof HTMLAnchorElement)) { - return; - } + if (!(element instanceof HTMLAnchorElement)) return; + const href = element.getAttribute('href') || ''; - if (this.isExternalUrl(href) || this.isRouterLink(element)) { - return; - } + if (this.isExternalUrl(href) || this.isRouterLink(element)) return; + this.navigate(href); event.preventDefault(); } @@ -77,9 +71,8 @@ export class AnchorService { * @return Absolute URL based on the current route. */ normalizeExternalUrl(url: string): string { - if (this.isExternalUrl(url)) { - return url; - } + if (this.isExternalUrl(url)) return url; + const urlTree = this.getUrlTree(url); const serializedUrl = this.router.serializeUrl(urlTree); return this.locationStrategy.prepareExternalUrl(serializedUrl); @@ -90,15 +83,13 @@ export class AnchorService { */ scrollToAnchor(): void { const url = this.router.parseUrl(this.router.url); - if (url.fragment) { - this.navigate(this.router.url, true); - } + if (url.fragment) this.navigate(this.router.url, true); } /** * Configures the top offset used when scrolling to an anchor. - * @param offset A position in screen coordinates (a tuple with x and y values) - * or a function that returns the top offset position. + * @param params The top offset to use when scrolling to an anchor. + * @see ViewportScroller.setOffset() */ setOffset(...params: Parameters): void { this.viewportScroller.setOffset(...params); diff --git a/demo/src/app/shared/clipboard-button/clipboard-button.component.ts b/demo/src/app/shared/clipboard-button/clipboard-button.component.ts index c7a5c19..76da039 100644 --- a/demo/src/app/shared/clipboard-button/clipboard-button.component.ts +++ b/demo/src/app/shared/clipboard-button/clipboard-button.component.ts @@ -1,20 +1,16 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatSnackBar } from '@angular/material/snack-bar'; @Component({ - selector: 'app-clipboard-button', - templateUrl: './clipboard-button.component.html', - styleUrls: ['./clipboard-button.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - imports: [MatButtonModule] + selector: 'app-clipboard-button', + templateUrl: './clipboard-button.component.html', + styleUrls: ['./clipboard-button.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [MatButtonModule] }) export class ClipboardButtonComponent { - - constructor( - private snackbar: MatSnackBar, - ) { - } + private snackbar = inject(MatSnackBar); onCopyToClipboard(): void { this.snackbar.open('Copied to clipboard via component!', undefined, { diff --git a/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts b/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts index b21c7a5..3859502 100644 --- a/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts +++ b/demo/src/app/shared/http-raw-loader/http-raw-loader.service.ts @@ -1,15 +1,11 @@ import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { Observable } from 'rxjs'; import { share } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) export class HttpRawLoaderService { - - constructor( - private httpClient: HttpClient, - ) { - } + private httpClient = inject(HttpClient); get(url: string): Observable { return this.httpClient diff --git a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html index 9ac080a..d3120e1 100644 --- a/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html +++ b/demo/src/app/shared/scrollspy-nav-layout/scrollspy-nav-layout.component.html @@ -8,7 +8,7 @@ [GitHub](https://github.com/fsegurai)

- @if (displayTOC && showScrollUpButton) { + @if (displayTOC() && showScrollUpButton) { }
- @if (displayTOC) { + @if (displayTOC()) {
- + @if (showScrollUpButton) {