From 43caadc472c34ff75f32144ed2260237ac305861 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 16:57:02 +0300 Subject: [PATCH 001/121] client/quick search results: refactor the item delimiter line --- apps/client/src/stylesheets/theme-next/shell.css | 9 ++++----- apps/client/src/widgets/quick_search.ts | 12 +++++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index a6e31de5d4..681d2acf5e 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -575,6 +575,10 @@ div.quick-search .search-button.show { * Quick search results */ +div.quick-search .dropdown-menu { + --quick-search-item-delimiter-color: transparent; +} + /* Item */ .quick-search .dropdown-menu *.dropdown-item { padding: 8px 12px !important; @@ -622,11 +626,6 @@ div.quick-search .search-button.show { font-weight: 600; } -/* Divider line */ -.quick-search .dropdown-item::after { - display: none; -} - /* * TREE PANE */ diff --git a/apps/client/src/widgets/quick_search.ts b/apps/client/src/widgets/quick_search.ts index 95728b99e0..8b926c4955 100644 --- a/apps/client/src/widgets/quick_search.ts +++ b/apps/client/src/widgets/quick_search.ts @@ -15,13 +15,15 @@ const TPL = /*html*/` padding: 10px 10px 10px 0px; height: 50px; } - + .quick-search button, .quick-search input { border: 0; font-size: 100% !important; } - + .quick-search .dropdown-menu { + --quick-search-item-delimiter-color: var(--dropdown-border-color); + max-height: 80vh; min-width: 400px; max-width: 720px; @@ -38,14 +40,14 @@ const TPL = /*html*/` position: relative; } - .quick-search .dropdown-item:not(:last-child)::after { + .quick-search .dropdown-item + .dropdown-item::after { content: ''; position: absolute; left: 0; - bottom: 0; + top: 0; width: 100%; height: 1px; - background: var(--dropdown-border-color); + border-bottom: 1px solid var(--quick-search-item-delimiter-color); } .quick-search .dropdown-item:last-child::after { From 5f39a314b50da716d31ab4f71d87131955a3a332 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 16:58:13 +0300 Subject: [PATCH 002/121] client/quick search results: fix overflowing snippets --- apps/client/src/widgets/quick_search.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/client/src/widgets/quick_search.ts b/apps/client/src/widgets/quick_search.ts index 8b926c4955..c0a172c732 100644 --- a/apps/client/src/widgets/quick_search.ts +++ b/apps/client/src/widgets/quick_search.ts @@ -23,7 +23,7 @@ const TPL = /*html*/` .quick-search .dropdown-menu { --quick-search-item-delimiter-color: var(--dropdown-border-color); - + max-height: 80vh; min-width: 400px; max-width: 720px; @@ -94,6 +94,8 @@ const TPL = /*html*/` background-color: var(--accented-background-color); color: var(--main-text-color); font-size: .85em; + overflow: hidden; + text-overflow: ellipsis; } /* Search result highlighting */ From e3d28e703f5fa932c3f392f61ab10f0c300a1f13 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 17:01:08 +0300 Subject: [PATCH 003/121] client/quick search results: tweak snippet background color --- apps/client/src/stylesheets/theme-next-light.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/stylesheets/theme-next-light.css b/apps/client/src/stylesheets/theme-next-light.css index cf6e7c6eb7..331de6d945 100644 --- a/apps/client/src/stylesheets/theme-next-light.css +++ b/apps/client/src/stylesheets/theme-next-light.css @@ -115,7 +115,7 @@ --quick-search-focus-border: #00000029; --quick-search-focus-background: #ffffff80; --quick-search-focus-color: #000; - --quick-search-result-content-background: #00000017; + --quick-search-result-content-background: #0000000f; --quick-search-result-highlight-color: #c65050; --left-pane-collapsed-border-color: #0000000d; From 4d82f2f22dfb87b33c1773d5a7ae4b817208fa05 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 17:11:10 +0300 Subject: [PATCH 004/121] client/quick search results: tweak footer divider margins --- apps/client/src/stylesheets/theme-next/shell.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index 681d2acf5e..c8da5f3b08 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -626,6 +626,10 @@ div.quick-search .dropdown-menu { font-weight: 600; } +.quick-search div.dropdown-divider { + margin: 8px 0; +} + /* * TREE PANE */ From 9464667323c4eec314ea9e72cb01d255fc7f4b3b Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 17:12:52 +0300 Subject: [PATCH 005/121] client/quick search results: remove deprecated styles --- apps/client/src/stylesheets/theme-next/shell.css | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index c8da5f3b08..a147678f55 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -594,16 +594,6 @@ div.quick-search .dropdown-menu { vertical-align: text-bottom; } -/* Note title */ -.quick-search .dropdown-menu .dropdown-item > a { - color: var(--menu-text-color); -} - -.quick-search .dropdown-menu .dropdown-item > a:hover { - --hover-item-background-color: transparent; - text-decoration: underline; -} - /* Note path */ .quick-search .dropdown-menu small { display: block; From d73e84ea6caea1bc038524bf8b886285d9e69987 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 18:37:02 +0300 Subject: [PATCH 006/121] client/quick search results: tweak icon alignment --- apps/client/src/stylesheets/theme-next/shell.css | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index a147678f55..ec5d339408 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -577,6 +577,7 @@ div.quick-search .search-button.show { div.quick-search .dropdown-menu { --quick-search-item-delimiter-color: transparent; + --menu-item-icon-vert-offset: -.065em; } /* Item */ @@ -584,12 +585,6 @@ div.quick-search .dropdown-menu { padding: 8px 12px !important; } -/* Note icon */ -.quick-search .dropdown-menu .dropdown-item > .bx { - position: relative; - top: 1px; -} - .quick-search .quick-search-item-icon { vertical-align: text-bottom; } From 48faa8a81330282dc0d318e65f30f130d61f76ad Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 21:06:48 +0300 Subject: [PATCH 007/121] client/quick search results: tweak the busy indicator --- apps/client/src/widgets/quick_search.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/client/src/widgets/quick_search.ts b/apps/client/src/widgets/quick_search.ts index c0a172c732..38c8238641 100644 --- a/apps/client/src/widgets/quick_search.ts +++ b/apps/client/src/widgets/quick_search.ts @@ -110,6 +110,10 @@ const TPL = /*html*/` margin: 0; } + .quick-search .bx-loader { + margin-inline-end: 4px; + } +
@@ -224,7 +228,11 @@ export default class QuickSearchWidget extends BasicWidget { this.isLoadingMore = false; this.$dropdownMenu.empty(); - this.$dropdownMenu.append(`${t("quick-search.searching")}`); + this.$dropdownMenu.append(` + + + ${t("quick-search.searching")} + `); const { searchResultNoteIds, searchResults, error } = await server.get(`quick-search/${encodeURIComponent(searchString)}`); From b147d4bdeb7fa1d07def2ecd8c632fb342668c0c Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 21:17:43 +0300 Subject: [PATCH 008/121] style: brighten the border of dropdowns --- apps/client/src/stylesheets/theme-next-dark.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/stylesheets/theme-next-dark.css b/apps/client/src/stylesheets/theme-next-dark.css index 69753b0dbd..4edfd6e38e 100644 --- a/apps/client/src/stylesheets/theme-next-dark.css +++ b/apps/client/src/stylesheets/theme-next-dark.css @@ -18,7 +18,7 @@ --main-text-color: #ccc; --main-border-color: #454545; --subtle-border-color: #313131; - --dropdown-border-color: #292929; + --dropdown-border-color: #404040; --dropdown-shadow-opacity: 0.6; --dropdown-item-icon-destructive-color: #de6e5b; --disabled-tooltip-icon-color: #7fd2ef; From c08b30a06009753eba74922ff7de7a4444339780 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 21:30:04 +0300 Subject: [PATCH 009/121] style/text editor: hide icons from the text snippets dropdown --- apps/client/src/stylesheets/theme-next/notes/text.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 404a47feca..cd8b3f0ce3 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -363,6 +363,11 @@ color: var(--accent); } +/* Text snippet dropdown */ +.ck-template-form .ck-button__icon { + display: none; +} + /* Action buttons */ :root .ck-link-actions button.ck-button, From 7d3a672b557b3ae8cdf27a16a81b3b3daa2c8fdc Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 29 Aug 2025 21:36:09 +0300 Subject: [PATCH 010/121] style/toasts: prevent long text from overflowing --- apps/client/src/stylesheets/theme-next/base.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/base.css b/apps/client/src/stylesheets/theme-next/base.css index bee48c0239..1c17b1ca97 100644 --- a/apps/client/src/stylesheets/theme-next/base.css +++ b/apps/client/src/stylesheets/theme-next/base.css @@ -325,6 +325,8 @@ body.mobile .dropdown-menu .dropdown-item.submenu-open .dropdown-toggle::after { #toast-container .toast .toast-body { flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; } /* From a94cc5bdab288dd21025561f3acf697662e0f529 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sat, 30 Aug 2025 02:55:23 +0300 Subject: [PATCH 011/121] style/text editor/insert text snippet dropdown: tweak appearance --- .../src/stylesheets/theme-next/notes/text.css | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index cd8b3f0ce3..e1fa130bcf 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -364,8 +364,50 @@ } /* Text snippet dropdown */ -.ck-template-form .ck-button__icon { - display: none; + +div.ck-template-form { + padding: 8px; +} + +div.ck-template-form .ck-labeled-field-view { + margin: 8px 0; +} + +:root div.ck-template-form li.ck-list__item button.ck-template-button { + padding: 4px 8px; +} + +:root .ck-template-form .ck-button__icon { + --ck-spacing-medium: 2px; +} + +:root div.ck-template-form .note-icon { + color: var(--menu-item-icon-color); +} + +:root div.ck-template-form .ck-template-form__description { + opacity: .5; + font-size: .9em; +} + +div.ck-template-form .ck-template-form__text-part { + color: var(--hover-item-text-color); + font-size: .9rem; +} + +div.ck-template-form .ck-template-form__text-part mark { + background: unset; + color: var(--quick-search-result-highlight-color); + font-weight: bold; +} + +div.ck-template-form .ck-search__info span { + line-height: initial; +} + +div.ck-template-form .ck-search__info span:nth-child(2) { + font-size: .9em; + opacity: .5; } /* Action buttons */ From 3d285e105e78f9201e03e16bc021f4f64406b1c4 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sat, 30 Aug 2025 18:25:44 +0300 Subject: [PATCH 012/121] style/text editor/insert text snippet dropdown: tweak appearance --- apps/client/src/stylesheets/style.css | 9 +++++++ .../src/stylesheets/theme-next/notes/text.css | 27 ++++++++++++------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css index b2604614c5..0d192381de 100644 --- a/apps/client/src/stylesheets/style.css +++ b/apps/client/src/stylesheets/style.css @@ -2360,3 +2360,12 @@ footer.webview-footer button { content: "\ec24"; transform: rotate(180deg); } + +/* CK Edito */ + +/* Insert text snippet: limit the width of the listed items to avoid overly long names */ +:root body.desktop div.ck-template-form li.ck-list__item .ck-template-form__text-part > span { + max-width: 25vw; + overflow: hidden; + text-overflow: ellipsis; +} \ No newline at end of file diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index e1fa130bcf..5514d287fa 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -373,10 +373,13 @@ div.ck-template-form .ck-labeled-field-view { margin: 8px 0; } +/* Template item */ + :root div.ck-template-form li.ck-list__item button.ck-template-button { padding: 4px 8px; } +/* Template icon */ :root .ck-template-form .ck-button__icon { --ck-spacing-medium: 2px; } @@ -385,11 +388,7 @@ div.ck-template-form .ck-labeled-field-view { color: var(--menu-item-icon-color); } -:root div.ck-template-form .ck-template-form__description { - opacity: .5; - font-size: .9em; -} - +/* Template name */ div.ck-template-form .ck-template-form__text-part { color: var(--hover-item-text-color); font-size: .9rem; @@ -401,13 +400,23 @@ div.ck-template-form .ck-template-form__text-part mark { font-weight: bold; } -div.ck-template-form .ck-search__info span { - line-height: initial; +/* Template description */ +:root div.ck-template-form .ck-template-form__description { + opacity: .5; + font-size: .9em; } -div.ck-template-form .ck-search__info span:nth-child(2) { - font-size: .9em; +/* Messages */ +div.ck-template-form .ck-search__info > span { + line-height: initial; + color: var(--muted-text-color); +} + +div.ck-template-form .ck-search__info span:nth-child(2) { + display: block; opacity: .5; + margin-top: 8px; + font-size: .9em; } /* Action buttons */ From fcb77360e152c7d35e07c1fc0e3e5295a6cf820e Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sat, 30 Aug 2025 19:22:27 +0300 Subject: [PATCH 013/121] style/text editor/text alignment dropdown: use a horizontal toolbar instead of a vertical one --- .../src/widgets/type_widgets/ckeditor/toolbar.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/client/src/widgets/type_widgets/ckeditor/toolbar.ts b/apps/client/src/widgets/type_widgets/ckeditor/toolbar.ts index ad83baab6c..c8ba56d4da 100644 --- a/apps/client/src/widgets/type_widgets/ckeditor/toolbar.ts +++ b/apps/client/src/widgets/type_widgets/ckeditor/toolbar.ts @@ -1,5 +1,6 @@ import utils from "../../../services/utils.js"; import options from "../../../services/options.js"; +import IconAlignCenter from "@ckeditor/ckeditor5-icons/theme/icons/align-center.svg?raw"; const TEXT_FORMATTING_GROUP = { label: "Text formatting", @@ -77,7 +78,7 @@ export function buildClassicToolbar(multilineToolbar: boolean) { items: ["imageUpload", "|", "link", "bookmark", "internallink", "includeNote", "|", "specialCharacters", "emoji", "math", "mermaid", "horizontalLine", "pageBreak", "dateTime"] }, "|", - "alignment", + buildAlignmentToolbar(), "outdent", "indent", "|", @@ -134,7 +135,7 @@ export function buildFloatingToolbar() { items: ["link", "bookmark", "internallink", "includeNote", "|", "math", "mermaid", "horizontalLine", "pageBreak", "dateTime"] }, "|", - "alignment", + buildAlignmentToolbar(), "outdent", "indent", "|", @@ -147,3 +148,11 @@ export function buildFloatingToolbar() { ] }; } + +function buildAlignmentToolbar() { + return { + label: "Alignment", + icon: IconAlignCenter, + items: ["alignment:left", "alignment:center", "alignment:right", "|", "alignment:justify"] + }; +} From 1e2e3498c67c7ee399cd9aa94a0401a5820b0d18 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 01:45:12 +0300 Subject: [PATCH 014/121] style/text editor/forms: restyle text boxes --- .../src/stylesheets/theme-next/forms.css | 3 +++ .../src/stylesheets/theme-next/notes/text.css | 22 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index f4465f905a..7802d7c5a5 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -149,6 +149,7 @@ input[type="password"], input[type="date"], input[type="time"], input[type="datetime-local"], +input.ck.ck-input-text[type="text"], textarea.form-control, textarea, .tn-input-field { @@ -167,6 +168,7 @@ input[type="password"]:hover, input[type="date"]:hover, input[type="time"]:hover, input[type="datetime-local"]:hover, +input.ck.ck-input-text[type="text"]:hover, textarea.form-control:hover, textarea:hover, .tn-input-field:hover { @@ -181,6 +183,7 @@ input[type="password"]:focus, input[type="date"]:focus, input[type="time"]:focus, input[type="datetime-local"]:focus, +input.ck.ck-input-text[type="text"]:focus, textarea.form-control:focus, textarea:focus, .tn-input-field:focus, diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 5514d287fa..3a42463bb6 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -370,7 +370,7 @@ div.ck-template-form { } div.ck-template-form .ck-labeled-field-view { - margin: 8px 0; + margin-bottom: 8px; } /* Template item */ @@ -448,6 +448,26 @@ div.ck-template-form .ck-search__info span:nth-child(2) { background: transparent; } +/* + * FORMS + */ + +/* + * Text boxes + */ + +.ck.ck-labeled-field-view { + padding-top: 1.5em !important; /* Create space for the label */ +} + +.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > label.ck.ck-label { + transform: translate(0, -1.7em) !important; /* Move the label above the text box regardless of the text box state */ + padding-left: 0 !important; + background: transparent; + font-size: .85em; + font-weight: 600; +} + /* * EDITOR'S CONTENT */ From 0afa9717e5a08e3af08c1d0ed030b92c3c483e9d Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 02:28:24 +0300 Subject: [PATCH 015/121] style/text editor/forms: restyle buttons --- .../src/stylesheets/theme-next/forms.css | 15 ++++++---- .../src/stylesheets/theme-next/notes/text.css | 28 +++++++++++-------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 7802d7c5a5..d1d0b61fd4 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -5,7 +5,8 @@ button.btn.btn-primary, button.btn.btn-secondary, button.btn.btn-sm:not(.select-button), -button.btn.btn-success { +button.btn.btn-success, +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text { display: inline-flex; align-items: center; justify-content: center; @@ -21,7 +22,8 @@ button.btn.btn-success { button.btn.btn-primary:hover, button.btn.btn-secondary:hover, button.btn.btn-sm:not(.select-button):hover, -button.btn.btn-success:hover { +button.btn.btn-success:hover, +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:hover { background: var(--cmd-button-hover-background-color); color: var(--cmd-button-hover-text-color); } @@ -29,7 +31,8 @@ button.btn.btn-success:hover { button.btn.btn-primary:active, button.btn.btn-secondary:active, button.btn.btn-sm:not(.select-button):active, -button.btn.btn-success:active { +button.btn.btn-success:active, +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:active { opacity: 0.85; box-shadow: unset; background: var(--cmd-button-background-color) !important; @@ -40,14 +43,16 @@ button.btn.btn-success:active { button.btn.btn-primary:disabled, button.btn.btn-secondary:disabled, button.btn.btn-sm:not(.select-button):disabled, -button.btn.btn-success:disabled { +button.btn.btn-success:disabled, +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:disabled { opacity: var(--cmd-button-disabled-opacity); } button.btn.btn-primary:focus-visible, button.btn.btn-secondary:focus-visible, button.btn.btn-sm:not(.select-button):focus-visible, -button.btn.btn-success:focus-visible { +button.btn.btn-success:focus-visible, +button.ck.ck-button.ck-button-action.ck-button_with-text:focus-visible { outline: 2px solid var(--input-focus-outline-color); } diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 3a42463bb6..b53721aec1 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -419,19 +419,10 @@ div.ck-template-form .ck-search__info span:nth-child(2) { font-size: .9em; } -/* Action buttons */ +/* Bookmark dropdown */ -:root .ck-link-actions button.ck-button, -:root .ck-link-form button.ck-button { - --ck-border-radius: 6px; - - background: transparent; - box-shadow: unset; -} - -:root .ck-link-actions button.ck-button:hover, -:root .ck-link-form button.ck-button:hover { - background: var(--hover-item-background-color); +.ck.ck-bookmark-form .ck-form__row_with-submit { + align-items: center; } /* Mention list (the autocompletion list for emojis, labels and relations) */ @@ -452,6 +443,14 @@ div.ck-template-form .ck-search__info span:nth-child(2) { * FORMS */ +/* + * Buttons + */ + +button.ck.ck-button.ck-button-action.ck-button_with-text { + min-width: 60px; +} + /* * Text boxes */ @@ -468,6 +467,11 @@ div.ck-template-form .ck-search__info span:nth-child(2) { font-weight: 600; } +/* Forms */ +.ck.ck-form__row_with-submit { + align-items: flex-end; +} + /* * EDITOR'S CONTENT */ From e85858d22ddb66046a3fb2f49f8dc9482f57d0a5 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 02:30:13 +0300 Subject: [PATCH 016/121] style/text editor/forms: fix visible focus for buttons --- apps/client/src/stylesheets/theme-next/forms.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index d1d0b61fd4..5552140863 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -52,7 +52,7 @@ button.btn.btn-primary:focus-visible, button.btn.btn-secondary:focus-visible, button.btn.btn-sm:not(.select-button):focus-visible, button.btn.btn-success:focus-visible, -button.ck.ck-button.ck-button-action.ck-button_with-text:focus-visible { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:focus-visible { outline: 2px solid var(--input-focus-outline-color); } From ed748bbebd9d47de83abd2cdb64714aabe8cc612 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 02:58:53 +0300 Subject: [PATCH 017/121] style/text editor/forms: restyle dropdowns --- apps/client/src/stylesheets/theme-next/notes/text.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index b53721aec1..d93a5c450a 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -419,6 +419,12 @@ div.ck-template-form .ck-search__info span:nth-child(2) { font-size: .9em; } +/* Link dropdown */ + +:root .ck.ck-form.ck-link-form ul.ck-link-form__providers-list { + border-top: none; +} + /* Bookmark dropdown */ .ck.ck-bookmark-form .ck-form__row_with-submit { @@ -472,6 +478,10 @@ button.ck.ck-button.ck-button-action.ck-button_with-text { align-items: flex-end; } +.ck.ck-form__header { + border-bottom: none; +} + /* * EDITOR'S CONTENT */ From d12dfabd0b5f84c6cb9593b8bfdc2a4bd8db044a Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 03:19:33 +0300 Subject: [PATCH 018/121] style/text editor/forms: various layout fixes --- .../src/stylesheets/theme-next/notes/text.css | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index d93a5c450a..46ce4d7baa 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -4,6 +4,7 @@ :root { --ck-font-face: var(--main-font-family); + --ck-input-label-height: 1.5em; } /* @@ -425,10 +426,16 @@ div.ck-template-form .ck-search__info span:nth-child(2) { border-top: none; } -/* Bookmark dropdown */ +/* Emoji dropdown */ -.ck.ck-bookmark-form .ck-form__row_with-submit { - align-items: center; +.ck-emoji-picker-form .ck-emoji__search .ck-button_with-text { + margin-top: var(--ck-input-label-height); +} + +/* Find and replace dialog */ + +.ck-find-and-replace-form .ck-find-and-replace-form__inputs button { + margin-top: var(--ck-input-label-height); } /* Mention list (the autocompletion list for emojis, labels and relations) */ @@ -462,11 +469,13 @@ button.ck.ck-button.ck-button-action.ck-button_with-text { */ .ck.ck-labeled-field-view { - padding-top: 1.5em !important; /* Create space for the label */ + padding-top: var(--ck-input-label-height) !important; /* Create space for the label */ } .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > label.ck.ck-label { - transform: translate(0, -1.7em) !important; /* Move the label above the text box regardless of the text box state */ + /* Move the label above the text box regardless of the text box state */ + transform: translate(0, calc(-.2em - var(--ck-input-label-height))) !important; + padding-left: 0 !important; background: transparent; font-size: .85em; @@ -474,8 +483,13 @@ button.ck.ck-button.ck-button-action.ck-button_with-text { } /* Forms */ -.ck.ck-form__row_with-submit { - align-items: flex-end; + +:root .ck.ck-form__row.ck-form__row_with-submit > :not(:first-child) { + margin-inline-start: 16px; +} + +.ck.ck-form__row_with-submit button { + margin-top: var(--ck-input-label-height); } .ck.ck-form__header { From 03ab912495230e22cf6efe5f194384b082eb2368 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Sun, 31 Aug 2025 03:33:30 +0300 Subject: [PATCH 019/121] style/text editor/forms: tweak buttons --- apps/client/src/stylesheets/theme-next/notes/text.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 46ce4d7baa..3222763aa5 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -460,8 +460,11 @@ div.ck-template-form .ck-search__info span:nth-child(2) { * Buttons */ -button.ck.ck-button.ck-button-action.ck-button_with-text { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text { + --ck-color-text: var(--cmd-button-text-color); + min-width: 60px; + font-weight: 500; } /* From 229772122828df1dd690e6b066c9fcbb48eb70b5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 16:36:55 +0300 Subject: [PATCH 020/121] chore(dx): get rid of nx --- package.json | 18 +- patches/@nx__js.patch | 17 - pnpm-lock.yaml | 3825 +---------------------------------------- 3 files changed, 65 insertions(+), 3795 deletions(-) delete mode 100644 patches/@nx__js.patch diff --git a/package.json b/package.json index 049b21810f..726a1260ea 100644 --- a/package.json +++ b/package.json @@ -27,16 +27,6 @@ "private": true, "devDependencies": { "@electron/rebuild": "4.0.1", - "@nx/devkit": "21.3.11", - "@nx/esbuild": "21.3.11", - "@nx/eslint": "21.3.11", - "@nx/eslint-plugin": "21.3.11", - "@nx/express": "21.3.11", - "@nx/js": "21.3.11", - "@nx/node": "21.3.11", - "@nx/playwright": "21.3.11", - "@nx/vite": "21.3.11", - "@nx/web": "21.3.11", "@playwright/test": "^1.36.0", "@triliumnext/server": "workspace:*", "@types/express": "^5.0.0", @@ -55,7 +45,6 @@ "jiti": "2.5.1", "jsdom": "~26.1.0", "jsonc-eslint-parser": "^2.1.0", - "nx": "21.3.11", "react-refresh": "^0.17.0", "rollup-plugin-webpack-stats": "2.1.4", "tslib": "^2.3.0", @@ -86,8 +75,7 @@ "patchedDependencies": { "@ckeditor/ckeditor5-mention": "patches/@ckeditor__ckeditor5-mention.patch", "@ckeditor/ckeditor5-code-block": "patches/@ckeditor__ckeditor5-code-block.patch", - "ckeditor5": "patches/ckeditor5.patch", - "@nx/js": "patches/@nx__js.patch" + "ckeditor5": "patches/ckeditor5.patch" }, "overrides": { "mermaid": "11.10.1", @@ -120,11 +108,7 @@ "esbuild", "fs-xattr", "macos-alias", - "nx", "utf-8-validate" ] - }, - "nx": { - "name": "triliumnext" } } diff --git a/patches/@nx__js.patch b/patches/@nx__js.patch deleted file mode 100644 index eb9a069f5e..0000000000 --- a/patches/@nx__js.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/utils/assets/copy-assets-handler.js b/src/utils/assets/copy-assets-handler.js -index 6b68205d833ce9e8277283ac31230c020d2921ec..2f0a7f018b03eae3b8f3ce1a4cf4790aaafed677 100644 ---- a/src/utils/assets/copy-assets-handler.js -+++ b/src/utils/assets/copy-assets-handler.js -@@ -39,12 +39,6 @@ class CopyAssetsHandler { - this.callback = opts.callback ?? exports.defaultFileEventHandler; - // TODO(jack): Should handle nested .gitignore files - this.ignore = (0, ignore_1.default)(); -- const gitignore = pathPosix.join(opts.rootDir, '.gitignore'); -- const nxignore = pathPosix.join(opts.rootDir, '.nxignore'); -- if ((0, node_fs_1.existsSync)(gitignore)) -- this.ignore.add((0, node_fs_1.readFileSync)(gitignore).toString()); -- if ((0, node_fs_1.existsSync)(nxignore)) -- this.ignore.add((0, node_fs_1.readFileSync)(nxignore).toString()); - this.assetGlobs = opts.assets.map((f) => { - let isGlob = false; - let pattern; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aba6dc7877..28ecfa66d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,9 +28,6 @@ patchedDependencies: '@ckeditor/ckeditor5-mention': hash: 5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d path: patches/@ckeditor__ckeditor5-mention.patch - '@nx/js': - hash: 7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7 - path: patches/@nx__js.patch ckeditor5: hash: 8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41 path: patches/ckeditor5.patch @@ -42,36 +39,6 @@ importers: '@electron/rebuild': specifier: 4.0.1 version: 4.0.1 - '@nx/devkit': - specifier: 21.3.11 - version: 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/esbuild': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint-plugin': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) - '@nx/express': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(express@4.21.2)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2) - '@nx/js': - specifier: 21.3.11 - version: 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/node': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2) - '@nx/playwright': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@playwright/test@1.55.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) - '@nx/vite': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) - '@nx/web': - specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@playwright/test': specifier: ^1.36.0 version: 1.55.0 @@ -126,9 +93,6 @@ importers: jsonc-eslint-parser: specifier: ^2.1.0 version: 2.4.0 - nx: - specifier: 21.3.11 - version: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) react-refresh: specifier: ^0.17.0 version: 0.17.0 @@ -330,7 +294,7 @@ importers: version: 6.2.10 copy-webpack-plugin: specifier: 13.0.1 - version: 13.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)) + version: 13.0.1(webpack@5.100.2(esbuild@0.25.9)) happy-dom: specifier: 18.0.1 version: 18.0.1 @@ -412,7 +376,7 @@ importers: version: 1.0.2 copy-webpack-plugin: specifier: 13.0.1 - version: 13.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)) + version: 13.0.1(webpack@5.100.2(esbuild@0.25.9)) electron: specifier: 37.4.0 version: 37.4.0 @@ -477,7 +441,7 @@ importers: version: 11.0.4 copy-webpack-plugin: specifier: 13.0.1 - version: 13.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)) + version: 13.0.1(webpack@5.100.2(esbuild@0.25.9)) electron: specifier: 37.4.0 version: 37.4.0 @@ -1583,10 +1547,6 @@ packages: resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -1595,31 +1555,10 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.27.0': - resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.27.0': - resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.4': - resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} @@ -1630,30 +1569,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.26.5': - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -1666,10 +1585,6 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} @@ -1684,385 +1599,12 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-decorators@7.25.9': - resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-decorators@7.25.9': - resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.26.8': - resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.26.5': - resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.27.0': - resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.26.9': - resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': - resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} engines: {node: '>=6.9.0'} @@ -2075,107 +1617,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.27.0': - resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.26.10': - resolution: {integrity: sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.26.8': - resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.27.0': - resolution: {integrity: sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.27.0': - resolution: {integrity: sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.26.9': - resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-typescript@7.27.0': - resolution: {integrity: sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.6': resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} @@ -2204,9 +1645,6 @@ packages: resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -3380,87 +2818,10 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@30.0.5': - resolution: {integrity: sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/diff-sequences@30.0.1': - resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/environment@30.0.5': - resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect-utils@30.0.5': - resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect@30.0.5': - resolution: {integrity: sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/fake-timers@30.0.5': - resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/get-type@30.0.1': - resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/globals@30.0.5': - resolution: {integrity: sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/pattern@30.0.1': - resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/reporters@30.0.5': - resolution: {integrity: sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@30.0.5': - resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/snapshot-utils@30.0.5': - resolution: {integrity: sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/source-map@30.0.1': - resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-result@30.0.5': - resolution: {integrity: sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-sequencer@30.0.5': - resolution: {integrity: sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/transform@30.0.5': - resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/types@30.0.5': - resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jimp/core@1.6.0': resolution: {integrity: sha512-EQQlKU3s9QfdJqiSrZWNTxBs3rKXgO2W+GxNXDtwchF3a4IqxDheFX1ti+Env9hdJXDiYLp2jTRjlxhPthsk8w==} engines: {node: '>=18'} @@ -3785,12 +3146,6 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.0.3': resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} @@ -3864,129 +3219,6 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@nx/devkit@21.3.11': - resolution: {integrity: sha512-JOV8TAa9K5+ZwTA/EUi0g5qcKEg5vmi0AyOUsrNUHlv3BgQnwZtPLDDTPPZ+ezq24o6YzgwueZWj3CLEdMHEDg==} - peerDependencies: - nx: 21.3.11 - - '@nx/esbuild@21.3.11': - resolution: {integrity: sha512-KODlvBH5JpuAJpDb98J093270TniNDPVDmLtVbAiPFJPRI5R7ElOLxO5gYtDNIlcQyVbrG6gb6I8RDFYz+nKeQ==} - peerDependencies: - esbuild: '>=0.25.0' - peerDependenciesMeta: - esbuild: - optional: true - - '@nx/eslint-plugin@21.3.11': - resolution: {integrity: sha512-BabOp+5qZx/GgCWVALiVm4wjrUOO5sqeItsAWtpocMsvYE8YRZ4+AekS/F2knTjJdcdrh51hxqv5ua3YTNFtfA==} - peerDependencies: - '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 - eslint-config-prettier: ^10.0.0 - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - '@nx/eslint@21.3.11': - resolution: {integrity: sha512-9jeD8QuU3OMcItjtw0QHl5cwohLeA9R+lajNJoOjS2tUGXTHWb8NOcEZBXWMcML+eV1iloIDW8/P4jV4BYqP2w==} - peerDependencies: - '@zkochan/js-yaml': 0.0.7 - eslint: ^8.0.0 || ^9.0.0 - peerDependenciesMeta: - '@zkochan/js-yaml': - optional: true - - '@nx/express@21.3.11': - resolution: {integrity: sha512-8VcU8+TnXmD+yCi58YyeW13ULwFrHRVD5x/B2T8IKH7j//Vc15vIBkIisgcRt2tGlz3QdR0TLftOsouCTpFlfw==} - peerDependencies: - express: ^4.21.2 - peerDependenciesMeta: - express: - optional: true - - '@nx/jest@21.3.11': - resolution: {integrity: sha512-PkdNWeoUY81zr+jtUapBdvvh26lWYIhDNyUwTjIBFajX8EAlhJpvShKHs7QObmrwOMLMXwLHKINiSCw9rueOBQ==} - - '@nx/js@21.3.11': - resolution: {integrity: sha512-aN8g1TP3FMN6MFLvMrZNaoqSwAkBFH1PunKQV17w4nlPkimWICaCP2DhY5W3VoOpjQBbhQoqrRt4mVfgnEpyvA==} - peerDependencies: - verdaccio: ^6.0.5 - peerDependenciesMeta: - verdaccio: - optional: true - - '@nx/node@21.3.11': - resolution: {integrity: sha512-4B2onNmhrCaLlhwhDycMOisAuXmajAbl9gM8G6dS4Tc6z8QHXswlJG6rVP4VvR0ZZKtLeKGED2X5hpv9T1ikxw==} - - '@nx/nx-darwin-arm64@21.3.11': - resolution: {integrity: sha512-qXZrW6kfsfGG9n4cWugR2v8ys7P1SsbQuFahlbNSTd7g+ZxozaOnc7tyxW9XuY84KQ35HwP/QSu1E13fK5CXwQ==} - cpu: [arm64] - os: [darwin] - - '@nx/nx-darwin-x64@21.3.11': - resolution: {integrity: sha512-6NJEIGRITpFZYptJtr/wdnVuidAS/wONMMSwX5rgAqh5A9teI0vxZVOgG6n5f6NQyqEDvZ9ytcIvLsQWA4kJFg==} - cpu: [x64] - os: [darwin] - - '@nx/nx-freebsd-x64@21.3.11': - resolution: {integrity: sha512-9VZOM9mutzuZCUgijHXrIl3NgKt2CWuH/awLqDS8ijhLs6WfI5TYTa+mFwx90dfZZ4y/jy6XWXa2Ee3OShf7Hg==} - cpu: [x64] - os: [freebsd] - - '@nx/nx-linux-arm-gnueabihf@21.3.11': - resolution: {integrity: sha512-a05tAySKDEWt0TGoSnWp/l5+HL/CDJQkHfI9pXho85oDSkVRzhOInAn1EeZB/F+Q3PnJFsMHMhbuu2/nm3uYJA==} - cpu: [arm] - os: [linux] - - '@nx/nx-linux-arm64-gnu@21.3.11': - resolution: {integrity: sha512-MPeivf0ptNpzQYvww6zHIqVbE5dTT2isl/WqzGyy7NgSeYDpFXmouDCQaeKxo5WytMVRCvCw/NnWTQuCK6TjnA==} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-arm64-musl@21.3.11': - resolution: {integrity: sha512-/hJpc4VJsbxDEreXt5Ka9HJ3TBEHgIa9y/i+H9MmWOeapCdH1Edhx58Heuv9OaX7kK8Y8q0cSicv0dJCghiTjA==} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-x64-gnu@21.3.11': - resolution: {integrity: sha512-pTBHuloqTxpTHa/fdKjHkFFsfW16mEcTp37HDtoQpjPfcd9nO8CYO8OClaewr9khNqCnSbCLfSoIg/alnb7BWw==} - cpu: [x64] - os: [linux] - - '@nx/nx-linux-x64-musl@21.3.11': - resolution: {integrity: sha512-OhFjURB68rd6xld8t8fiNpopF2E7v+8/jfbpsku9c0gdV2UhzoxCeZwooe7qhQjCcjVO8JNOs4dAf7qs1VtpMw==} - cpu: [x64] - os: [linux] - - '@nx/nx-win32-arm64-msvc@21.3.11': - resolution: {integrity: sha512-pGE2Td13oEj7aeogwCL+2fjmpabQVSduKfGOTlt4YoMlM0w0bXYSWqwiGBMKbMA50qkhnVapwwkuWF38PgCIxg==} - cpu: [arm64] - os: [win32] - - '@nx/nx-win32-x64-msvc@21.3.11': - resolution: {integrity: sha512-KJqLL/Zyx96hs+7pKbo/fsU7ZTFSLeZLnYQu05o6fvJJ5I1+p85t212/7vkbKKWJncyMospQdzLr3zLG3A/u8A==} - cpu: [x64] - os: [win32] - - '@nx/playwright@21.3.11': - resolution: {integrity: sha512-15VfcWM8+DgOZ726vOpfSX0rTi3Em3XgfjySRWuJbGDRua4BZUcVQMxvDgj30jQRCygaefw4N910sHWwVhaCbA==} - peerDependencies: - '@playwright/test': ^1.36.0 - peerDependenciesMeta: - '@playwright/test': - optional: true - - '@nx/vite@21.3.11': - resolution: {integrity: sha512-aplSvXZOFrGnGZfYGNjz8wP9wrHl37o0UIFgN8pVB6PqWqEmxliVJ1ywFFtku6q1dKK29BB253xFjL63t7l+4w==} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 - - '@nx/web@21.3.11': - resolution: {integrity: sha512-nDXv9yJgqZGqD3iEGkacJ7HQ4AbIlPvXH3qdv1ZwJWn0hAt7gBh1TO24gKz38sB3bwZlORRXEAi3dG0XgGkdxA==} - - '@nx/workspace@21.3.11': - resolution: {integrity: sha512-DD2iu9Ip/faNQ5MXZk+UbbBxGofYKjzHsXKRvMNQ/OAVzP/u9z2CPXEmRKlRAEQoy1lInmyopwfEUWwK1v4x0g==} - '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -4003,71 +3235,6 @@ packages: '@oxc-project/types@0.77.3': resolution: {integrity: sha512-5Vh+neJhhxuF0lYCjZXbxjqm2EO6YJ1jG+KuHntrd6VY67OMpYhWq2cZhUhy+xL9qLJVJRaeII7Xj9fciA6v7A==} - '@oxc-resolver/binding-darwin-arm64@5.3.0': - resolution: {integrity: sha512-hXem5ZAguS7IlSiHg/LK0tEfLj4eUo+9U6DaFwwBEGd0L0VIF9LmuiHydRyOrdnnmi9iAAFMAn/wl2cUoiuruA==} - cpu: [arm64] - os: [darwin] - - '@oxc-resolver/binding-darwin-x64@5.3.0': - resolution: {integrity: sha512-wgSwfsZkRbuYCIBLxeg1bYrtKnirAy+IJF0lwfz4z08clgdNBDbfGECJe/cd0csIZPpRcvPFe8317yf31sWhtA==} - cpu: [x64] - os: [darwin] - - '@oxc-resolver/binding-freebsd-x64@5.3.0': - resolution: {integrity: sha512-kzeE2WHgcRMmWjB071RdwEV5Pwke4o0WWslCKoh8if1puvxIxfzu3o7g6P2+v77BP5qop4cri+uvLABSO0WZjg==} - cpu: [x64] - os: [freebsd] - - '@oxc-resolver/binding-linux-arm-gnueabihf@5.3.0': - resolution: {integrity: sha512-I8np34yZP/XfIkZNDbw3rweqVgfjmHYpNX3xnJZWg+f4mgO9/UNWBwetSaqXeDZqvIch/aHak+q4HVrQhQKCqg==} - cpu: [arm] - os: [linux] - - '@oxc-resolver/binding-linux-arm64-gnu@5.3.0': - resolution: {integrity: sha512-u2ndfeEUrW898eXM+qPxIN8TvTPjI90NDQBRgaxxkOfNw3xaotloeiZGz5+Yzlfxgvxr9DY9FdYkqhUhSnGhOw==} - cpu: [arm64] - os: [linux] - - '@oxc-resolver/binding-linux-arm64-musl@5.3.0': - resolution: {integrity: sha512-TzbjmFkcnESGuVItQ2diKacX8vu5G0bH3BHmIlmY4OSRLyoAlrJFwGKAHmh6C9+Amfcjo2rx8vdm7swzmsGC6Q==} - cpu: [arm64] - os: [linux] - - '@oxc-resolver/binding-linux-riscv64-gnu@5.3.0': - resolution: {integrity: sha512-NH3pjAqh8nuN29iRuRfTY42Vn03ctoR9VE8llfoUKUfhHUjFHYOXK5VSkhjj1usG8AeuesvqrQnLptCRQVTi/Q==} - cpu: [riscv64] - os: [linux] - - '@oxc-resolver/binding-linux-s390x-gnu@5.3.0': - resolution: {integrity: sha512-tuZtkK9sJYh2MC2uhol1M/8IMTB6ZQ5jmqP2+k5XNXnOb/im94Y5uV/u2lXwVyIuKHZZHtr+0d1HrOiNahoKpw==} - cpu: [s390x] - os: [linux] - - '@oxc-resolver/binding-linux-x64-gnu@5.3.0': - resolution: {integrity: sha512-VzhPYmZCtoES/ThcPdGSmMop7JlwgqtSvlgtKCW15ByV2JKyl8kHAHnPSBfpIooXb0ehFnRdxFtL9qtAEWy01g==} - cpu: [x64] - os: [linux] - - '@oxc-resolver/binding-linux-x64-musl@5.3.0': - resolution: {integrity: sha512-Hi39cWzul24rGljN4Vf1lxjXzQdCrdxO5oCT7KJP4ndSlqIUODJnfnMAP1YhcnIRvNvk+5E6sZtnEmFUd/4d8Q==} - cpu: [x64] - os: [linux] - - '@oxc-resolver/binding-wasm32-wasi@5.3.0': - resolution: {integrity: sha512-ddujvHhP3chmHnSXRlkPVUeYj4/B7eLZwL4yUid+df3WCbVh6DgoT9RmllZn21AhxgKtMdekDdyVJYKFd8tl4A==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@oxc-resolver/binding-win32-arm64-msvc@5.3.0': - resolution: {integrity: sha512-j1YYPLvUkMVNKmIFQZZJ7q6Do4cI3htUnyxNLwDSBVhSohvPIK2VG+IdtOAlWZGa7v+phEZsHfNbXVwB0oPYFQ==} - cpu: [arm64] - os: [win32] - - '@oxc-resolver/binding-win32-x64-msvc@5.3.0': - resolution: {integrity: sha512-LT9eOPPUqfZscQRd5mc08RBeDWOQf+dnOrKnanMallTGPe6g7+rcAlFTA8SWoJbcD45PV8yArFtCmSQSpzHZmg==} - cpu: [x64] - os: [win32] - '@panva/asn1.js@1.0.0': resolution: {integrity: sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==} engines: {node: '>=10.13.0'} @@ -4157,19 +3324,10 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} - '@phenomnomnominal/tsquery@5.0.1': - resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} - peerDependencies: - typescript: ^3 || ^4 || ^5 - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.55.0': resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} engines: {node: '>=18'} @@ -4957,19 +4115,10 @@ packages: '@sinclair/typebox@0.31.28': resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} - '@sinclair/typebox@0.34.38': - resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==} - '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@13.0.5': - resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@smithy/abort-controller@4.0.4': resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} engines: {node: '>=18.0.0'} @@ -5225,22 +4374,6 @@ packages: svelte: ^5.0.0 vite: ^6.3.0 || ^7.0.0 - '@swc-node/core@1.14.1': - resolution: {integrity: sha512-jrt5GUaZUU6cmMS+WTJEvGvaB6j1YNKPHPzC2PUi2BjaFbtxURHj6641Az6xN7b665hNniAIdvjxWcRml5yCnw==} - engines: {node: '>= 10'} - peerDependencies: - '@swc/core': '>= 1.13.3' - '@swc/types': '>= 0.1' - - '@swc-node/register@1.10.10': - resolution: {integrity: sha512-jYWaI2WNEKz8KZL3sExd2KVL1JMma1/J7z+9iTpv0+fRN7LGMF8VTGGuHI2bug/ztpdZU1G44FG/Kk6ElXL9CQ==} - peerDependencies: - '@swc/core': '>= 1.4.13' - typescript: '>= 4.3' - - '@swc-node/sourcemap-support@0.5.1': - resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} - '@swc/core-darwin-arm64@1.11.29': resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} engines: {node: '>=10'} @@ -5479,9 +4612,6 @@ packages: '@tybys/wasm-util@0.10.0': resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/appdmg@0.5.5': resolution: {integrity: sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==} @@ -5494,18 +4624,6 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - '@types/better-sqlite3@7.6.13': resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==} @@ -5728,15 +4846,6 @@ packages: '@types/ini@4.1.1': resolution: {integrity: sha512-MIyNUZipBTbyUNnhvuXJTY7B6qNI78meck9Jbv3wk0OgNwRyOOVEKDutAkOs1snB/tx0FafyR6/SN4Ps0hZPeg==} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jquery@3.5.33': resolution: {integrity: sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==} @@ -5895,9 +5004,6 @@ packages: '@types/sockjs@0.3.36': resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/statuses@2.0.6': resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} @@ -5997,12 +5103,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.38.0': - resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.40.0': resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6015,10 +5115,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.38.0': - resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.40.0': resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6027,12 +5123,6 @@ packages: resolution: {integrity: sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.38.0': - resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.40.0': resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6045,13 +5135,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.38.0': - resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.40.0': resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6066,10 +5149,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.38.0': - resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.40.0': resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6078,12 +5157,6 @@ packages: resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.38.0': - resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.40.0': resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6096,13 +5169,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.38.0': - resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.40.0': resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6117,10 +5183,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.38.0': - resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.40.0': resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6132,101 +5194,6 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] - '@uploadcare/file-uploader@1.17.1': resolution: {integrity: sha512-IRXejLHD+2S40eRZ6jGHG83yuHLledqAnWYlxC/hwMtO7kvXnZqAwYpnk5R+zTfg6Hj001Ah0Zatd0+Am6wIgw==} @@ -6410,21 +5377,10 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - - '@yarnpkg/parsers@3.0.2': - resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} - engines: {node: '>=18.12.0'} - '@zip.js/zip.js@2.7.72': resolution: {integrity: sha512-3/A4JwrgkvGBlCxtItjxs8HrNbuTAAl/zlGkV6tC5Fb5k5nk4x2Dqxwl/YnUys5Ch+QB01eJ8Q5K/J2uXfy9Vw==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'} - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -6489,10 +5445,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -6569,10 +5521,6 @@ packages: resolution: {integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==} engines: {node: '>=6'} - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -6767,69 +5715,15 @@ packages: b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-jest@30.0.5: - resolution: {integrity: sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - - babel-plugin-const-enum@1.2.0: - resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - babel-plugin-istanbul@7.0.0: - resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} - engines: {node: '>=12'} - - babel-plugin-jest-hoist@30.0.1: - resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.13: - resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.11.1: - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.4: - resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-transform-hook-names@1.0.2: resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} peerDependencies: '@babel/core': ^7.12.10 - babel-plugin-transform-typescript-metadata@0.3.2: - resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} - peerDependencies: - '@babel/core': ^7 - '@babel/traverse': ^7 - peerDependenciesMeta: - '@babel/traverse': - optional: true - - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@30.0.1: - resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -6981,9 +5875,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} @@ -7130,10 +6021,6 @@ packages: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -7196,13 +6083,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@4.3.0: - resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} - engines: {node: '>=8'} - - cjs-module-lexer@2.1.0: - resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} - ckeditor5-collaboration@46.0.2: resolution: {integrity: sha512-VIL6EFMYDJ4+v1ih63b84VWya5XnuHF5X/bHGoswHCHj/1T4+9FsDhyWMCQYfGlKjR28YcpAFLGsVhNrhrLkdQ==} @@ -7230,10 +6110,6 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -7291,10 +6167,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - codemirror-lang-elixir@4.0.0: resolution: {integrity: sha512-mzFesxo/t6KOxwnkqVd34R/q7yk+sMtHh6vUKGAvjwHmpL7bERHB+vQAsmU/nqrndkwVeJEHWGw/z/ybfdiudA==} @@ -7304,9 +6176,6 @@ packages: codemirror-lang-mermaid@0.5.0: resolution: {integrity: sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - color-convert@0.5.3: resolution: {integrity: sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==} @@ -7351,10 +6220,6 @@ packages: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} - columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -7447,9 +6312,6 @@ packages: confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} @@ -7514,9 +6376,6 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -7997,15 +6856,6 @@ packages: supports-color: optional: true - debug@4.3.1: - resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -8058,14 +6908,6 @@ packages: babel-plugin-macros: optional: true - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -8108,10 +6950,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -8172,10 +7010,6 @@ packages: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -8188,11 +7022,6 @@ packages: detect-pointer@1.0.3: resolution: {integrity: sha512-d0o/Puo3fiGSCXy6H039h9Kwz+mmYCGKZ/qtPFnpN3WfsumjC1C9b5KKvRu+aYnfdI8peqN/iAe7dPd85qIt2g==} - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} - engines: {node: '>= 4.0.0'} - hasBin: true - detect-touch-events@2.0.2: resolution: {integrity: sha512-g8GWBkJLiIDRJfRXEdrd1wMXpNyGId2DkbfuwFahSb4OCvn717hyRJtAcEDISfp3zkwEhZ4Y4woHPA6DeyB3Fw==} @@ -8270,14 +7099,6 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} - engines: {node: '>=12'} - - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} - engines: {node: '>=12'} - dotenv@17.2.1: resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==} engines: {node: '>=12'} @@ -8387,10 +7208,6 @@ packages: emitter-listener@1.1.2: resolution: {integrity: sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==} - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -8445,10 +7262,6 @@ packages: resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} - enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -8551,10 +7364,6 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -8716,10 +7525,6 @@ packages: exif-parser@0.1.12: resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - exit-x@0.2.2: - resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} - engines: {node: '>= 0.8.0'} - expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -8728,10 +7533,6 @@ packages: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} - expect@30.0.5: - resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} @@ -8833,9 +7634,6 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -8863,10 +7661,6 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - file-entry-cache@10.1.3: resolution: {integrity: sha512-D+w75Ub8T55yor7fPgN06rkCAUbAYw2vpxJmmjv/GDAcvCnv9g7IvHhIZoxzRZThrXPFI2maeY24pPbtyYU7Lg==} @@ -9014,12 +7808,6 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -9150,10 +7938,6 @@ packages: resolution: {integrity: sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==} engines: {node: '>= 4.0'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-port@7.1.0: resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} engines: {node: '>=16'} @@ -9181,9 +7965,6 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-them-args@1.3.2: - resolution: {integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==} - get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} @@ -9333,9 +8114,6 @@ packages: resolution: {integrity: sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA==} engines: {node: '>=20.0.0'} - harmony-reflect@1.6.2: - resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -9453,10 +8231,6 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} - hosted-git-info@8.1.0: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9617,10 +8391,6 @@ packages: peerDependencies: postcss: ^8.1.0 - identity-obj-proxy@3.0.0: - resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} - engines: {node: '>=4'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -9753,10 +8523,6 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} - ip-regex@4.3.0: - resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} - engines: {node: '>=8'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -9811,11 +8577,6 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -9849,10 +8610,6 @@ packages: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -9992,9 +8749,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-url@1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -10010,18 +8764,10 @@ packages: is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} - is2@2.0.9: - resolution: {integrity: sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==} - engines: {node: '>=v0.10.0'} - isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -10077,102 +8823,6 @@ packages: javascript-stringify@1.6.0: resolution: {integrity: sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==} - jest-circus@30.0.5: - resolution: {integrity: sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-config@30.0.5: - resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@types/node': '*' - esbuild-register: '>=3.4.0' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - esbuild-register: - optional: true - ts-node: - optional: true - - jest-diff@30.0.5: - resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-docblock@30.0.1: - resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-each@30.0.5: - resolution: {integrity: sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-environment-node@30.0.5: - resolution: {integrity: sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-haste-map@30.0.5: - resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-leak-detector@30.0.5: - resolution: {integrity: sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-matcher-utils@30.0.5: - resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-message-util@30.0.5: - resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-mock@30.0.5: - resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@30.0.1: - resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-resolve@30.0.5: - resolution: {integrity: sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runner@30.0.5: - resolution: {integrity: sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runtime@30.0.5: - resolution: {integrity: sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-snapshot@30.0.5: - resolution: {integrity: sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-util@30.0.5: - resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-validate@30.0.5: - resolution: {integrity: sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-watcher@30.0.5: - resolution: {integrity: sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-worker@26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} @@ -10181,10 +8831,6 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@30.0.5: - resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jimp@1.6.0: resolution: {integrity: sha512-YcwCHw1kiqEeI5xRpDlPPBGL2EOpBKLwO4yIBJcXWHPj5PnA5urGq0jbyhM5KoNpypQ6VboSoxc9D8HyfvngSg==} engines: {node: '>=18'} @@ -10252,10 +8898,6 @@ packages: resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} hasBin: true - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -10285,11 +8927,6 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -10329,9 +8966,6 @@ packages: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -10386,10 +9020,6 @@ packages: khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - kill-port@1.6.1: - resolution: {integrity: sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw==} - hasBin: true - kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -10443,10 +9073,6 @@ packages: engines: {node: '>=6'} hasBin: true - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -10535,10 +9161,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@16.1.5: resolution: {integrity: sha512-uAeQQwByI6dfV7wpt/gVqg+jAPaSp8WwOA8kKC/dv1qw14oGpnpAisY65ibGHUGDUv0rYaZ8CAJZ/1U8hUvC2A==} engines: {node: '>=20.17'} @@ -10743,9 +9365,6 @@ packages: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-age-cleaner@0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} @@ -11049,10 +9668,6 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -11167,9 +9782,6 @@ packages: ms@2.1.1: resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -11232,11 +9844,6 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - napi-postinstall@0.3.2: - resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -11326,12 +9933,6 @@ packages: node-html-parser@6.1.13: resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -11379,10 +9980,6 @@ packages: resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} engines: {node: ^18.17.0 || >=20.5.0} - npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - npm-package-arg@12.0.2: resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -11418,18 +10015,6 @@ packages: nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - nx@21.3.11: - resolution: {integrity: sha512-nj2snZ3mHZnbHcoB3NUdxbch9L1sQKV1XccLs1B79fmI/N5oOgWgctm/bWoZH2UH5b4A8ZLAMTsC6YnSJGbcaw==} - hasBin: true - peerDependencies: - '@swc-node/register': ^1.8.0 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -11504,10 +10089,6 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - openai@5.12.0: resolution: {integrity: sha512-vUdt02xiWgOHiYUmW0Hj1Qu9OKAiVQu5Bd547ktVCiMKC1BkB5L3ImeEnCyq3WpRKR6ZTaPgekzqdozwdPs7Lg==} hasBin: true @@ -11535,10 +10116,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} - ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -11550,9 +10127,6 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-resolver@5.3.0: - resolution: {integrity: sha512-FHqtZx0idP5QRPSNcI5g2ItmADg7fhR3XIeWg5eRMGfp44xqRpfkdvo+EX4ZceqV9bxvl0Z8vaqMqY0gYaNYNA==} - p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -11833,10 +10407,6 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - pixelmatch@5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true @@ -12715,10 +11285,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@30.0.5: - resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - prism-svelte@0.4.7: resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} @@ -12730,10 +11296,6 @@ packages: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - proc-log@5.0.0: resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -12805,9 +11367,6 @@ packages: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} engines: {node: '>=12.20'} - pure-rand@7.0.1: - resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} - purgecss@6.0.0: resolution: {integrity: sha512-s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==} hasBin: true @@ -12922,9 +11481,6 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-refresh@0.17.0: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} @@ -13030,31 +11586,10 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - rehype-dom-parse@5.0.2: resolution: {integrity: sha512-8CqP11KaqvtWsMqVEC2yM3cZWZsDNqqpr8nPvogjraLuh45stabgcpXadCAxu1n6JaUNJ/Xr3GIqXP7okbNqLg==} @@ -13593,9 +12128,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-exec@1.0.2: - resolution: {integrity: sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg==} - shell-quote@1.8.3: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} @@ -13738,12 +12270,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -13839,10 +12365,6 @@ packages: resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} engines: {node: '>=16'} - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -13891,10 +12413,6 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} engines: {node: '>=4'} @@ -13956,10 +12474,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-bom@5.0.0: resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==} engines: {node: '>=12'} @@ -14200,10 +12714,6 @@ packages: resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} engines: {node: '>=16.0.0'} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} - engines: {node: ^14.18.0 || >=16.0.0} - table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -14225,10 +12735,6 @@ packages: tar-fs@3.1.0: resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -14240,9 +12746,6 @@ packages: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} - tcp-port-used@1.0.2: - resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} - temp@0.9.4: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} @@ -14279,10 +12782,6 @@ packages: engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - test-exclude@7.0.1: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} @@ -14359,9 +12858,6 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - tn1150@0.1.0: resolution: {integrity: sha512-DbplOfQFkqG5IHcDyyrs/lkvSr3mPUVsFf/RbDppOshs22yTPnSJWEe6FkYd1txAwU/zcnR905ar2fi4kwF29w==} engines: {node: '>=0.12'} @@ -14414,10 +12910,6 @@ packages: peerDependencies: tslib: '2' - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -14465,10 +12957,6 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -14497,10 +12985,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -14576,11 +13060,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.2: resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} @@ -14622,22 +13101,6 @@ packages: resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==} engines: {node: '>=0.10.0'} - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - unidragger@3.0.1: resolution: {integrity: sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw==} @@ -14724,9 +13187,6 @@ packages: resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} engines: {node: '>=18.12.0'} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unused-filename@4.0.1: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -14822,17 +13282,9 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-npm-package-name@6.0.2: resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -15063,9 +13515,6 @@ packages: engines: {node: '>=10'} hasBin: true - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} @@ -15395,11 +13844,6 @@ packages: resolution: {integrity: sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==} engines: {node: '>= 6'} - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} - engines: {node: '>= 14.6'} - hasBin: true - yaml@2.8.1: resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} engines: {node: '>= 14.6'} @@ -15968,10 +14412,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.28.1 - '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.28.1 @@ -15984,46 +14424,8 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@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.26.5(@babel/core@7.28.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.28.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1(supports-color@6.0.0) - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.0 @@ -16040,51 +14442,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.28.1 - '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.26.5(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.1 - transitivePeerDependencies: - - supports-color - '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 @@ -16098,406 +14463,11 @@ snapshots: dependencies: '@babel/types': 7.28.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -16516,190 +14486,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-typescript@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/preset-env@7.26.9(@babel/core@7.28.0)': - dependencies: - '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.28.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.28.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.28.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.28.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.28.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.28.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.28.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.28.0) - '@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.28.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) - core-js-compat: 3.41.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.1 - esutils: 2.0.3 - - '@babel/preset-typescript@7.27.0(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.28.0) - '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color - '@babel/runtime@7.27.6': {} '@babel/template@7.27.0': @@ -16748,8 +14534,6 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@bcoe/v8-coverage@0.2.3': {} - '@bcoe/v8-coverage@1.0.2': {} '@braintree/sanitize-url@6.0.2': {} @@ -16811,6 +14595,8 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-upload': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-ai@46.0.2': dependencies: @@ -16954,8 +14740,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-collaboration-core@46.0.2': dependencies: @@ -16969,8 +14753,6 @@ snapshots: '@types/luxon': 3.6.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) luxon: 3.6.1 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-comments@46.0.2': dependencies: @@ -16992,8 +14774,6 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-core@46.0.2': dependencies: @@ -17179,6 +14959,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -17188,6 +14970,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-inline@46.0.2': dependencies: @@ -17197,6 +14981,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-multi-root@46.0.2': dependencies: @@ -17219,8 +15005,6 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -17233,8 +15017,6 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 fuzzysort: 3.1.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-engine@46.0.2': dependencies: @@ -17246,8 +15028,6 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-essentials@46.0.2': dependencies: @@ -17279,8 +15059,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -17294,8 +15072,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-find-and-replace@46.0.2': dependencies: @@ -17314,8 +15090,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-format-painter@46.0.2': dependencies: @@ -17335,8 +15109,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-heading@46.0.2': dependencies: @@ -17347,8 +15119,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-highlight@46.0.2': dependencies: @@ -17375,8 +15145,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-support@46.0.2': dependencies: @@ -17392,8 +15160,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-icons@46.0.2': {} @@ -17411,8 +15177,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-import-word@46.0.2': dependencies: @@ -17425,8 +15189,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -17438,8 +15200,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-inspector@5.0.0': {} @@ -17449,8 +15209,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-line-height@46.0.2': dependencies: @@ -17474,8 +15232,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-list-multi-level@46.0.2': dependencies: @@ -17499,8 +15255,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-markdown-gfm@46.0.2': dependencies: @@ -17538,8 +15292,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-mention@46.0.2(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -17621,8 +15373,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-pagination@46.0.2': dependencies: @@ -17788,8 +15538,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-table@46.0.2': dependencies: @@ -17802,8 +15550,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-template@46.0.2': dependencies: @@ -17846,8 +15592,6 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-typing@46.0.2': dependencies: @@ -17914,8 +15658,6 @@ snapshots: '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-widget@46.0.2': dependencies: @@ -18523,14 +16265,17 @@ snapshots: dependencies: '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 + optional: true '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 + optional: true '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 + optional: true '@epic-web/invariant@1.0.0': {} @@ -19069,159 +16814,8 @@ snapshots: dependencies: minipass: 7.1.2 - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} - '@jest/console@30.0.5': - dependencies: - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - chalk: 4.1.2 - jest-message-util: 30.0.5 - jest-util: 30.0.5 - slash: 3.0.0 - - '@jest/diff-sequences@30.0.1': {} - - '@jest/environment@30.0.5': - dependencies: - '@jest/fake-timers': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - jest-mock: 30.0.5 - - '@jest/expect-utils@30.0.5': - dependencies: - '@jest/get-type': 30.0.1 - - '@jest/expect@30.0.5': - dependencies: - expect: 30.0.5 - jest-snapshot: 30.0.5 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@30.0.5': - dependencies: - '@jest/types': 30.0.5 - '@sinonjs/fake-timers': 13.0.5 - '@types/node': 22.18.0 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-util: 30.0.5 - - '@jest/get-type@30.0.1': {} - - '@jest/globals@30.0.5': - dependencies: - '@jest/environment': 30.0.5 - '@jest/expect': 30.0.5 - '@jest/types': 30.0.5 - jest-mock: 30.0.5 - transitivePeerDependencies: - - supports-color - - '@jest/pattern@30.0.1': - dependencies: - '@types/node': 22.18.0 - jest-regex-util: 30.0.1 - - '@jest/reporters@30.0.5': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.29 - '@types/node': 22.18.0 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit-x: 0.2.2 - glob: 10.4.5 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - jest-message-util: 30.0.5 - jest-util: 30.0.5 - jest-worker: 30.0.5 - slash: 3.0.0 - string-length: 4.0.2 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@30.0.5': - dependencies: - '@sinclair/typebox': 0.34.38 - - '@jest/snapshot-utils@30.0.5': - dependencies: - '@jest/types': 30.0.5 - chalk: 4.1.2 - graceful-fs: 4.2.11 - natural-compare: 1.4.0 - - '@jest/source-map@30.0.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.30 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@30.0.5': - dependencies: - '@jest/console': 30.0.5 - '@jest/types': 30.0.5 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@30.0.5': - dependencies: - '@jest/test-result': 30.0.5 - graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - slash: 3.0.0 - - '@jest/transform@30.0.5': - dependencies: - '@babel/core': 7.28.0 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.29 - babel-plugin-istanbul: 7.0.0 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-regex-util: 30.0.1 - jest-util: 30.0.5 - micromatch: 4.0.8 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 5.0.1 - transitivePeerDependencies: - - supports-color - - '@jest/types@30.0.5': - dependencies: - '@jest/pattern': 30.0.1 - '@jest/schemas': 30.0.5 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.18.0 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - '@jimp/core@1.6.0': dependencies: '@jimp/file-ops': 1.6.0 @@ -19702,19 +17296,6 @@ snapshots: strict-event-emitter: 0.5.1 optional: true - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.10.0 - optional: true - - '@napi-rs/wasm-runtime@0.2.4': - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.0.3': dependencies: '@emnapi/core': 1.4.5 @@ -19815,312 +17396,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@nx/devkit@21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': - dependencies: - ejs: 3.1.10 - enquirer: 2.3.6 - ignore: 5.3.2 - minimatch: 9.0.3 - nx: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) - semver: 7.7.2 - tmp: 0.2.5 - tslib: 2.8.1 - yargs-parser: 21.1.1 - - '@nx/esbuild@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - picocolors: 1.1.1 - tinyglobby: 0.2.14 - tsconfig-paths: 4.2.0 - tslib: 2.8.1 - optionalDependencies: - esbuild: 0.25.9 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - nx - - supports-color - - verdaccio - - '@nx/eslint-plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) - '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/type-utils': 8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - chalk: 4.1.2 - confusing-browser-globals: 1.0.11 - globals: 15.15.0 - jsonc-eslint-parser: 2.4.0 - semver: 7.7.2 - tslib: 2.8.1 - optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@9.34.0(jiti@2.5.1)) - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - eslint - - nx - - supports-color - - typescript - - verdaccio - - '@nx/eslint@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - eslint: 9.34.0(jiti@2.5.1) - semver: 7.7.2 - tslib: 2.8.1 - typescript: 5.8.3 - optionalDependencies: - '@zkochan/js-yaml': 0.0.7 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - nx - - supports-color - - verdaccio - - '@nx/express@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(express@4.21.2)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2)': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/node': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2) - tslib: 2.8.1 - optionalDependencies: - express: 4.21.2 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@types/node' - - '@zkochan/js-yaml' - - babel-plugin-macros - - debug - - esbuild-register - - eslint - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - - '@nx/jest@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2)': - dependencies: - '@jest/reporters': 30.0.5 - '@jest/test-result': 30.0.5 - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) - identity-obj-proxy: 3.0.0 - jest-config: 30.0.5(@types/node@22.18.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2)) - jest-resolve: 30.0.5 - jest-util: 30.0.5 - minimatch: 9.0.3 - picocolors: 1.1.1 - resolve.exports: 2.0.3 - semver: 7.7.2 - tslib: 2.8.1 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@types/node' - - babel-plugin-macros - - debug - - esbuild-register - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - - '@nx/js@21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': - dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.28.0) - '@babel/preset-env': 7.26.9(@babel/core@7.28.0) - '@babel/preset-typescript': 7.27.0(@babel/core@7.28.0) - '@babel/runtime': 7.27.6 - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/workspace': 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) - '@zkochan/js-yaml': 0.0.7 - babel-plugin-const-enum: 1.2.0(@babel/core@7.28.0) - babel-plugin-macros: 3.1.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0) - chalk: 4.1.2 - columnify: 1.6.0 - detect-port: 1.6.1 - enquirer: 2.3.6 - ignore: 5.3.2 - js-tokens: 4.0.0 - jsonc-parser: 3.2.0 - npm-package-arg: 11.0.1 - npm-run-path: 4.0.1 - ora: 5.3.0 - picocolors: 1.1.1 - picomatch: 4.0.2 - semver: 7.7.2 - source-map-support: 0.5.19 - tinyglobby: 0.2.14 - tslib: 2.8.1 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - nx - - supports-color - - '@nx/node@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2)': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/jest': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(babel-plugin-macros@3.1.0)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - kill-port: 1.6.1 - tcp-port-used: 1.0.2 - tslib: 2.8.1 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@types/node' - - '@zkochan/js-yaml' - - babel-plugin-macros - - debug - - esbuild-register - - eslint - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - - '@nx/nx-darwin-arm64@21.3.11': - optional: true - - '@nx/nx-darwin-x64@21.3.11': - optional: true - - '@nx/nx-freebsd-x64@21.3.11': - optional: true - - '@nx/nx-linux-arm-gnueabihf@21.3.11': - optional: true - - '@nx/nx-linux-arm64-gnu@21.3.11': - optional: true - - '@nx/nx-linux-arm64-musl@21.3.11': - optional: true - - '@nx/nx-linux-x64-gnu@21.3.11': - optional: true - - '@nx/nx-linux-x64-musl@21.3.11': - optional: true - - '@nx/nx-win32-arm64-msvc@21.3.11': - optional: true - - '@nx/nx-win32-x64-msvc@21.3.11': - optional: true - - '@nx/playwright@21.3.11(@babel/traverse@7.28.0)(@playwright/test@1.55.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/eslint': 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) - minimatch: 9.0.3 - tslib: 2.8.1 - optionalDependencies: - '@playwright/test': 1.55.0 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@zkochan/js-yaml' - - debug - - eslint - - nx - - supports-color - - typescript - - verdaccio - - '@nx/vite@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) - '@swc/helpers': 0.5.17 - ajv: 8.17.1 - enquirer: 2.3.6 - picomatch: 4.0.2 - semver: 7.7.2 - tsconfig-paths: 4.2.0 - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - nx - - supports-color - - typescript - - verdaccio - - '@nx/web@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - detect-port: 1.6.1 - http-server: 14.1.1 - picocolors: 1.1.1 - tslib: 2.8.1 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - debug - - nx - - supports-color - - verdaccio - - '@nx/workspace@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))': - dependencies: - '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) - '@zkochan/js-yaml': 0.0.7 - chalk: 4.1.2 - enquirer: 2.3.6 - nx: 21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)) - picomatch: 4.0.2 - tslib: 2.8.1 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - '@open-draft/deferred-promise@2.2.0': optional: true @@ -20137,47 +17412,6 @@ snapshots: '@oxc-project/types@0.77.3': {} - '@oxc-resolver/binding-darwin-arm64@5.3.0': - optional: true - - '@oxc-resolver/binding-darwin-x64@5.3.0': - optional: true - - '@oxc-resolver/binding-freebsd-x64@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-arm-gnueabihf@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-arm64-gnu@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-arm64-musl@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-riscv64-gnu@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-s390x-gnu@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-x64-gnu@5.3.0': - optional: true - - '@oxc-resolver/binding-linux-x64-musl@5.3.0': - optional: true - - '@oxc-resolver/binding-wasm32-wasi@5.3.0': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true - - '@oxc-resolver/binding-win32-arm64-msvc@5.3.0': - optional: true - - '@oxc-resolver/binding-win32-x64-msvc@5.3.0': - optional: true - '@panva/asn1.js@1.0.0': {} '@paralleldrive/cuid2@2.2.2': @@ -20245,16 +17479,9 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@phenomnomnominal/tsquery@5.0.1(typescript@5.9.2)': - dependencies: - esquery: 1.6.0 - typescript: 5.9.2 - '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.9': {} - '@playwright/test@1.55.0': dependencies: playwright: 1.55.0 @@ -20960,18 +18187,8 @@ snapshots: '@sinclair/typebox@0.31.28': {} - '@sinclair/typebox@0.34.38': {} - '@sindresorhus/is@4.6.0': {} - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@13.0.5': - dependencies: - '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@4.0.4': dependencies: '@smithy/types': 4.3.1 @@ -21358,34 +18575,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@swc-node/core@1.14.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)': - dependencies: - '@swc/core': 1.11.29(@swc/helpers@0.5.17) - '@swc/types': 0.1.21 - optional: true - - '@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2)': - dependencies: - '@swc-node/core': 1.14.1(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21) - '@swc-node/sourcemap-support': 0.5.1 - '@swc/core': 1.11.29(@swc/helpers@0.5.17) - colorette: 2.0.20 - debug: 4.4.1(supports-color@6.0.0) - oxc-resolver: 5.3.0 - pirates: 4.0.7 - tslib: 2.8.1 - typescript: 5.9.2 - transitivePeerDependencies: - - '@swc/types' - - supports-color - optional: true - - '@swc-node/sourcemap-support@0.5.1': - dependencies: - source-map-support: 0.5.21 - tslib: 2.8.1 - optional: true - '@swc/core-darwin-arm64@1.11.29': optional: true @@ -21438,6 +18627,7 @@ snapshots: '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 + optional: true '@swc/types@0.1.21': dependencies: @@ -21583,10 +18773,6 @@ snapshots: tslib: 2.8.1 optional: true - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.8.1 - '@types/appdmg@0.5.5': dependencies: '@types/node': 22.18.0 @@ -21600,27 +18786,6 @@ snapshots: '@types/aria-query@5.0.4': {} - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.28.1 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.1 - - '@types/babel__traverse@7.20.7': - dependencies: - '@babel/types': 7.28.1 - '@types/better-sqlite3@7.6.13': dependencies: '@types/node': 22.15.21 @@ -21897,16 +19062,6 @@ snapshots: '@types/ini@4.1.1': {} - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - '@types/jquery@3.5.33': dependencies: '@types/sizzle': 2.3.9 @@ -22087,8 +19242,6 @@ snapshots: dependencies: '@types/node': 22.18.0 - '@types/stack-utils@2.0.3': {} - '@types/statuses@2.0.6': optional: true @@ -22221,15 +19374,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.38.0(typescript@5.9.2)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) - '@typescript-eslint/types': 8.38.0 - debug: 4.4.1(supports-color@6.0.0) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.40.0(typescript@5.9.2)': dependencies: '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) @@ -22248,11 +19392,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.38.0': - dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 - '@typescript-eslint/scope-manager@8.40.0': dependencies: '@typescript-eslint/types': 8.40.0 @@ -22263,10 +19402,6 @@ snapshots: '@typescript-eslint/types': 8.41.0 '@typescript-eslint/visitor-keys': 8.41.0 - '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': - dependencies: - typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 @@ -22275,18 +19410,6 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': - dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - debug: 4.4.1(supports-color@6.0.0) - eslint: 9.34.0(jiti@2.5.1) - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.40.0 @@ -22311,28 +19434,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.38.0': {} - '@typescript-eslint/types@8.40.0': {} '@typescript-eslint/types@8.41.0': {} - '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': - dependencies: - '@typescript-eslint/project-service': 8.38.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 - debug: 4.4.1(supports-color@6.0.0) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)': dependencies: '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2) @@ -22365,17 +19470,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) @@ -22398,11 +19492,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.38.0': - dependencies: - '@typescript-eslint/types': 8.38.0 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.40.0': dependencies: '@typescript-eslint/types': 8.40.0 @@ -22415,65 +19504,6 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true - - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true - '@uploadcare/file-uploader@1.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@symbiotejs/symbiote': 1.11.7 @@ -22793,19 +19823,8 @@ snapshots: '@xtuc/long@4.2.2': {} - '@yarnpkg/lockfile@1.1.0': {} - - '@yarnpkg/parsers@3.0.2': - dependencies: - js-yaml: 3.14.1 - tslib: 2.8.1 - '@zip.js/zip.js@2.7.72': {} - '@zkochan/js-yaml@0.0.7': - dependencies: - argparse: 2.0.1 - abab@2.0.6: {} abbrev@1.1.1: {} @@ -22857,8 +19876,6 @@ snapshots: acorn@8.15.0: {} - address@1.2.2: {} - agent-base@6.0.2: dependencies: debug: 4.4.1(supports-color@6.0.0) @@ -22935,11 +19952,10 @@ snapshots: ansi-colors@3.2.3: {} - ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 + optional: true ansi-escapes@5.0.0: dependencies: @@ -23135,110 +20151,17 @@ snapshots: b4a@1.6.7: {} - babel-jest@30.0.5(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@jest/transform': 30.0.5 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.28.0) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-const-enum@1.2.0(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@7.0.0: - dependencies: - '@babel/helper-plugin-utils': 7.27.1 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 6.0.3 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@30.0.1: - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.1 - '@types/babel__core': 7.20.5 - babel-plugin-macros@3.1.0: dependencies: '@babel/runtime': 7.27.6 cosmiconfig: 7.1.0 resolve: 1.22.10 - - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.28.0): - dependencies: - '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) - core-js-compat: 3.41.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) - transitivePeerDependencies: - - supports-color + optional: true babel-plugin-transform-hook-names@1.0.2(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 - babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.0)(@babel/traverse@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - optionalDependencies: - '@babel/traverse': 7.28.0 - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0) - - babel-preset-jest@30.0.1(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - babel-plugin-jest-hoist: 30.0.1 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) - bail@2.0.2: {} balanced-match@1.0.2: {} @@ -23408,10 +20331,6 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - buffer-alloc-unsafe@1.1.0: {} buffer-alloc@1.2.0: @@ -23609,8 +20528,6 @@ snapshots: chalk@5.6.0: {} - char-regex@1.0.2: {} - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -23710,15 +20627,9 @@ snapshots: chrome-trace-event@1.0.4: {} - ci-info@4.3.0: {} - - cjs-module-lexer@2.1.0: {} - ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 - transitivePeerDependencies: - - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: @@ -23833,8 +20744,6 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@2.6.1: {} - cli-spinners@2.9.2: {} cli-spinners@3.2.0: {} @@ -23895,8 +20804,6 @@ snapshots: clsx@2.1.1: {} - co@4.6.0: {} - codemirror-lang-elixir@4.0.0: dependencies: '@codemirror/language': 6.11.0 @@ -23914,8 +20821,6 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - collect-v8-coverage@1.0.2: {} - color-convert@0.5.3: optional: true @@ -23953,11 +20858,6 @@ snapshots: colors@1.4.0: {} - columnify@1.6.0: - dependencies: - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -24044,8 +20944,6 @@ snapshots: confbox@0.2.2: {} - confusing-browser-globals@1.0.11: {} - connect-history-api-fallback@2.0.0: {} consola@3.4.0: {} @@ -24089,18 +20987,14 @@ snapshots: is-what: 3.14.1 optional: true - copy-webpack-plugin@13.0.1(webpack@5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9)): + copy-webpack-plugin@13.0.1(webpack@5.100.2(esbuild@0.25.9)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.2 serialize-javascript: 6.0.2 tinyglobby: 0.2.14 - webpack: 5.100.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.9) - - core-js-compat@3.41.0: - dependencies: - browserslist: 4.25.1 + webpack: 5.100.2(esbuild@0.25.9) core-util-is@1.0.3: {} @@ -24738,10 +21632,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.1: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -24780,10 +21670,6 @@ snapshots: optionalDependencies: babel-plugin-macros: 3.1.0 - dedent@1.6.0(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - deep-eql@5.0.2: {} deep-equal@1.1.2: @@ -24822,8 +21708,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} define-properties@1.2.1: @@ -24882,8 +21766,6 @@ snapshots: detect-libc@2.0.4: {} - detect-newline@3.1.0: {} - detect-node-es@1.1.0: {} detect-node@2.1.0: {} @@ -24892,13 +21774,6 @@ snapshots: detect-pointer@1.0.3: {} - detect-port@1.6.1: - dependencies: - address: 1.2.2 - debug: 4.4.1(supports-color@6.0.0) - transitivePeerDependencies: - - supports-color - detect-touch-events@2.0.2: {} devalue@5.3.2: {} @@ -24981,12 +21856,6 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dotenv-expand@11.0.7: - dependencies: - dotenv: 16.4.7 - - dotenv@16.4.7: {} - dotenv@17.2.1: {} dotignore@0.1.2: @@ -25171,8 +22040,6 @@ snapshots: dependencies: shimmer: 1.2.1 - emittery@0.13.1: {} - emoji-regex@10.4.0: {} emoji-regex@7.0.3: {} @@ -25232,10 +22099,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.2 - enquirer@2.3.6: - dependencies: - ansi-colors: 4.1.3 - entities@2.2.0: {} entities@4.5.0: {} @@ -25398,8 +22261,6 @@ snapshots: escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} - escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -25607,21 +22468,10 @@ snapshots: exif-parser@0.1.12: {} - exit-x@0.2.2: {} - expand-template@2.0.3: {} expect-type@1.2.1: {} - expect@30.0.5: - dependencies: - '@jest/expect-utils': 30.0.5 - '@jest/get-type': 30.0.1 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-util: 30.0.5 - exponential-backoff@3.1.2: {} express-http-proxy@2.1.1: @@ -25806,10 +22656,6 @@ snapshots: dependencies: websocket-driver: 0.7.4 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -25833,10 +22679,6 @@ snapshots: fflate@0.8.2: {} - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - file-entry-cache@10.1.3: dependencies: flat-cache: 6.1.12 @@ -26021,12 +22863,6 @@ snapshots: fresh@2.0.0: {} - front-matter@4.0.2: - dependencies: - js-yaml: 3.14.1 - - fs-constants@1.0.0: {} - fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -26190,8 +23026,6 @@ snapshots: transitivePeerDependencies: - supports-color - get-package-type@0.1.0: {} - get-port@7.1.0: {} get-proto@1.0.1: @@ -26217,8 +23051,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-them-args@1.3.2: {} - get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -26413,8 +23245,6 @@ snapshots: '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 - harmony-reflect@1.6.2: {} - has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -26579,10 +23409,6 @@ snapshots: hosted-git-info@2.8.9: {} - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 - hosted-git-info@8.1.0: dependencies: lru-cache: 10.4.3 @@ -26801,10 +23627,6 @@ snapshots: dependencies: postcss: 8.5.6 - identity-obj-proxy@3.0.0: - dependencies: - harmony-reflect: 1.6.2 - ieee754@1.2.1: {} ignore-walk@7.0.0: @@ -26906,8 +23728,6 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ip-regex@4.3.0: {} - ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} @@ -26965,8 +23785,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-docker@2.2.1: {} - is-docker@3.0.0: {} is-extendable@0.1.1: {} @@ -26987,8 +23805,6 @@ snapshots: dependencies: get-east-asian-width: 1.3.0 - is-generator-fn@2.1.0: {} - is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 @@ -27110,8 +23926,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-url@1.2.4: {} - is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -27126,20 +23940,10 @@ snapshots: is-what@3.14.1: optional: true - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - is2@2.0.9: - dependencies: - deep-is: 0.1.4 - ip-regex: 4.3.0 - is-url: 1.2.4 - isarray@0.0.1: {} isarray@1.0.0: {} @@ -27202,265 +24006,6 @@ snapshots: javascript-stringify@1.6.0: {} - jest-circus@30.0.5(babel-plugin-macros@3.1.0): - dependencies: - '@jest/environment': 30.0.5 - '@jest/expect': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.6.0(babel-plugin-macros@3.1.0) - is-generator-fn: 2.1.0 - jest-each: 30.0.5 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-runtime: 30.0.5 - jest-snapshot: 30.0.5 - jest-util: 30.0.5 - p-limit: 3.1.0 - pretty-format: 30.0.5 - pure-rand: 7.0.1 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.0.5(@types/node@22.18.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2)): - dependencies: - '@babel/core': 7.28.0 - '@jest/get-type': 30.0.1 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.0.5 - '@jest/types': 30.0.5 - babel-jest: 30.0.5(@babel/core@7.28.0) - chalk: 4.1.2 - ci-info: 4.3.0 - deepmerge: 4.3.1 - glob: 10.4.5 - graceful-fs: 4.2.11 - jest-circus: 30.0.5(babel-plugin-macros@3.1.0) - jest-docblock: 30.0.1 - jest-environment-node: 30.0.5 - jest-regex-util: 30.0.1 - jest-resolve: 30.0.5 - jest-runner: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.0.5 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.18.0 - ts-node: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@30.0.5: - dependencies: - '@jest/diff-sequences': 30.0.1 - '@jest/get-type': 30.0.1 - chalk: 4.1.2 - pretty-format: 30.0.5 - - jest-docblock@30.0.1: - dependencies: - detect-newline: 3.1.0 - - jest-each@30.0.5: - dependencies: - '@jest/get-type': 30.0.1 - '@jest/types': 30.0.5 - chalk: 4.1.2 - jest-util: 30.0.5 - pretty-format: 30.0.5 - - jest-environment-node@30.0.5: - dependencies: - '@jest/environment': 30.0.5 - '@jest/fake-timers': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - jest-mock: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 - - jest-haste-map@30.0.5: - dependencies: - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 30.0.1 - jest-util: 30.0.5 - jest-worker: 30.0.5 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@30.0.5: - dependencies: - '@jest/get-type': 30.0.1 - pretty-format: 30.0.5 - - jest-matcher-utils@30.0.5: - dependencies: - '@jest/get-type': 30.0.1 - chalk: 4.1.2 - jest-diff: 30.0.5 - pretty-format: 30.0.5 - - jest-message-util@30.0.5: - dependencies: - '@babel/code-frame': 7.27.1 - '@jest/types': 30.0.5 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 30.0.5 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@30.0.5: - dependencies: - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - jest-util: 30.0.5 - - jest-pnp-resolver@1.2.3(jest-resolve@30.0.5): - optionalDependencies: - jest-resolve: 30.0.5 - - jest-regex-util@30.0.1: {} - - jest-resolve@30.0.5: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-pnp-resolver: 1.2.3(jest-resolve@30.0.5) - jest-util: 30.0.5 - jest-validate: 30.0.5 - slash: 3.0.0 - unrs-resolver: 1.11.1 - - jest-runner@30.0.5: - dependencies: - '@jest/console': 30.0.5 - '@jest/environment': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - chalk: 4.1.2 - emittery: 0.13.1 - exit-x: 0.2.2 - graceful-fs: 4.2.11 - jest-docblock: 30.0.1 - jest-environment-node: 30.0.5 - jest-haste-map: 30.0.5 - jest-leak-detector: 30.0.5 - jest-message-util: 30.0.5 - jest-resolve: 30.0.5 - jest-runtime: 30.0.5 - jest-util: 30.0.5 - jest-watcher: 30.0.5 - jest-worker: 30.0.5 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@30.0.5: - dependencies: - '@jest/environment': 30.0.5 - '@jest/fake-timers': 30.0.5 - '@jest/globals': 30.0.5 - '@jest/source-map': 30.0.1 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - chalk: 4.1.2 - cjs-module-lexer: 2.1.0 - collect-v8-coverage: 1.0.2 - glob: 10.4.5 - graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-regex-util: 30.0.1 - jest-resolve: 30.0.5 - jest-snapshot: 30.0.5 - jest-util: 30.0.5 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@30.0.5: - dependencies: - '@babel/core': 7.28.0 - '@babel/generator': 7.28.0 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - '@babel/types': 7.28.1 - '@jest/expect-utils': 30.0.5 - '@jest/get-type': 30.0.1 - '@jest/snapshot-utils': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) - chalk: 4.1.2 - expect: 30.0.5 - graceful-fs: 4.2.11 - jest-diff: 30.0.5 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-util: 30.0.5 - pretty-format: 30.0.5 - semver: 7.7.2 - synckit: 0.11.11 - transitivePeerDependencies: - - supports-color - - jest-util@30.0.5: - dependencies: - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - chalk: 4.1.2 - ci-info: 4.3.0 - graceful-fs: 4.2.11 - picomatch: 4.0.3 - - jest-validate@30.0.5: - dependencies: - '@jest/get-type': 30.0.1 - '@jest/types': 30.0.5 - camelcase: 6.3.0 - chalk: 4.1.2 - leven: 3.1.0 - pretty-format: 30.0.5 - - jest-watcher@30.0.5: - dependencies: - '@jest/test-result': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 22.18.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 30.0.5 - string-length: 4.0.2 - jest-worker@26.6.2: dependencies: '@types/node': 22.18.0 @@ -27473,14 +24018,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@30.0.5: - dependencies: - '@types/node': 22.18.0 - '@ungap/structured-clone': 1.3.0 - jest-util: 30.0.5 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jimp@1.6.0: dependencies: '@jimp/core': 1.6.0 @@ -27560,11 +24097,6 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -27634,8 +24166,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -27664,8 +24194,6 @@ snapshots: espree: 9.6.1 semver: 7.7.1 - jsonc-parser@3.2.0: {} - jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -27718,11 +24246,6 @@ snapshots: khroma@2.1.0: {} - kill-port@1.6.1: - dependencies: - get-them-args: 1.3.2 - shell-exec: 1.0.2 - kind-of@6.0.3: {} kleur@4.1.5: {} @@ -27777,8 +24300,6 @@ snapshots: source-map: 0.6.1 optional: true - leven@3.1.0: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -27846,8 +24367,6 @@ snapshots: lines-and-columns@1.2.4: {} - lines-and-columns@2.0.3: {} - lint-staged@16.1.5: dependencies: chalk: 5.5.0 @@ -28113,10 +24632,6 @@ snapshots: - supports-color optional: true - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 @@ -28631,10 +25146,6 @@ snapshots: dependencies: brace-expansion: 2.0.2 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.2 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -28793,8 +25304,6 @@ snapshots: ms@2.1.1: {} - ms@2.1.2: {} - ms@2.1.3: {} msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2): @@ -28870,8 +25379,6 @@ snapshots: napi-build-utils@2.0.0: {} - napi-postinstall@0.3.2: {} - natural-compare@1.4.0: {} needle@3.3.1: @@ -28969,10 +25476,6 @@ snapshots: css-select: 5.2.2 he: 1.2.0 - node-int64@0.4.0: {} - - node-machine-id@1.1.12: {} - node-releases@2.0.19: {} nopt@5.0.0: @@ -29013,13 +25516,6 @@ snapshots: npm-normalize-package-bin@4.0.0: {} - npm-package-arg@11.0.1: - dependencies: - hosted-git-info: 7.0.2 - proc-log: 3.0.0 - semver: 7.7.2 - validate-npm-package-name: 5.0.1 - npm-package-arg@12.0.2: dependencies: hosted-git-info: 8.1.0 @@ -29073,59 +25569,6 @@ snapshots: nwsapi@2.2.20: {} - nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)): - dependencies: - '@napi-rs/wasm-runtime': 0.2.4 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.2 - '@zkochan/js-yaml': 0.0.7 - axios: 1.11.0(debug@4.4.1) - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.4.7 - dotenv-expand: 11.0.7 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - front-matter: 4.0.2 - ignore: 5.3.2 - jest-diff: 30.0.5 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.3 - minimatch: 9.0.3 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.2 - ora: 5.3.0 - resolve.exports: 2.0.3 - semver: 7.7.2 - string-width: 4.2.3 - tar-stream: 2.2.0 - tmp: 0.2.5 - tree-kill: 1.2.2 - tsconfig-paths: 4.2.0 - tslib: 2.8.1 - yaml: 2.8.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 21.3.11 - '@nx/nx-darwin-x64': 21.3.11 - '@nx/nx-freebsd-x64': 21.3.11 - '@nx/nx-linux-arm-gnueabihf': 21.3.11 - '@nx/nx-linux-arm64-gnu': 21.3.11 - '@nx/nx-linux-arm64-musl': 21.3.11 - '@nx/nx-linux-x64-gnu': 21.3.11 - '@nx/nx-linux-x64-musl': 21.3.11 - '@nx/nx-win32-arm64-msvc': 21.3.11 - '@nx/nx-win32-x64-msvc': 21.3.11 - '@swc-node/register': 1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2) - '@swc/core': 1.11.29(@swc/helpers@0.5.17) - transitivePeerDependencies: - - debug - object-assign@4.1.1: {} object-hash@2.2.0: {} @@ -29204,12 +25647,6 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - openai@5.12.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.4): optionalDependencies: ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -29238,17 +25675,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.3.0: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - ora@5.4.1: dependencies: bl: 4.1.0 @@ -29270,23 +25696,6 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-resolver@5.3.0: - optionalDependencies: - '@oxc-resolver/binding-darwin-arm64': 5.3.0 - '@oxc-resolver/binding-darwin-x64': 5.3.0 - '@oxc-resolver/binding-freebsd-x64': 5.3.0 - '@oxc-resolver/binding-linux-arm-gnueabihf': 5.3.0 - '@oxc-resolver/binding-linux-arm64-gnu': 5.3.0 - '@oxc-resolver/binding-linux-arm64-musl': 5.3.0 - '@oxc-resolver/binding-linux-riscv64-gnu': 5.3.0 - '@oxc-resolver/binding-linux-s390x-gnu': 5.3.0 - '@oxc-resolver/binding-linux-x64-gnu': 5.3.0 - '@oxc-resolver/binding-linux-x64-musl': 5.3.0 - '@oxc-resolver/binding-wasm32-wasi': 5.3.0 - '@oxc-resolver/binding-win32-arm64-msvc': 5.3.0 - '@oxc-resolver/binding-win32-x64-msvc': 5.3.0 - optional: true - p-cancelable@2.1.1: {} p-defer@1.0.0: {} @@ -29554,8 +25963,6 @@ snapshots: pify@4.0.1: optional: true - pirates@4.0.7: {} - pixelmatch@5.3.0: dependencies: pngjs: 6.0.0 @@ -30437,20 +26844,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@30.0.5: - dependencies: - '@jest/schemas': 30.0.5 - ansi-styles: 5.2.0 - react-is: 18.3.1 - prism-svelte@0.4.7: {} prismjs@1.30.0: {} proc-log@2.0.1: {} - proc-log@3.0.0: {} - proc-log@5.0.0: {} process-nextick-args@2.0.1: {} @@ -30534,8 +26933,6 @@ snapshots: dependencies: escape-goat: 4.0.0 - pure-rand@7.0.1: {} - purgecss@6.0.0: dependencies: commander: 12.1.0 @@ -30651,8 +27048,6 @@ snapshots: react-is@17.0.2: {} - react-is@18.3.1: {} - react-refresh@0.17.0: {} react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@16.14.0): @@ -30791,16 +27186,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.27.6 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -30810,21 +27195,6 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.2.0: - 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.2.0 - - regjsgen@0.8.0: {} - - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - rehype-dom-parse@5.0.2: dependencies: '@types/hast': 3.0.4 @@ -31485,8 +27855,6 @@ snapshots: shebang-regex@3.0.0: {} - shell-exec@1.0.2: {} - shell-quote@1.8.3: {} shelljs@0.10.0: @@ -31676,16 +28044,6 @@ snapshots: source-map-js@1.2.1: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map-support@0.5.19: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -31786,10 +28144,6 @@ snapshots: stack-trace@1.0.0-pre2: {} - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - stackback@0.0.2: {} statuses@1.5.0: {} @@ -31832,11 +28186,6 @@ snapshots: string-argv@0.3.2: {} - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - string-width@2.1.1: dependencies: is-fullwidth-code-point: 2.0.0 @@ -31920,8 +28269,6 @@ snapshots: strip-bom@3.0.0: {} - strip-bom@4.0.0: {} - strip-bom@5.0.0: {} strip-eof@1.0.0: {} @@ -32282,10 +28629,6 @@ snapshots: sync-message-port@1.1.3: optional: true - synckit@0.11.11: - dependencies: - '@pkgr/core': 0.2.9 - table@6.9.0: dependencies: ajv: 8.17.1 @@ -32329,14 +28672,6 @@ snapshots: transitivePeerDependencies: - bare-buffer - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.5 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - tar-stream@3.1.7: dependencies: b4a: 1.6.7 @@ -32361,13 +28696,6 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - tcp-port-used@1.0.2: - dependencies: - debug: 4.3.1 - is2: 2.0.9 - transitivePeerDependencies: - - supports-color - temp@0.9.4: dependencies: mkdirp: 0.5.6 @@ -32401,6 +28729,17 @@ snapshots: '@swc/core': 1.11.29(@swc/helpers@0.5.17) esbuild: 0.25.9 + terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9)): + dependencies: + '@jridgewell/trace-mapping': 0.3.29 + jest-worker: 27.5.1 + schema-utils: 4.3.2 + serialize-javascript: 6.0.2 + terser: 5.43.1 + webpack: 5.100.2(esbuild@0.25.9) + optionalDependencies: + esbuild: 0.25.9 + terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -32415,12 +28754,6 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 @@ -32487,8 +28820,6 @@ snapshots: tmp@0.2.5: {} - tmpl@1.0.5: {} - tn1150@0.1.0: dependencies: unorm: 1.6.0 @@ -32540,8 +28871,6 @@ snapshots: dependencies: tslib: 2.8.1 - tree-kill@1.2.2: {} - trim-lines@3.0.1: {} trim-repeated@1.0.0: @@ -32633,12 +28962,6 @@ snapshots: '@swc/core': 1.11.29(@swc/helpers@0.5.17) optional: true - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - tslib@2.8.1: {} tsx@4.20.5: @@ -32686,14 +29009,13 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.13.1: optional: true type-fest@0.20.2: {} - type-fest@0.21.3: {} + type-fest@0.21.3: + optional: true type-fest@1.4.0: {} @@ -32773,8 +29095,6 @@ snapshots: typescript@5.8.2: {} - typescript@5.8.3: {} - typescript@5.9.2: {} ufo@1.6.1: {} @@ -32807,17 +29127,6 @@ snapshots: dependencies: extend-shallow: 2.0.1 - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.2.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - unidragger@3.0.1: dependencies: ev-emitter: 2.1.2 @@ -32922,30 +29231,6 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.11.1: - dependencies: - napi-postinstall: 0.3.2 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unused-filename@4.0.1: dependencies: escape-string-regexp: 5.0.0 @@ -33023,19 +29308,11 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.29 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@5.0.1: {} - validate-npm-package-name@6.0.2: {} validator@13.15.0: {} @@ -33290,10 +29567,6 @@ snapshots: transitivePeerDependencies: - supports-color - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - warning@4.0.3: dependencies: loose-envify: 1.4.0 @@ -33470,6 +29743,38 @@ snapshots: - esbuild - uglify-js + webpack@5.100.2(esbuild@0.25.9): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.25.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.2 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.2 + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.100.2(esbuild@0.25.9)) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.10 @@ -33692,8 +29997,6 @@ snapshots: yaml@2.0.0-1: {} - yaml@2.8.0: {} - yaml@2.8.1: {} yargs-parser@13.1.2: From aa316091e662381b005a403451609dfc6c4bdd47 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 16:41:03 +0300 Subject: [PATCH 021/121] chore(dx): fix cannot read properties of undefined if DB dir is missing --- apps/server/src/services/resource_dir.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/server/src/services/resource_dir.ts b/apps/server/src/services/resource_dir.ts index c274b43ce0..35c056af22 100644 --- a/apps/server/src/services/resource_dir.ts +++ b/apps/server/src/services/resource_dir.ts @@ -1,4 +1,3 @@ -import log from "./log.js"; import path from "path"; import fs from "fs"; @@ -10,7 +9,7 @@ const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../.."); const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db"); if (!fs.existsSync(DB_INIT_DIR)) { - log.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`); + console.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`); process.exit(1); } From 4739e2e3b265bd2e6f7e603bb0e380f613186d7e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 16:52:32 +0300 Subject: [PATCH 022/121] chore(dx/server): remove dependency on CKEditor for now --- apps/server/src/services/export/zip.ts | 3 --- apps/server/src/types.d.ts | 6 ------ 2 files changed, 9 deletions(-) diff --git a/apps/server/src/services/export/zip.ts b/apps/server/src/services/export/zip.ts index 9d3e73d255..58ab7074fc 100644 --- a/apps/server/src/services/export/zip.ts +++ b/apps/server/src/services/export/zip.ts @@ -21,7 +21,6 @@ import type AttributeMeta from "../meta/attribute_meta.js"; import type BBranch from "../../becca/entities/bbranch.js"; import type { Response } from "express"; import type { NoteMetaFile } from "../meta/note_meta.js"; -import cssContent from "@triliumnext/ckeditor5/content.css"; type RewriteLinksFn = (content: string, noteMeta: NoteMeta) => string; @@ -514,8 +513,6 @@ ${markdownContent}`; if (!cssMeta.dataFileName) { return; } - - archive.append(cssContent, { name: cssMeta.dataFileName }); } try { diff --git a/apps/server/src/types.d.ts b/apps/server/src/types.d.ts index c302e27d89..4bcac86d28 100644 --- a/apps/server/src/types.d.ts +++ b/apps/server/src/types.d.ts @@ -23,12 +23,6 @@ declare module "is-animated" { export default isAnimated; } -declare module "@triliumnext/ckeditor5/content.css" { - const content: string; - export default content; -} - - declare module "@triliumnext/share-theme/*.ejs" { const content: string; export default content; From 63c0841c32b3da96cb14ee5b6374afeb0859a523 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 16:58:57 +0300 Subject: [PATCH 023/121] chore(dx/server): get server to run up to missing public server --- apps/server/package.json | 15 +++------------ packages/commons/package.json | 13 +------------ packages/express-partial-content/package.json | 13 +------------ packages/turndown-plugin-gfm/package.json | 13 +------------ 4 files changed, 6 insertions(+), 48 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index a36d33d01e..d9232fca45 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -360,17 +360,8 @@ } } }, - "exports": { - "./package.json": "./package.json", - "./src/*": "./src/*", - ".": { - "development": "./src/main.ts", - "types": "./dist/main.d.ts", - "import": "./dist/main.js", - "default": "./dist/main.js" - } + "scripts": { + "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch ./src/main.ts" }, - "types": "./dist/main.d.ts", - "module": "./dist/main.js", - "main": "./dist/main.js" + "main": "./src/main.ts" } \ No newline at end of file diff --git a/packages/commons/package.json b/packages/commons/package.json index eff04806ce..8b9be2e0ab 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -4,18 +4,7 @@ "description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.", "private": true, "type": "module", - "main": "./dist/main.js", - "module": "./dist/main.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "development": "./src/index.ts", - "types": "./dist/index.d.ts", - "import": "./dist/main.js", - "default": "./dist/main.js" - } - }, + "main": "./src/index.ts", "license": "AGPL-3.0-only", "author": { "name": "Trilium Notes Team", diff --git a/packages/express-partial-content/package.json b/packages/express-partial-content/package.json index d4a78437be..437e4d40ff 100644 --- a/packages/express-partial-content/package.json +++ b/packages/express-partial-content/package.json @@ -5,18 +5,7 @@ "version": "1.1.0", "type": "module", "private": true, - "main": "./dist/main.js", - "module": "./dist/main.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "development": "./src/index.ts", - "types": "./dist/index.d.ts", - "import": "./dist/main.js", - "default": "./dist/main.js" - } - }, + "main": "./src/index.ts", "keywords": [ "partial-content", "206", diff --git a/packages/turndown-plugin-gfm/package.json b/packages/turndown-plugin-gfm/package.json index c50bbb1ba0..1c9d2ab054 100644 --- a/packages/turndown-plugin-gfm/package.json +++ b/packages/turndown-plugin-gfm/package.json @@ -5,18 +5,7 @@ "author": "Dom Christie", "private": true, "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "development": "./src/index.js", - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "default": "./dist/index.js" - } - }, + "main": "./src/index.js", "gitHead": "05a29b450962bf05a8642bbd39446a1f679a96ba", "license": "MIT", "repository": { From 113d36f5ddee2954e0033485b579164621fc0041 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:18:35 +0300 Subject: [PATCH 024/121] chore(dx/client): set paths for client dependencies --- packages/ckeditor5-admonition/package.json | 13 +------------ packages/ckeditor5-footnotes/package.json | 13 +------------ packages/ckeditor5-keyboard-marker/package.json | 13 +------------ packages/ckeditor5-math/package.json | 13 +------------ packages/ckeditor5-mermaid/package.json | 13 +------------ packages/ckeditor5/package.json | 16 +--------------- packages/highlightjs/package.json | 13 +------------ 7 files changed, 7 insertions(+), 87 deletions(-) diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 2d84b2145e..377abce2cb 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -11,18 +11,7 @@ "ckeditor5-package-generator" ], "type": "module", - "main": "dist/index.ts", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*": "./dist/*", - "./browser/*": null, - "./package.json": "./package.json" - }, + "main": "src/index.ts", "engines": { "node": ">=18.0.0", "npm": ">=5.7.1" diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index 0755f8c300..b2eb2e16bf 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -11,18 +11,7 @@ "ckeditor5-package-generator" ], "type": "module", - "main": "dist/index.ts", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*": "./dist/*", - "./browser/*": null, - "./package.json": "./package.json" - }, + "main": "src/index.ts", "license": "ISC", "engines": { "node": ">=18.0.0", diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index 5024f813e5..e4f34f135b 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -11,18 +11,7 @@ "ckeditor5-package-generator" ], "type": "module", - "main": "dist/index.ts", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*": "./dist/*", - "./browser/*": null, - "./package.json": "./package.json" - }, + "main": "src/index.ts", "author": "Marek Lewandowski", "license": "GPL-3.0", "homepage": "https://github.com/mlewand/ckeditor5-keyboard-marker", diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index 7c58f2c784..a6f30aba3e 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -12,18 +12,7 @@ "katex" ], "type": "module", - "main": "dist/index.ts", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*": "./dist/*", - "./browser/*": null, - "./package.json": "./package.json" - }, + "main": "src/index.ts", "author": "Sauli Anto", "license": "ISC", "engines": { diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index 16e82a001e..41d4c15941 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -11,18 +11,7 @@ "ckeditor5-package-generator" ], "type": "module", - "main": "dist/index.ts", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*": "./dist/*", - "./browser/*": null, - "./package.json": "./package.json" - }, + "main": "src/index.ts", "license": "SEE LICENSE IN LICENSE.md", "author": "CKSource (https://cksource.com/)", "homepage": "https://github.com/ckeditor/ckeditor5-mermaid", diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json index 49562a8cce..311e70b777 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -4,21 +4,7 @@ "version": "45.0.0", "private": true, "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - "./emoji_definitions/": "./src/emoji_definitions/", - "./content.css": "./dist/content.css", - "./index.css": "./dist/index.css", - ".": { - "development": "./src/index.ts", - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "default": "./dist/index.js" - } - }, + "main": "./src/index.ts", "nx": { "name": "ckeditor5", "targets": { diff --git a/packages/highlightjs/package.json b/packages/highlightjs/package.json index c6eb24ed15..e2214e515f 100644 --- a/packages/highlightjs/package.json +++ b/packages/highlightjs/package.json @@ -3,18 +3,7 @@ "version": "0.0.1", "private": true, "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "development": "./src/index.ts", - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "default": "./dist/index.js" - } - }, + "main": "./src/index.ts", "nx": { "name": "highlightjs" }, From cc474f39d82ca05483a5931dab5e912853d01029 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:24:02 +0300 Subject: [PATCH 025/121] chore(dx/server): basic middleware integration for vite --- .../{vite.config.mts => vite.config.mts.bak} | 5 - apps/server/package.json | 17 +- apps/server/src/routes/assets.ts | 26 +- apps/server/src/services/asset_path.ts | 3 +- pnpm-lock.yaml | 947 +++++++++--------- 5 files changed, 499 insertions(+), 499 deletions(-) rename apps/client/{vite.config.mts => vite.config.mts.bak} (91%) diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts.bak similarity index 91% rename from apps/client/vite.config.mts rename to apps/client/vite.config.mts.bak index 640313bffc..72ef792ac7 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts.bak @@ -41,11 +41,6 @@ export default defineConfig(() => ({ ] as Plugin[], resolve: { alias: [ - // Force the use of dist in development mode because upstream ESM is broken (some hybrid between CJS and ESM, will be improved in upcoming versions). - { - find: "@triliumnext/highlightjs", - replacement: resolve(__dirname, "node_modules/@triliumnext/highlightjs/dist") - }, { find: "react", replacement: "preact/compat" diff --git a/apps/server/package.json b/apps/server/package.json index d9232fca45..93fa686b0e 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -7,7 +7,13 @@ "better-sqlite3": "12.2.0" }, "devDependencies": { + "@anthropic-ai/sdk": "0.60.0", + "@braintree/sanitize-url": "7.1.1", "@electron/remote": "2.1.3", + "@preact/preset-vite": "2.10.2", + "@triliumnext/commons": "workspace:*", + "@triliumnext/express-partial-content": "workspace:*", + "@triliumnext/turndown-plugin-gfm": "workspace:*", "@types/archiver": "6.0.3", "@types/better-sqlite3": "7.6.13", "@types/cls-hooked": "4.3.9", @@ -38,16 +44,11 @@ "@types/turndown": "5.0.5", "@types/ws": "8.18.1", "@types/xml2js": "0.4.14", - "express-http-proxy": "2.1.1", - "@anthropic-ai/sdk": "0.60.0", - "@braintree/sanitize-url": "7.1.1", - "@triliumnext/commons": "workspace:*", - "@triliumnext/express-partial-content": "workspace:*", - "@triliumnext/turndown-plugin-gfm": "workspace:*", "archiver": "7.0.1", "async-mutex": "0.5.0", "axios": "1.11.0", "bindings": "1.5.0", + "bootstrap": "5.3.8", "chardet": "2.1.0", "cheerio": "1.1.2", "chokidar": "4.0.3", @@ -64,6 +65,7 @@ "electron-window-state": "5.0.3", "escape-html": "1.0.3", "express": "5.1.0", + "express-http-proxy": "2.1.1", "express-openid-connect": "^2.17.1", "express-rate-limit": "8.0.1", "express-session": "1.18.2", @@ -105,6 +107,7 @@ "tmp": "0.2.5", "turndown": "7.2.1", "unescape": "1.0.1", + "vite": "^7.1.3", "ws": "8.18.3", "xml2js": "0.6.2", "yauzl": "3.2.0" @@ -361,7 +364,7 @@ } }, "scripts": { - "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch ./src/main.ts" + "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts" }, "main": "./src/main.ts" } \ No newline at end of file diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index d0de552fd3..5484e0158d 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -3,8 +3,9 @@ import path from "path"; import express from "express"; import { getResourceDir, isDev } from "../services/utils.js"; import type serveStatic from "serve-static"; -import proxy from "express-http-proxy"; import { existsSync } from "fs"; +import { createServer as createViteServer } from "vite"; +import preact from "@preact/preset-vite"; const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOptions>>) => { if (!isDev) { @@ -17,17 +18,24 @@ const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOp }; async function register(app: express.Application) { - const srcRoot = path.join(__dirname, ".."); + const srcRoot = path.join(__dirname, "..", ".."); const resourceDir = getResourceDir(); if (isDev) { - const publicUrl = process.env.TRILIUM_PUBLIC_SERVER; - if (!publicUrl) { - throw new Error("Missing TRILIUM_PUBLIC_SERVER"); - } - app.use("/" + assetUrlFragment + `/@fs`, proxy(publicUrl, { - proxyReqPathResolver: (req) => "/" + assetUrlFragment + `/@fs` + req.url - })); + const vite = await createViteServer({ + base: `/${assetUrlFragment}/`, + root: path.join(srcRoot, "../client"), + plugins: [ + preact() + ], + define: { + "process.env.IS_PREACT": JSON.stringify("true"), + } + }); + app.use(`/${assetUrlFragment}/`, (req, res, next) => { + req.url = `/${assetUrlFragment}` + req.url; + vite.middlewares(req, res, next); + }); } else { const publicDir = path.join(resourceDir, "public"); if (!existsSync(publicDir)) { diff --git a/apps/server/src/services/asset_path.ts b/apps/server/src/services/asset_path.ts index 2695d1fc32..076b7a647f 100644 --- a/apps/server/src/services/asset_path.ts +++ b/apps/server/src/services/asset_path.ts @@ -1,7 +1,6 @@ import packageJson from "../../package.json" with { type: "json" }; -import { isDev } from "./utils"; export const assetUrlFragment = `assets/v${packageJson.version}`; -const assetPath = isDev ? `http://localhost:4200/${assetUrlFragment}` : assetUrlFragment; +const assetPath = assetUrlFragment; export default assetPath; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28ecfa66d6..b2cba94d0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,7 +98,7 @@ importers: version: 0.17.0 rollup-plugin-webpack-stats: specifier: 2.1.4 - version: 2.1.4(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.1.4(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) tslib: specifier: ^2.3.0 version: 2.8.1 @@ -116,13 +116,13 @@ importers: version: 2.0.1 vite: specifier: ^7.0.0 - version: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) vite-plugin-dts: specifier: ~4.5.0 - version: 4.5.4(@types/node@22.18.0)(rollup@4.46.3)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 4.5.4(@types/node@22.18.0)(rollup@4.46.3)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.0 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) apps/client: dependencies: @@ -273,7 +273,7 @@ importers: version: 5.0.0 '@preact/preset-vite': specifier: 2.10.2 - version: 2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@types/bootstrap': specifier: 5.2.10 version: 5.2.10 @@ -303,7 +303,7 @@ importers: version: 0.7.2 vite-plugin-static-copy: specifier: 3.1.2 - version: 3.1.2(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 3.1.2(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) apps/db-compare: dependencies: @@ -464,6 +464,9 @@ importers: '@electron/remote': specifier: 2.1.3 version: 2.1.3(electron@37.4.0) + '@preact/preset-vite': + specifier: 2.10.2 + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@triliumnext/commons': specifier: workspace:* version: link:../../packages/commons @@ -575,6 +578,9 @@ importers: bindings: specifier: 1.5.0 version: 1.5.0 + bootstrap: + specifier: 5.3.8 + version: 5.3.8(@popperjs/core@2.11.8) chardet: specifier: 2.1.0 version: 2.1.0 @@ -749,6 +755,9 @@ importers: unescape: specifier: 1.0.1 version: 1.0.1 + vite: + specifier: ^7.1.3 + version: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) ws: specifier: 8.18.3 version: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -779,19 +788,19 @@ importers: version: 9.34.0 '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.1.0(@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))) + version: 6.1.0(@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))) '@sveltejs/kit': specifier: ^2.16.0 - version: 2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^6.0.0 - version: 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.16(tailwindcss@4.1.12) '@tailwindcss/vite': specifier: ^4.0.0 - version: 4.1.12(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 4.1.12(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) eslint: specifier: ^9.18.0 version: 9.34.0(jiti@2.5.1) @@ -821,7 +830,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.0 - version: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) packages/ckeditor5: dependencies: @@ -847,6 +856,9 @@ importers: specifier: 46.0.2 version: 46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5) devDependencies: + '@smithy/middleware-retry': + specifier: 4.1.20 + version: 4.1.20 '@types/jquery': specifier: 3.5.33 version: 3.5.33 @@ -870,7 +882,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) @@ -903,10 +915,10 @@ importers: version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 version: 9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -930,7 +942,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) @@ -963,10 +975,10 @@ importers: version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 version: 9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -990,7 +1002,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) @@ -1023,10 +1035,10 @@ importers: version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 version: 9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -1057,7 +1069,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) @@ -1090,10 +1102,10 @@ importers: version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 version: 9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -1124,7 +1136,7 @@ importers: version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 - version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/coverage-istanbul': specifier: ^3.0.5 version: 3.2.4(vitest@3.2.4) @@ -1157,10 +1169,10 @@ importers: version: 5.9.2 vite-plugin-svgo: specifier: ~2.0.0 - version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) webdriverio: specifier: ^9.0.7 version: 9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -4123,12 +4135,16 @@ packages: resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} engines: {node: '>=18.0.0'} + '@smithy/abort-controller@4.0.5': + resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} + engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.1.4': resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} engines: {node: '>=18.0.0'} - '@smithy/core@3.7.0': - resolution: {integrity: sha512-7ov8hu/4j0uPZv8b27oeOFtIBtlFmM3ibrPv/Omx1uUdoXvcpJ00U+H/OWWC/keAguLlcqwtyL2/jTlSnApgNQ==} + '@smithy/core@3.9.0': + resolution: {integrity: sha512-B/GknvCfS3llXd/b++hcrwIuqnEozQDnRL4sBmOac5/z/dr0/yG1PURNPOyU4Lsiy1IyTj8scPxVqRs5dYWf6A==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.0.6': @@ -4159,6 +4175,10 @@ packages: resolution: {integrity: sha512-mADw7MS0bYe2OGKkHYMaqarOXuDwRbO6ArD91XhHcl2ynjGCFF+hvqf0LyQcYxkA1zaWjefSkU7Ne9mqgApSgQ==} engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.1.1': + resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} + engines: {node: '>=18.0.0'} + '@smithy/hash-node@4.0.4': resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} engines: {node: '>=18.0.0'} @@ -4179,71 +4199,90 @@ packages: resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.1.14': - resolution: {integrity: sha512-+BGLpK5D93gCcSEceaaYhUD/+OCGXM1IDaq/jKUQ+ujB0PTWlWN85noodKw/IPFZhIKFCNEe19PGd/reUMeLSQ==} + '@smithy/middleware-endpoint@4.1.19': + resolution: {integrity: sha512-EAlEPncqo03siNZJ9Tm6adKCQ+sw5fNU8ncxWwaH0zTCwMPsgmERTi6CEKaermZdgJb+4Yvh0NFm36HeO4PGgQ==} engines: {node: '>=18.0.0'} - deprecated: Please upgrade to @smithy/middleware-endpoint@4.1.15 or higher to fix a bug preventing the resolution of ENV and config file custom endpoints https://github.com/smithy-lang/smithy-typescript/issues/1645 - '@smithy/middleware-retry@4.1.15': - resolution: {integrity: sha512-iKYUJpiyTQ33U2KlOZeUb0GwtzWR3C0soYcKuCnTmJrvt6XwTPQZhMfsjJZNw7PpQ3TU4Ati1qLSrkSJxnnSMQ==} + '@smithy/middleware-retry@4.1.20': + resolution: {integrity: sha512-T3maNEm3Masae99eFdx1Q7PIqBBEVOvRd5hralqKZNeIivnoGNx5OFtI3DiZ5gCjUkl0mNondlzSXeVxkinh7Q==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.0.8': resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.0.4': - resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} + '@smithy/middleware-serde@4.0.9': + resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.1.3': - resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} + '@smithy/middleware-stack@4.0.5': + resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.1.4': + resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} engines: {node: '>=18.0.0'} '@smithy/node-http-handler@4.1.0': resolution: {integrity: sha512-vqfSiHz2v8b3TTTrdXi03vNz1KLYYS3bhHCDv36FYDqxT7jvTll1mMnCrkD+gOvgwybuunh/2VmvOMqwBegxEg==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.0.4': - resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} + '@smithy/node-http-handler@4.1.1': + resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.1.2': - resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} + '@smithy/property-provider@4.0.5': + resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.1.3': + resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} engines: {node: '>=18.0.0'} '@smithy/querystring-builder@4.0.4': resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.0.5': + resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@4.0.4': resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.0.6': - resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==} + '@smithy/querystring-parser@4.0.5': + resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.0.4': - resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} + '@smithy/service-error-classification@4.0.7': + resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.5': + resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} engines: {node: '>=18.0.0'} '@smithy/signature-v4@5.1.2': resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.4.6': - resolution: {integrity: sha512-3wfhywdzB/CFszP6moa5L3lf5/zSfQoH0kvVSdkyK2az5qZet0sn2PAHjcTDiq296Y4RP5yxF7B6S6+3oeBUCQ==} + '@smithy/smithy-client@4.5.0': + resolution: {integrity: sha512-ZSdE3vl0MuVbEwJBxSftm0J5nL/gw76xp5WF13zW9cN18MFuFXD5/LV0QD8P+sCU5bSWGyy6CTgUupE1HhOo1A==} engines: {node: '>=18.0.0'} - '@smithy/types@4.3.1': - resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} + '@smithy/types@4.3.2': + resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} engines: {node: '>=18.0.0'} '@smithy/url-parser@4.0.4': resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.0.5': + resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} + engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.0.0': resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} engines: {node: '>=18.0.0'} @@ -4284,16 +4323,16 @@ packages: resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.0.4': - resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} + '@smithy/util-middleware@4.0.5': + resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.0.6': - resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==} + '@smithy/util-retry@4.0.7': + resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.2.3': - resolution: {integrity: sha512-cQn412DWHHFNKrQfbHY8vSFI3nTROY1aIKji9N0tpp8gUABRilr7wdf8fqBbSlXresobM+tQFNk6I+0LXK/YZg==} + '@smithy/util-stream@4.2.4': + resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.0.0': @@ -11848,128 +11887,112 @@ packages: sanitize-html@2.17.0: resolution: {integrity: sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==} - sass-embedded-android-arm64@1.87.0: - resolution: {integrity: sha512-uqeZoBuXm3W2KhxolScAAfWOLHL21e50g7AxlLmG0he7WZsWw6e9kSnmq301iLIFp4kvmXYXbXbNKAeu9ItRYA==} + sass-embedded-all-unknown@1.91.0: + resolution: {integrity: sha512-AXC1oPqDfLnLtcoxM+XwSnbhcQs0TxAiA5JDEstl6+tt6fhFLKxdyl1Hla39SFtxvMfB2QDUYE3Dmx49O59vYg==} + cpu: ['!arm', '!arm64', '!riscv64', '!x64'] + + sass-embedded-android-arm64@1.91.0: + resolution: {integrity: sha512-I8Eeg2CeVcZIhXcQLNEY6ZBRF0m7jc818/fypwMwvIdbxGWBekTzc3aKHTLhdBpFzGnDIyR4s7oB0/OjIpzD1A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - sass-embedded-android-arm@1.87.0: - resolution: {integrity: sha512-Z20u/Y1kFDpMbgiloR5YPLxNuMVeKQRC8e/n68oAAxf3u7rDSmNn2msi7USqgT1f2zdBBNawn/ifbFEla6JiHw==} + sass-embedded-android-arm@1.91.0: + resolution: {integrity: sha512-DSh1V8TlLIcpklAbn4NINEFs3yD2OzVTbawEXK93IH990upoGNFVNRTstFQ/gcvlbWph3Y3FjAJvo37zUO485A==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] - sass-embedded-android-ia32@1.87.0: - resolution: {integrity: sha512-hSWTqo2Igdig528cUb1W1+emw9d1J4+nqOoR4tERS04zcwRRFNDiuBT0o5meV7nkEwE982F+h57YdcRXj8gTtg==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [android] - - sass-embedded-android-riscv64@1.87.0: - resolution: {integrity: sha512-kBAPSjiTBLy5ua/0LRNAJwOAARhzFU7gP35fYORJcdBuz1lkIVPVnid1lh9qQ6Ce9MOJcr7VKFtGnTuqVeig5A==} + sass-embedded-android-riscv64@1.91.0: + resolution: {integrity: sha512-qmsl1a7IIJL0fCOwzmRB+6nxeJK5m9/W8LReXUrdgyJNH5RyxChDg+wwQPVATFffOuztmWMnlJ5CV2sCLZrXcQ==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] - sass-embedded-android-x64@1.87.0: - resolution: {integrity: sha512-ZHMrNdtdMSpJUYco2MesnlPwDTZftD3pqkkOMI2pbqarPoFUKJtP5k80nwCM0sJGtqfNE+O16w9yPght0CMiJg==} + sass-embedded-android-x64@1.91.0: + resolution: {integrity: sha512-/wN0HBLATOVSeN3Tzg0yxxNTo1IQvOxxxwFv7Ki/1/UCg2AqZPxTpNoZj/mn8tUPtiVogMGbC8qclYMq1aRZsQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] - sass-embedded-darwin-arm64@1.87.0: - resolution: {integrity: sha512-7TK1JWJdCIRSdZv5CJv/HpDz/wIfwUy2FoPz9sVOEj1pDTH0N+VfJd5VutCddIdoQN9jr0ap8vwkc65FbAxV2A==} + sass-embedded-darwin-arm64@1.91.0: + resolution: {integrity: sha512-gQ6ScInxAN+BDUXy426BSYLRawkmGYlHpQ9i6iOxorr64dtIb3l6eb9YaBV8lPlroUnugylmwN2B3FU9BuPfhA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - sass-embedded-darwin-x64@1.87.0: - resolution: {integrity: sha512-2JiQzt7FmgUC4MYT2QvbeH/Bi3e76WEhaYoc5P3WyTW8unsHksyTdMuTuYe0Qf9usIyt6bmm5no/4BBw7c8Cig==} + sass-embedded-darwin-x64@1.91.0: + resolution: {integrity: sha512-DSvFMtECL2blYVTFMO5fLeNr5bX437Lrz8R47fdo5438TRyOkSgwKTkECkfh3YbnrL86yJIN2QQlmBMF17Z/iw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - sass-embedded-linux-arm64@1.87.0: - resolution: {integrity: sha512-5z+mwJCbGZcg+q+MwdEVSh0ogFK7OSAe175Gsozzr/Izw34Q+RGUw9O82jsV2c4YNuTAQvzEHgIO5cvNvt3Quw==} + sass-embedded-linux-arm64@1.91.0: + resolution: {integrity: sha512-OnKCabD7f420ZEC/6YI9WhCVGMZF+ybZ5NbAB9SsG1xlxrKbWQ1s7CIl0w/6RDALtJ+Fjn8+mrxsxqakoAkeuA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-arm@1.87.0: - resolution: {integrity: sha512-z5P6INMsGXiUcq1sRRbksyQUhalFFYjTEexuxfSYdK3U2YQMADHubQh8pGzkWvFRPOpnh83RiGuwvpaARYHnsw==} + sass-embedded-linux-arm@1.91.0: + resolution: {integrity: sha512-ppAZLp3eZ9oTjYdQDf4nM7EehDpkxq5H1hE8FOrx8LpY7pxn6QF+SRpAbRjdfFChRw0K7vh+IiCnQEMp7uLNAg==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-ia32@1.87.0: - resolution: {integrity: sha512-Xzcp+YPp0iakGL148Jl57CO+MxLuj2jsry3M+rc1cSnDlvkjNVs6TMxaL70GFeV5HdU2V60voYcgE7adDUtJjw==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [linux] - - sass-embedded-linux-musl-arm64@1.87.0: - resolution: {integrity: sha512-HWE5eTRCoKzFZWsxOjDMTF5m4DDTQ0n7NJxSYiUXPBDydr9viPXbGOMYG7WVJLjiF7upr7DYo/mfp/SNTMlZyg==} + sass-embedded-linux-musl-arm64@1.91.0: + resolution: {integrity: sha512-VfbPpID1C5TT7rukob6CKgefx/TsLE+XZieMNd00hvfJ8XhqPr5DGvSMCNpXlwaedzTirbJu357m+n2PJI9TFQ==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-musl-arm@1.87.0: - resolution: {integrity: sha512-4PyqOWhRzyu06RRmpCCBOJdF4BOv7s446wrV6yODtEyyfSIDx3MJabo3KT0oJ1lTWSI/aU3R89bKx0JFXcIHHw==} + sass-embedded-linux-musl-arm@1.91.0: + resolution: {integrity: sha512-znEsNC2FurPF9+XwQQ6e/fVoic3e5D3/kMB41t/bE8byJVRdaPhkdsszt3pZUE56nNGYoCuieSXUkk7VvyPHsw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-musl-ia32@1.87.0: - resolution: {integrity: sha512-aQaPvlRn3kh93PLQvl6BcFKu8Ji92+42blFEkg6nMVvmugD5ZwH2TGFrX25ibx4CYxRpMS4ssF7a0i7vy5HB1Q==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [linux] - - sass-embedded-linux-musl-riscv64@1.87.0: - resolution: {integrity: sha512-o5DxcqiFzET3KRWo+futHr/lhAMBP3tJGGx8YIgpHQYfvDMbsvE0hiFC+nZ/GF9dbcGd+ceIQwfvE5mcc7Gsjw==} + sass-embedded-linux-musl-riscv64@1.91.0: + resolution: {integrity: sha512-ZfLGldKEEeZjuljKks835LTq7jDRI3gXsKKXXgZGzN6Yymd4UpBOGWiDQlWsWTvw5UwDU2xfFh0wSXbLGHTjVA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-musl-x64@1.87.0: - resolution: {integrity: sha512-dKxWsu9Wu/CyfzQmHdeiGqrRSzJ85VUjbSx+aP1/7ttmps3SSg+YW95PuqnCOa7GSuSreC3dKKpXHTywUxMLQA==} + sass-embedded-linux-musl-x64@1.91.0: + resolution: {integrity: sha512-4kSiSGPKFMbLvTRbP/ibyiKheOA3fwsJKWU0SOuekSPmybMdrhNkTm0REp6+nehZRE60kC3lXmEV4a7w8Jrwyg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-linux-riscv64@1.87.0: - resolution: {integrity: sha512-Sy3ESZ4FwBiijvmTA9n+0p0w3MNCue1AgINVPzpAY27EFi0h49eqQm9SWfOkFqmkFS2zFRYowdQOr5Bbr2gOXA==} + sass-embedded-linux-riscv64@1.91.0: + resolution: {integrity: sha512-Y3Fj94SYYvMX9yo49T78yBgBWXtG3EyYUT5K05XyCYkcdl1mVXJSrEmqmRfe4vQGUCaSe/6s7MmsA9Q+mQez7Q==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-x64@1.87.0: - resolution: {integrity: sha512-+UfjakOcHHKTnEqB3EZ+KqzezQOe1emvy4Rs+eQhLyfekpYuNze/qlRvYxfKTmrtvDiUrIto8MXsyZfMLzkuMA==} + sass-embedded-linux-x64@1.91.0: + resolution: {integrity: sha512-XwIUaE7pQP/ezS5te80hlyheYiUlo0FolQ0HBtxohpavM+DVX2fjwFm5LOUJHrLAqP+TLBtChfFeLj1Ie4Aenw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-win32-arm64@1.87.0: - resolution: {integrity: sha512-m1DS6FYUE0/fv+vt38uQB/kxR4UjnyD+2zcSc298pFmA0aYh/XZIPWw7RxG1HL3KLE1ZrGyu3254MPoxRhs3ig==} + sass-embedded-unknown-all@1.91.0: + resolution: {integrity: sha512-Bj6v7ScQp/HtO91QBy6ood9AArSIN7/RNcT4E7P9QoY3o+e6621Vd28lV81vdepPrt6u6PgJoVKmLNODqB6Q+A==} + os: ['!android', '!darwin', '!linux', '!win32'] + + sass-embedded-win32-arm64@1.91.0: + resolution: {integrity: sha512-yDCwTiPRex03i1yo7LwiAl1YQ21UyfOxPobD7UjI8AE8ZcB0mQ28VVX66lsZ+qm91jfLslNFOFCD4v79xCG9hA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - sass-embedded-win32-ia32@1.87.0: - resolution: {integrity: sha512-JztXLo59GMe2E6g+kCsyiERYhtZgkcyDYx6CrXoSTE5WaE+RbxRiCCCv8/1+hf406f08pUxJ8G0Ody7M5urtBA==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [win32] - - sass-embedded-win32-x64@1.87.0: - resolution: {integrity: sha512-4nQErpauvhgSo+7ClumGdjdf9sGx+U9yBgvhI0+zUw+D5YvraVgvA0Lk8Wuwntx2PqnvKUk8YDr/vxHJostv4Q==} + sass-embedded-win32-x64@1.91.0: + resolution: {integrity: sha512-wiuMz/cx4vsk6rYCnNyoGE5pd73aDJ/zF3qJDose3ZLT1/vV943doJE5pICnS/v5DrUqzV6a1CNq4fN+xeSgFQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - sass-embedded@1.87.0: - resolution: {integrity: sha512-1IA3iTJNh4BkkA/nidKiVwbmkxr9o6LsPegycHMX/JYs255zpocN5GdLF1+onohQCJxbs5ldr8osKV7qNaNBjg==} + sass-embedded@1.91.0: + resolution: {integrity: sha512-VTckYcH1AglrZ3VpPETilTo3Ef472XKwP13lrNfbOHSR6Eo5p27XTkIi+6lrCbuhBFFGAmy+4BRoLaeFUgn+eg==} engines: {node: '>=16.0.0'} hasBin: true @@ -11978,8 +12001,8 @@ packages: engines: {node: '>=12.0.0'} hasBin: true - sass@1.87.0: - resolution: {integrity: sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==} + sass@1.91.0: + resolution: {integrity: sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==} engines: {node: '>=14.0.0'} hasBin: true @@ -13349,46 +13372,6 @@ packages: peerDependencies: vite: 5.x || 6.x || 7.x - vite@7.0.0: - resolution: {integrity: sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@7.1.3: resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -14034,7 +14017,7 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.7.0 + '@smithy/core': 3.9.0 '@smithy/eventstream-serde-browser': 4.0.4 '@smithy/eventstream-serde-config-resolver': 4.1.2 '@smithy/eventstream-serde-node': 4.0.4 @@ -14042,15 +14025,15 @@ snapshots: '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.1.14 - '@smithy/middleware-retry': 4.1.15 + '@smithy/middleware-endpoint': 4.1.19 + '@smithy/middleware-retry': 4.1.20 '@smithy/middleware-serde': 4.0.8 - '@smithy/middleware-stack': 4.0.4 - '@smithy/node-config-provider': 4.1.3 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 '@smithy/node-http-handler': 4.1.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 @@ -14058,9 +14041,9 @@ snapshots: '@smithy/util-defaults-mode-browser': 4.0.22 '@smithy/util-defaults-mode-node': 4.0.22 '@smithy/util-endpoints': 3.0.6 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-retry': 4.0.6 - '@smithy/util-stream': 4.2.3 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@smithy/util-stream': 4.2.4 '@smithy/util-utf8': 4.0.0 '@types/uuid': 9.0.8 tslib: 2.8.1 @@ -14083,29 +14066,29 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.7.0 - '@smithy/fetch-http-handler': 5.1.0 + '@smithy/core': 3.9.0 + '@smithy/fetch-http-handler': 5.1.1 '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.1.14 - '@smithy/middleware-retry': 4.1.15 - '@smithy/middleware-serde': 4.0.8 - '@smithy/middleware-stack': 4.0.4 - '@smithy/node-config-provider': 4.1.3 - '@smithy/node-http-handler': 4.1.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.4 + '@smithy/middleware-endpoint': 4.1.19 + '@smithy/middleware-retry': 4.1.20 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 '@smithy/util-defaults-mode-browser': 4.0.22 '@smithy/util-defaults-mode-node': 4.0.22 '@smithy/util-endpoints': 3.0.6 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-retry': 4.0.6 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -14115,16 +14098,16 @@ snapshots: dependencies: '@aws-sdk/types': 3.821.0 '@aws-sdk/xml-builder': 3.821.0 - '@smithy/core': 3.7.0 - '@smithy/node-config-provider': 4.1.3 - '@smithy/property-provider': 4.0.4 - '@smithy/protocol-http': 5.1.2 + '@smithy/core': 3.9.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/protocol-http': 5.1.3 '@smithy/signature-v4': 5.1.2 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.4 + '@smithy/util-middleware': 4.0.5 '@smithy/util-utf8': 4.0.0 fast-xml-parser: 4.4.1 tslib: 2.8.1 @@ -14133,21 +14116,21 @@ snapshots: dependencies: '@aws-sdk/core': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/property-provider': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.823.0': dependencies: '@aws-sdk/core': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/fetch-http-handler': 5.1.0 - '@smithy/node-http-handler': 4.1.0 - '@smithy/property-provider': 4.0.4 - '@smithy/protocol-http': 5.1.2 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 - '@smithy/util-stream': 4.2.3 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/node-http-handler': 4.1.1 + '@smithy/property-provider': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 + '@smithy/util-stream': 4.2.4 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.823.0': @@ -14161,9 +14144,9 @@ snapshots: '@aws-sdk/nested-clients': 3.823.0 '@aws-sdk/types': 3.821.0 '@smithy/credential-provider-imds': 4.0.6 - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14178,9 +14161,9 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.823.0 '@aws-sdk/types': 3.821.0 '@smithy/credential-provider-imds': 4.0.6 - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14189,9 +14172,9 @@ snapshots: dependencies: '@aws-sdk/core': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.823.0': @@ -14200,9 +14183,9 @@ snapshots: '@aws-sdk/core': 3.823.0 '@aws-sdk/token-providers': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14212,8 +14195,8 @@ snapshots: '@aws-sdk/core': 3.823.0 '@aws-sdk/nested-clients': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/property-provider': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14222,34 +14205,34 @@ snapshots: dependencies: '@aws-sdk/types': 3.821.0 '@smithy/eventstream-codec': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/middleware-eventstream@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/middleware-host-header@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/middleware-logger@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/middleware-recursion-detection@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.823.0': @@ -14257,9 +14240,9 @@ snapshots: '@aws-sdk/core': 3.823.0 '@aws-sdk/types': 3.821.0 '@aws-sdk/util-endpoints': 3.821.0 - '@smithy/core': 3.7.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/core': 3.9.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/nested-clients@3.823.0': @@ -14277,29 +14260,29 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.7.0 - '@smithy/fetch-http-handler': 5.1.0 + '@smithy/core': 3.9.0 + '@smithy/fetch-http-handler': 5.1.1 '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.1.14 - '@smithy/middleware-retry': 4.1.15 - '@smithy/middleware-serde': 4.0.8 - '@smithy/middleware-stack': 4.0.4 - '@smithy/node-config-provider': 4.1.3 - '@smithy/node-http-handler': 4.1.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.4 + '@smithy/middleware-endpoint': 4.1.19 + '@smithy/middleware-retry': 4.1.20 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 '@smithy/util-defaults-mode-browser': 4.0.22 '@smithy/util-defaults-mode-node': 4.0.22 '@smithy/util-endpoints': 3.0.6 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-retry': 4.0.6 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -14308,10 +14291,10 @@ snapshots: '@aws-sdk/region-config-resolver@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/node-config-provider': 4.1.3 - '@smithy/types': 4.3.1 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.4 + '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 '@aws-sdk/token-providers@3.823.0': @@ -14319,22 +14302,22 @@ snapshots: '@aws-sdk/core': 3.823.0 '@aws-sdk/nested-clients': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt '@aws-sdk/types@3.821.0': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/util-endpoints@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 '@smithy/util-endpoints': 3.0.6 tslib: 2.8.1 @@ -14345,7 +14328,7 @@ snapshots: '@aws-sdk/util-user-agent-browser@3.821.0': dependencies: '@aws-sdk/types': 3.821.0 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 bowser: 2.11.0 tslib: 2.8.1 @@ -14353,13 +14336,13 @@ snapshots: dependencies: '@aws-sdk/middleware-user-agent': 3.823.0 '@aws-sdk/types': 3.821.0 - '@smithy/node-config-provider': 4.1.3 - '@smithy/types': 4.3.1 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@aws-sdk/xml-builder@3.821.0': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@babel/code-frame@7.26.2': @@ -14721,6 +14704,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-cloud-services@46.0.2': dependencies: @@ -17490,18 +17475,18 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) - '@prefresh/vite': 2.4.8(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@prefresh/vite': 2.4.8(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) debug: 4.4.1(supports-color@6.0.0) picocolors: 1.1.1 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-prerender-plugin: 0.5.11(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-prerender-plugin: 0.5.11(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) transitivePeerDependencies: - preact - supports-color @@ -17514,7 +17499,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.8(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@prefresh/vite@2.4.8(preact@10.27.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.0 '@prefresh/babel-plugin': 0.5.2 @@ -17522,7 +17507,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.27.1 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -18191,85 +18176,100 @@ snapshots: '@smithy/abort-controller@4.0.4': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/abort-controller@4.0.5': + dependencies: + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/config-resolver@4.1.4': dependencies: - '@smithy/node-config-provider': 4.1.3 - '@smithy/types': 4.3.1 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.4 + '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 - '@smithy/core@3.7.0': + '@smithy/core@3.9.0': dependencies: - '@smithy/middleware-serde': 4.0.8 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/middleware-serde': 4.0.9 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-stream': 4.2.3 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-stream': 4.2.4 '@smithy/util-utf8': 4.0.0 + '@types/uuid': 9.0.8 tslib: 2.8.1 + uuid: 9.0.1 '@smithy/credential-provider-imds@4.0.6': dependencies: - '@smithy/node-config-provider': 4.1.3 - '@smithy/property-provider': 4.0.4 - '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.4 + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 tslib: 2.8.1 '@smithy/eventstream-codec@4.0.4': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 '@smithy/eventstream-serde-browser@4.0.4': dependencies: '@smithy/eventstream-serde-universal': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/eventstream-serde-config-resolver@4.1.2': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/eventstream-serde-node@4.0.4': dependencies: '@smithy/eventstream-serde-universal': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/eventstream-serde-universal@4.0.4': dependencies: '@smithy/eventstream-codec': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/fetch-http-handler@5.1.0': dependencies: - '@smithy/protocol-http': 5.1.2 + '@smithy/protocol-http': 5.1.3 '@smithy/querystring-builder': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.1.1': + dependencies: + '@smithy/protocol-http': 5.1.3 + '@smithy/querystring-builder': 4.0.5 + '@smithy/types': 4.3.2 '@smithy/util-base64': 4.0.0 tslib: 2.8.1 '@smithy/hash-node@4.0.4': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 '@smithy/invalid-dependency@4.0.4': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -18282,118 +18282,150 @@ snapshots: '@smithy/middleware-content-length@4.0.4': dependencies: - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.1.14': + '@smithy/middleware-endpoint@4.1.19': dependencies: - '@smithy/core': 3.7.0 - '@smithy/middleware-serde': 4.0.8 - '@smithy/node-config-provider': 4.1.3 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.4 - '@smithy/util-middleware': 4.0.4 + '@smithy/core': 3.9.0 + '@smithy/middleware-serde': 4.0.9 + '@smithy/node-config-provider': 4.1.4 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 - '@smithy/middleware-retry@4.1.15': + '@smithy/middleware-retry@4.1.20': dependencies: - '@smithy/node-config-provider': 4.1.3 - '@smithy/protocol-http': 5.1.2 - '@smithy/service-error-classification': 4.0.6 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 - '@smithy/util-middleware': 4.0.4 - '@smithy/util-retry': 4.0.6 + '@smithy/node-config-provider': 4.1.4 + '@smithy/protocol-http': 5.1.3 + '@smithy/service-error-classification': 4.0.7 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 '@smithy/middleware-serde@4.0.8': dependencies: - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/middleware-stack@4.0.4': + '@smithy/middleware-serde@4.0.9': dependencies: - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/node-config-provider@4.1.3': + '@smithy/middleware-stack@4.0.5': dependencies: - '@smithy/property-provider': 4.0.4 - '@smithy/shared-ini-file-loader': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.1.4': + dependencies: + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/node-http-handler@4.1.0': dependencies: '@smithy/abort-controller': 4.0.4 - '@smithy/protocol-http': 5.1.2 + '@smithy/protocol-http': 5.1.3 '@smithy/querystring-builder': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/property-provider@4.0.4': + '@smithy/node-http-handler@4.1.1': dependencies: - '@smithy/types': 4.3.1 + '@smithy/abort-controller': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/querystring-builder': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/protocol-http@5.1.2': + '@smithy/property-provider@4.0.5': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.3': + dependencies: + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/querystring-builder@4.0.4': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.5': + dependencies: + '@smithy/types': 4.3.2 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 '@smithy/querystring-parser@4.0.4': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/service-error-classification@4.0.6': + '@smithy/querystring-parser@4.0.5': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + tslib: 2.8.1 - '@smithy/shared-ini-file-loader@4.0.4': + '@smithy/service-error-classification@4.0.7': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + + '@smithy/shared-ini-file-loader@4.0.5': + dependencies: + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/signature-v4@5.1.2': dependencies: '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.4 + '@smithy/util-middleware': 4.0.5 '@smithy/util-uri-escape': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/smithy-client@4.4.6': + '@smithy/smithy-client@4.5.0': dependencies: - '@smithy/core': 3.7.0 - '@smithy/middleware-endpoint': 4.1.14 - '@smithy/middleware-stack': 4.0.4 - '@smithy/protocol-http': 5.1.2 - '@smithy/types': 4.3.1 - '@smithy/util-stream': 4.2.3 + '@smithy/core': 3.9.0 + '@smithy/middleware-endpoint': 4.1.19 + '@smithy/middleware-stack': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-stream': 4.2.4 tslib: 2.8.1 - '@smithy/types@4.3.1': + '@smithy/types@4.3.2': dependencies: tslib: 2.8.1 '@smithy/url-parser@4.0.4': dependencies: '@smithy/querystring-parser': 4.0.4 - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/url-parser@4.0.5': + dependencies: + '@smithy/querystring-parser': 4.0.5 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/util-base64@4.0.0': @@ -18426,9 +18458,9 @@ snapshots: '@smithy/util-defaults-mode-browser@4.0.22': dependencies: - '@smithy/property-provider': 4.0.4 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 + '@smithy/property-provider': 4.0.5 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 bowser: 2.11.0 tslib: 2.8.1 @@ -18436,38 +18468,38 @@ snapshots: dependencies: '@smithy/config-resolver': 4.1.4 '@smithy/credential-provider-imds': 4.0.6 - '@smithy/node-config-provider': 4.1.3 - '@smithy/property-provider': 4.0.4 - '@smithy/smithy-client': 4.4.6 - '@smithy/types': 4.3.1 + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/smithy-client': 4.5.0 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/util-endpoints@3.0.6': dependencies: - '@smithy/node-config-provider': 4.1.3 - '@smithy/types': 4.3.1 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 tslib: 2.8.1 '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.0.4': + '@smithy/util-middleware@4.0.5': dependencies: - '@smithy/types': 4.3.1 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/util-retry@4.0.6': + '@smithy/util-retry@4.0.7': dependencies: - '@smithy/service-error-classification': 4.0.6 - '@smithy/types': 4.3.1 + '@smithy/service-error-classification': 4.0.7 + '@smithy/types': 4.3.2 tslib: 2.8.1 - '@smithy/util-stream@4.2.3': + '@smithy/util-stream@4.2.4': dependencies: - '@smithy/fetch-http-handler': 5.1.0 - '@smithy/node-http-handler': 4.1.0 - '@smithy/types': 4.3.1 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/node-http-handler': 4.1.1 + '@smithy/types': 4.3.2 '@smithy/util-base64': 4.0.0 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-hex-encoding': 4.0.0 @@ -18530,15 +18562,15 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))': + '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))': dependencies: - '@sveltejs/kit': 2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/kit': 2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - '@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/kit@2.36.3(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@standard-schema/spec': 1.0.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 1.0.2 @@ -18551,27 +18583,27 @@ snapshots: set-cookie-parser: 2.7.1 sirv: 3.0.1 svelte: 5.38.6 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) svelte: 5.38.6 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.38.6 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vitefu: 1.1.1(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) transitivePeerDependencies: - supports-color @@ -18711,12 +18743,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.12 - '@tailwindcss/vite@4.1.12(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.12(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@tailwindcss/node': 4.1.12 '@tailwindcss/oxide': 4.1.12 tailwindcss: 4.1.12 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@testing-library/dom@10.4.0': dependencies: @@ -19524,16 +19556,16 @@ snapshots: - bufferutil - utf-8-validate - '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@vitest/browser@3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5))': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/utils': 3.2.4 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: playwright: 1.55.0 @@ -19556,7 +19588,7 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -19575,9 +19607,9 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) optionalDependencies: - '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) transitivePeerDependencies: - supports-color @@ -19589,23 +19621,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.5(@types/node@22.18.0)(typescript@5.9.2) - vite: 7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - - '@vitest/mocker@3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - msw: 2.7.5(@types/node@22.18.0)(typescript@5.9.2) - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -19636,7 +19659,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/utils@3.2.4': dependencies: @@ -22660,10 +22683,6 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.4.6(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -27379,11 +27398,11 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.29 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.29 - rollup-plugin-stats@1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + rollup-plugin-stats@1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): optionalDependencies: rolldown: 1.0.0-beta.29 rollup: 4.46.3 - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) rollup-plugin-styles@4.0.0(rollup@4.40.0): dependencies: @@ -27412,13 +27431,13 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.40.0) rollup: 4.40.0 - rollup-plugin-webpack-stats@2.1.4(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + rollup-plugin-webpack-stats@2.1.4(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: rolldown: 1.0.0-beta.29 - rollup-plugin-stats: 1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + rollup-plugin-stats: 1.5.0(rolldown@1.0.0-beta.29)(rollup@4.46.3)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) optionalDependencies: rollup: 4.46.3 - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) rollup@4.40.0: dependencies: @@ -27556,67 +27575,65 @@ snapshots: parse-srcset: 1.0.2 postcss: 8.5.3 - sass-embedded-android-arm64@1.87.0: + sass-embedded-all-unknown@1.91.0: + dependencies: + sass: 1.91.0 optional: true - sass-embedded-android-arm@1.87.0: + sass-embedded-android-arm64@1.91.0: optional: true - sass-embedded-android-ia32@1.87.0: + sass-embedded-android-arm@1.91.0: optional: true - sass-embedded-android-riscv64@1.87.0: + sass-embedded-android-riscv64@1.91.0: optional: true - sass-embedded-android-x64@1.87.0: + sass-embedded-android-x64@1.91.0: optional: true - sass-embedded-darwin-arm64@1.87.0: + sass-embedded-darwin-arm64@1.91.0: optional: true - sass-embedded-darwin-x64@1.87.0: + sass-embedded-darwin-x64@1.91.0: optional: true - sass-embedded-linux-arm64@1.87.0: + sass-embedded-linux-arm64@1.91.0: optional: true - sass-embedded-linux-arm@1.87.0: + sass-embedded-linux-arm@1.91.0: optional: true - sass-embedded-linux-ia32@1.87.0: + sass-embedded-linux-musl-arm64@1.91.0: optional: true - sass-embedded-linux-musl-arm64@1.87.0: + sass-embedded-linux-musl-arm@1.91.0: optional: true - sass-embedded-linux-musl-arm@1.87.0: + sass-embedded-linux-musl-riscv64@1.91.0: optional: true - sass-embedded-linux-musl-ia32@1.87.0: + sass-embedded-linux-musl-x64@1.91.0: optional: true - sass-embedded-linux-musl-riscv64@1.87.0: + sass-embedded-linux-riscv64@1.91.0: optional: true - sass-embedded-linux-musl-x64@1.87.0: + sass-embedded-linux-x64@1.91.0: optional: true - sass-embedded-linux-riscv64@1.87.0: + sass-embedded-unknown-all@1.91.0: + dependencies: + sass: 1.91.0 optional: true - sass-embedded-linux-x64@1.87.0: + sass-embedded-win32-arm64@1.91.0: optional: true - sass-embedded-win32-arm64@1.87.0: + sass-embedded-win32-x64@1.91.0: optional: true - sass-embedded-win32-ia32@1.87.0: - optional: true - - sass-embedded-win32-x64@1.87.0: - optional: true - - sass-embedded@1.87.0: + sass-embedded@1.91.0: dependencies: '@bufbuild/protobuf': 2.7.0 buffer-builder: 0.2.0 @@ -27627,26 +27644,24 @@ snapshots: sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-android-arm: 1.87.0 - sass-embedded-android-arm64: 1.87.0 - sass-embedded-android-ia32: 1.87.0 - sass-embedded-android-riscv64: 1.87.0 - sass-embedded-android-x64: 1.87.0 - sass-embedded-darwin-arm64: 1.87.0 - sass-embedded-darwin-x64: 1.87.0 - sass-embedded-linux-arm: 1.87.0 - sass-embedded-linux-arm64: 1.87.0 - sass-embedded-linux-ia32: 1.87.0 - sass-embedded-linux-musl-arm: 1.87.0 - sass-embedded-linux-musl-arm64: 1.87.0 - sass-embedded-linux-musl-ia32: 1.87.0 - sass-embedded-linux-musl-riscv64: 1.87.0 - sass-embedded-linux-musl-x64: 1.87.0 - sass-embedded-linux-riscv64: 1.87.0 - sass-embedded-linux-x64: 1.87.0 - sass-embedded-win32-arm64: 1.87.0 - sass-embedded-win32-ia32: 1.87.0 - sass-embedded-win32-x64: 1.87.0 + sass-embedded-all-unknown: 1.91.0 + sass-embedded-android-arm: 1.91.0 + sass-embedded-android-arm64: 1.91.0 + sass-embedded-android-riscv64: 1.91.0 + sass-embedded-android-x64: 1.91.0 + sass-embedded-darwin-arm64: 1.91.0 + sass-embedded-darwin-x64: 1.91.0 + sass-embedded-linux-arm: 1.91.0 + sass-embedded-linux-arm64: 1.91.0 + sass-embedded-linux-musl-arm: 1.91.0 + sass-embedded-linux-musl-arm64: 1.91.0 + sass-embedded-linux-musl-riscv64: 1.91.0 + sass-embedded-linux-musl-x64: 1.91.0 + sass-embedded-linux-riscv64: 1.91.0 + sass-embedded-linux-x64: 1.91.0 + sass-embedded-unknown-all: 1.91.0 + sass-embedded-win32-arm64: 1.91.0 + sass-embedded-win32-x64: 1.91.0 optional: true sass@1.51.0: @@ -27655,7 +27670,7 @@ snapshots: immutable: 4.3.7 source-map-js: 1.2.1 - sass@1.87.0: + sass@1.91.0: dependencies: chokidar: 4.0.3 immutable: 5.1.3 @@ -28796,7 +28811,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 tinypool@1.1.1: {} @@ -29343,13 +29358,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.2.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@6.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -29364,7 +29379,7 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@22.18.0)(rollup@4.46.3)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-plugin-dts@4.5.4(@types/node@22.18.0)(rollup@4.46.3)(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: '@microsoft/api-extractor': 7.52.8(@types/node@22.18.0) '@rollup/pluginutils': 5.1.4(rollup@4.46.3) @@ -29377,58 +29392,38 @@ snapshots: magic-string: 0.30.17 typescript: 5.9.2 optionalDependencies: - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-static-copy@3.1.2(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-plugin-static-copy@3.1.2(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: chokidar: 3.6.0 fs-extra: 11.3.1 p-map: 7.0.3 picocolors: 1.1.1 tinyglobby: 0.2.14 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-plugin-svgo@2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-plugin-svgo@2.0.0(typescript@5.9.2)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: svgo: 3.3.2 typescript: 5.9.2 - vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-prerender-plugin@0.5.11(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-prerender-plugin@0.5.11(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: kolorist: 1.8.0 - magic-string: 0.30.17 + magic-string: 0.30.18 node-html-parser: 6.1.13 simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite@7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.6 - rollup: 4.40.0 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 22.18.0 - fsevents: 2.3.3 - jiti: 2.5.1 - less: 4.1.3 - lightningcss: 1.30.1 - sass: 1.87.0 - sass-embedded: 1.87.0 - terser: 5.43.1 - tsx: 4.20.5 - yaml: 2.8.1 - - vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -29442,13 +29437,13 @@ snapshots: jiti: 2.5.1 less: 4.1.3 lightningcss: 1.30.1 - sass: 1.87.0 - sass-embedded: 1.87.0 + sass: 1.91.0 + sass-embedded: 1.91.0 terser: 5.43.1 tsx: 4.20.5 yaml: 2.8.1 - vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -29462,21 +29457,21 @@ snapshots: jiti: 2.5.1 less: 4.1.3 lightningcss: 1.30.1 - sass: 1.87.0 - sass-embedded: 1.87.0 + sass: 1.91.0 + sass-embedded: 1.91.0 terser: 5.43.1 tsx: 4.20.5 yaml: 2.8.1 - vitefu@1.1.1(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): + vitefu@1.1.1(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): optionalDependencies: - vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.30.1)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -29494,13 +29489,13 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.0(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 '@types/node': 22.18.0 - '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@vitest/browser': 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.3(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@vitest/ui': 3.2.4(vitest@3.2.4) happy-dom: 18.0.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) From 1dcb3b15292de36a7cb4832dbee27a0c04949141 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:28:20 +0300 Subject: [PATCH 026/121] chore(dx/server): set up cache for Vite --- .gitignore | 3 +++ apps/server/src/routes/assets.ts | 1 + 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 09749c2700..877dd4cb27 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # See https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files for more about ignoring files. +/.cache +!/.cache/vite/.gitkeep + # compiled output dist tmp diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index 5484e0158d..99d5fac726 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -23,6 +23,7 @@ async function register(app: express.Application) { if (isDev) { const vite = await createViteServer({ + cacheDir: path.join(srcRoot, "../../.cache/vite"), base: `/${assetUrlFragment}/`, root: path.join(srcRoot, "../client"), plugins: [ From e49c4655a6380a501e9d25e244bef7563c70d293 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:51:18 +0300 Subject: [PATCH 027/121] chore(dx/client): ckeditor5 CSS imports --- packages/ckeditor5/src/plugins.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ckeditor5/src/plugins.ts b/packages/ckeditor5/src/plugins.ts index a16ad1bbb9..bbd613a9ec 100644 --- a/packages/ckeditor5/src/plugins.ts +++ b/packages/ckeditor5/src/plugins.ts @@ -21,10 +21,10 @@ import { Admonition } from "@triliumnext/ckeditor5-admonition"; import { Footnotes } from "@triliumnext/ckeditor5-footnotes"; import { Math, AutoformatMath } from "@triliumnext/ckeditor5-math"; -import "@triliumnext/ckeditor5-mermaid/index.css"; -import "@triliumnext/ckeditor5-admonition/index.css"; -import "@triliumnext/ckeditor5-footnotes/index.css"; -import "@triliumnext/ckeditor5-math/index.css"; +// import "@triliumnext/ckeditor5-mermaid/index.css"; +// import "@triliumnext/ckeditor5-admonition/index.css"; +// import "@triliumnext/ckeditor5-footnotes/index.css"; +// import "@triliumnext/ckeditor5-math/index.css"; import CodeBlockToolbar from "./plugins/code_block_toolbar.js"; import CodeBlockLanguageDropdown from "./plugins/code_block_language_dropdown.js"; import MoveBlockUpDownPlugin from "./plugins/move_block_updown.js"; From f7a0dc00e89468cf3df7afe84a9d6b24470395d3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:52:22 +0300 Subject: [PATCH 028/121] chore(dx/client): fix bootstrap CSS imports --- apps/client/src/desktop.ts | 2 +- apps/client/src/login.ts | 2 +- apps/client/src/mobile.ts | 2 +- apps/client/src/set_password.ts | 2 +- apps/client/src/setup.ts | 2 +- apps/client/src/stylesheets/bootstrap.scss | 2 -- 6 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 apps/client/src/stylesheets/bootstrap.scss diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index 57ff4084eb..cf644cd3bf 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -10,7 +10,7 @@ import { t } from "./services/i18n.js"; import options from "./services/options.js"; import type ElectronRemote from "@electron/remote"; import type Electron from "electron"; -import "./stylesheets/bootstrap.scss"; +import "bootstrap/dist/css/bootstrap.min.css"; import "boxicons/css/boxicons.min.css"; import "autocomplete.js/index_jquery.js"; diff --git a/apps/client/src/login.ts b/apps/client/src/login.ts index 2ba27be023..351ed4c1e5 100644 --- a/apps/client/src/login.ts +++ b/apps/client/src/login.ts @@ -1,4 +1,4 @@ -import "./stylesheets/bootstrap.scss"; +import "bootstrap/dist/css/bootstrap.min.css"; // @ts-ignore - module = undefined // Required for correct loading of scripts in Electron diff --git a/apps/client/src/mobile.ts b/apps/client/src/mobile.ts index 805ffe2764..507b9ff5a1 100644 --- a/apps/client/src/mobile.ts +++ b/apps/client/src/mobile.ts @@ -1,7 +1,7 @@ import appContext from "./components/app_context.js"; import noteAutocompleteService from "./services/note_autocomplete.js"; import glob from "./services/glob.js"; -import "./stylesheets/bootstrap.scss"; +import "bootstrap/dist/css/bootstrap.min.css"; import "boxicons/css/boxicons.min.css"; import "autocomplete.js/index_jquery.js"; diff --git a/apps/client/src/set_password.ts b/apps/client/src/set_password.ts index 67dfee1878..47e02f1d10 100644 --- a/apps/client/src/set_password.ts +++ b/apps/client/src/set_password.ts @@ -1,4 +1,4 @@ -import "./stylesheets/bootstrap.scss"; +import "bootstrap/dist/css/bootstrap.min.css"; import "./stylesheets/auth.css"; // @TriliumNextTODO: is this even needed anymore? diff --git a/apps/client/src/setup.ts b/apps/client/src/setup.ts index ba117aaf76..d5659645e9 100644 --- a/apps/client/src/setup.ts +++ b/apps/client/src/setup.ts @@ -1,7 +1,7 @@ import "jquery"; import utils from "./services/utils.js"; import ko from "knockout"; -import "./stylesheets/bootstrap.scss"; +import "bootstrap/dist/css/bootstrap.min.css"; // TriliumNextTODO: properly make use of below types // type SetupModelSetupType = "new-document" | "sync-from-desktop" | "sync-from-server" | ""; diff --git a/apps/client/src/stylesheets/bootstrap.scss b/apps/client/src/stylesheets/bootstrap.scss deleted file mode 100644 index b30b929fed..0000000000 --- a/apps/client/src/stylesheets/bootstrap.scss +++ /dev/null @@ -1,2 +0,0 @@ -/* Import all of Bootstrap's CSS */ -@use "bootstrap/scss/bootstrap"; From 83624249763417876936fc9126657f99dd61d778 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:52:52 +0300 Subject: [PATCH 029/121] chore(dx/client): fix highlightjs not working --- packages/highlightjs/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/highlightjs/src/index.ts b/packages/highlightjs/src/index.ts index 29ffec2a7e..3552681792 100644 --- a/packages/highlightjs/src/index.ts +++ b/packages/highlightjs/src/index.ts @@ -1,4 +1,4 @@ -import hljs from "../node_modules/highlight.js/es/core.js"; +import hljs from "highlight.js"; import { normalizeMimeTypeForCKEditor, type MimeType } from "@triliumnext/commons"; import syntaxDefinitions from "./syntax_highlighting.js"; import { type Theme } from "./themes.js"; From 054c4976784225c3e0bddc6d0d990e88c7c3e58a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 18:57:31 +0300 Subject: [PATCH 030/121] chore(dx/client): improve startup speed by properly configuring middleware --- apps/server/src/routes/assets.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index 99d5fac726..b076f6db21 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -23,6 +23,8 @@ async function register(app: express.Application) { if (isDev) { const vite = await createViteServer({ + server: { middlewareMode: true }, + appType: "custom", cacheDir: path.join(srcRoot, "../../.cache/vite"), base: `/${assetUrlFragment}/`, root: path.join(srcRoot, "../client"), From 46cb869237b958692f957f1dfc0bcb1795887e49 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 19:21:36 +0300 Subject: [PATCH 031/121] chore(dx/server): client paths not correct --- apps/server/src/services/app_path.ts | 3 ++- apps/server/src/services/asset_path.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/server/src/services/app_path.ts b/apps/server/src/services/app_path.ts index 06d42a2ccc..7c25d542c9 100644 --- a/apps/server/src/services/app_path.ts +++ b/apps/server/src/services/app_path.ts @@ -1,3 +1,4 @@ import assetPath from "./asset_path.js"; +import { isDev } from "./utils.js"; -export default assetPath + "/src"; +export default isDev ? assetPath : assetPath + "/src"; diff --git a/apps/server/src/services/asset_path.ts b/apps/server/src/services/asset_path.ts index 076b7a647f..237a3f5a3d 100644 --- a/apps/server/src/services/asset_path.ts +++ b/apps/server/src/services/asset_path.ts @@ -1,6 +1,7 @@ import packageJson from "../../package.json" with { type: "json" }; +import { isDev } from "./utils"; export const assetUrlFragment = `assets/v${packageJson.version}`; -const assetPath = assetUrlFragment; +const assetPath = isDev ? assetUrlFragment + "/src" : assetUrlFragment; export default assetPath; From 5f1d2f02ee460d8adfd9ecfb4c24c8e99ffffa05 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 19:26:47 +0300 Subject: [PATCH 032/121] chore(dx/client): fix SVG icons causing errors in CKEditor --- apps/client/src/widgets/type_widgets/editable_text.ts | 1 - packages/ckeditor5-admonition/src/admonitionui.ts | 2 +- packages/ckeditor5-admonition/src/index.ts | 2 +- packages/ckeditor5-admonition/typings/types.d.ts | 2 +- packages/ckeditor5-footnotes/src/footnote-ui.ts | 2 +- packages/ckeditor5-footnotes/src/index.ts | 2 +- packages/ckeditor5-footnotes/typings/types.d.ts | 2 +- packages/ckeditor5-keyboard-marker/src/index.ts | 2 +- packages/ckeditor5-keyboard-marker/src/kbdui.ts | 2 +- packages/ckeditor5-keyboard-marker/typings/types.d.ts | 2 +- packages/ckeditor5-math/src/index.ts | 2 +- packages/ckeditor5-math/src/mathui.ts | 6 +++--- packages/ckeditor5-math/typings/types.d.ts | 2 +- packages/ckeditor5-mermaid/src/index.ts | 10 +++++----- packages/ckeditor5-mermaid/src/mermaidui.ts | 10 +++++----- packages/ckeditor5-mermaid/tests/index.ts | 10 +++++----- packages/ckeditor5-mermaid/typings/types.d.ts | 2 +- .../src/plugins/file_upload/progressbarview.ts | 2 +- 18 files changed, 31 insertions(+), 32 deletions(-) diff --git a/apps/client/src/widgets/type_widgets/editable_text.ts b/apps/client/src/widgets/type_widgets/editable_text.ts index e1163e2b53..696e7900ed 100644 --- a/apps/client/src/widgets/type_widgets/editable_text.ts +++ b/apps/client/src/widgets/type_widgets/editable_text.ts @@ -12,7 +12,6 @@ import { buildSelectedBackgroundColor } from "../../components/touch_bar.js"; import { buildConfig, BuildEditorOptions, OPEN_SOURCE_LICENSE_KEY } from "./ckeditor/config.js"; import type FNote from "../../entities/fnote.js"; import { PopupEditor, ClassicEditor, EditorWatchdog, type CKTextEditor, type MentionFeed, type WatchdogConfig, EditorConfig } from "@triliumnext/ckeditor5"; -import "@triliumnext/ckeditor5/index.css"; import { updateTemplateCache } from "./ckeditor/snippets.js"; const TPL = /*html*/` diff --git a/packages/ckeditor5-admonition/src/admonitionui.ts b/packages/ckeditor5-admonition/src/admonitionui.ts index 09c78f8802..ec765ecced 100644 --- a/packages/ckeditor5-admonition/src/admonitionui.ts +++ b/packages/ckeditor5-admonition/src/admonitionui.ts @@ -10,7 +10,7 @@ import { Plugin, addListToDropdown, createDropdown, ListDropdownItemDefinition, SplitButtonView, ViewModel } from 'ckeditor5'; import '../theme/blockquote.css'; -import admonitionIcon from '../theme/icons/admonition.svg'; +import admonitionIcon from '../theme/icons/admonition.svg?raw'; import { AdmonitionType } from './admonitioncommand.js'; import { Collection } from 'ckeditor5'; diff --git a/packages/ckeditor5-admonition/src/index.ts b/packages/ckeditor5-admonition/src/index.ts index 99edeece88..23716647d3 100644 --- a/packages/ckeditor5-admonition/src/index.ts +++ b/packages/ckeditor5-admonition/src/index.ts @@ -1,4 +1,4 @@ -import admonitionIcon from '../theme/icons/admonition.svg'; +import admonitionIcon from '../theme/icons/admonition.svg?raw'; import './augmentation.js'; import "../theme/blockquote.css"; diff --git a/packages/ckeditor5-admonition/typings/types.d.ts b/packages/ckeditor5-admonition/typings/types.d.ts index 4333ece783..09be57e1c9 100644 --- a/packages/ckeditor5-admonition/typings/types.d.ts +++ b/packages/ckeditor5-admonition/typings/types.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module '*.svg?raw' { const content: string; export default content; } diff --git a/packages/ckeditor5-footnotes/src/footnote-ui.ts b/packages/ckeditor5-footnotes/src/footnote-ui.ts index c54b771879..719eb69013 100644 --- a/packages/ckeditor5-footnotes/src/footnote-ui.ts +++ b/packages/ckeditor5-footnotes/src/footnote-ui.ts @@ -6,7 +6,7 @@ import { ELEMENTS, TOOLBAR_COMPONENT_NAME } from './constants.js'; -import insertFootnoteIcon from '../theme/icons/insert-footnote.svg'; +import insertFootnoteIcon from '../theme/icons/insert-footnote.svg?raw'; import { modelQueryElement, modelQueryElementsAll } from './utils.js'; export default class FootnoteUI extends Plugin { diff --git a/packages/ckeditor5-footnotes/src/index.ts b/packages/ckeditor5-footnotes/src/index.ts index 66f96f2b6f..b93f1d62cd 100644 --- a/packages/ckeditor5-footnotes/src/index.ts +++ b/packages/ckeditor5-footnotes/src/index.ts @@ -1,4 +1,4 @@ -import insertFootnoteIcon from './../theme/icons/insert-footnote.svg'; +import insertFootnoteIcon from './../theme/icons/insert-footnote.svg?raw'; import './augmentation.js'; import "../theme/footnote.css"; diff --git a/packages/ckeditor5-footnotes/typings/types.d.ts b/packages/ckeditor5-footnotes/typings/types.d.ts index 4333ece783..09be57e1c9 100644 --- a/packages/ckeditor5-footnotes/typings/types.d.ts +++ b/packages/ckeditor5-footnotes/typings/types.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module '*.svg?raw' { const content: string; export default content; } diff --git a/packages/ckeditor5-keyboard-marker/src/index.ts b/packages/ckeditor5-keyboard-marker/src/index.ts index eecb33f8d3..8b4dfd21fa 100644 --- a/packages/ckeditor5-keyboard-marker/src/index.ts +++ b/packages/ckeditor5-keyboard-marker/src/index.ts @@ -1,4 +1,4 @@ -import kbdIcon from '../theme/icons/kbd.svg'; +import kbdIcon from '../theme/icons/kbd.svg?raw'; import './augmentation.js'; export { default as Kbd } from './kbd.js'; diff --git a/packages/ckeditor5-keyboard-marker/src/kbdui.ts b/packages/ckeditor5-keyboard-marker/src/kbdui.ts index 828157d665..0d12a7d28e 100644 --- a/packages/ckeditor5-keyboard-marker/src/kbdui.ts +++ b/packages/ckeditor5-keyboard-marker/src/kbdui.ts @@ -1,5 +1,5 @@ import { AttributeCommand, ButtonView, Plugin } from 'ckeditor5'; -import kbdIcon from '../theme/icons/kbd.svg'; +import kbdIcon from '../theme/icons/kbd.svg?raw'; const KBD = 'kbd'; diff --git a/packages/ckeditor5-keyboard-marker/typings/types.d.ts b/packages/ckeditor5-keyboard-marker/typings/types.d.ts index 4333ece783..09be57e1c9 100644 --- a/packages/ckeditor5-keyboard-marker/typings/types.d.ts +++ b/packages/ckeditor5-keyboard-marker/typings/types.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module '*.svg?raw' { const content: string; export default content; } diff --git a/packages/ckeditor5-math/src/index.ts b/packages/ckeditor5-math/src/index.ts index f33a906208..6d6982ae23 100644 --- a/packages/ckeditor5-math/src/index.ts +++ b/packages/ckeditor5-math/src/index.ts @@ -1,4 +1,4 @@ -import ckeditor from './../theme/icons/math.svg'; +import ckeditor from './../theme/icons/math.svg?raw'; import './augmentation.js'; import "../theme/mathform.css"; diff --git a/packages/ckeditor5-math/src/mathui.ts b/packages/ckeditor5-math/src/mathui.ts index a4efff4738..4c4a2794c5 100644 --- a/packages/ckeditor5-math/src/mathui.ts +++ b/packages/ckeditor5-math/src/mathui.ts @@ -1,6 +1,6 @@ import MathEditing from './mathediting.js'; import MainFormView from './ui/mainformview.js'; -import mathIcon from '../theme/icons/math.svg'; +import mathIcon from '../theme/icons/math.svg?raw'; import { Plugin, ClickObserver, ButtonView, ContextualBalloon, clickOutsideHandler, CKEditorError, uid } from 'ckeditor5'; import { getBalloonPositionData } from './utils.js'; import MathCommand from './mathcommand.js'; @@ -54,10 +54,10 @@ export default class MathUI extends Plugin { this._addFormView(); this._balloon.showStack( 'main' ); - + requestAnimationFrame(() => { this.formView?.mathInputView.fieldView.element?.focus(); - }); + }); } private _createFormView() { diff --git a/packages/ckeditor5-math/typings/types.d.ts b/packages/ckeditor5-math/typings/types.d.ts index 4333ece783..09be57e1c9 100644 --- a/packages/ckeditor5-math/typings/types.d.ts +++ b/packages/ckeditor5-math/typings/types.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module '*.svg?raw' { const content: string; export default content; } diff --git a/packages/ckeditor5-mermaid/src/index.ts b/packages/ckeditor5-mermaid/src/index.ts index 58fa30892e..d4f750bc8c 100644 --- a/packages/ckeditor5-mermaid/src/index.ts +++ b/packages/ckeditor5-mermaid/src/index.ts @@ -1,11 +1,11 @@ import './augmentation.js'; export { default as Mermaid } from './mermaid.js'; -import infoIcon from './../theme/icons/info.svg'; -import insertMermaidIcon from './../theme/icons/insert.svg'; -import previewModeIcon from './../theme/icons/preview-mode.svg'; -import splitModeIcon from './../theme/icons/split-mode.svg'; -import sourceModeIcon from './../theme/icons/source-mode.svg'; +import infoIcon from './../theme/icons/info.svg?raw'; +import insertMermaidIcon from './../theme/icons/insert.svg?raw'; +import previewModeIcon from './../theme/icons/preview-mode.svg?raw'; +import splitModeIcon from './../theme/icons/split-mode.svg?raw'; +import sourceModeIcon from './../theme/icons/source-mode.svg?raw'; import "../theme/mermaid.css"; export const icons = { diff --git a/packages/ckeditor5-mermaid/src/mermaidui.ts b/packages/ckeditor5-mermaid/src/mermaidui.ts index d5fc6519eb..0edc9c8337 100644 --- a/packages/ckeditor5-mermaid/src/mermaidui.ts +++ b/packages/ckeditor5-mermaid/src/mermaidui.ts @@ -2,11 +2,11 @@ * @module mermaid/mermaidui */ -import insertMermaidIcon from '../theme/icons/insert.svg'; -import previewModeIcon from '../theme/icons/preview-mode.svg'; -import splitModeIcon from '../theme/icons/split-mode.svg'; -import sourceModeIcon from '../theme/icons/source-mode.svg'; -import infoIcon from '../theme/icons/info.svg'; +import insertMermaidIcon from '../theme/icons/insert.svg?raw'; +import previewModeIcon from '../theme/icons/preview-mode.svg?raw'; +import splitModeIcon from '../theme/icons/split-mode.svg?raw'; +import sourceModeIcon from '../theme/icons/source-mode.svg?raw'; +import infoIcon from '../theme/icons/info.svg?raw'; import { ButtonView, Editor, ModelElement, Locale, Observable, Plugin } from 'ckeditor5'; import InsertMermaidCommand from './commands/insertMermaidCommand.js'; diff --git a/packages/ckeditor5-mermaid/tests/index.ts b/packages/ckeditor5-mermaid/tests/index.ts index 06f8e2d83a..a2ec5fd563 100644 --- a/packages/ckeditor5-mermaid/tests/index.ts +++ b/packages/ckeditor5-mermaid/tests/index.ts @@ -1,11 +1,11 @@ import { Mermaid as MermaidDll, icons } from '../src/index.js'; import Mermaid from '../src/mermaid.js'; -import infoIcon from './../theme/icons/info.svg'; -import insertMermaidIcon from './../theme/icons/insert.svg'; -import previewModeIcon from './../theme/icons/preview-mode.svg'; -import splitModeIcon from './../theme/icons/split-mode.svg'; -import sourceModeIcon from './../theme/icons/source-mode.svg'; +import infoIcon from './../theme/icons/info.svg?raw'; +import insertMermaidIcon from './../theme/icons/insert.svg?raw'; +import previewModeIcon from './../theme/icons/preview-mode.svg?raw'; +import splitModeIcon from './../theme/icons/split-mode.svg?raw'; +import sourceModeIcon from './../theme/icons/source-mode.svg?raw'; import { describe, it } from 'vitest'; import { expect } from 'vitest'; diff --git a/packages/ckeditor5-mermaid/typings/types.d.ts b/packages/ckeditor5-mermaid/typings/types.d.ts index 4333ece783..09be57e1c9 100644 --- a/packages/ckeditor5-mermaid/typings/types.d.ts +++ b/packages/ckeditor5-mermaid/typings/types.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module '*.svg?raw' { const content: string; export default content; } diff --git a/packages/ckeditor5/src/plugins/file_upload/progressbarview.ts b/packages/ckeditor5/src/plugins/file_upload/progressbarview.ts index daa888751e..24d5a1a356 100644 --- a/packages/ckeditor5/src/plugins/file_upload/progressbarview.ts +++ b/packages/ckeditor5/src/plugins/file_upload/progressbarview.ts @@ -1,4 +1,4 @@ -import cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg'; +import cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg?raw'; import { ButtonView, Locale, toUnit, View } from 'ckeditor5'; const toPx = toUnit('%'); From b012624b67898aeb9dba3f78c41ecbb222fcd6c3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 19:26:56 +0300 Subject: [PATCH 033/121] chore(dx/client): fix emoji import error --- apps/client/src/widgets/type_widgets/ckeditor/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/widgets/type_widgets/ckeditor/config.ts b/apps/client/src/widgets/type_widgets/ckeditor/config.ts index 4eb15e913c..7bb78aa93c 100644 --- a/apps/client/src/widgets/type_widgets/ckeditor/config.ts +++ b/apps/client/src/widgets/type_widgets/ckeditor/config.ts @@ -4,7 +4,7 @@ import { buildExtraCommands, type EditorConfig, PREMIUM_PLUGINS } from "@trilium import { getHighlightJsNameForMime } from "../../../services/mime_types.js"; import options from "../../../services/options.js"; import { ensureMimeTypesForHighlighting, isSyntaxHighlightEnabled } from "../../../services/syntax_highlight.js"; -import emojiDefinitionsUrl from "@triliumnext/ckeditor5/emoji_definitions/en.json?url"; +import emojiDefinitionsUrl from "@triliumnext/ckeditor5/src/emoji_definitions/en.json?url"; import { copyTextWithToast } from "../../../services/clipboard_ext.js"; import getTemplates from "./snippets.js"; import { t } from "../../../services/i18n.js"; From c92860ae49258ad789d339c6c8113598f0601bed Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 19:27:05 +0300 Subject: [PATCH 034/121] chore(dx/client): fix error when optimizing premium plugins --- packages/ckeditor5/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json index 311e70b777..81d63ffd15 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -25,6 +25,7 @@ "ckeditor5-premium-features": "46.0.2" }, "devDependencies": { + "@smithy/middleware-retry": "4.1.20", "@types/jquery": "3.5.33" } } From 42559364e46830b52093d1b6306e44ea03a0c2c7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:28:21 +0300 Subject: [PATCH 035/121] chore(dx/server): improve asset management for DB init --- apps/server/src/services/assets.ts | 10 ++++++++++ apps/server/src/services/resource_dir.ts | 7 ------- apps/server/src/services/sql_init.ts | 8 ++++---- 3 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 apps/server/src/services/assets.ts diff --git a/apps/server/src/services/assets.ts b/apps/server/src/services/assets.ts new file mode 100644 index 0000000000..782ca02d77 --- /dev/null +++ b/apps/server/src/services/assets.ts @@ -0,0 +1,10 @@ +import { join } from "path"; + +const ASSET_ROOT_DIR = process.env.SERVER_ASSET_ROOT_DIR; +if (!ASSET_ROOT_DIR) { + console.error("Missing SERVER_ASSET_ROOT_DIR env."); + process.exit(1); +} + +/** Contains database initialization data such as the demo database and the schema. */ +export const DB_INIT_DIR = join(ASSET_ROOT_DIR, "db") diff --git a/apps/server/src/services/resource_dir.ts b/apps/server/src/services/resource_dir.ts index 35c056af22..c4ecf757fb 100644 --- a/apps/server/src/services/resource_dir.ts +++ b/apps/server/src/services/resource_dir.ts @@ -6,15 +6,8 @@ export const RESOURCE_DIR = path.join(getResourceDir(), "assets"); // where the "trilium" executable is const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../.."); -const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db"); - -if (!fs.existsSync(DB_INIT_DIR)) { - console.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`); - process.exit(1); -} export default { RESOURCE_DIR, - DB_INIT_DIR, ELECTRON_APP_ROOT_DIR }; diff --git a/apps/server/src/services/sql_init.ts b/apps/server/src/services/sql_init.ts index 9fc9ba2e5d..0cc7bb255d 100644 --- a/apps/server/src/services/sql_init.ts +++ b/apps/server/src/services/sql_init.ts @@ -1,6 +1,5 @@ import log from "./log.js"; import fs from "fs"; -import resourceDir from "./resource_dir.js"; import sql from "./sql.js"; import { isElectron, deferred } from "./utils.js"; import optionService from "./options.js"; @@ -17,6 +16,7 @@ import zipImportService from "./import/zip.js"; import password from "./encryption/password.js"; import backup from "./backup.js"; import eventService from "./events.js"; +import { DB_INIT_DIR } from "./assets.js"; export const dbReady = deferred(); @@ -75,8 +75,8 @@ async function createInitialDatabase(skipDemoDb?: boolean) { throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8"); - const demoFile = (!skipDemoDb ? fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`) : null); + const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf-8"); + const demoFile = (!skipDemoDb ? fs.readFileSync(`${DB_INIT_DIR}/demo.zip`) : null); let rootNote!: BNote; @@ -153,7 +153,7 @@ async function createDatabaseForSync(options: OptionRow[], syncServerHost = "", throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf8"); + const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf8"); // We have to import async since options init requires keyboard actions which require translations. const optionsInitService = (await import("./options_init.js")).default; From 91ae9d75f74fd56b4d14bbcdb6760850c276010d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:31:51 +0300 Subject: [PATCH 036/121] Revert "chore(dx/server): improve asset management for DB init" This reverts commit 42559364e46830b52093d1b6306e44ea03a0c2c7. --- apps/server/src/services/assets.ts | 10 ---------- apps/server/src/services/resource_dir.ts | 7 +++++++ apps/server/src/services/sql_init.ts | 8 ++++---- 3 files changed, 11 insertions(+), 14 deletions(-) delete mode 100644 apps/server/src/services/assets.ts diff --git a/apps/server/src/services/assets.ts b/apps/server/src/services/assets.ts deleted file mode 100644 index 782ca02d77..0000000000 --- a/apps/server/src/services/assets.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { join } from "path"; - -const ASSET_ROOT_DIR = process.env.SERVER_ASSET_ROOT_DIR; -if (!ASSET_ROOT_DIR) { - console.error("Missing SERVER_ASSET_ROOT_DIR env."); - process.exit(1); -} - -/** Contains database initialization data such as the demo database and the schema. */ -export const DB_INIT_DIR = join(ASSET_ROOT_DIR, "db") diff --git a/apps/server/src/services/resource_dir.ts b/apps/server/src/services/resource_dir.ts index c4ecf757fb..35c056af22 100644 --- a/apps/server/src/services/resource_dir.ts +++ b/apps/server/src/services/resource_dir.ts @@ -6,8 +6,15 @@ export const RESOURCE_DIR = path.join(getResourceDir(), "assets"); // where the "trilium" executable is const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../.."); +const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db"); + +if (!fs.existsSync(DB_INIT_DIR)) { + console.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`); + process.exit(1); +} export default { RESOURCE_DIR, + DB_INIT_DIR, ELECTRON_APP_ROOT_DIR }; diff --git a/apps/server/src/services/sql_init.ts b/apps/server/src/services/sql_init.ts index 0cc7bb255d..9fc9ba2e5d 100644 --- a/apps/server/src/services/sql_init.ts +++ b/apps/server/src/services/sql_init.ts @@ -1,5 +1,6 @@ import log from "./log.js"; import fs from "fs"; +import resourceDir from "./resource_dir.js"; import sql from "./sql.js"; import { isElectron, deferred } from "./utils.js"; import optionService from "./options.js"; @@ -16,7 +17,6 @@ import zipImportService from "./import/zip.js"; import password from "./encryption/password.js"; import backup from "./backup.js"; import eventService from "./events.js"; -import { DB_INIT_DIR } from "./assets.js"; export const dbReady = deferred(); @@ -75,8 +75,8 @@ async function createInitialDatabase(skipDemoDb?: boolean) { throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf-8"); - const demoFile = (!skipDemoDb ? fs.readFileSync(`${DB_INIT_DIR}/demo.zip`) : null); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8"); + const demoFile = (!skipDemoDb ? fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`) : null); let rootNote!: BNote; @@ -153,7 +153,7 @@ async function createDatabaseForSync(options: OptionRow[], syncServerHost = "", throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf8"); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf8"); // We have to import async since options init requires keyboard actions which require translations. const optionsInitService = (await import("./options_init.js")).default; From 51d879ba6f71e49bc179638233a27f888e986b09 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:42:46 +0300 Subject: [PATCH 037/121] style(client): toast sometimes going out of bounds --- apps/client/src/stylesheets/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css index a624fe686b..2ec0c1daa9 100644 --- a/apps/client/src/stylesheets/style.css +++ b/apps/client/src/stylesheets/style.css @@ -1134,6 +1134,7 @@ a.external:not(.no-arrow):after, a[href^="http://"]:not(.no-arrow):after, a[href .toast-body { white-space: preserve-breaks; + overflow: hidden; } .ck-mentions .ck-button { From 3d38a2aa144de433f98567750320402b2da48ce7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:43:20 +0300 Subject: [PATCH 038/121] chore(dx/desktop): get dev mode for Electron --- apps/desktop/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 037fd23c0f..5b76fe8e83 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -32,6 +32,7 @@ "forge": "./electron-forge/forge.config.ts" }, "scripts": { + "dev": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron src/electron-main.ts", "start-prod": "nx build desktop && cross-env TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=dist TRILIUM_PORT=37841 electron dist/main.js" }, "license": "AGPL-3.0-only", From 886c694db7e1b82239e8baa85bcb66d312fa87db Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:43:33 +0300 Subject: [PATCH 039/121] chore(dx/server): update server:start command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 726a1260ea..d7bfb82fc1 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "server:test": "nx test server", "server:build": "nx build server", "server:coverage": "nx test server --coverage", - "server:start": "nx run server:serve --outputStyle stream", + "server:start": "pnpm run --filter server dev", "server:start-prod": "nx run server:start-prod", "electron:build": "nx build desktop", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", From 1b25275b2e28b4e3af4153cb6f52476f753bbc16 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 20:43:48 +0300 Subject: [PATCH 040/121] fix(dx/electron): web contents not working --- apps/server/src/app.ts | 2 +- apps/server/src/services/window.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index a7bc00b42c..a66a72837c 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -122,7 +122,7 @@ export default async function buildApp() { startScheduledCleanup(); if (utils.isElectron) { - (await import("@electron/remote/main/index.js")).initialize(); + (await import("@electron/remote/main")).initialize(); } return app; diff --git a/apps/server/src/services/window.ts b/apps/server/src/services/window.ts index 9ddd5e4ff6..d8228ca198 100644 --- a/apps/server/src/services/window.ts +++ b/apps/server/src/services/window.ts @@ -224,7 +224,7 @@ function getWindowExtraOpts() { } async function configureWebContents(webContents: WebContents, spellcheckEnabled: boolean) { - const remoteMain = (await import("@electron/remote/main/index.js")).default; + const remoteMain = (await import("@electron/remote/main")); remoteMain.enable(webContents); webContents.setWindowOpenHandler((details) => { From cf1180faa9a26b58f5fa826ac1bcca1afde3280b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 21:05:23 +0300 Subject: [PATCH 041/121] chore(dx/server): remove babel compacting for tiny gain in perf --- apps/server/src/routes/assets.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index b076f6db21..cd413584b5 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -29,7 +29,11 @@ async function register(app: express.Application) { base: `/${assetUrlFragment}/`, root: path.join(srcRoot, "../client"), plugins: [ - preact() + preact({ + babel: { + compact: false + } + }) ], define: { "process.env.IS_PREACT": JSON.stringify("true"), From 0e5108bd08a77870398f7b084b0888fce96f31f5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 22:30:07 +0300 Subject: [PATCH 042/121] chore(dx/server): start building & copying assets --- apps/server/package.json | 48 ++------------------------------ apps/server/scripts/build.ts | 53 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 46 deletions(-) create mode 100644 apps/server/scripts/build.ts diff --git a/apps/server/package.json b/apps/server/package.json index 93fa686b0e..347c8595a1 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -284,38 +284,13 @@ } }, "options": { - "main": "apps/server/src/main.ts", - "outputPath": "apps/server/dist", - "tsConfig": "apps/server/tsconfig.app.json", - "platform": "node", - "external": [ - "electron", - "@electron/remote", - "better-sqlite3", - "./xhr-sync-worker.js" - ], - "format": [ - "cjs" - ], "declarationRootDir": "apps/server/src", "thirdParty": true, "declaration": false, - "esbuildOptions": { - "splitting": false, - "loader": { - ".css": "text", - ".ejs": "text" - } - }, "additionalEntryPoints": [ "apps/server/src/docker_healthcheck.ts" ], "assets": [ - { - "glob": "**/*", - "input": "apps/server/src/assets", - "output": "assets" - }, { "glob": "**/*", "input": "packages/share-theme/src/templates", @@ -328,26 +303,6 @@ "ignore": [ "webpack-stats.json" ] - }, - { - "glob": "**/*", - "input": "apps/server/node_modules/better-sqlite3", - "output": "node_modules/better-sqlite3" - }, - { - "glob": "**/*", - "input": "apps/server/node_modules/bindings", - "output": "node_modules/bindings" - }, - { - "glob": "**/*", - "input": "apps/server/node_modules/file-uri-to-path", - "output": "node_modules/file-uri-to-path" - }, - { - "glob": "xhr-sync-worker.js", - "input": "apps/server/node_modules/jsdom/lib/jsdom/living/xhr", - "output": "" } ] } @@ -364,7 +319,8 @@ } }, "scripts": { - "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts" + "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "build": "tsx scripts/build.ts" }, "main": "./src/main.ts" } \ No newline at end of file diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts new file mode 100644 index 0000000000..225333bb0a --- /dev/null +++ b/apps/server/scripts/build.ts @@ -0,0 +1,53 @@ +import * as esbuild from "esbuild"; +import { join } from "path"; +import * as fs from "fs-extra"; + +const projectDir = __dirname + "/.."; +const outDir = join(projectDir, "dist"); + +async function build() { + esbuild.build({ + entryPoints: [ join(projectDir, "src/main.ts") ], + tsconfig: join(projectDir, "tsconfig.app.json"), + platform: "node", + bundle: true, + outdir: outDir, + format: "cjs", + external: [ + "electron", + "@electron/remote", + "better-sqlite3", + "./xhr-sync-worker.js", + "@preact/preset-vite", + "vite" + ], + splitting: false, + loader: { + ".css": "text", + ".ejs": "text" + } + }); +} + +function copyAssets() { + // Copy server assets + fs.copySync(join(projectDir, "src/assets"), join(outDir, "assets")); + + // Copy node modules + fs.mkdir(join(outDir, "node_modules")); + for (const module of [ "better-sqlite3", "bindings", "file-uri-to-path" ]) { + fs.copySync(join(projectDir, "node_modules", module), join(outDir, "node_modules", module), { dereference: true }); + } + + // Copy sync worker. + fs.copySync(join(projectDir, "node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js"), join(outDir, "xhr-sync-worker.js")); +} + +async function main() { + fs.rmSync(outDir, { recursive: true }); + fs.mkdirSync(outDir); + await build(); + copyAssets(); +} + +main(); From dbf016adaf6589215110a505eafae97f273bd9a2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 22:43:21 +0300 Subject: [PATCH 043/121] chore(dx/server): build all entrypoints with right ext --- apps/server/scripts/build.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 225333bb0a..85db1651d1 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -7,11 +7,17 @@ const outDir = join(projectDir, "dist"); async function build() { esbuild.build({ - entryPoints: [ join(projectDir, "src/main.ts") ], + entryPoints: [ + join(projectDir, "src/main.ts"), + join(projectDir, "src/docker_healthcheck.ts") + ], tsconfig: join(projectDir, "tsconfig.app.json"), platform: "node", bundle: true, outdir: outDir, + outExtension: { + ".js": ".cjs" + }, format: "cjs", external: [ "electron", @@ -44,8 +50,7 @@ function copyAssets() { } async function main() { - fs.rmSync(outDir, { recursive: true }); - fs.mkdirSync(outDir); + fs.emptyDirSync(outDir); await build(); copyAssets(); } From f3f7ff5622d48e88ef86608f3b5d0c85dd985943 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 22:48:50 +0300 Subject: [PATCH 044/121] chore(dx/server): copy share templates when building --- apps/server/scripts/build.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 85db1651d1..7011f4d5c4 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -37,16 +37,25 @@ async function build() { function copyAssets() { // Copy server assets - fs.copySync(join(projectDir, "src/assets"), join(outDir, "assets")); + copy("src/assets", "assets/"); // Copy node modules - fs.mkdir(join(outDir, "node_modules")); for (const module of [ "better-sqlite3", "bindings", "file-uri-to-path" ]) { - fs.copySync(join(projectDir, "node_modules", module), join(outDir, "node_modules", module), { dereference: true }); + copy(`node_modules/${module}`, `node_modules/${module}/`); } // Copy sync worker. - fs.copySync(join(projectDir, "node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js"), join(outDir, "xhr-sync-worker.js")); + copy("node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + + // Copy share templates. + copy("../../packages/share-theme/src/templates", "share-theme/templates/"); +} + +function copy(projectDirPath: string, outDirPath: string) { + if (outDirPath.endsWith("/")) { + fs.mkdirpSync(join(outDirPath)); + } + fs.copySync(join(projectDir, projectDirPath), join(outDir, outDirPath), { dereference: true }); } async function main() { From f4a56d4e1946eb4b3ce43ea06f42c0f719f8829f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:02:41 +0300 Subject: [PATCH 045/121] chore(dx/client): get vite build to work --- apps/client/package.json | 3 +++ .../{vite.config.mts.bak => vite.config.mts} | 27 +------------------ 2 files changed, 4 insertions(+), 26 deletions(-) rename apps/client/{vite.config.mts.bak => vite.config.mts} (82%) diff --git a/apps/client/package.json b/apps/client/package.json index 27811a06e4..381b091bc9 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -72,6 +72,9 @@ "script-loader": "0.7.2", "vite-plugin-static-copy": "3.1.2" }, + "scripts": { + "build": "vite build" + }, "nx": { "name": "client", "targets": { diff --git a/apps/client/vite.config.mts.bak b/apps/client/vite.config.mts similarity index 82% rename from apps/client/vite.config.mts.bak rename to apps/client/vite.config.mts index 72ef792ac7..29ee10ef59 100644 --- a/apps/client/vite.config.mts.bak +++ b/apps/client/vite.config.mts @@ -2,7 +2,6 @@ import { join, resolve } from 'path'; import { defineConfig, type Plugin } from 'vite'; import { viteStaticCopy } from 'vite-plugin-static-copy' -import asset_path from './src/asset_path'; import webpackStatsPlugin from 'rollup-plugin-webpack-stats'; import preact from "@preact/preset-vite"; @@ -11,15 +10,7 @@ const assets = [ "assets", "stylesheets", "fonts", "translations" ]; export default defineConfig(() => ({ root: __dirname, cacheDir: '../../node_modules/.vite/apps/client', - base: process.env.NODE_ENV === "production" ? "" : asset_path, - server: { - port: 4200, - host: 'localhost', - }, - preview: { - port: 4300, - host: 'localhost', - }, + base: "", plugins: [ preact(), viteStaticCopy({ @@ -58,10 +49,6 @@ export default defineConfig(() => ({ "preact/hooks" ] }, - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, build: { target: "esnext", outDir: './dist', @@ -100,18 +87,6 @@ export default defineConfig(() => ({ "./src/test/setup.ts" ] }, - optimizeDeps: { - exclude: [ - "@triliumnext/highlightjs" - ] - }, - css: { - preprocessorOptions: { - scss: { - quietDeps: true - } - } - }, commonjsOptions: { transformMixedEsModules: true, }, From a06f2aeb8bf2f0b50a4b353f1b8f0b5b2f61702a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:03:21 +0300 Subject: [PATCH 046/121] chore(dx/server): trigger build of client & copy artifacts --- apps/server/scripts/build.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 7011f4d5c4..41e8264537 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -1,6 +1,7 @@ import * as esbuild from "esbuild"; import { join } from "path"; import * as fs from "fs-extra"; +import * as child_process from "child_process"; const projectDir = __dirname + "/.."; const outDir = join(projectDir, "dist"); @@ -51,6 +52,17 @@ function copyAssets() { copy("../../packages/share-theme/src/templates", "share-theme/templates/"); } +function buildAndCopyClient() { + // Trigger the build. + child_process.execSync("pnpm build", { cwd: clientDir, stdio: "inherit" }); + + // Copy the artifacts. + copy("../client/dist", "public/"); + + // Remove unnecessary files. + deleteFromOutput("public/webpack-stats.json"); +} + function copy(projectDirPath: string, outDirPath: string) { if (outDirPath.endsWith("/")) { fs.mkdirpSync(join(outDirPath)); @@ -58,10 +70,15 @@ function copy(projectDirPath: string, outDirPath: string) { fs.copySync(join(projectDir, projectDirPath), join(outDir, outDirPath), { dereference: true }); } +function deleteFromOutput(path: string) { + fs.rmSync(join(outDir, path), { recursive: true }); +} + async function main() { fs.emptyDirSync(outDir); await build(); copyAssets(); + buildAndCopyClient(); } main(); From a3ea52968f2907ee2ed4e7d0e3101ca66d269d81 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:03:30 +0300 Subject: [PATCH 047/121] chore(dx/client): fix codemirror dep --- packages/codemirror/package.json | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 45b0a05443..f6d93d94a2 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -3,18 +3,7 @@ "version": "0.0.1", "private": true, "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "development": "./src/index.ts", - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "default": "./dist/index.js" - } - }, + "main": "./src/index.ts", "nx": { "name": "codemirror" }, From 9266fe63b94e4c19850c863549470f93c53219a7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:03:38 +0300 Subject: [PATCH 048/121] chore(dx/client): disable share CSS for now --- apps/client/src/share.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/share.ts b/apps/client/src/share.ts index c97f18c49b..b260b41152 100644 --- a/apps/client/src/share.ts +++ b/apps/client/src/share.ts @@ -1,6 +1,6 @@ import "normalize.css"; import "boxicons/css/boxicons.min.css"; -import "@triliumnext/ckeditor5/content.css"; +// import "@triliumnext/ckeditor5/content.css"; import "@triliumnext/share-theme/styles/index.css"; import "@triliumnext/share-theme/scripts/index.js"; From 3600b468243fa3596a194d2c8ee488f11cb616b6 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:04:18 +0300 Subject: [PATCH 049/121] chore(dx/server): fix missing path to client --- apps/server/scripts/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 41e8264537..b6921a4c0a 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -54,7 +54,7 @@ function copyAssets() { function buildAndCopyClient() { // Trigger the build. - child_process.execSync("pnpm build", { cwd: clientDir, stdio: "inherit" }); + child_process.execSync("pnpm build", { cwd: join(projectDir, "../client"), stdio: "inherit" }); // Copy the artifacts. copy("../client/dist", "public/"); From 897b896c1168cd545d03d2de4ca5193c573b6a63 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:12:52 +0300 Subject: [PATCH 050/121] chore(dx/server): fix vite interfering in production --- apps/server/src/routes/assets.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index cd413584b5..6c8dc6bc37 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -4,8 +4,6 @@ import express from "express"; import { getResourceDir, isDev } from "../services/utils.js"; import type serveStatic from "serve-static"; import { existsSync } from "fs"; -import { createServer as createViteServer } from "vite"; -import preact from "@preact/preset-vite"; const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOptions>>) => { if (!isDev) { @@ -21,7 +19,9 @@ async function register(app: express.Application) { const srcRoot = path.join(__dirname, "..", ".."); const resourceDir = getResourceDir(); - if (isDev) { + if (process.env.NODE_ENV === "development") { + const { createServer: createViteServer } = await import("vite"); + const { preact } = await import("@preact/preset-vite"); const vite = await createViteServer({ server: { middlewareMode: true }, appType: "custom", From 4b9688af04b95a185f979c713344484431aee7cc Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 31 Aug 2025 23:19:07 +0300 Subject: [PATCH 051/121] chore(dx/server): minify output --- apps/server/scripts/build.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index b6921a4c0a..65a07d3bca 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -32,7 +32,11 @@ async function build() { loader: { ".css": "text", ".ejs": "text" - } + }, + define: { + "process.env.NODE_ENV": JSON.stringify("production"), + }, + minify: true }); } From 01022546e8d54e17b44b94955ff5a510c893c8ea Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 11:33:18 +0300 Subject: [PATCH 052/121] fix(dx/client): insert math not working due to icon import --- packages/ckeditor5-math/src/ui/mainformview.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ckeditor5-math/src/ui/mainformview.ts b/packages/ckeditor5-math/src/ui/mainformview.ts index 751c3c679f..2d1c597938 100644 --- a/packages/ckeditor5-math/src/ui/mainformview.ts +++ b/packages/ckeditor5-math/src/ui/mainformview.ts @@ -1,5 +1,6 @@ import { ButtonView, createLabeledTextarea, FocusCycler, LabelView, LabeledFieldView, submitHandler, SwitchButtonView, View, ViewCollection, type TextareaView, type FocusableView, Locale, FocusTracker, KeystrokeHandler } from 'ckeditor5'; -import { IconCheck, IconCancel } from "@ckeditor/ckeditor5-icons"; +import IconCheck from "@ckeditor/ckeditor5-icons/theme/icons/check.svg?raw"; +import IconCancel from "@ckeditor/ckeditor5-icons/theme/icons/cancel.svg?raw"; import { extractDelimiters, hasDelimiters } from '../utils.js'; import MathView from './mathview.js'; import '../../theme/mathform.css'; From 5cf182cf9852d18bcde750e779320e0e67132fd2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 11:50:41 +0300 Subject: [PATCH 053/121] fix(dx/client): not serving Vite due to NODE_ENV --- apps/desktop/package.json | 2 +- apps/server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 5b76fe8e83..25d622b776 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -32,7 +32,7 @@ "forge": "./electron-forge/forge.config.ts" }, "scripts": { - "dev": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron src/electron-main.ts", + "dev": "cross-env NODE_OPTIONS=\"--import tsx\" NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron src/electron-main.ts", "start-prod": "nx build desktop && cross-env TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=dist TRILIUM_PORT=37841 electron dist/main.js" }, "license": "AGPL-3.0-only", diff --git a/apps/server/package.json b/apps/server/package.json index 347c8595a1..bff80d21c5 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -319,7 +319,7 @@ } }, "scripts": { - "dev": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", "build": "tsx scripts/build.ts" }, "main": "./src/main.ts" From 35743de0dfe4d0a97b6ace2cc3a03a97095f26e8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 11:53:17 +0300 Subject: [PATCH 054/121] fix(dx/client): client not starting due to duplicate config --- apps/client/vite.config.mts | 27 ++++++++++++++++++++------- apps/server/src/routes/assets.ts | 12 +----------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts index 29ee10ef59..a07d6120fd 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts @@ -7,12 +7,18 @@ import preact from "@preact/preset-vite"; const assets = [ "assets", "stylesheets", "fonts", "translations" ]; -export default defineConfig(() => ({ - root: __dirname, - cacheDir: '../../node_modules/.vite/apps/client', - base: "", - plugins: [ - preact(), +const isDev = process.env.NODE_ENV === "development"; +let plugins: any = [ + preact({ + babel: { + compact: !isDev + } + }) +]; + +if (!isDev) { + plugins = [ + ...plugins, viteStaticCopy({ targets: assets.map((asset) => ({ src: `src/${asset}/*`, @@ -29,7 +35,14 @@ export default defineConfig(() => ({ ] }), webpackStatsPlugin() - ] as Plugin[], + ] +} + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: '../../node_modules/.vite/apps/client', + base: "", + plugins, resolve: { alias: [ { diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index 6c8dc6bc37..02e69c4499 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -27,17 +27,7 @@ async function register(app: express.Application) { appType: "custom", cacheDir: path.join(srcRoot, "../../.cache/vite"), base: `/${assetUrlFragment}/`, - root: path.join(srcRoot, "../client"), - plugins: [ - preact({ - babel: { - compact: false - } - }) - ], - define: { - "process.env.IS_PREACT": JSON.stringify("true"), - } + root: path.join(srcRoot, "../client") }); app.use(`/${assetUrlFragment}/`, (req, res, next) => { req.url = `/${assetUrlFragment}` + req.url; From 978e6b9ddec313079a0bf6d21439088a601da5f4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 19:22:46 +0300 Subject: [PATCH 055/121] chore(dx/server): unnecessary import --- apps/server/scripts/build.ts | 1 - apps/server/src/routes/assets.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 65a07d3bca..29147ec5b4 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -25,7 +25,6 @@ async function build() { "@electron/remote", "better-sqlite3", "./xhr-sync-worker.js", - "@preact/preset-vite", "vite" ], splitting: false, diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index 02e69c4499..a1a2bfb63a 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -21,7 +21,6 @@ async function register(app: express.Application) { if (process.env.NODE_ENV === "development") { const { createServer: createViteServer } = await import("vite"); - const { preact } = await import("@preact/preset-vite"); const vite = await createViteServer({ server: { middlewareMode: true }, appType: "custom", From 1e991c0526037c1d788a80c3a95bc498f9c6f7a8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 19:36:14 +0300 Subject: [PATCH 056/121] refactor(dx/server): extract basic build commands to separate file --- apps/server/scripts/build.ts | 31 ++++++++++--------------------- scripts/build-utils.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 scripts/build-utils.ts diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 29147ec5b4..b029697225 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -1,12 +1,13 @@ import * as esbuild from "esbuild"; import { join } from "path"; -import * as fs from "fs-extra"; import * as child_process from "child_process"; +import BuildHelper from "../../../scripts/build-utils"; const projectDir = __dirname + "/.."; const outDir = join(projectDir, "dist"); +const build = new BuildHelper("apps/server"); -async function build() { +async function runBuild() { esbuild.build({ entryPoints: [ join(projectDir, "src/main.ts"), @@ -41,18 +42,18 @@ async function build() { function copyAssets() { // Copy server assets - copy("src/assets", "assets/"); + build.copy("src/assets", "assets/"); // Copy node modules for (const module of [ "better-sqlite3", "bindings", "file-uri-to-path" ]) { - copy(`node_modules/${module}`, `node_modules/${module}/`); + build.copy(`node_modules/${module}`, `node_modules/${module}/`); } // Copy sync worker. - copy("node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + build.copy("node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); // Copy share templates. - copy("../../packages/share-theme/src/templates", "share-theme/templates/"); + build.copy("../../packages/share-theme/src/templates", "share-theme/templates/"); } function buildAndCopyClient() { @@ -60,26 +61,14 @@ function buildAndCopyClient() { child_process.execSync("pnpm build", { cwd: join(projectDir, "../client"), stdio: "inherit" }); // Copy the artifacts. - copy("../client/dist", "public/"); + build.copy("../client/dist", "public/"); // Remove unnecessary files. - deleteFromOutput("public/webpack-stats.json"); -} - -function copy(projectDirPath: string, outDirPath: string) { - if (outDirPath.endsWith("/")) { - fs.mkdirpSync(join(outDirPath)); - } - fs.copySync(join(projectDir, projectDirPath), join(outDir, outDirPath), { dereference: true }); -} - -function deleteFromOutput(path: string) { - fs.rmSync(join(outDir, path), { recursive: true }); + build.deleteFromOutput("public/webpack-stats.json"); } async function main() { - fs.emptyDirSync(outDir); - await build(); + await runBuild(); copyAssets(); buildAndCopyClient(); } diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts new file mode 100644 index 0000000000..27790488b7 --- /dev/null +++ b/scripts/build-utils.ts @@ -0,0 +1,28 @@ +import { rmSync } from "fs"; +import { copySync, emptyDirSync, mkdirpSync } from "fs-extra"; +import { join } from "path"; + +export default class BuildHelper { + + private projectDir: string; + private outDir: string; + + constructor(projectPath: string) { + this.projectDir = join(__dirname, "..", projectPath); + this.outDir = join(this.projectDir, "dist"); + + emptyDirSync(this.outDir); + } + + copy(projectDirPath: string, outDirPath: string) { + if (outDirPath.endsWith("/")) { + mkdirpSync(join(outDirPath)); + } + copySync(join(this.projectDir, projectDirPath), join(this.outDir, outDirPath), { dereference: true }); + } + + deleteFromOutput(path: string) { + rmSync(join(this.outDir, path), { recursive: true }); + } + +} From 72a256eccf3d365cab8f2b73090b007916eaf456 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 20:29:34 +0300 Subject: [PATCH 057/121] refactor(dx/server): simplify build script even further --- apps/server/scripts/build.ts | 71 ++++-------------------------------- scripts/build-utils.ts | 48 +++++++++++++++++++++++- 2 files changed, 55 insertions(+), 64 deletions(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index b029697225..c4a17941d5 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -1,76 +1,21 @@ -import * as esbuild from "esbuild"; -import { join } from "path"; -import * as child_process from "child_process"; import BuildHelper from "../../../scripts/build-utils"; -const projectDir = __dirname + "/.."; -const outDir = join(projectDir, "dist"); const build = new BuildHelper("apps/server"); -async function runBuild() { - esbuild.build({ - entryPoints: [ - join(projectDir, "src/main.ts"), - join(projectDir, "src/docker_healthcheck.ts") - ], - tsconfig: join(projectDir, "tsconfig.app.json"), - platform: "node", - bundle: true, - outdir: outDir, - outExtension: { - ".js": ".cjs" - }, - format: "cjs", - external: [ - "electron", - "@electron/remote", - "better-sqlite3", - "./xhr-sync-worker.js", - "vite" - ], - splitting: false, - loader: { - ".css": "text", - ".ejs": "text" - }, - define: { - "process.env.NODE_ENV": JSON.stringify("production"), - }, - minify: true - }); -} +async function main() { + build.buildBackend([ "src/main.ts", "src/docker_healthcheck.ts" ]) -function copyAssets() { - // Copy server assets + // Copy assets build.copy("src/assets", "assets/"); + build.copy("../../packages/share-theme/src/templates", "share-theme/templates/"); - // Copy node modules - for (const module of [ "better-sqlite3", "bindings", "file-uri-to-path" ]) { - build.copy(`node_modules/${module}`, `node_modules/${module}/`); - } - - // Copy sync worker. + // Copy node modules dependencies + build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path" ]); build.copy("node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); - // Copy share templates. - build.copy("../../packages/share-theme/src/templates", "share-theme/templates/"); -} - -function buildAndCopyClient() { - // Trigger the build. - child_process.execSync("pnpm build", { cwd: join(projectDir, "../client"), stdio: "inherit" }); - - // Copy the artifacts. - build.copy("../client/dist", "public/"); - - // Remove unnecessary files. + // Integrate the client. + build.triggerBuildAndCopyTo("apps/client", "public/"); build.deleteFromOutput("public/webpack-stats.json"); } -async function main() { - await runBuild(); - copyAssets(); - buildAndCopyClient(); -} - main(); diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index 27790488b7..5857ffce4c 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -1,14 +1,18 @@ +import { execSync } from "child_process"; +import { build as esbuild } from "esbuild"; import { rmSync } from "fs"; import { copySync, emptyDirSync, mkdirpSync } from "fs-extra"; import { join } from "path"; export default class BuildHelper { + private rootDir: string; private projectDir: string; private outDir: string; constructor(projectPath: string) { - this.projectDir = join(__dirname, "..", projectPath); + this.rootDir = join(__dirname, ".."); + this.projectDir = join(this.rootDir, projectPath); this.outDir = join(this.projectDir, "dist"); emptyDirSync(this.outDir); @@ -25,4 +29,46 @@ export default class BuildHelper { rmSync(join(this.outDir, path), { recursive: true }); } + async buildBackend(entryPoints: string[]) { + await esbuild({ + entryPoints: entryPoints.map(e => join(this.projectDir, e)), + tsconfig: join(this.projectDir, "tsconfig.app.json"), + platform: "node", + bundle: true, + outdir: this.outDir, + outExtension: { + ".js": ".cjs" + }, + format: "cjs", + external: [ + "electron", + "@electron/remote", + "better-sqlite3", + "./xhr-sync-worker.js", + "vite" + ], + splitting: false, + loader: { + ".css": "text", + ".ejs": "text" + }, + define: { + "process.env.NODE_ENV": JSON.stringify("production"), + }, + minify: true + }); + } + + triggerBuildAndCopyTo(projectToBuild: string, destPath: string) { + const projectDir = join(this.rootDir, projectToBuild); + execSync("pnpm build", { cwd: projectDir, stdio: "inherit" }); + copySync(join(projectDir, "dist"), join(this.projectDir, "dist", destPath)); + } + + copyNodeModules(nodeModules: string[]) { + for (const module of nodeModules) { + this.copy(`node_modules/${module}`, `node_modules/${module}/`); + } + } + } From 135e2bb10ef81f442c726581a2dacc52265027f5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 20:50:22 +0300 Subject: [PATCH 058/121] chore(dx/desktop): get prod build --- apps/desktop/package.json | 44 +------------------ apps/desktop/scripts/build.ts | 22 ++++++++++ .../desktop/src/{electron-main.ts => main.ts} | 0 apps/server/scripts/build.ts | 4 +- scripts/build-utils.ts | 9 +++- 5 files changed, 33 insertions(+), 46 deletions(-) create mode 100644 apps/desktop/scripts/build.ts rename apps/desktop/src/{electron-main.ts => main.ts} (100%) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 25d622b776..e5cbdf01be 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -33,6 +33,7 @@ }, "scripts": { "dev": "cross-env NODE_OPTIONS=\"--import tsx\" NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron src/electron-main.ts", + "build": "tsx scripts/build.ts", "start-prod": "nx build desktop && cross-env TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=dist TRILIUM_PORT=37841 electron dist/main.js" }, "license": "AGPL-3.0-only", @@ -63,63 +64,20 @@ "options": { "main": "apps/desktop/src/electron-main.ts", "outputPath": "apps/desktop/dist", - "outputFileName": "main.js", "tsConfig": "apps/desktop/tsconfig.app.json", - "platform": "node", "external": [ "electron", "@electron/remote", "better-sqlite3", "./xhr-sync-worker.js" ], - "format": [ - "cjs" - ], "thirdParty": true, - "declaration": false, "esbuildOptions": { "splitting": false, "loader": { ".css": "text" } }, - "assets": [ - { - "glob": "**/*", - "input": "apps/server/dist/node_modules", - "output": "node_modules" - }, - { - "glob": "**/*", - "input": "apps/desktop/node_modules/@electron/remote", - "output": "node_modules/@electron/remote" - }, - { - "glob": "**/*", - "input": "apps/server/dist/assets", - "output": "assets" - }, - { - "glob": "**/*", - "input": "packages/share-theme/src/templates", - "output": "share-theme/templates" - }, - { - "glob": "**/*", - "input": "apps/desktop/src/assets", - "output": "assets" - }, - { - "glob": "**/*", - "input": "apps/server/dist/public", - "output": "public" - }, - { - "glob": "xhr-sync-worker.js", - "input": "apps/server/node_modules/jsdom/lib/jsdom/living/xhr", - "output": "" - } - ], "declarationRootDir": "apps/desktop/src" } }, diff --git a/apps/desktop/scripts/build.ts b/apps/desktop/scripts/build.ts new file mode 100644 index 0000000000..07e31f71a6 --- /dev/null +++ b/apps/desktop/scripts/build.ts @@ -0,0 +1,22 @@ +import BuildHelper from "../../../scripts/build-utils"; + +const build = new BuildHelper("apps/desktop"); + +async function main() { + await build.buildBackend([ "src/main.ts"]); + + // Copy assets. + build.copy("src/assets", "assets/"); + build.copy("/apps/server/src/assets", "assets/"); + build.copy("/packages/share-theme/src/templates", "share-theme/templates/"); + + // Copy node modules dependencies + build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path", "@electron/remote" ]); + build.copy("/apps/server/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + + // Integrate the client. + build.triggerBuildAndCopyTo("apps/client", "public/"); + build.deleteFromOutput("public/webpack-stats.json"); +} + +main(); diff --git a/apps/desktop/src/electron-main.ts b/apps/desktop/src/main.ts similarity index 100% rename from apps/desktop/src/electron-main.ts rename to apps/desktop/src/main.ts diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index c4a17941d5..5606644f57 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -3,11 +3,11 @@ import BuildHelper from "../../../scripts/build-utils"; const build = new BuildHelper("apps/server"); async function main() { - build.buildBackend([ "src/main.ts", "src/docker_healthcheck.ts" ]) + await build.buildBackend([ "src/main.ts", "src/docker_healthcheck.ts" ]) // Copy assets build.copy("src/assets", "assets/"); - build.copy("../../packages/share-theme/src/templates", "share-theme/templates/"); + build.copy("/packages/share-theme/src/templates", "share-theme/templates/"); // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path" ]); diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index 5857ffce4c..e4706b03b3 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -19,10 +19,17 @@ export default class BuildHelper { } copy(projectDirPath: string, outDirPath: string) { + let sourcePath: string; + if (projectDirPath.startsWith("/")) { + sourcePath = join(this.rootDir, projectDirPath.substring(1)); + } else { + sourcePath = join(this.projectDir, projectDirPath); + } + if (outDirPath.endsWith("/")) { mkdirpSync(join(outDirPath)); } - copySync(join(this.projectDir, projectDirPath), join(this.outDir, outDirPath), { dereference: true }); + copySync(sourcePath, join(this.outDir, outDirPath), { dereference: true }); } deleteFromOutput(path: string) { From ebcf4315f7b9a2f1cb93a6ad68999629a7ca30e7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 21:15:17 +0300 Subject: [PATCH 059/121] chore(dx/desktop): remote main not working in dist build --- apps/server/src/app.ts | 2 +- apps/server/src/services/window.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index a66a72837c..a7bc00b42c 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -122,7 +122,7 @@ export default async function buildApp() { startScheduledCleanup(); if (utils.isElectron) { - (await import("@electron/remote/main")).initialize(); + (await import("@electron/remote/main/index.js")).initialize(); } return app; diff --git a/apps/server/src/services/window.ts b/apps/server/src/services/window.ts index d8228ca198..eeb36f9d73 100644 --- a/apps/server/src/services/window.ts +++ b/apps/server/src/services/window.ts @@ -224,7 +224,7 @@ function getWindowExtraOpts() { } async function configureWebContents(webContents: WebContents, spellcheckEnabled: boolean) { - const remoteMain = (await import("@electron/remote/main")); + const remoteMain = (await import("@electron/remote/main/index.js")); remoteMain.enable(webContents); webContents.setWindowOpenHandler((details) => { From 24859e33c155af38695100b7654a9f2490db5f4a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 21:15:44 +0300 Subject: [PATCH 060/121] chore(dx/desktop): generate prod package.json --- apps/desktop/scripts/build.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/apps/desktop/scripts/build.ts b/apps/desktop/scripts/build.ts index 07e31f71a6..1b42b4eabc 100644 --- a/apps/desktop/scripts/build.ts +++ b/apps/desktop/scripts/build.ts @@ -1,4 +1,7 @@ +import { join } from "path"; import BuildHelper from "../../../scripts/build-utils"; +import originalPackageJson from "../package.json" with { type: "json" }; +import { writeFileSync } from "fs"; const build = new BuildHelper("apps/desktop"); @@ -17,6 +20,24 @@ async function main() { // Integrate the client. build.triggerBuildAndCopyTo("apps/client", "public/"); build.deleteFromOutput("public/webpack-stats.json"); + + generatePackageJson(); +} + +function generatePackageJson() { + const { version, author, license, description, dependencies, devDependencies } = originalPackageJson; + const packageJson = { + name: "trilium", + main: "main.cjs", + version, author, license, description, + dependencies: { + "better-sqlite3": dependencies["better-sqlite3"], + }, + devDependencies: { + electron: devDependencies.electron + } + }; + writeFileSync(join(build.outDir, "package.json"), JSON.stringify(packageJson, null, "\t"), "utf-8"); } main(); From edf53c8a0f8bd9921e8326d7b726cd2254e61050 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 21:16:10 +0300 Subject: [PATCH 061/121] chore(dx/desktop): configure dev & start-prod --- apps/desktop/package.json | 6 +++--- scripts/build-utils.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index e5cbdf01be..f59c4f0b66 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -3,7 +3,7 @@ "version": "0.98.1", "description": "Build your personal knowledge base with Trilium Notes", "private": true, - "main": "main.cjs", + "main": "src/main.ts", "dependencies": { "@electron/remote": "2.1.3", "better-sqlite3": "^12.0.0", @@ -32,9 +32,9 @@ "forge": "./electron-forge/forge.config.ts" }, "scripts": { - "dev": "cross-env NODE_OPTIONS=\"--import tsx\" NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron src/electron-main.ts", + "dev": "cross-env NODE_OPTIONS=\"--import tsx\" NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron .", "build": "tsx scripts/build.ts", - "start-prod": "nx build desktop && cross-env TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=dist TRILIUM_PORT=37841 electron dist/main.js" + "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist" }, "license": "AGPL-3.0-only", "author": { diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index e4706b03b3..d8207d4ed0 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -7,8 +7,8 @@ import { join } from "path"; export default class BuildHelper { private rootDir: string; - private projectDir: string; - private outDir: string; + projectDir: string; + outDir: string; constructor(projectPath: string) { this.rootDir = join(__dirname, ".."); From 6f29bdf35505d233e32b69226c9062d33c631dd3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 22:25:06 +0300 Subject: [PATCH 062/121] chore(dx/electron): different window icon --- apps/server/src/services/window.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server/src/services/window.ts b/apps/server/src/services/window.ts index eeb36f9d73..5420a5b431 100644 --- a/apps/server/src/services/window.ts +++ b/apps/server/src/services/window.ts @@ -257,7 +257,11 @@ async function configureWebContents(webContents: WebContents, spellcheckEnabled: } function getIcon() { - return path.join(RESOURCE_DIR, "../public/assets/icon.png"); + if (process.env.NODE_ENV === "development") { + return path.join(__dirname, "../../../desktop/electron-forge/app-icon/png/256x256-dev.png"); + } else { + return path.join(RESOURCE_DIR, "../public/assets/icon.png"); + } } async function createSetupWindow() { From 793102f3ad437a5d90bb18263e3e1d7a99b3e9eb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 1 Sep 2025 22:55:53 +0300 Subject: [PATCH 063/121] chore(dx/electron): fix tray icons --- apps/server/src/services/tray.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/server/src/services/tray.ts b/apps/server/src/services/tray.ts index 0866439e36..504e81b21e 100644 --- a/apps/server/src/services/tray.ts +++ b/apps/server/src/services/tray.ts @@ -29,12 +29,21 @@ function getTrayIconPath() { name = "icon-color"; } - return path.resolve(path.join(getResourceDir(), "assets", "images", "tray", `${name}.png`)); + if (process.env.NODE_ENV === "development") { + return path.join(__dirname, "../../../desktop/src/assets/images/tray", `${name}.png`); + } else { + return path.resolve(path.join(getResourceDir(), "assets", "images", "tray", `${name}.png`)); + } } function getIconPath(name: string) { const suffix = !isMac && electron.nativeTheme.shouldUseDarkColors ? "-inverted" : ""; - return path.resolve(path.join(getResourceDir(), "assets", "images", "tray", `${name}Template${suffix}.png`)); + + if (process.env.NODE_ENV === "development") { + return path.join(__dirname, "../../../desktop/src/assets/images/tray", `${name}Template${suffix}.png`); + } else { + return path.resolve(path.join(getResourceDir(), "assets", "images", "tray", `${name}Template${suffix}.png`)); + } } function registerVisibilityListener(window: BrowserWindow) { From 47099cc77b402d57e07c7c31e77d261eefa5d31a Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Tue, 2 Sep 2025 02:03:49 +0300 Subject: [PATCH 064/121] style/text editor/insert math flyout: fix layout --- apps/client/src/stylesheets/theme-next/notes/text.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 3222763aa5..909752a20a 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -426,6 +426,14 @@ div.ck-template-form .ck-search__info span:nth-child(2) { border-top: none; } +/* Math popup */ + +.ck-math-form .ck-labeled-field-view { + --ck-input-label-height: 0; + + margin-inline-end: 8px; +} + /* Emoji dropdown */ .ck-emoji-picker-form .ck-emoji__search .ck-button_with-text { From bcef0802e467a6cc4bb73bf0387ba99b5881b46a Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Tue, 2 Sep 2025 02:08:04 +0300 Subject: [PATCH 065/121] style/text editor/insert emoji flyout: fix the spacing of the skin tone dropdown items --- apps/client/src/stylesheets/theme-next/notes/text.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 909752a20a..56728f64c8 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -430,13 +430,13 @@ div.ck-template-form .ck-search__info span:nth-child(2) { .ck-math-form .ck-labeled-field-view { --ck-input-label-height: 0; - + margin-inline-end: 8px; } /* Emoji dropdown */ -.ck-emoji-picker-form .ck-emoji__search .ck-button_with-text { +.ck-emoji-picker-form .ck-emoji__search .ck-button_with-text:not(.ck-list-item-button) { margin-top: var(--ck-input-label-height); } From f646b3dc5c436326b48b97ab8e3260fec1181116 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Tue, 2 Sep 2025 02:14:43 +0300 Subject: [PATCH 066/121] style/text editor/color selector dropdown: fix layout --- apps/client/src/stylesheets/theme-next/notes/text.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 56728f64c8..64cf8fdd86 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -308,6 +308,11 @@ fill: black !important; } +/* Hex color input box prefix */ +:root .ck.ck-color-selector .ck-color-picker__hash-view { + margin-top: var(--ck-input-label-height); +} + /* Numbered list */ :root .ck.ck-list-properties_with-numbered-properties .ck.ck-list-styles-list { From 6475b4029afed9e63da609049981c1d396eecc4f Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Tue, 2 Sep 2025 02:42:05 +0300 Subject: [PATCH 067/121] style/text editor/forms: restyle number inputs --- apps/client/src/stylesheets/theme-next/forms.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 5552140863..5de075bc1c 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -155,6 +155,7 @@ input[type="date"], input[type="time"], input[type="datetime-local"], input.ck.ck-input-text[type="text"], +input.ck.ck-input-number, textarea.form-control, textarea, .tn-input-field { @@ -174,6 +175,7 @@ input[type="date"]:hover, input[type="time"]:hover, input[type="datetime-local"]:hover, input.ck.ck-input-text[type="text"]:hover, +input.ck.ck-input-number:hover, textarea.form-control:hover, textarea:hover, .tn-input-field:hover { @@ -189,6 +191,7 @@ input[type="date"]:focus, input[type="time"]:focus, input[type="datetime-local"]:focus, input.ck.ck-input-text[type="text"]:focus, +input.ck.ck-input-number:focus, textarea.form-control:focus, textarea:focus, .tn-input-field:focus, From ab95d707a3172a1903560e3a071229c016945f0e Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Tue, 2 Sep 2025 02:43:11 +0300 Subject: [PATCH 068/121] style/text editor/forms: refactor --- apps/client/src/stylesheets/theme-next/forms.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 5de075bc1c..90c6afee6e 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -154,7 +154,7 @@ input[type="password"], input[type="date"], input[type="time"], input[type="datetime-local"], -input.ck.ck-input-text[type="text"], +input.ck.ck-input-text, input.ck.ck-input-number, textarea.form-control, textarea, @@ -174,7 +174,7 @@ input[type="password"]:hover, input[type="date"]:hover, input[type="time"]:hover, input[type="datetime-local"]:hover, -input.ck.ck-input-text[type="text"]:hover, +input.ck.ck-input-text:hover, input.ck.ck-input-number:hover, textarea.form-control:hover, textarea:hover, @@ -190,7 +190,7 @@ input[type="password"]:focus, input[type="date"]:focus, input[type="time"]:focus, input[type="datetime-local"]:focus, -input.ck.ck-input-text[type="text"]:focus, +input.ck.ck-input-text:focus, input.ck.ck-input-number:focus, textarea.form-control:focus, textarea:focus, From ae74f8ea837d31f6d0a7ba644b1453098dc25e69 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 10:45:42 +0300 Subject: [PATCH 069/121] feat(dx/desktop): isolate node_modules dependency --- apps/desktop/.npmrc | 1 - apps/desktop/package.json | 5 +-- apps/desktop/scripts/rebuild.mts | 57 ++++++++++++++++++++++++++++++++ apps/desktop/scripts/start.mts | 22 ++++++++++++ pnpm-workspace.yaml | 3 +- scripts/utils.mts | 20 +++++++++++ 6 files changed, 103 insertions(+), 5 deletions(-) delete mode 100644 apps/desktop/.npmrc create mode 100644 apps/desktop/scripts/rebuild.mts create mode 100644 apps/desktop/scripts/start.mts create mode 100644 scripts/utils.mts diff --git a/apps/desktop/.npmrc b/apps/desktop/.npmrc deleted file mode 100644 index 1d6a0d53cb..0000000000 --- a/apps/desktop/.npmrc +++ /dev/null @@ -1 +0,0 @@ -node-linker = hoisted \ No newline at end of file diff --git a/apps/desktop/package.json b/apps/desktop/package.json index f59c4f0b66..1eb5233ad1 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -32,9 +32,10 @@ "forge": "./electron-forge/forge.config.ts" }, "scripts": { - "dev": "cross-env NODE_OPTIONS=\"--import tsx\" NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=../server/src electron .", + "dev": "tsx scripts/start.mts", "build": "tsx scripts/build.ts", - "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist" + "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", + "postinstall": "tsx scripts/rebuild.mts" }, "license": "AGPL-3.0-only", "author": { diff --git a/apps/desktop/scripts/rebuild.mts b/apps/desktop/scripts/rebuild.mts new file mode 100644 index 0000000000..8f05c9db5a --- /dev/null +++ b/apps/desktop/scripts/rebuild.mts @@ -0,0 +1,57 @@ +import { join } from "path"; +import { cpSync, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; +import { execSync } from "child_process"; +import { rebuild } from "@electron/rebuild" +import { isNixOS, resetPath } from "../../../scripts/utils.mjs"; + +const desktopProjectRoot = join(import.meta.dirname, ".."); +const workspaceRoot = join(desktopProjectRoot, "../.."); + +function copyNativeDependencies() { + const destPath = join(desktopProjectRoot, "node_modules/better-sqlite3"); + + if (existsSync(destPath)) { + rmSync(destPath, { recursive: true }); + } + mkdirSync(destPath); + cpSync(join(workspaceRoot, "node_modules/better-sqlite3"), destPath, { recursive: true, dereference: true }); +} + +function rebuildNativeDependencies() { + const electronVersion = determineElectronVersion(); + + if (!electronVersion) { + console.error("Unable to determine Electron version."); + process.exit(1); + } + + console.log(`Rebuilding ${desktopProjectRoot} with ${electronVersion}...`); + + rebuild({ + projectRootPath: desktopProjectRoot, + buildPath: desktopProjectRoot, + // on NixOS the prebuilt native fails with "Error: libstdc++.so.6: cannot open shared object file: No such file or directory" so we need to build from source. + force: isNixOS(), + electronVersion: electronVersion, + buildFromSource: true + }); +} + +function determineElectronVersion() { + if (isNixOS()) { + console.log("Detected NixOS, reading Electron version from PATH"); + resetPath(); + + try { + return execSync("electron --version", { }).toString("utf-8"); + } catch (e) { + console.error("Got error while trying to read the Electron version from shell. Make sure that an Electron version is in the PATH (e.g. `nix-shell -p electron`)"); + process.exit(1); + } + } else { + console.log("Using Electron version from package.json"); + } +} + +copyNativeDependencies(); +rebuildNativeDependencies(); diff --git a/apps/desktop/scripts/start.mts b/apps/desktop/scripts/start.mts new file mode 100644 index 0000000000..192f36f4c8 --- /dev/null +++ b/apps/desktop/scripts/start.mts @@ -0,0 +1,22 @@ +import { execSync, spawnSync } from "child_process"; +import { isNixOS, resetPath } from "../../../scripts/utils.mjs"; +import { join } from "path"; + +const projectRoot = join(import.meta.dirname, ".."); + +if (isNixOS()) { + resetPath(); +} + +execSync("electron ./src/main.ts", { + stdio: "inherit", + cwd: projectRoot, + env: { + ...process.env, + NODE_OPTIONS: "--import tsx", + NODE_ENV: "development", + TRILIUM_ENV: "dev", + TRILIUM_DATA_DIR: "data", + TRILIUM_RESOURCE_DIR: "../server/src" + } +}); diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2c068ac8f8..cf29be32ee 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,5 +2,4 @@ packages: - packages/* - apps/* -shamefullyHoist: true -nodeLinker: isolated +nodeLinker: hoisted diff --git a/scripts/utils.mts b/scripts/utils.mts new file mode 100644 index 0000000000..d8cefe4c51 --- /dev/null +++ b/scripts/utils.mts @@ -0,0 +1,20 @@ +import { readFileSync } from "fs"; +import { platform } from "os"; + +export function isNixOS() { + if (platform() !== "linux") return false; + const osReleaseFile = readFileSync("/etc/os-release", "utf-8"); + return osReleaseFile.includes("ID=nixos"); +} + +export function resetPath() { + // On Unix-like systems, PATH is usually inherited from login shell + // but npm prepends node_modules/.bin. Let's remove it: + const origPath = process.env.PATH || ""; + + // npm usually adds something like ".../node_modules/.bin" + process.env.PATH = origPath + .split(":") + .filter(p => !p.includes("node_modules/.bin")) + .join(":"); +} From 16beeb2e8860a30aa4ac4d7d477a499d8cb33ce1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 11:03:24 +0300 Subject: [PATCH 070/121] fix(dx): broken imports after changing hoisting --- .../client/src/widgets/type_widgets/canvas.ts | 2 +- packages/highlightjs/src/themes.ts | 160 +++++++++--------- 2 files changed, 81 insertions(+), 81 deletions(-) diff --git a/apps/client/src/widgets/type_widgets/canvas.ts b/apps/client/src/widgets/type_widgets/canvas.ts index 42314f0553..343e2489cf 100644 --- a/apps/client/src/widgets/type_widgets/canvas.ts +++ b/apps/client/src/widgets/type_widgets/canvas.ts @@ -388,7 +388,7 @@ async function setupFonts() { if (!glob.isDev) { path = `${window.location.pathname}/node_modules/@excalidraw/excalidraw/dist/prod`; } else { - path = (await import("../../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2?url")).default; + path = (await import("../../../../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2?url")).default; let pathComponents = path.split("/"); path = pathComponents.slice(0, pathComponents.length - 2).join("/"); } diff --git a/packages/highlightjs/src/themes.ts b/packages/highlightjs/src/themes.ts index 6864677806..568ace5f5b 100644 --- a/packages/highlightjs/src/themes.ts +++ b/packages/highlightjs/src/themes.ts @@ -6,323 +6,323 @@ export interface Theme { const themeDefinitions: Record = { "1c-light": { name: "1C (Light)", - load: () => import("../node_modules/highlight.js/styles/1c-light.css?raw") + load: () => import("highlight.js/styles/1c-light.css?raw") }, "a11y-dark": { name: "a11y (Dark)", - load: () => import("../node_modules/highlight.js/styles/a11y-dark.css?raw") + load: () => import("highlight.js/styles/a11y-dark.css?raw") }, "a11y-light": { name: "a11y (Light)", - load: () => import("../node_modules/highlight.js/styles/a11y-light.css?raw") + load: () => import("highlight.js/styles/a11y-light.css?raw") }, "agate": { name: "Agate (Dark)", - load: () => import("../node_modules/highlight.js/styles/agate.css?raw") + load: () => import("highlight.js/styles/agate.css?raw") }, "an-old-hope": { name: "An Old Hope (Dark)", - load: () => import("../node_modules/highlight.js/styles/an-old-hope.css?raw") + load: () => import("highlight.js/styles/an-old-hope.css?raw") }, "androidstudio": { name: "Android Studio (Dark)", - load: () => import("../node_modules/highlight.js/styles/androidstudio.css?raw") + load: () => import("highlight.js/styles/androidstudio.css?raw") }, "arduino-light": { name: "Arduino (Light)", - load: () => import("../node_modules/highlight.js/styles/arduino-light.css?raw") + load: () => import("highlight.js/styles/arduino-light.css?raw") }, "arta": { name: "Arta (Dark)", - load: () => import("../node_modules/highlight.js/styles/arta.css?raw") + load: () => import("highlight.js/styles/arta.css?raw") }, "ascetic": { name: "Ascetic (Light)", - load: () => import("../node_modules/highlight.js/styles/ascetic.css?raw") + load: () => import("highlight.js/styles/ascetic.css?raw") }, "atom-one-dark-reasonable": { name: "Atom One with ReasonML support (Dark)", - load: () => import("../node_modules/highlight.js/styles/atom-one-dark-reasonable.css?raw") + load: () => import("highlight.js/styles/atom-one-dark-reasonable.css?raw") }, "atom-one-dark": { name: "Atom One (Dark)", - load: () => import("../node_modules/highlight.js/styles/atom-one-dark.css?raw") + load: () => import("highlight.js/styles/atom-one-dark.css?raw") }, "atom-one-light": { name: "Atom One (Light)", - load: () => import("../node_modules/highlight.js/styles/atom-one-light.css?raw") + load: () => import("highlight.js/styles/atom-one-light.css?raw") }, "brown-paper": { name: "Brown Paper (Light)", - load: () => import("../node_modules/highlight.js/styles/brown-paper.css?raw") + load: () => import("highlight.js/styles/brown-paper.css?raw") }, "codepen-embed": { name: "CodePen Embed (Dark)", - load: () => import("../node_modules/highlight.js/styles/codepen-embed.css?raw") + load: () => import("highlight.js/styles/codepen-embed.css?raw") }, "color-brewer": { name: "Color Brewer (Light)", - load: () => import("../node_modules/highlight.js/styles/color-brewer.css?raw") + load: () => import("highlight.js/styles/color-brewer.css?raw") }, "cybertopia-cherry": { name: "Cybertopia Cherry (Dark)", - load: () => import("../node_modules/highlight.js/styles/cybertopia-cherry.css?raw") + load: () => import("highlight.js/styles/cybertopia-cherry.css?raw") }, "cybertopia-dimmer": { name: "Cybertopia Dimmer (Dark)", - load: () => import("../node_modules/highlight.js/styles/cybertopia-dimmer.css?raw") + load: () => import("highlight.js/styles/cybertopia-dimmer.css?raw") }, "cybertopia-icecap": { name: "Cybertopia Icecap (Dark)", - load: () => import("../node_modules/highlight.js/styles/cybertopia-icecap.css?raw") + load: () => import("highlight.js/styles/cybertopia-icecap.css?raw") }, "cybertopia-saturated": { name: "Cybertopia Saturated (Dark)", - load: () => import("../node_modules/highlight.js/styles/cybertopia-saturated.css?raw") + load: () => import("highlight.js/styles/cybertopia-saturated.css?raw") }, "dark": { name: "Dark", - load: () => import("../node_modules/highlight.js/styles/dark.css?raw") + load: () => import("highlight.js/styles/dark.css?raw") }, "default": { name: "Original highlight.js Theme (Light)", - load: () => import("../node_modules/highlight.js/styles/default.css?raw") + load: () => import("highlight.js/styles/default.css?raw") }, "devibeans": { name: "devibeans (Dark)", - load: () => import("../node_modules/highlight.js/styles/devibeans.css?raw") + load: () => import("highlight.js/styles/devibeans.css?raw") }, "docco": { name: "Docco (Light)", - load: () => import("../node_modules/highlight.js/styles/docco.css?raw") + load: () => import("highlight.js/styles/docco.css?raw") }, "far": { name: "FAR (Dark)", - load: () => import("../node_modules/highlight.js/styles/far.css?raw") + load: () => import("highlight.js/styles/far.css?raw") }, "felipec": { name: "FelipeC (Dark)", - load: () => import("../node_modules/highlight.js/styles/felipec.css?raw") + load: () => import("highlight.js/styles/felipec.css?raw") }, "foundation": { name: "Foundation 4 Docs (Light)", - load: () => import("../node_modules/highlight.js/styles/foundation.css?raw") + load: () => import("highlight.js/styles/foundation.css?raw") }, "github-dark-dimmed": { name: "GitHub Dimmed (Dark)", - load: () => import("../node_modules/highlight.js/styles/github-dark-dimmed.css?raw") + load: () => import("highlight.js/styles/github-dark-dimmed.css?raw") }, "github-dark": { name: "GitHub (Dark)", - load: () => import("../node_modules/highlight.js/styles/github-dark.css?raw") + load: () => import("highlight.js/styles/github-dark.css?raw") }, "github": { name: "GitHub (Light)", - load: () => import("../node_modules/highlight.js/styles/github.css?raw") + load: () => import("highlight.js/styles/github.css?raw") }, "gml": { name: "GML (Dark)", - load: () => import("../node_modules/highlight.js/styles/gml.css?raw") + load: () => import("highlight.js/styles/gml.css?raw") }, "googlecode": { name: "Google Code (Light)", - load: () => import("../node_modules/highlight.js/styles/googlecode.css?raw") + load: () => import("highlight.js/styles/googlecode.css?raw") }, "gradient-dark": { name: "Gradient (Dark)", - load: () => import("../node_modules/highlight.js/styles/gradient-dark.css?raw") + load: () => import("highlight.js/styles/gradient-dark.css?raw") }, "gradient-light": { name: "Gradient (Light)", - load: () => import("../node_modules/highlight.js/styles/gradient-light.css?raw") + load: () => import("highlight.js/styles/gradient-light.css?raw") }, "grayscale": { name: "Grayscale (Light)", - load: () => import("../node_modules/highlight.js/styles/grayscale.css?raw") + load: () => import("highlight.js/styles/grayscale.css?raw") }, "hybrid": { name: "hybrid (Dark)", - load: () => import("../node_modules/highlight.js/styles/hybrid.css?raw") + load: () => import("highlight.js/styles/hybrid.css?raw") }, "idea": { name: "Idea (Light)", - load: () => import("../node_modules/highlight.js/styles/idea.css?raw") + load: () => import("highlight.js/styles/idea.css?raw") }, "intellij-light": { name: "IntelliJ (Light)", - load: () => import("../node_modules/highlight.js/styles/intellij-light.css?raw") + load: () => import("highlight.js/styles/intellij-light.css?raw") }, "ir-black": { name: "IR Black (Dark)", - load: () => import("../node_modules/highlight.js/styles/ir-black.css?raw") + load: () => import("highlight.js/styles/ir-black.css?raw") }, "isbl-editor-dark": { name: "ISBL Editor (Dark)", - load: () => import("../node_modules/highlight.js/styles/isbl-editor-dark.css?raw") + load: () => import("highlight.js/styles/isbl-editor-dark.css?raw") }, "isbl-editor-light": { name: "ISBL Editor (Light)", - load: () => import("../node_modules/highlight.js/styles/isbl-editor-light.css?raw") + load: () => import("highlight.js/styles/isbl-editor-light.css?raw") }, "kimbie-dark": { name: "Kimbie (Dark)", - load: () => import("../node_modules/highlight.js/styles/kimbie-dark.css?raw") + load: () => import("highlight.js/styles/kimbie-dark.css?raw") }, "kimbie-light": { name: "Kimbie (Light)", - load: () => import("../node_modules/highlight.js/styles/kimbie-light.css?raw") + load: () => import("highlight.js/styles/kimbie-light.css?raw") }, "lightfair": { name: "Lightfair (Light)", - load: () => import("../node_modules/highlight.js/styles/lightfair.css?raw") + load: () => import("highlight.js/styles/lightfair.css?raw") }, "lioshi": { name: "Lioshi (Dark)", - load: () => import("../node_modules/highlight.js/styles/lioshi.css?raw") + load: () => import("highlight.js/styles/lioshi.css?raw") }, "magula": { name: "Magula (Light)", - load: () => import("../node_modules/highlight.js/styles/magula.css?raw") + load: () => import("highlight.js/styles/magula.css?raw") }, "mono-blue": { name: "Mono Blue (Light)", - load: () => import("../node_modules/highlight.js/styles/mono-blue.css?raw") + load: () => import("highlight.js/styles/mono-blue.css?raw") }, "monokai-sublime": { name: "Monokai Sublime (Dark)", - load: () => import("../node_modules/highlight.js/styles/monokai-sublime.css?raw") + load: () => import("highlight.js/styles/monokai-sublime.css?raw") }, "monokai": { name: "Monokai (Dark)", - load: () => import("../node_modules/highlight.js/styles/monokai.css?raw") + load: () => import("highlight.js/styles/monokai.css?raw") }, "night-owl": { name: "Night Owl (Dark)", - load: () => import("../node_modules/highlight.js/styles/night-owl.css?raw") + load: () => import("highlight.js/styles/night-owl.css?raw") }, "nnfx-dark": { name: "NNFX (Dark)", - load: () => import("../node_modules/highlight.js/styles/nnfx-dark.css?raw") + load: () => import("highlight.js/styles/nnfx-dark.css?raw") }, "nnfx-light": { name: "NNFX (Light)", - load: () => import("../node_modules/highlight.js/styles/nnfx-light.css?raw") + load: () => import("highlight.js/styles/nnfx-light.css?raw") }, "nord": { name: "Nord (Dark)", - load: () => import("../node_modules/highlight.js/styles/nord.css?raw") + load: () => import("highlight.js/styles/nord.css?raw") }, "obsidian": { name: "Obsidian (Dark)", - load: () => import("../node_modules/highlight.js/styles/obsidian.css?raw") + load: () => import("highlight.js/styles/obsidian.css?raw") }, "panda-syntax-dark": { name: "Panda (Dark)", - load: () => import("../node_modules/highlight.js/styles/panda-syntax-dark.css?raw") + load: () => import("highlight.js/styles/panda-syntax-dark.css?raw") }, "panda-syntax-light": { name: "Panda (Light)", - load: () => import("../node_modules/highlight.js/styles/panda-syntax-light.css?raw") + load: () => import("highlight.js/styles/panda-syntax-light.css?raw") }, "paraiso-dark": { name: "Paraiso (Dark)", - load: () => import("../node_modules/highlight.js/styles/paraiso-dark.css?raw") + load: () => import("highlight.js/styles/paraiso-dark.css?raw") }, "paraiso-light": { name: "Paraiso (Light)", - load: () => import("../node_modules/highlight.js/styles/paraiso-light.css?raw") + load: () => import("highlight.js/styles/paraiso-light.css?raw") }, "pojoaque": { name: "Pojoaque (Dark)", - load: () => import("../node_modules/highlight.js/styles/pojoaque.css?raw") + load: () => import("highlight.js/styles/pojoaque.css?raw") }, "purebasic": { name: "PureBasic (Light)", - load: () => import("../node_modules/highlight.js/styles/purebasic.css?raw") + load: () => import("highlight.js/styles/purebasic.css?raw") }, "qtcreator-dark": { name: "Qt Creator (Dark)", - load: () => import("../node_modules/highlight.js/styles/qtcreator-dark.css?raw") + load: () => import("highlight.js/styles/qtcreator-dark.css?raw") }, "qtcreator-light": { name: "Qt Creator (Light)", - load: () => import("../node_modules/highlight.js/styles/qtcreator-light.css?raw") + load: () => import("highlight.js/styles/qtcreator-light.css?raw") }, "rainbow": { name: "Rainbow (Dark)", - load: () => import("../node_modules/highlight.js/styles/rainbow.css?raw") + load: () => import("highlight.js/styles/rainbow.css?raw") }, "routeros": { name: "RouterOS Script (Light)", - load: () => import("../node_modules/highlight.js/styles/routeros.css?raw") + load: () => import("highlight.js/styles/routeros.css?raw") }, "rose-pine-dawn": { name: "Rose Pine Dawn (Light)", - load: () => import("../node_modules/highlight.js/styles/rose-pine-dawn.css?raw") + load: () => import("highlight.js/styles/rose-pine-dawn.css?raw") }, "rose-pine-moon": { name: "Rose Pine Moon (Dark)", - load: () => import("../node_modules/highlight.js/styles/rose-pine-moon.css?raw") + load: () => import("highlight.js/styles/rose-pine-moon.css?raw") }, "rose-pine": { name: "Rose Pine (Dark)", - load: () => import("../node_modules/highlight.js/styles/rose-pine.css?raw") + load: () => import("highlight.js/styles/rose-pine.css?raw") }, "school-book": { name: "School Book (Light)", - load: () => import("../node_modules/highlight.js/styles/school-book.css?raw") + load: () => import("highlight.js/styles/school-book.css?raw") }, "shades-of-purple": { name: "Shades of Purple (Dark)", - load: () => import("../node_modules/highlight.js/styles/shades-of-purple.css?raw") + load: () => import("highlight.js/styles/shades-of-purple.css?raw") }, "srcery": { name: "Srcery (Dark)", - load: () => import("../node_modules/highlight.js/styles/srcery.css?raw") + load: () => import("highlight.js/styles/srcery.css?raw") }, "stackoverflow-dark": { name: "Stack Overflow (Dark)", - load: () => import("../node_modules/highlight.js/styles/stackoverflow-dark.css?raw") + load: () => import("highlight.js/styles/stackoverflow-dark.css?raw") }, "stackoverflow-light": { name: "Stack Overflow (Light)", - load: () => import("../node_modules/highlight.js/styles/stackoverflow-light.css?raw") + load: () => import("highlight.js/styles/stackoverflow-light.css?raw") }, "sunburst": { name: "Sunburst (Dark)", - load: () => import("../node_modules/highlight.js/styles/sunburst.css?raw") + load: () => import("highlight.js/styles/sunburst.css?raw") }, "tokyo-night-dark": { name: "Tokyo Night (Dark)", - load: () => import("../node_modules/highlight.js/styles/tokyo-night-dark.css?raw") + load: () => import("highlight.js/styles/tokyo-night-dark.css?raw") }, "tokyo-night-light": { name: "Tokyo Night (Light)", - load: () => import("../node_modules/highlight.js/styles/tokyo-night-light.css?raw") + load: () => import("highlight.js/styles/tokyo-night-light.css?raw") }, "tomorrow-night-blue": { name: "Tomorrow Night Blue (Dark)", - load: () => import("../node_modules/highlight.js/styles/tomorrow-night-blue.css?raw") + load: () => import("highlight.js/styles/tomorrow-night-blue.css?raw") }, "tomorrow-night-bright": { name: "Tomorrow Night Bright (Dark)", - load: () => import("../node_modules/highlight.js/styles/tomorrow-night-bright.css?raw") + load: () => import("highlight.js/styles/tomorrow-night-bright.css?raw") }, "vs": { name: "Visual Studio (Light)", - load: () => import("../node_modules/highlight.js/styles/vs.css?raw") + load: () => import("highlight.js/styles/vs.css?raw") }, "vs2015": { name: "Visual Studio 2015 (Dark)", - load: () => import("../node_modules/highlight.js/styles/vs2015.css?raw") + load: () => import("highlight.js/styles/vs2015.css?raw") }, "xcode": { name: "Xcode (Light)", - load: () => import("../node_modules/highlight.js/styles/xcode.css?raw") + load: () => import("highlight.js/styles/xcode.css?raw") }, "xt256": { name: "xt256 (Dark)", - load: () => import("../node_modules/highlight.js/styles/xt256.css?raw") + load: () => import("highlight.js/styles/xt256.css?raw") } } From 7fdea613ff932e06f79df86b49d1e9c78f0ab675 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 11:50:53 +0300 Subject: [PATCH 071/121] feat(dx/desktop): perfect way to override bettersqlite native --- apps/desktop/scripts/rebuild.mts | 7 ++----- apps/desktop/scripts/start.mts | 3 ++- apps/server/src/services/sql.ts | 13 ++++++++++--- apps/server/src/share/sql.ts | 5 ++++- package.json | 1 + 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/desktop/scripts/rebuild.mts b/apps/desktop/scripts/rebuild.mts index 8f05c9db5a..a37c720755 100644 --- a/apps/desktop/scripts/rebuild.mts +++ b/apps/desktop/scripts/rebuild.mts @@ -9,7 +9,7 @@ const workspaceRoot = join(desktopProjectRoot, "../.."); function copyNativeDependencies() { const destPath = join(desktopProjectRoot, "node_modules/better-sqlite3"); - + if (existsSync(destPath)) { rmSync(destPath, { recursive: true }); } @@ -30,10 +30,7 @@ function rebuildNativeDependencies() { rebuild({ projectRootPath: desktopProjectRoot, buildPath: desktopProjectRoot, - // on NixOS the prebuilt native fails with "Error: libstdc++.so.6: cannot open shared object file: No such file or directory" so we need to build from source. - force: isNixOS(), - electronVersion: electronVersion, - buildFromSource: true + electronVersion }); } diff --git a/apps/desktop/scripts/start.mts b/apps/desktop/scripts/start.mts index 192f36f4c8..df956fc489 100644 --- a/apps/desktop/scripts/start.mts +++ b/apps/desktop/scripts/start.mts @@ -17,6 +17,7 @@ execSync("electron ./src/main.ts", { NODE_ENV: "development", TRILIUM_ENV: "dev", TRILIUM_DATA_DIR: "data", - TRILIUM_RESOURCE_DIR: "../server/src" + TRILIUM_RESOURCE_DIR: "../server/src", + BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node") } }); diff --git a/apps/server/src/services/sql.ts b/apps/server/src/services/sql.ts index 15f5af3895..206a828d66 100644 --- a/apps/server/src/services/sql.ts +++ b/apps/server/src/services/sql.ts @@ -15,6 +15,10 @@ import becca_loader from "../becca/becca_loader.js"; import entity_changes from "./entity_changes.js"; import config from "./config.js"; +const dbOpts: Database.Options = { + nativeBinding: process.env.BETTERSQLITE3_NATIVE_PATH || undefined +}; + let dbConnection: DatabaseType = buildDatabase(); let statementCache: Record = {}; @@ -23,15 +27,18 @@ function buildDatabase() { if (process.env.TRILIUM_INTEGRATION_TEST === "memory") { return buildIntegrationTestDatabase(); } else if (process.env.TRILIUM_INTEGRATION_TEST === "memory-no-store") { - return new Database(":memory:"); + return new Database(":memory:", dbOpts); } - return new Database(dataDir.DOCUMENT_PATH, { readonly: config.General.readOnly }); + return new Database(dataDir.DOCUMENT_PATH, { + ...dbOpts, + readonly: config.General.readOnly + }); } function buildIntegrationTestDatabase(dbPath?: string) { const dbBuffer = fs.readFileSync(dbPath ?? dataDir.DOCUMENT_PATH); - return new Database(dbBuffer); + return new Database(dbBuffer, dbOpts); } function rebuildIntegrationTestDatabase(dbPath?: string) { diff --git a/apps/server/src/share/sql.ts b/apps/server/src/share/sql.ts index 229e09ec70..36cca4b5ec 100644 --- a/apps/server/src/share/sql.ts +++ b/apps/server/src/share/sql.ts @@ -7,7 +7,10 @@ import sql_init from "../services/sql_init.js"; let dbConnection!: Database.Database; sql_init.dbReady.then(() => { - dbConnection = new Database(dataDir.DOCUMENT_PATH, { readonly: true }); + dbConnection = new Database(dataDir.DOCUMENT_PATH, { + readonly: true, + nativeBinding: process.env.BETTERSQLITE3_NATIVE_PATH || undefined + }); [`exit`, `SIGINT`, `SIGUSR1`, `SIGUSR2`, `SIGTERM`].forEach((eventType) => { process.on(eventType, () => { diff --git a/package.json b/package.json index d7bfb82fc1..c7c746135b 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "server:coverage": "nx test server --coverage", "server:start": "pnpm run --filter server dev", "server:start-prod": "nx run server:start-prod", + "desktop:start": "pnpm run --filter desktop dev", "electron:build": "nx build desktop", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", From bd349f5abc69ec1b53b82aac14b7534c76e089f9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 12:18:22 +0300 Subject: [PATCH 072/121] feat(dx/desktop): support raw NixOS via LD_LIBRARY_PATH injection --- apps/desktop/scripts/rebuild.mts | 11 +++++++++++ apps/desktop/scripts/start.mts | 9 +++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/apps/desktop/scripts/rebuild.mts b/apps/desktop/scripts/rebuild.mts index a37c720755..f367c3cde5 100644 --- a/apps/desktop/scripts/rebuild.mts +++ b/apps/desktop/scripts/rebuild.mts @@ -32,6 +32,17 @@ function rebuildNativeDependencies() { buildPath: desktopProjectRoot, electronVersion }); + + if (isNixOS()) { + console.log("Patching ELF..."); + + + + return execSync(`nix-shell -p auto-patchelf gcc.cc.lib --run "auto-patchelf --paths node_modules/better-sqlite3/build/Release/better_sqlite3.node --libs ${libStdPath}"`, { + cwd: desktopProjectRoot, + stdio: "inherit" + }); + } } function determineElectronVersion() { diff --git a/apps/desktop/scripts/start.mts b/apps/desktop/scripts/start.mts index df956fc489..17245205c0 100644 --- a/apps/desktop/scripts/start.mts +++ b/apps/desktop/scripts/start.mts @@ -4,11 +4,15 @@ import { join } from "path"; const projectRoot = join(import.meta.dirname, ".."); +let LD_LIBRARY_PATH = undefined; +let electronPath = "electron"; if (isNixOS()) { resetPath(); + LD_LIBRARY_PATH = execSync("nix eval --raw nixpkgs#gcc.cc.lib").toString("utf-8") + "/lib"; + electronPath = execSync("nix eval --raw nixpkgs#electron_37").toString("utf-8") + "/bin/electron"; } -execSync("electron ./src/main.ts", { +execSync(`${electronPath} ./src/main.ts`, { stdio: "inherit", cwd: projectRoot, env: { @@ -18,6 +22,7 @@ execSync("electron ./src/main.ts", { TRILIUM_ENV: "dev", TRILIUM_DATA_DIR: "data", TRILIUM_RESOURCE_DIR: "../server/src", - BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node") + BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node"), + LD_LIBRARY_PATH } }); From ce0fd3cec242505a3bbb4165517ff045d5614847 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 13:59:09 +0300 Subject: [PATCH 073/121] chore(dx/desktop): get forge to run --- apps/client/vite.config.mts | 2 +- apps/desktop/package.json | 30 +++---------- apps/desktop/scripts/build.ts | 5 ++- pnpm-lock.yaml | 83 +++++++++++++++++++++++++++++------ scripts/build-utils.ts | 24 ++++++++-- 5 files changed, 100 insertions(+), 44 deletions(-) diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts index a07d6120fd..04a5b09118 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts @@ -29,7 +29,7 @@ if (!isDev) { structured: true, targets: [ { - src: "node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", + src: "../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", dest: "", } ] diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 1eb5233ad1..036745fe21 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "@types/electron-squirrel-startup": "1.0.2", + "@triliumnext/commons": "workspace:*", "@triliumnext/server": "workspace:*", "copy-webpack-plugin": "13.0.1", "electron": "37.4.0", @@ -27,14 +28,14 @@ "@electron-forge/maker-zip": "7.8.3", "@electron-forge/plugin-auto-unpack-natives": "7.8.3", "prebuild-install": "^7.1.1" - }, - "config": { - "forge": "./electron-forge/forge.config.ts" - }, + }, "scripts": { "dev": "tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", + "electron-forge:make": "pnpm build && electron-forge make dist", + "electron-forge:package": "pnpm build && electron-forge package dist", + "electron-forge:start": "pnpm build && electron-forge start dist", "postinstall": "tsx scripts/rebuild.mts" }, "license": "AGPL-3.0-only", @@ -133,27 +134,6 @@ "forwardAllArgs": false } } - }, - "electron-forge:make": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm electron-forge make dist" - }, - "electron-forge:package": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm electron-forge package dist" - }, - "electron-forge:start": { - "dependsOn": [ - "build", - "rebuild-deps" - ], - "command": "pnpm -C apps/desktop exec cross-env NODE_INSTALLER=npm TRILIUM_DATA_DIR=./data electron-forge start dist" } } } diff --git a/apps/desktop/scripts/build.ts b/apps/desktop/scripts/build.ts index 1b42b4eabc..c0c7bdb732 100644 --- a/apps/desktop/scripts/build.ts +++ b/apps/desktop/scripts/build.ts @@ -15,7 +15,7 @@ async function main() { // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path", "@electron/remote" ]); - build.copy("/apps/server/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + build.copy("/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); // Integrate the client. build.triggerBuildAndCopyTo("apps/client", "public/"); @@ -35,6 +35,9 @@ function generatePackageJson() { }, devDependencies: { electron: devDependencies.electron + }, + config: { + forge: "../electron-forge/forge.config.ts" } }; writeFileSync(join(build.outDir, "package.json"), JSON.stringify(packageJson, null, "\t"), "utf-8"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2cba94d0f..46c12a2888 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -368,6 +368,9 @@ importers: '@electron-forge/plugin-auto-unpack-natives': specifier: 7.8.3 version: 7.8.3 + '@triliumnext/commons': + specifier: workspace:* + version: link:../../packages/commons '@triliumnext/server': specifier: workspace:* version: link:../server @@ -14578,8 +14581,6 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-upload': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@46.0.2': dependencies: @@ -14704,16 +14705,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@46.0.2': dependencies: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@46.0.2(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -14725,6 +14722,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-collaboration-core@46.0.2': dependencies: @@ -14738,6 +14737,8 @@ snapshots: '@types/luxon': 3.6.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) luxon: 3.6.1 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-comments@46.0.2': dependencies: @@ -14759,6 +14760,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-core@46.0.2': dependencies: @@ -14767,8 +14770,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -14933,8 +14934,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@46.0.2': dependencies: @@ -14944,8 +14943,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -14955,8 +14952,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@46.0.2': dependencies: @@ -14990,6 +14985,8 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -15002,6 +14999,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 fuzzysort: 3.1.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-engine@46.0.2': dependencies: @@ -15044,6 +15043,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -15057,6 +15058,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-find-and-replace@46.0.2': dependencies: @@ -15075,6 +15078,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-format-painter@46.0.2': dependencies: @@ -15094,6 +15099,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-heading@46.0.2': dependencies: @@ -15104,6 +15111,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-highlight@46.0.2': dependencies: @@ -15112,6 +15121,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@46.0.2': dependencies: @@ -15130,6 +15141,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-html-support@46.0.2': dependencies: @@ -15145,6 +15158,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-icons@46.0.2': {} @@ -15162,6 +15177,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-import-word@46.0.2': dependencies: @@ -15174,6 +15191,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -15185,6 +15204,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-inspector@5.0.0': {} @@ -15194,6 +15215,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-line-height@46.0.2': dependencies: @@ -15217,6 +15240,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-list-multi-level@46.0.2': dependencies: @@ -15240,6 +15265,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-markdown-gfm@46.0.2': dependencies: @@ -15277,6 +15304,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@46.0.2(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -15286,6 +15315,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@46.0.2': dependencies: @@ -15298,6 +15329,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@46.0.2': dependencies: @@ -15306,6 +15339,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@46.0.2': dependencies: @@ -15358,6 +15393,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@46.0.2': dependencies: @@ -15464,6 +15501,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@46.0.2': dependencies: @@ -15476,6 +15515,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@46.0.2': dependencies: @@ -15502,6 +15543,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-special-characters@46.0.2': dependencies: @@ -15523,6 +15566,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@46.0.2': dependencies: @@ -15535,6 +15580,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@46.0.2': dependencies: @@ -15577,6 +15624,8 @@ snapshots: ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-typing@46.0.2': dependencies: @@ -15643,6 +15692,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@46.0.2': dependencies: @@ -15662,6 +15713,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -20653,6 +20706,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index d8207d4ed0..8da5be9d1c 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -1,6 +1,6 @@ import { execSync } from "child_process"; import { build as esbuild } from "esbuild"; -import { rmSync } from "fs"; +import { cpSync, existsSync, rmSync } from "fs"; import { copySync, emptyDirSync, mkdirpSync } from "fs-extra"; import { join } from "path"; @@ -73,9 +73,27 @@ export default class BuildHelper { } copyNodeModules(nodeModules: string[]) { - for (const module of nodeModules) { - this.copy(`node_modules/${module}`, `node_modules/${module}/`); + for (const moduleName of nodeModules) { + const sourceDir = tryPath([ + join(this.projectDir, "node_modules", moduleName), + join(this.rootDir, "node_modules", moduleName) + ]); + + const destDir = join(this.outDir, "node_modules", moduleName); + mkdirpSync(destDir); + cpSync(sourceDir, destDir, { recursive: true, dereference: true }); } } } + +function tryPath(paths: string[]) { + for (const path of paths) { + if (existsSync(path)) { + return path; + } + } + + console.error("Unable to find any of the paths:", paths); + process.exit(1); +} From e18a8556c129476349f7b3aede7ecf901f759bb0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 16:40:52 +0300 Subject: [PATCH 074/121] chore(dx/ci): remove most references to NX, apart from unit test --- .github/actions/build-electron/action.yml | 2 +- .github/actions/build-server/action.yml | 2 +- .github/workflows/dev.yml | 32 +++-------------------- .github/workflows/nightly.yml | 1 - .github/workflows/release.yml | 1 - apps/server/package.json | 9 ++----- apps/server/scripts/build.ts | 2 +- 7 files changed, 8 insertions(+), 41 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index add8f3156c..540b7ddcba 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -86,7 +86,7 @@ runs: APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} TRILIUM_ARTIFACT_NAME_HINT: TriliumNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }} - run: pnpm nx --project=desktop electron-forge:make -- --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }} + run: pnpm run --filter desktop electron-forge:make -- --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }} # Add DMG signing step - name: Sign DMG diff --git a/.github/actions/build-server/action.yml b/.github/actions/build-server/action.yml index b0ab05212c..c5935172d8 100644 --- a/.github/actions/build-server/action.yml +++ b/.github/actions/build-server/action.yml @@ -23,7 +23,7 @@ runs: shell: bash run: | pnpm run chore:update-build-info - pnpm nx --project=server package + pnpm server:package - name: Prepare artifacts shell: bash run: | diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 443f2aa351..c4789cb2c6 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -19,33 +19,9 @@ permissions: pull-requests: write # for PR comments jobs: - check-affected: - name: Check affected jobs (NX) - runs-on: ubuntu-latest - steps: - - name: Checkout the repository - uses: actions/checkout@v5 - with: - fetch-depth: 0 # needed for https://github.com/marketplace/actions/nx-set-shas - - - uses: pnpm/action-setup@v4 - - name: Set up node & dependencies - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - uses: nrwl/nx-set-shas@v4 - - name: Check affected - run: pnpm nx affected --verbose -t typecheck build rebuild-deps test-build - test_dev: name: Test development runs-on: ubuntu-latest - needs: - - check-affected steps: - name: Checkout the repository uses: actions/checkout@v5 @@ -66,7 +42,6 @@ jobs: runs-on: ubuntu-latest needs: - test_dev - - check-affected steps: - uses: actions/checkout@v5 - uses: pnpm/action-setup@v4 @@ -75,7 +50,7 @@ jobs: - name: Update build info run: pnpm run chore:update-build-info - name: Trigger client build - run: pnpm nx run client:build + run: pnpm client:build - name: Send client bundle stats to RelativeCI if: false uses: relative-ci/agent-action@v3 @@ -83,7 +58,7 @@ jobs: webpackStatsFile: ./apps/client/dist/webpack-stats.json key: ${{ secrets.RELATIVE_CI_CLIENT_KEY }} - name: Trigger server build - run: pnpm nx run server:build + run: pnpm run server:build - uses: docker/setup-buildx-action@v3 - uses: docker/build-push-action@v6 with: @@ -95,7 +70,6 @@ jobs: runs-on: ubuntu-latest needs: - build_docker - - check-affected strategy: matrix: include: @@ -112,7 +86,7 @@ jobs: - name: Update build info run: pnpm run chore:update-build-info - name: Trigger build - run: pnpm nx run server:build + run: pnpm server:build - name: Set IMAGE_NAME to lowercase run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f20c5a2d4b..d9edb2cc22 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -57,7 +57,6 @@ jobs: cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - - uses: nrwl/nx-set-shas@v4 - name: Update nightly version run: npm run chore:ci-update-nightly-version - name: Run the build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 20161630fb..133d406224 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,7 +41,6 @@ jobs: cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - - uses: nrwl/nx-set-shas@v4 - name: Run the build uses: ./.github/actions/build-electron with: diff --git a/apps/server/package.json b/apps/server/package.json index bff80d21c5..6ade52f89b 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -169,12 +169,6 @@ "runBuildTargetDependencies": false } }, - "package": { - "dependsOn": [ - "build" - ], - "command": "bash apps/server/scripts/build-server.sh" - }, "start-prod": { "dependsOn": [ "build" @@ -320,7 +314,8 @@ }, "scripts": { "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", - "build": "tsx scripts/build.ts" + "build": "tsx scripts/build.ts", + "package": "pnpm build && bash scripts/build-server.sh" }, "main": "./src/main.ts" } \ No newline at end of file diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 5606644f57..8d62921ac7 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -11,7 +11,7 @@ async function main() { // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path" ]); - build.copy("node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + build.copy("/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); // Integrate the client. build.triggerBuildAndCopyTo("apps/client", "public/"); From 1258d0cf7db31f47ffdd3b48e598f5ab8243ea86 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 17:37:57 +0300 Subject: [PATCH 075/121] chore(dx/desktop): read electron version from package.json --- apps/desktop/scripts/rebuild.mts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/desktop/scripts/rebuild.mts b/apps/desktop/scripts/rebuild.mts index f367c3cde5..25b341adab 100644 --- a/apps/desktop/scripts/rebuild.mts +++ b/apps/desktop/scripts/rebuild.mts @@ -3,6 +3,7 @@ import { cpSync, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; import { execSync } from "child_process"; import { rebuild } from "@electron/rebuild" import { isNixOS, resetPath } from "../../../scripts/utils.mjs"; +import packageJson from "../package.json" with { type: "json" }; const desktopProjectRoot = join(import.meta.dirname, ".."); const workspaceRoot = join(desktopProjectRoot, "../.."); @@ -36,8 +37,6 @@ function rebuildNativeDependencies() { if (isNixOS()) { console.log("Patching ELF..."); - - return execSync(`nix-shell -p auto-patchelf gcc.cc.lib --run "auto-patchelf --paths node_modules/better-sqlite3/build/Release/better_sqlite3.node --libs ${libStdPath}"`, { cwd: desktopProjectRoot, stdio: "inherit" @@ -58,6 +57,7 @@ function determineElectronVersion() { } } else { console.log("Using Electron version from package.json"); + return packageJson.devDependencies.electron; } } From 7c8019ac5be2f4f3347e193e0b1429d61a4e2d12 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 17:38:24 +0300 Subject: [PATCH 076/121] chore(dx/ci): get rid of nx-specific workflows --- .github/workflows/main-docker.yml | 2 +- .github/workflows/playwright.yml | 13 +------------ apps/client/package.json | 21 +++++---------------- apps/server-e2e/package.json | 15 ++------------- apps/server/package.json | 26 ++++++++++---------------- 5 files changed, 19 insertions(+), 58 deletions(-) diff --git a/.github/workflows/main-docker.yml b/.github/workflows/main-docker.yml index c4c6ed551e..7b2ee4ecd8 100644 --- a/.github/workflows/main-docker.yml +++ b/.github/workflows/main-docker.yml @@ -82,7 +82,7 @@ jobs: require-healthy: true - name: Run Playwright tests - run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpm exec nx run server-e2e:e2e + run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpm --filter=server-e2e e2e - name: Upload Playwright trace if: failure() diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 25086af642..b4f047aeae 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -19,12 +19,6 @@ jobs: filter: tree:0 fetch-depth: 0 - # This enables task distribution via Nx Cloud - # Run this command as early as possible, before dependencies are installed - # Learn more at https://nx.dev/ci/reference/nx-cloud-cli#npx-nxcloud-startcirun - # Connect your workspace by running "nx connect" and uncomment this line to enable task distribution - # - run: npx nx-cloud start-ci-run --distribute-on="3 linux-medium-js" --stop-agents-after="e2e-ci" - - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: @@ -34,10 +28,5 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - run: pnpm exec playwright install --with-deps - - uses: nrwl/nx-set-shas@v4 - # Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud - # - run: npx nx-cloud record -- echo Hello World - # Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected - # When you enable task distribution, run the e2e-ci task instead of e2e - - run: pnpm exec nx affected -t e2e --exclude desktop-e2e + - run: pnpm -r e2e diff --git a/apps/client/package.json b/apps/client/package.json index 381b091bc9..9a979ccdbb 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -9,6 +9,11 @@ "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" }, + "scripts": { + "build": "vite build", + "test": "vitest", + "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" + }, "dependencies": { "@eslint/js": "9.34.0", "@excalidraw/excalidraw": "0.18.0", @@ -71,21 +76,5 @@ "happy-dom": "18.0.1", "script-loader": "0.7.2", "vite-plugin-static-copy": "3.1.2" - }, - "scripts": { - "build": "vite build" - }, - "nx": { - "name": "client", - "targets": { - "serve": { - "dependsOn": [ - "^build" - ] - }, - "circular-deps": { - "command": "pnpx dpdm -T {projectRoot}/src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" - } - } } } \ No newline at end of file diff --git a/apps/server-e2e/package.json b/apps/server-e2e/package.json index a9970fd0a0..0844eb3477 100644 --- a/apps/server-e2e/package.json +++ b/apps/server-e2e/package.json @@ -2,19 +2,8 @@ "name": "@triliumnext/server-e2e", "version": "0.0.1", "private": true, - "nx": { - "name": "server-e2e", - "implicitDependencies": [ - "client", - "server" - ], - "targets": { - "e2e": { - "dependsOn": [ - "server:build" - ] - } - } + "scripts": { + "e2e": "playwright test" }, "devDependencies": { "dotenv": "17.2.1" diff --git a/apps/server/package.json b/apps/server/package.json index 6ade52f89b..6ad5f1a604 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -3,6 +3,15 @@ "version": "0.98.1", "description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.", "private": true, + "main": "./src/main.ts", + "scripts": { + "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "build": "tsx scripts/build.ts", + "package": "pnpm build && bash scripts/build-server.sh", + "test": "vitest", + "test-build": "vitest --config vitest.build.config.mts", + "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" + }, "dependencies": { "better-sqlite3": "12.2.0" }, @@ -300,22 +309,7 @@ } ] } - }, - "test-build": { - "dependsOn": [ - "build" - ], - "command": "vitest --config {projectRoot}/vitest.build.config.mts" - }, - "circular-deps": { - "command": "pnpx dpdm -T {projectRoot}/src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" } } - }, - "scripts": { - "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", - "build": "tsx scripts/build.ts", - "package": "pnpm build && bash scripts/build-server.sh" - }, - "main": "./src/main.ts" + } } \ No newline at end of file From d60899e3622fcc38a3524ba31e51e4c9652077be Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 17:43:32 +0300 Subject: [PATCH 077/121] chore(dx): remove unnecessary nx configs --- apps/desktop-e2e/package.json | 21 +---- apps/website/package.json | 9 -- nx.json | 94 ------------------- packages/ckeditor5-admonition/package.json | 8 -- packages/ckeditor5-footnotes/package.json | 8 -- .../ckeditor5-keyboard-marker/package.json | 8 -- packages/ckeditor5-math/package.json | 8 -- packages/ckeditor5-mermaid/package.json | 8 -- packages/ckeditor5/package.json | 10 -- packages/codemirror/package.json | 3 - packages/commons/package.json | 32 ------- packages/express-partial-content/package.json | 31 ------ packages/highlightjs/package.json | 3 - packages/share-theme/package.json | 3 - packages/turndown-plugin-gfm/package.json | 24 ----- 15 files changed, 1 insertion(+), 269 deletions(-) delete mode 100644 nx.json diff --git a/apps/desktop-e2e/package.json b/apps/desktop-e2e/package.json index 2e70fc803b..7a1b278c71 100644 --- a/apps/desktop-e2e/package.json +++ b/apps/desktop-e2e/package.json @@ -1,24 +1,5 @@ { "name": "@triliumnext/desktop-e2e", "version": "0.0.1", - "private": true, - "nx": { - "name": "desktop-e2e", - "implicitDependencies": [ - "client", - "desktop" - ], - "targets": { - "e2e": { - "dependsOn": [ - "desktop:build", - "desktop:rebuild-deps" - ] - } - } - }, - "devDependencies": { - "dotenv": "17.2.1", - "electron": "37.4.0" - } + "private": true } diff --git a/apps/website/package.json b/apps/website/package.json index 4e6a141c81..aa8f73e17c 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -33,14 +33,5 @@ }, "dependencies": { "@inlang/paraglide-js": "^2.0.0" - }, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "build" - ] - } - } } } diff --git a/nx.json b/nx.json deleted file mode 100644 index 927089448e..0000000000 --- a/nx.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "defaultBase": "main", - "namedInputs": { - "default": [ - "{projectRoot}/**/*", - "sharedGlobals" - ], - "production": [ - "default", - "!{projectRoot}/.eslintrc.json", - "!{projectRoot}/eslint.config.mjs", - "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", - "!{projectRoot}/tsconfig.spec.json", - "!{projectRoot}/src/test-setup.[jt]s" - ], - "sharedGlobals": [ - "{workspaceRoot}/.github/workflows/release.yml", - "{workspaceRoot}/.github/workflows/playwright.yml" - ] - }, - "plugins": [ - { - "plugin": "@nx/js/typescript", - "options": { - "typecheck": { - "targetName": "typecheck" - }, - "build": { - "targetName": "build", - "configName": "tsconfig.lib.json", - "buildDepsName": "build-deps", - "watchDepsName": "watch-deps" - } - } - }, - { - "plugin": "@nx/eslint/plugin", - "options": { - "targetName": "lint" - } - }, - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "build", - "testTargetName": "test", - "serveTargetName": "serve", - "devTargetName": "dev", - "previewTargetName": "preview", - "serveStaticTargetName": "serve-static", - "typecheckTargetName": "typecheck", - "buildDepsTargetName": "build-deps", - "watchDepsTargetName": "watch-deps" - } - }, - { - "plugin": "@nx/playwright/plugin", - "options": { - "targetName": "e2e" - } - } - ], - "targetDefaults": { - "test": { - "dependsOn": [ - "^build" - ] - }, - "@nx/esbuild:esbuild": { - "cache": true, - "dependsOn": [ - "^build" - ], - "inputs": [ - "production", - "^production" - ] - }, - "e2e-ci--**/*": { - "dependsOn": [ - "^build" - ] - } - }, - "generators": { - "@nx/web:application": { - "style": "css", - "linter": "eslint", - "unitTestRunner": "vitest", - "e2eTestRunner": "playwright" - } - } -} diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 377abce2cb..33a775b76d 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -67,13 +67,5 @@ "**/*.css": [ "stylelint --quiet --allow-empty-input" ] - }, - "nx": { - "name": "ckeditor5-admonition", - "targets": { - "build": { - "cache": "true" - } - } } } diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index b2eb2e16bf..c49c08aee7 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -66,13 +66,5 @@ "**/*.css": [ "stylelint --quiet --allow-empty-input" ] - }, - "nx": { - "name": "ckeditor5-footnotes", - "targets": { - "build": { - "cache": "true" - } - } } } diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index e4f34f135b..4c00d51738 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -68,13 +68,5 @@ "**/*.css": [ "stylelint --quiet --allow-empty-input" ] - }, - "nx": { - "name": "ckeditor5-keyboard-marker", - "targets": { - "build": { - "cache": "true" - } - } } } diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index a6f30aba3e..486b265598 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -70,14 +70,6 @@ "stylelint --quiet --allow-empty-input" ] }, - "nx": { - "name": "ckeditor5-math", - "targets": { - "build": { - "cache": "true" - } - } - }, "dependencies": { "@ckeditor/ckeditor5-icons": "46.0.2" } diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index 41d4c15941..006f3e13bb 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -72,13 +72,5 @@ "dependencies": { "@types/lodash-es": "4.17.12", "lodash-es": "^4.17.21" - }, - "nx": { - "name": "ckeditor5-mermaid", - "targets": { - "build": { - "cache": "true" - } - } } } diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json index 81d63ffd15..2159a35173 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -5,16 +5,6 @@ "private": true, "type": "module", "main": "./src/index.ts", - "nx": { - "name": "ckeditor5", - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - } - } - }, "dependencies": { "@triliumnext/ckeditor5-admonition": "workspace:*", "@triliumnext/ckeditor5-footnotes": "workspace:*", diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index f6d93d94a2..2e1cba9a0c 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -4,9 +4,6 @@ "private": true, "type": "module", "main": "./src/index.ts", - "nx": { - "name": "codemirror" - }, "dependencies": { "@codemirror/commands": "6.8.1", "@codemirror/lang-css": "6.3.1", diff --git a/packages/commons/package.json b/packages/commons/package.json index 8b9be2e0ab..ebc1884d02 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -10,37 +10,5 @@ "name": "Trilium Notes Team", "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" - }, - "nx": { - "name": "commons", - "sourceRoot": "packages/commons/src", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "main": "packages/commons/src/index.ts", - "outputPath": "packages/commons/dist", - "outputFileName": "main.js", - "tsConfig": "packages/commons/tsconfig.lib.json", - "platform": "node", - "format": [ - "esm" - ], - "declarationRootDir": "packages/commons/src" - }, - "configurations": { - "development": { - "minify": false - }, - "production": { - "minify": true - } - } - } - } } } \ No newline at end of file diff --git a/packages/express-partial-content/package.json b/packages/express-partial-content/package.json index 437e4d40ff..11a2848f52 100644 --- a/packages/express-partial-content/package.json +++ b/packages/express-partial-content/package.json @@ -12,37 +12,6 @@ "stream", "typescript" ], - "nx": { - "name": "express-partial-content", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "main": "packages/express-partial-content/src/index.ts", - "outputPath": "packages/express-partial-content/dist", - "outputFileName": "main.js", - "tsConfig": "packages/express-partial-content/tsconfig.lib.json", - "platform": "node", - "format": [ - "esm" - ], - "declarationRootDir": "packages/express-partial-content/src" - }, - "configurations": { - "development": { - "minify": false - }, - "production": { - "minify": true - } - } - } - } - }, "dependencies": { "tslib": "^2.3.0" } diff --git a/packages/highlightjs/package.json b/packages/highlightjs/package.json index e2214e515f..249e2373ff 100644 --- a/packages/highlightjs/package.json +++ b/packages/highlightjs/package.json @@ -4,9 +4,6 @@ "private": true, "type": "module", "main": "./src/index.ts", - "nx": { - "name": "highlightjs" - }, "dependencies": { "@exercism/highlightjs-gdscript": "0.0.1", "@triliumnext/commons": "workspace:*", diff --git a/packages/share-theme/package.json b/packages/share-theme/package.json index 7c27405892..0868d34a3a 100644 --- a/packages/share-theme/package.json +++ b/packages/share-theme/package.json @@ -31,8 +31,5 @@ "eslint": "^9.0.0", "highlight.js": "^11.8.0", "typescript": "^5.2.2" - }, - "nx": { - "name": "share-theme" } } diff --git a/packages/turndown-plugin-gfm/package.json b/packages/turndown-plugin-gfm/package.json index 1c9d2ab054..7d69ecd397 100644 --- a/packages/turndown-plugin-gfm/package.json +++ b/packages/turndown-plugin-gfm/package.json @@ -21,30 +21,6 @@ "github-flavored-markdown", "gfm" ], - "nx": { - "name": "turndown-plugin-gfm", - "sourceRoot": "packages/turndown-plugin-gfm/src", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "outputPath": "packages/turndown-plugin-gfm/dist", - "main": "packages/turndown-plugin-gfm/src/index.js", - "tsConfig": "packages/turndown-plugin-gfm/tsconfig.lib.json", - "format": [ - "esm" - ], - "declarationRootDir": "packages/turndown-plugin-gfm/src" - } - }, - "test": { - "command": "node packages/turndown-plugin-gfm/test/turndown-plugin-gfm-test.js" - } - } - }, "devDependencies": { "turndown": "7.2.1", "turndown-attendant": "0.0.3" From 3de9d077697815f1f3479fb12b466181f504480f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 17:54:05 +0300 Subject: [PATCH 078/121] chore: update lock --- pnpm-lock.yaml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46c12a2888..27efa733a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -387,14 +387,7 @@ importers: specifier: ^7.1.1 version: 7.1.3 - apps/desktop-e2e: - devDependencies: - dotenv: - specifier: 17.2.1 - version: 17.2.1 - electron: - specifier: 37.4.0 - version: 37.4.0 + apps/desktop-e2e: {} apps/dump-db: dependencies: @@ -14770,6 +14763,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -15458,6 +15453,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-restricted-editing@46.0.2': dependencies: @@ -15543,8 +15540,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-special-characters@46.0.2': dependencies: From 7c50251c37ff98a24f5d411b0827441e4fe3635a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 18:32:03 +0300 Subject: [PATCH 079/121] chore(dx): clean up global package.json --- package.json | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index c7c746135b..b742d0214a 100644 --- a/package.json +++ b/package.json @@ -6,24 +6,21 @@ "doc": "docs" }, "scripts": { - "client:test": "nx test client", - "client:build": "nx build client", - "client:coverage": "nx test client --coverage", - "server:test": "nx test server", - "server:build": "nx build server", - "server:coverage": "nx test server --coverage", + "client:test": "pnpm run --filter client test", + "client:build": "pnpm run --filter client build", + "client:coverage": "pnpm run --filter client test --coverage", + "server:test": "pnpm run --filter server test", + "server:build": "pnpm run --filter server build", + "server:coverage": "pnpm run --filter server test --coverage", "server:start": "pnpm run --filter server dev", - "server:start-prod": "nx run server:start-prod", + "server:start-prod": "pnpm run --filter server start-prod", "desktop:start": "pnpm run --filter desktop dev", - "electron:build": "nx build desktop", + "electron:build": "pnpm run --filter desktop build", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", - "test:all": "pnpm test:parallel && pnpm test:sequential", - "test:parallel": "pnpm nx run-many -t test --all --exclude=server,ckeditor5-mermaid,ckeditor5-math --parallel", - "test:sequential": "pnpm nx run-many -t test --projects=server,ckeditor5-mermaid,ckeditor5-math --parallel=1", - "coverage": "pnpm nx run-many -t coverage" + "test:all": "pnpm -r test" }, "private": true, "devDependencies": { From 26afdd105fe3e6755e42be006d20806c67f22afc Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 18:33:22 +0300 Subject: [PATCH 080/121] chore(dx/server): get tests to run --- apps/server/spec/etapi/import-zip.spec.ts | 2 +- apps/server/vite.config.mts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/server/spec/etapi/import-zip.spec.ts b/apps/server/spec/etapi/import-zip.spec.ts index c42623b765..3215c90ee6 100644 --- a/apps/server/spec/etapi/import-zip.spec.ts +++ b/apps/server/spec/etapi/import-zip.spec.ts @@ -30,5 +30,5 @@ describe("etapi/import", () => { .expect(201); expect(response.body.note.title).toStrictEqual("Journal"); expect(response.body.branch.parentNoteId).toStrictEqual("root"); - }); + }, 10_000); }); diff --git a/apps/server/vite.config.mts b/apps/server/vite.config.mts index 76829347aa..e9d88fcfa7 100644 --- a/apps/server/vite.config.mts +++ b/apps/server/vite.config.mts @@ -10,6 +10,11 @@ export default defineConfig(() => ({ globals: true, setupFiles: ["./spec/setup.ts"], environment: "node", + env: { + NODE_ENV: "development", + TRILIUM_DATA_DIR: "./spec/db", + TRILIUM_INTEGRATION_TEST: "memory" + }, include: ['{src,spec}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], exclude: [ "spec/build-checks/**", From 3fda97a9bda3dace4c1074b24889c3932a72b15a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 18:38:50 +0300 Subject: [PATCH 081/121] chore(dx/client): allocate more memory for the build --- apps/client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/package.json b/apps/client/package.json index 9a979ccdbb..ef91684f25 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/TriliumNext/Notes" }, "scripts": { - "build": "vite build", + "build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vite build", "test": "vitest", "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" }, From 04753226e5f01b34d008ad2c4511059d07de0857 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 18:42:30 +0300 Subject: [PATCH 082/121] chore(dx/ci): fix package command --- .github/actions/build-server/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-server/action.yml b/.github/actions/build-server/action.yml index c5935172d8..7e15f1e20d 100644 --- a/.github/actions/build-server/action.yml +++ b/.github/actions/build-server/action.yml @@ -23,7 +23,7 @@ runs: shell: bash run: | pnpm run chore:update-build-info - pnpm server:package + pnpm run --filter server package - name: Prepare artifacts shell: bash run: | From 15fba23ad73e3768083307d77f6c4569c5d31dcf Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:00:49 +0300 Subject: [PATCH 083/121] chore(dx/ci): denx-ify playwright --- apps/server-e2e/.env | 2 +- apps/server-e2e/playwright.config.ts | 48 +++++++--------------------- apps/server/package.json | 7 +--- 3 files changed, 13 insertions(+), 44 deletions(-) diff --git a/apps/server-e2e/.env b/apps/server-e2e/.env index f13f7d757a..9087bb8d5e 100644 --- a/apps/server-e2e/.env +++ b/apps/server-e2e/.env @@ -1,3 +1,3 @@ TRILIUM_INTEGRATION_TEST=memory TRILIUM_PORT=8082 -TRILIUM_DATA_DIR=apps/server/spec/db \ No newline at end of file +TRILIUM_DATA_DIR=spec/db \ No newline at end of file diff --git a/apps/server-e2e/playwright.config.ts b/apps/server-e2e/playwright.config.ts index 75de901470..997e4f036c 100644 --- a/apps/server-e2e/playwright.config.ts +++ b/apps/server-e2e/playwright.config.ts @@ -1,6 +1,5 @@ import { defineConfig, devices } from '@playwright/test'; -import { nxE2EPreset } from '@nx/playwright/preset'; -import { workspaceRoot } from '@nx/devkit'; +import { join } from 'path'; require('dotenv').config({ path: __dirname + "/" + ".env" @@ -14,55 +13,30 @@ const baseURL = process.env['BASE_URL'] || `http://127.0.0.1:${port}`; * See https://playwright.dev/docs/test-configuration. */ export default defineConfig({ - ...nxE2EPreset(__filename, { testDir: './src' }), + testDir: "src", + reporter: [["list"], ["html", { outputFolder: "test-output" }]], + outputDir: "test-output", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { baseURL, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', }, + /* Run your local dev server before starting the tests */ webServer: !process.env.TRILIUM_DOCKER ? { - command: 'pnpm server:start-prod', + command: 'pnpm start-prod', url: baseURL, reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, + cwd: join(__dirname, "../server"), timeout: 5 * 60 * 1000 } : undefined, + projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] }, - }, - - // { - // name: "firefox", - // use: { ...devices["Desktop Firefox"] }, - // }, - - // { - // name: "webkit", - // use: { ...devices["Desktop Safari"] }, - // }, - - // Uncomment for mobile browsers support - /* { - name: 'Mobile Chrome', - use: { ...devices['Pixel 5'] }, - }, - { - name: 'Mobile Safari', - use: { ...devices['iPhone 12'] }, - }, */ - - // Uncomment for branded browsers - /* { - name: 'Microsoft Edge', - use: { ...devices['Desktop Edge'], channel: 'msedge' }, - }, - { - name: 'Google Chrome', - use: { ...devices['Desktop Chrome'], channel: 'chrome' }, - } */ - ], + } + ] }); diff --git a/apps/server/package.json b/apps/server/package.json index 6ad5f1a604..9bbe77ccd2 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -10,6 +10,7 @@ "package": "pnpm build && bash scripts/build-server.sh", "test": "vitest", "test-build": "vitest --config vitest.build.config.mts", + "start-prod": "pnpm build && node dist/main.cjs", "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" }, "dependencies": { @@ -178,12 +179,6 @@ "runBuildTargetDependencies": false } }, - "start-prod": { - "dependsOn": [ - "build" - ], - "command": "node apps/server/dist/main.cjs" - }, "docker-build": { "dependsOn": [ "build" From 4306072ca78d82ff0f23e35d2104b6eb06687b46 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:09:45 +0300 Subject: [PATCH 084/121] chore(dx/ci): sequential/parallel tests --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b742d0214a..f6751f4eaa 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", - "test:all": "pnpm -r test" + "test:all": "pnpm test:parallel && pnpm test:sequential", + "test:parallel": "pnpm --filter=!server,ckeditor5-mermaid,ckeditor5-math --parallel test", + "test:sequential": "pnpm --filter=server,ckeditor5-mermaid,ckeditor5-math --sequential test" }, "private": true, "devDependencies": { From 3925ba3eef4766ec95a7dbcef00d3703a80516cd Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:16:49 +0300 Subject: [PATCH 085/121] chore(dx/ci): fix sequential/parallel tests --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f6751f4eaa..91b5c14c85 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,8 @@ "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", "test:all": "pnpm test:parallel && pnpm test:sequential", - "test:parallel": "pnpm --filter=!server,ckeditor5-mermaid,ckeditor5-math --parallel test", - "test:sequential": "pnpm --filter=server,ckeditor5-mermaid,ckeditor5-math --sequential test" + "test:parallel": "pnpm --filter=!server --filter=!ckeditor5-mermaid --filter=!ckeditor5-math --parallel test", + "test:sequential": "pnpm --filter=server --filter=ckeditor5-mermaid --filter=ckeditor5-math --sequential test" }, "private": true, "devDependencies": { From fd1c122cd48ad926487fbaf6583f16c4d974e5ab Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:29:38 +0300 Subject: [PATCH 086/121] chore(dx/apps): build db-compare & dump-db --- apps/db-compare/package.json | 61 ++-------------------------------- apps/dump-db/package.json | 63 ++---------------------------------- 2 files changed, 6 insertions(+), 118 deletions(-) diff --git a/apps/db-compare/package.json b/apps/db-compare/package.json index 370ae38a67..3bea743360 100644 --- a/apps/db-compare/package.json +++ b/apps/db-compare/package.json @@ -9,63 +9,8 @@ "sqlite": "5.1.1", "sqlite3": "5.1.7" }, - "nx": { - "name": "db-compare", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "apps/db-compare/dist", - "format": [ - "cjs" - ], - "bundle": false, - "main": "apps/db-compare/src/compare.ts", - "tsConfig": "apps/db-compare/tsconfig.app.json", - "assets": [], - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".js" - } - } - }, - "configurations": { - "development": {}, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".js" - } - } - } - } - }, - "serve": { - "executor": "@nx/js:node", - "defaultConfiguration": "development", - "dependsOn": [ - "build" - ], - "options": { - "buildTarget": "db-compare:build", - "runBuildTargetDependencies": false - }, - "configurations": { - "development": { - "buildTarget": "db-compare:build:development" - }, - "production": { - "buildTarget": "db-compare:build:production" - } - } - } - } + "scripts": { + "dev": "tsx src/compare.ts", + "build": "esbuild --platform=node --format=cjs --outdir=dist src/compare.ts" } } diff --git a/apps/dump-db/package.json b/apps/dump-db/package.json index b134ded670..623dad60ca 100644 --- a/apps/dump-db/package.json +++ b/apps/dump-db/package.json @@ -15,65 +15,8 @@ "@types/mime-types": "^3.0.0", "@types/yargs": "^17.0.33" }, - "nx": { - "name": "dump-db", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "apps/dump-db/dist", - "format": [ - "cjs" - ], - "bundle": false, - "main": "apps/dump-db/src/main.ts", - "tsConfig": "apps/dump-db/tsconfig.app.json", - "assets": [ - "apps/dump-db/src/assets" - ], - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".js" - } - } - }, - "configurations": { - "development": {}, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".js" - } - } - } - } - }, - "serve": { - "executor": "@nx/js:node", - "defaultConfiguration": "development", - "dependsOn": [ - "build" - ], - "options": { - "buildTarget": "dump-db:build", - "runBuildTargetDependencies": false - }, - "configurations": { - "development": { - "buildTarget": "dump-db:build:development" - }, - "production": { - "buildTarget": "dump-db:build:production" - } - } - } - } + "scripts": { + "dev": "tsx src/main.ts", + "build": "esbuild --platform=node --format=cjs --outdir=dist src/main.ts" } } From 8d7af7b01d7d054548de5ebac4e5b7b48ff45df0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:44:28 +0300 Subject: [PATCH 087/121] chore(dx/server): de-nxify --- apps/server/.edit-integration-db.env | 6 - apps/server/.serve-nodir.env | 3 - apps/server/.serve.env | 4 - apps/server/.start-prod.env | 3 - apps/server/.test.env | 4 - apps/server/package.json | 199 ++------------------------- 6 files changed, 12 insertions(+), 207 deletions(-) delete mode 100644 apps/server/.edit-integration-db.env delete mode 100644 apps/server/.serve-nodir.env delete mode 100644 apps/server/.serve.env delete mode 100644 apps/server/.start-prod.env delete mode 100644 apps/server/.test.env diff --git a/apps/server/.edit-integration-db.env b/apps/server/.edit-integration-db.env deleted file mode 100644 index 94194e2b1d..0000000000 --- a/apps/server/.edit-integration-db.env +++ /dev/null @@ -1,6 +0,0 @@ -TRILIUM_ENV=dev -TRILIUM_DATA_DIR=./apps/server/spec/db -TRILIUM_RESOURCE_DIR=./apps/server/dist -TRILIUM_PUBLIC_SERVER=http://localhost:4200 -TRILIUM_PORT=8086 -TRILIUM_INTEGRATION_TEST=edit \ No newline at end of file diff --git a/apps/server/.serve-nodir.env b/apps/server/.serve-nodir.env deleted file mode 100644 index 3612d5d9bb..0000000000 --- a/apps/server/.serve-nodir.env +++ /dev/null @@ -1,3 +0,0 @@ -TRILIUM_ENV=dev -TRILIUM_RESOURCE_DIR=./apps/server/dist -TRILIUM_PUBLIC_SERVER=http://localhost:4200 \ No newline at end of file diff --git a/apps/server/.serve.env b/apps/server/.serve.env deleted file mode 100644 index 43591d92c2..0000000000 --- a/apps/server/.serve.env +++ /dev/null @@ -1,4 +0,0 @@ -TRILIUM_ENV=dev -TRILIUM_DATA_DIR=./apps/server/data -TRILIUM_RESOURCE_DIR=./apps/server/dist -TRILIUM_PUBLIC_SERVER=http://localhost:4200 \ No newline at end of file diff --git a/apps/server/.start-prod.env b/apps/server/.start-prod.env deleted file mode 100644 index 9bd1c0d93a..0000000000 --- a/apps/server/.start-prod.env +++ /dev/null @@ -1,3 +0,0 @@ -TRILIUM_ENV=production -TRILIUM_DATA_DIR=./apps/server/data -TRILIUM_PORT=8082 \ No newline at end of file diff --git a/apps/server/.test.env b/apps/server/.test.env deleted file mode 100644 index e33a782752..0000000000 --- a/apps/server/.test.env +++ /dev/null @@ -1,4 +0,0 @@ -TRILIUM_ENV=dev -TRILIUM_DATA_DIR=./spec/db -TRILIUM_PUBLIC_SERVER=http://localhost:4200 -TRILIUM_INTEGRATION_TEST=memory \ No newline at end of file diff --git a/apps/server/package.json b/apps/server/package.json index 9bbe77ccd2..cc0910bf01 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -6,12 +6,22 @@ "main": "./src/main.ts", "scripts": { "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "dev-no-dir": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "edit-integration-db": "cross-env NODE_ENV=development TRILIUM_PORT=8086 TRILIUM_ENV=dev TRILIUM_DATA_DIR=spec/db TRILIUM_INTEGRATION_TEST=edit TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", "build": "tsx scripts/build.ts", "package": "pnpm build && bash scripts/build-server.sh", "test": "vitest", "test-build": "vitest --config vitest.build.config.mts", - "start-prod": "pnpm build && node dist/main.cjs", - "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular" + "start-prod": "pnpm build && cross-env TRILIUM_ENV=production TRILIUM_DATA_DIR=./apps/server/data TRILIUM_PORT=8082 node dist/main.cjs", + "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular", + "docker-build-debian": "pnpm build && docker build . -t triliumnext-debian -f Dockerfile", + "docker-build-alpine": "pnpm build && docker build . -t triliumnext-alpine -f Dockerfile.alpine", + "docker-build-rootless-debian": "pnpm build && docker build . -t triliumnext-rootless-debian -f Dockerfile.rootless", + "docker-build-rootless-alpine": "pnpm build && docker build . -t triliumnext-rootless-alpine -f Dockerfile.alpine.rootless", + "docker-start-debian": "pnpm docker-build-debian && docker run -p 8081:8080 triliumnext-debian", + "docker-start-alpine": "pnpm docker-build-alpine && docker run -p 8081:8080 triliumnext-alpine", + "docker-start-rootless-debian": "pnpm docker-build-rootless-debian && docker run -p 8081:8080 triliumnext-rootless-debian", + "docker-start-rootless-alpine": "pnpm docker-build-rootless-alpine && docker run -p 8081:8080 triliumnext-rootless-alpine" }, "dependencies": { "better-sqlite3": "12.2.0" @@ -121,190 +131,5 @@ "ws": "8.18.3", "xml2js": "0.6.2", "yauzl": "3.2.0" - }, - "nx": { - "name": "server", - "implicitDependencies": [ - "share-theme" - ], - "targets": { - "serve": { - "executor": "@nx/js:node", - "dependsOn": [ - { - "projects": [ - "client" - ], - "target": "serve" - }, - "build-without-client" - ], - "continuous": true, - "options": { - "buildTarget": "server:build-without-client:development", - "runBuildTargetDependencies": false - } - }, - "serve-nodir": { - "executor": "@nx/js:node", - "dependsOn": [ - { - "projects": [ - "client" - ], - "target": "serve" - }, - "build-without-client" - ], - "continuous": true, - "options": { - "buildTarget": "server:build-without-client:development", - "runBuildTargetDependencies": false - } - }, - "edit-integration-db": { - "executor": "@nx/js:node", - "dependsOn": [ - { - "projects": [ - "client" - ], - "target": "serve" - }, - "build-without-client" - ], - "continuous": true, - "options": { - "buildTarget": "server:build-without-client:development", - "runBuildTargetDependencies": false - } - }, - "docker-build": { - "dependsOn": [ - "build" - ], - "options": { - "cwd": "{projectRoot}" - }, - "executor": "nx:run-commands", - "defaultConfiguration": "alpine", - "configurations": { - "debian": { - "command": "docker build . -t triliumnext-debian -f Dockerfile" - }, - "alpine": { - "command": "docker build . -t triliumnext-alpine -f Dockerfile.alpine" - }, - "rootless-debian": { - "command": "docker build . -t triliumnext-rootless-debian -f Dockerfile.rootless" - }, - "rootless-alpine": { - "command": "docker build . -t triliumnext-rootless-alpine -f Dockerfile.alpine.rootless" - } - } - }, - "docker-start": { - "dependsOn": [ - "docker-build" - ], - "executor": "nx:run-commands", - "defaultConfiguration": "alpine", - "configurations": { - "debian": { - "command": "docker run -p 8081:8080 triliumnext-debian" - }, - "alpine": { - "command": "docker run -p 8081:8080 triliumnext-alpine" - }, - "rootless-debian": { - "command": "docker run -p 8081:8080 triliumnext-rootless-debian" - }, - "rootless-alpine": { - "command": "docker run -p 8081:8080 triliumnext-rootless-alpine" - } - } - }, - "build-without-client": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "main": "apps/server/src/main.ts", - "outputPath": "apps/server/dist", - "outputFileName": "main.js", - "tsConfig": "apps/server/tsconfig.app.json", - "platform": "node", - "format": [ - "cjs" - ], - "esbuildOptions": { - "loader": { - ".css": "text", - ".ejs": "text" - } - }, - "declarationRootDir": "apps/server/src", - "minify": false, - "sourcemap": true, - "assets": [ - { - "glob": "**/*", - "input": "apps/server/src/assets", - "output": "assets" - }, - { - "glob": "**/*", - "input": "packages/share-theme/src/templates", - "output": "share-theme/templates" - } - ] - } - }, - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "dependsOn": [ - "^build", - "client:build" - ], - "defaultConfiguration": "production", - "configurations": { - "production": { - "minify": true, - "sourcemap": false - }, - "development": { - "minify": false, - "sourcemap": true - } - }, - "options": { - "declarationRootDir": "apps/server/src", - "thirdParty": true, - "declaration": false, - "additionalEntryPoints": [ - "apps/server/src/docker_healthcheck.ts" - ], - "assets": [ - { - "glob": "**/*", - "input": "packages/share-theme/src/templates", - "output": "share-theme/templates" - }, - { - "glob": "**/*", - "input": "apps/client/dist", - "output": "public", - "ignore": [ - "webpack-stats.json" - ] - } - ] - } - } - } } } \ No newline at end of file From bb20de6c24065d30f3cea0df43d72ec873969886 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:44:38 +0300 Subject: [PATCH 088/121] chore(dx/env): remove unnecessary nx config --- .vscode/extensions.json | 1 - .vscode/mcp.json | 8 -------- .vscode/settings.json | 3 +-- 3 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 .vscode/mcp.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e64c42352f..4db7b7470f 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,7 +5,6 @@ "lokalise.i18n-ally", "ms-azuretools.vscode-docker", "ms-playwright.playwright", - "nrwl.angular-console", "redhat.vscode-yaml", "tobermory.es6-string-html", "vitest.explorer", diff --git a/.vscode/mcp.json b/.vscode/mcp.json deleted file mode 100644 index 28994bb29e..0000000000 --- a/.vscode/mcp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "servers": { - "nx-mcp": { - "type": "http", - "url": "http://localhost:9461/mcp" - } - } -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 4ee21bb3ce..9ee96f4c1b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -35,6 +35,5 @@ "docs/**/*.png": true, "apps/server/src/assets/doc_notes/**": true, "apps/edit-docs/demo/**": true - }, - "nxConsole.generateAiAgentRules": true + } } \ No newline at end of file From c1c237402a9e46f289a3f024d90cbd032f827f42 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:49:36 +0300 Subject: [PATCH 089/121] chore(dx/desktop): clean up package.json --- apps/desktop/package.json | 96 +--------------------------------- apps/desktop/scripts/start.mts | 1 - apps/server/package.json | 2 +- scripts/electron-rebuild.mts | 89 ------------------------------- 4 files changed, 3 insertions(+), 185 deletions(-) delete mode 100644 scripts/electron-rebuild.mts diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 036745fe21..16d193593f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -30,7 +30,8 @@ "prebuild-install": "^7.1.1" }, "scripts": { - "dev": "tsx scripts/start.mts", + "dev": "cross-env TRILIUM_DATA_DIR=data tsx scripts/start.mts", + "start-no-dir": "cross-env tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", "electron-forge:make": "pnpm build && electron-forge make dist", @@ -43,98 +44,5 @@ "name": "Trilium Notes Team", "email": "contact@eliandoran.me", "url": "https://github.com/TriliumNext/Notes" - }, - "nx": { - "name": "desktop", - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "configurations": { - "production": { - "minify": true, - "sourcemap": false - }, - "development": { - "minify": false, - "sourcemap": true - } - }, - "options": { - "main": "apps/desktop/src/electron-main.ts", - "outputPath": "apps/desktop/dist", - "tsConfig": "apps/desktop/tsconfig.app.json", - "external": [ - "electron", - "@electron/remote", - "better-sqlite3", - "./xhr-sync-worker.js" - ], - "thirdParty": true, - "esbuildOptions": { - "splitting": false, - "loader": { - ".css": "text" - } - }, - "declarationRootDir": "apps/desktop/src" - } - }, - "rebuild-deps": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "defaultConfiguration": "default", - "cache": false, - "configurations": { - "default": { - "command": "cross-env DEBUG=* tsx scripts/electron-rebuild.mts {projectRoot}/dist" - }, - "nixos": { - "command": "cross-env DEBUG=* tsx scripts/electron-rebuild.mts {projectRoot}/dist $(nix-shell -p electron_35 --run \"electron --version\")" - } - } - }, - "serve": { - "executor": "nx:run-commands", - "dependsOn": [ - "rebuild-deps" - ], - "defaultConfiguration": "default", - "configurations": { - "default": { - "command": "electron main.cjs", - "cwd": "{projectRoot}/dist" - }, - "nixos": { - "command": "nix-shell -p electron_35 --run \"electron {projectRoot}/dist/main.cjs\"", - "cwd": ".", - "forwardAllArgs": false - } - } - }, - "serve-nodir": { - "executor": "nx:run-commands", - "dependsOn": [ - "rebuild-deps" - ], - "defaultConfiguration": "default", - "configurations": { - "default": { - "command": "electron main.cjs", - "cwd": "{projectRoot}/dist" - }, - "nixos": { - "command": "nix-shell -p electron_35 --run \"electron {projectRoot}/dist/main.cjs\"", - "cwd": ".", - "forwardAllArgs": false - } - } - } - } } } \ No newline at end of file diff --git a/apps/desktop/scripts/start.mts b/apps/desktop/scripts/start.mts index 17245205c0..a2151ba2dd 100644 --- a/apps/desktop/scripts/start.mts +++ b/apps/desktop/scripts/start.mts @@ -20,7 +20,6 @@ execSync(`${electronPath} ./src/main.ts`, { NODE_OPTIONS: "--import tsx", NODE_ENV: "development", TRILIUM_ENV: "dev", - TRILIUM_DATA_DIR: "data", TRILIUM_RESOURCE_DIR: "../server/src", BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node"), LD_LIBRARY_PATH diff --git a/apps/server/package.json b/apps/server/package.json index cc0910bf01..5985632bd3 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -6,7 +6,7 @@ "main": "./src/main.ts", "scripts": { "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", - "dev-no-dir": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", + "start-no-dir": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", "edit-integration-db": "cross-env NODE_ENV=development TRILIUM_PORT=8086 TRILIUM_ENV=dev TRILIUM_DATA_DIR=spec/db TRILIUM_INTEGRATION_TEST=edit TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts", "build": "tsx scripts/build.ts", "package": "pnpm build && bash scripts/build-server.sh", diff --git a/scripts/electron-rebuild.mts b/scripts/electron-rebuild.mts deleted file mode 100644 index 46ef219868..0000000000 --- a/scripts/electron-rebuild.mts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * @module - * - * This script is used internally by the `rebuild-deps` target of the `desktop`. Normally we could use - * `electron-rebuild` CLI directly, but it would rebuild the monorepo-level dependencies and breaks - * the server build (and it doesn't expose a CLI option to override this). - * - * A side purpose is to generate a fake `package.json` file in the `dist` directory - * that contains only the native dependencies. This is used by `electron-forge`. - */ - -import { join, resolve } from "path"; -import { rebuild } from "@electron/rebuild" -import { readFileSync, rmSync, writeFileSync } from "fs"; - -const nativeDependencies = [ - "better-sqlite3" -]; - -function parsePackageJson(distDir: string) { - const packageJsonPath = join(distDir, "../package.json"); - const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); - let electronVersion: string; - - if (process.argv[3]) { - electronVersion = process.argv[3]; - } else { - electronVersion = packageJson?.devDependencies?.electron ?? packageJson?.dependencies?.electron; - if (!electronVersion) { - console.error(`Unable to retrieve Electron version in '${resolve(packageJsonPath)}'.`); - process.exit(3); - } - } - - return { - electronVersion, - packageJson - }; -} - -function createFakePackageJson(distPath: string, packageJson: any) { - const finalDependencies = {}; - for (const dep of nativeDependencies) { - finalDependencies[dep] = packageJson.dependencies[dep]; - } - - const fakePackageJson: any = { - name: "trilium", - version: packageJson.version, - main: packageJson.main, - author: packageJson.author, - license: packageJson.license, - description: packageJson.description, - dependencies: finalDependencies, - devDependencies: { - "electron": packageJson.devDependencies?.electron || packageJson.dependencies?.electron, - } - }; - if (packageJson?.config?.forge) { - fakePackageJson.config = { - forge: join("..", packageJson.config.forge) - }; - } - writeFileSync(distPath, JSON.stringify(fakePackageJson, null, 2), "utf-8"); -} - -function main() { - const distDir = resolve(process.argv[2]); - if (!distDir) { - console.error("Missing root dir as argument."); - process.exit(1); - } - - const { electronVersion, packageJson } = parsePackageJson(distDir); - const packageJsonPath = join(distDir, "package.json"); - createFakePackageJson(packageJsonPath, packageJson); - - console.log(`Rebuilding ${distDir} with version ${electronVersion}...`); - - rebuild({ - // We force the project root path to avoid electron-rebuild from rebuilding the monorepo-level dependency and breaking the server. - projectRootPath: distDir, - buildPath: distDir, - force: true, - electronVersion, - }); -} - -main(); From d058dbe9af2911ac7bff85e76f3ce6d7aae1f4e8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:56:18 +0300 Subject: [PATCH 090/121] chore(dx/desktop): clean up env --- apps/desktop/.serve-nodir.env | 1 - apps/desktop/.serve.env | 3 --- apps/desktop/package.json | 4 ++-- 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 apps/desktop/.serve-nodir.env delete mode 100644 apps/desktop/.serve.env diff --git a/apps/desktop/.serve-nodir.env b/apps/desktop/.serve-nodir.env deleted file mode 100644 index 9ee6c438e2..0000000000 --- a/apps/desktop/.serve-nodir.env +++ /dev/null @@ -1 +0,0 @@ -TRILIUM_PORT=37743 \ No newline at end of file diff --git a/apps/desktop/.serve.env b/apps/desktop/.serve.env deleted file mode 100644 index d49595a695..0000000000 --- a/apps/desktop/.serve.env +++ /dev/null @@ -1,3 +0,0 @@ -TRILIUM_PORT=37741 -TRILIUM_DATA_DIR=../data -NODE_OPTIONS=--enable-source-maps \ No newline at end of file diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 16d193593f..2a98a880bb 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -30,8 +30,8 @@ "prebuild-install": "^7.1.1" }, "scripts": { - "dev": "cross-env TRILIUM_DATA_DIR=data tsx scripts/start.mts", - "start-no-dir": "cross-env tsx scripts/start.mts", + "dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx scripts/start.mts", + "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", "electron-forge:make": "pnpm build && electron-forge make dist", From 26c7f0b0170ea334f2687c0f554258dd06a69c49 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 19:56:27 +0300 Subject: [PATCH 091/121] feat(dx/desktop): improve rebuilding experience on NixOS --- apps/desktop/scripts/rebuild.mts | 16 +++------------- apps/desktop/scripts/start.mts | 15 ++++----------- scripts/utils.mts | 12 +++++++++++- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/apps/desktop/scripts/rebuild.mts b/apps/desktop/scripts/rebuild.mts index 25b341adab..635d4690f5 100644 --- a/apps/desktop/scripts/rebuild.mts +++ b/apps/desktop/scripts/rebuild.mts @@ -1,8 +1,8 @@ import { join } from "path"; -import { cpSync, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; +import { cpSync, existsSync, mkdirSync, rmSync } from "fs"; import { execSync } from "child_process"; import { rebuild } from "@electron/rebuild" -import { isNixOS, resetPath } from "../../../scripts/utils.mjs"; +import { getElectronPath, isNixOS } from "../../../scripts/utils.mjs"; import packageJson from "../package.json" with { type: "json" }; const desktopProjectRoot = join(import.meta.dirname, ".."); @@ -33,24 +33,14 @@ function rebuildNativeDependencies() { buildPath: desktopProjectRoot, electronVersion }); - - if (isNixOS()) { - console.log("Patching ELF..."); - - return execSync(`nix-shell -p auto-patchelf gcc.cc.lib --run "auto-patchelf --paths node_modules/better-sqlite3/build/Release/better_sqlite3.node --libs ${libStdPath}"`, { - cwd: desktopProjectRoot, - stdio: "inherit" - }); - } } function determineElectronVersion() { if (isNixOS()) { console.log("Detected NixOS, reading Electron version from PATH"); - resetPath(); try { - return execSync("electron --version", { }).toString("utf-8"); + return execSync(`${getElectronPath()} --version`, { }).toString("utf-8"); } catch (e) { console.error("Got error while trying to read the Electron version from shell. Make sure that an Electron version is in the PATH (e.g. `nix-shell -p electron`)"); process.exit(1); diff --git a/apps/desktop/scripts/start.mts b/apps/desktop/scripts/start.mts index a2151ba2dd..e283a70236 100644 --- a/apps/desktop/scripts/start.mts +++ b/apps/desktop/scripts/start.mts @@ -1,18 +1,11 @@ -import { execSync, spawnSync } from "child_process"; -import { isNixOS, resetPath } from "../../../scripts/utils.mjs"; +import { execSync } from "child_process"; +import { getElectronPath, isNixOS } from "../../../scripts/utils.mjs"; import { join } from "path"; const projectRoot = join(import.meta.dirname, ".."); +const LD_LIBRARY_PATH = isNixOS() && execSync("nix eval --raw nixpkgs#gcc.cc.lib").toString("utf-8") + "/lib"; -let LD_LIBRARY_PATH = undefined; -let electronPath = "electron"; -if (isNixOS()) { - resetPath(); - LD_LIBRARY_PATH = execSync("nix eval --raw nixpkgs#gcc.cc.lib").toString("utf-8") + "/lib"; - electronPath = execSync("nix eval --raw nixpkgs#electron_37").toString("utf-8") + "/bin/electron"; -} - -execSync(`${electronPath} ./src/main.ts`, { +execSync(`${getElectronPath()} ./src/main.ts`, { stdio: "inherit", cwd: projectRoot, env: { diff --git a/scripts/utils.mts b/scripts/utils.mts index d8cefe4c51..ea63f3760c 100644 --- a/scripts/utils.mts +++ b/scripts/utils.mts @@ -1,3 +1,4 @@ +import { execSync } from "child_process"; import { readFileSync } from "fs"; import { platform } from "os"; @@ -7,7 +8,7 @@ export function isNixOS() { return osReleaseFile.includes("ID=nixos"); } -export function resetPath() { +function resetPath() { // On Unix-like systems, PATH is usually inherited from login shell // but npm prepends node_modules/.bin. Let's remove it: const origPath = process.env.PATH || ""; @@ -18,3 +19,12 @@ export function resetPath() { .filter(p => !p.includes("node_modules/.bin")) .join(":"); } + +export function getElectronPath() { + if (isNixOS()) { + resetPath(); + return execSync("nix eval --raw nixpkgs#electron_37").toString("utf-8") + "/bin/electron"; + } else { + return "electron"; + } +} \ No newline at end of file From a1beb1309447bb489baf172c08a624f1ad44d5d1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 20:46:44 +0300 Subject: [PATCH 092/121] chore(ci): add logs for electron-forge flatpak build --- apps/desktop/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 2a98a880bb..2a904bc79f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -34,7 +34,7 @@ "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", - "electron-forge:make": "pnpm build && electron-forge make dist", + "electron-forge:make": "pnpm build && cross-env DEBUG=* electron-forge make dist", "electron-forge:package": "pnpm build && electron-forge package dist", "electron-forge:start": "pnpm build && electron-forge start dist", "postinstall": "tsx scripts/rebuild.mts" From d2d8bff9f71673765cf40ccf3e183fcbdb972881 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 21:06:41 +0300 Subject: [PATCH 093/121] fix(e2e/server): wrong database dir --- apps/server-e2e/playwright.config.ts | 3 +++ apps/server/package.json | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server-e2e/playwright.config.ts b/apps/server-e2e/playwright.config.ts index 997e4f036c..719bb2fbf9 100644 --- a/apps/server-e2e/playwright.config.ts +++ b/apps/server-e2e/playwright.config.ts @@ -30,6 +30,9 @@ export default defineConfig({ url: baseURL, reuseExistingServer: !process.env.CI, cwd: join(__dirname, "../server"), + env: { + TRILIUM_DATA_DIR: "spec/db" + }, timeout: 5 * 60 * 1000 } : undefined, diff --git a/apps/server/package.json b/apps/server/package.json index f506db695e..1056ebb963 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -12,7 +12,8 @@ "package": "pnpm build && bash scripts/build-server.sh", "test": "vitest", "test-build": "vitest --config vitest.build.config.mts", - "start-prod": "pnpm build && cross-env TRILIUM_ENV=production TRILIUM_DATA_DIR=data TRILIUM_PORT=8082 node dist/main.cjs", + "start-prod": "cross-env TRILIUM_DATA_DIR=data pnpm start-prod-no-dir", + "start-prod-no-dir": "pnpm build && cross-env TRILIUM_ENV=production TRILIUM_PORT=8082 node dist/main.cjs", "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular", "docker-build-debian": "pnpm build && docker build . -t triliumnext-debian -f Dockerfile", "docker-build-alpine": "pnpm build && docker build . -t triliumnext-alpine -f Dockerfile.alpine", From 9c43d661be47fb204f08be430d0a547654097750 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 21:13:32 +0300 Subject: [PATCH 094/121] fix(desktop): forge building for the wrong arch --- .github/actions/build-electron/action.yml | 2 +- apps/desktop/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-electron/action.yml b/.github/actions/build-electron/action.yml index 540b7ddcba..26d35b79f9 100644 --- a/.github/actions/build-electron/action.yml +++ b/.github/actions/build-electron/action.yml @@ -86,7 +86,7 @@ runs: APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} TRILIUM_ARTIFACT_NAME_HINT: TriliumNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }} - run: pnpm run --filter desktop electron-forge:make -- --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }} + run: pnpm run --filter desktop electron-forge:make --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }} # Add DMG signing step - name: Sign DMG diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 2a904bc79f..5b98a20995 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -34,7 +34,7 @@ "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx scripts/start.mts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", - "electron-forge:make": "pnpm build && cross-env DEBUG=* electron-forge make dist", + "electron-forge:make": "pnpm build && cross-env electron-forge make dist", "electron-forge:package": "pnpm build && electron-forge package dist", "electron-forge:start": "pnpm build && electron-forge start dist", "postinstall": "tsx scripts/rebuild.mts" From f6579ac43408552e9380524509a898f53ac56b8e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 21:45:59 +0300 Subject: [PATCH 095/121] fix(e2e/server): data dir not working --- apps/server-e2e/playwright.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server-e2e/playwright.config.ts b/apps/server-e2e/playwright.config.ts index 719bb2fbf9..e7592bc698 100644 --- a/apps/server-e2e/playwright.config.ts +++ b/apps/server-e2e/playwright.config.ts @@ -26,7 +26,7 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: !process.env.TRILIUM_DOCKER ? { - command: 'pnpm start-prod', + command: 'pnpm start-prod-no-dir', url: baseURL, reuseExistingServer: !process.env.CI, cwd: join(__dirname, "../server"), From e7521fe30c31231840596440c387300247b74d4e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 22:30:09 +0300 Subject: [PATCH 096/121] chore(server/e2e): increase timeout of a flaky test --- apps/server-e2e/src/layout/tab_bar.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server-e2e/src/layout/tab_bar.spec.ts b/apps/server-e2e/src/layout/tab_bar.spec.ts index 3f81eb26a5..90e17afef5 100644 --- a/apps/server-e2e/src/layout/tab_bar.spec.ts +++ b/apps/server-e2e/src/layout/tab_bar.spec.ts @@ -79,7 +79,7 @@ test("Tabs are restored in right order", async ({ page, context }) => { // Refresh the page and check the order. await app.goto( { preserveTabs: true }); - await expect(app.getTab(0)).toContainText("Code notes"); + await expect(app.getTab(0)).toContainText("Code notes", { timeout: 15_000 }); await expect(app.getTab(1)).toContainText("Text notes"); await expect(app.getTab(2)).toContainText("Mermaid"); From f63f24ac9d47a8abadf175dc39563aea0e90266a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 2 Sep 2025 22:51:57 +0300 Subject: [PATCH 097/121] feat(server/e2e): upload test report if it fails --- .github/workflows/playwright.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index b4f047aeae..711aaaaebe 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -29,4 +29,11 @@ jobs: run: pnpm install --frozen-lockfile - run: pnpm exec playwright install --with-deps - - run: pnpm -r e2e + - run: pnpm --filter server-e2e e2e + + - name: Upload test report + if: failure() + uses: actions/upload-artifact@v4 + with: + name: e2e report + path: apps/server-e2e/test-output From 922d484a33a548402bee92e451caf5641d14e4ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 00:37:18 +0000 Subject: [PATCH 098/121] chore(deps): update dependency dotenv to v17.2.2 --- apps/desktop-e2e/package.json | 2 +- apps/server-e2e/package.json | 2 +- pnpm-lock.yaml | 30 ++++++++++++++++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/apps/desktop-e2e/package.json b/apps/desktop-e2e/package.json index 2e70fc803b..2c04ce445d 100644 --- a/apps/desktop-e2e/package.json +++ b/apps/desktop-e2e/package.json @@ -18,7 +18,7 @@ } }, "devDependencies": { - "dotenv": "17.2.1", + "dotenv": "17.2.2", "electron": "37.4.0" } } diff --git a/apps/server-e2e/package.json b/apps/server-e2e/package.json index a9970fd0a0..f17a615555 100644 --- a/apps/server-e2e/package.json +++ b/apps/server-e2e/package.json @@ -17,6 +17,6 @@ } }, "devDependencies": { - "dotenv": "17.2.1" + "dotenv": "17.2.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f1d33651c..ec94a94e6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -423,8 +423,8 @@ importers: apps/desktop-e2e: devDependencies: dotenv: - specifier: 17.2.1 - version: 17.2.1 + specifier: 17.2.2 + version: 17.2.2 electron: specifier: 37.4.0 version: 37.4.0 @@ -798,8 +798,8 @@ importers: apps/server-e2e: devDependencies: dotenv: - specifier: 17.2.1 - version: 17.2.1 + specifier: 17.2.2 + version: 17.2.2 apps/website: dependencies: @@ -8292,6 +8292,10 @@ packages: resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==} engines: {node: '>=12'} + dotenv@17.2.2: + resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + engines: {node: '>=12'} + dotignore@0.1.2: resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} hasBin: true @@ -16879,6 +16883,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-block-quote@46.0.2': dependencies: @@ -16889,6 +16895,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-bookmark@46.0.2': dependencies: @@ -17010,6 +17018,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -17183,8 +17193,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -17227,6 +17235,8 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -17283,6 +17293,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -17429,6 +17441,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -23750,6 +23764,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: @@ -25020,6 +25036,8 @@ snapshots: dotenv@17.2.1: {} + dotenv@17.2.2: {} + dotignore@0.1.2: dependencies: minimatch: 3.1.2 From a16f5f55056e7103b257f050578152588ba28a27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 00:38:49 +0000 Subject: [PATCH 099/121] chore(deps): update dependency @anthropic-ai/sdk to v0.61.0 --- apps/server/package.json | 2 +- pnpm-lock.yaml | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index abbf7154a2..57039d02ca 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -39,7 +39,7 @@ "@types/ws": "8.18.1", "@types/xml2js": "0.4.14", "express-http-proxy": "2.1.1", - "@anthropic-ai/sdk": "0.60.0", + "@anthropic-ai/sdk": "0.61.0", "@braintree/sanitize-url": "7.1.1", "@triliumnext/commons": "workspace:*", "@triliumnext/express-partial-content": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f1d33651c..04752b83af 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -492,8 +492,8 @@ importers: version: 12.2.0 devDependencies: '@anthropic-ai/sdk': - specifier: 0.60.0 - version: 0.60.0 + specifier: 0.61.0 + version: 0.61.0 '@braintree/sanitize-url': specifier: 7.1.1 version: 7.1.1 @@ -1416,8 +1416,8 @@ packages: '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - '@anthropic-ai/sdk@0.60.0': - resolution: {integrity: sha512-9zu/TXaUy8BZhXedDtt1wT3H4LOlpKDO1/ftiFpeR3N1PCr3KJFKkxxlQWWt1NNp08xSwUNJ3JNY8yhl8av6eQ==} + '@anthropic-ai/sdk@0.61.0': + resolution: {integrity: sha512-GnlOXrPxow0uoaVB3DGNh9EJBU1MyagCBCLpU+bwDVlj/oOPYIwoiasMWlykkfYcQOrDP2x/zHnRD0xN7PeZPw==} hasBin: true '@apidevtools/json-schema-ref-parser@9.1.2': @@ -15523,7 +15523,7 @@ snapshots: '@antfu/utils@8.1.1': {} - '@anthropic-ai/sdk@0.60.0': {} + '@anthropic-ai/sdk@0.61.0': {} '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: @@ -16879,6 +16879,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-block-quote@46.0.2': dependencies: @@ -16889,6 +16891,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-bookmark@46.0.2': dependencies: @@ -17010,6 +17014,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -17183,8 +17189,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -17227,6 +17231,8 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -17283,6 +17289,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -17429,6 +17437,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -23750,6 +23760,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: From 59697095b16082659ddfe12a68077b37c26ab13d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 00:40:09 +0000 Subject: [PATCH 100/121] chore(deps): update typescript-eslint monorepo to v8.42.0 --- packages/ckeditor5-admonition/package.json | 2 +- packages/ckeditor5-footnotes/package.json | 2 +- .../ckeditor5-keyboard-marker/package.json | 2 +- packages/ckeditor5-math/package.json | 2 +- packages/ckeditor5-mermaid/package.json | 2 +- pnpm-lock.yaml | 186 ++++++++++-------- 6 files changed, 104 insertions(+), 92 deletions(-) diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 2d84b2145e..14fa63b289 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -35,7 +35,7 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.41.0", + "@typescript-eslint/eslint-plugin": "~8.42.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index 0755f8c300..10d021cb03 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -36,7 +36,7 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.41.0", + "@typescript-eslint/eslint-plugin": "~8.42.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index 5024f813e5..f1bb3c0d21 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -38,7 +38,7 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.41.0", + "@typescript-eslint/eslint-plugin": "~8.42.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index 7c58f2c784..4644bb3371 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -39,7 +39,7 @@ "@ckeditor/ckeditor5-dev-utils": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.41.0", + "@typescript-eslint/eslint-plugin": "~8.42.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index 16e82a001e..9920301d83 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -38,7 +38,7 @@ "@ckeditor/ckeditor5-dev-build-tools": "43.1.0", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "^4.0.0", - "@typescript-eslint/eslint-plugin": "~8.41.0", + "@typescript-eslint/eslint-plugin": "~8.42.0", "@typescript-eslint/parser": "^8.0.0", "@vitest/browser": "^3.0.5", "@vitest/coverage-istanbul": "^3.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f1d33651c..835f3b0efc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,7 +53,7 @@ importers: version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/eslint-plugin': specifier: 21.3.11 - version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) + version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2) '@nx/express': specifier: 21.3.11 version: 21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0(jiti@2.5.1))(express@4.21.2)(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(typescript@5.9.2))(typescript@5.9.2) @@ -146,7 +146,7 @@ importers: version: 5.9.2 typescript-eslint: specifier: ^8.19.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) upath: specifier: 2.0.1 version: 2.0.1 @@ -854,7 +854,7 @@ importers: version: 5.9.2 typescript-eslint: specifier: ^8.20.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.0 version: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) @@ -899,11 +899,11 @@ importers: specifier: ^4.0.0 version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(bufferutil@4.0.9)(esbuild@0.25.9)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.41.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ~8.42.0 + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -959,11 +959,11 @@ importers: specifier: ^4.0.0 version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(bufferutil@4.0.9)(esbuild@0.25.9)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.41.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ~8.42.0 + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -1019,11 +1019,11 @@ importers: specifier: ^4.0.0 version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(bufferutil@4.0.9)(esbuild@0.25.9)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.41.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ~8.42.0 + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -1086,11 +1086,11 @@ importers: specifier: ^4.0.0 version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(bufferutil@4.0.9)(esbuild@0.25.9)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.41.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ~8.42.0 + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -1153,11 +1153,11 @@ importers: specifier: ^4.0.0 version: 4.0.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.18.0)(bufferutil@4.0.9)(esbuild@0.25.9)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: ~8.41.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ~8.42.0 + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/browser': specifier: ^3.0.5 version: 3.2.4(bufferutil@4.0.9)(msw@2.7.5(@types/node@22.18.0)(typescript@5.9.2))(playwright@1.55.0)(utf-8-validate@6.0.5)(vite@7.1.4(@types/node@22.18.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)(webdriverio@9.19.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)) @@ -1375,10 +1375,10 @@ importers: version: 5.21.1 '@typescript-eslint/eslint-plugin': specifier: ^8.0.0 - version: 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.0.0 - version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) dotenv: specifier: ^17.0.0 version: 17.2.1 @@ -5989,11 +5989,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/eslint-plugin@8.41.0': - resolution: {integrity: sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==} + '@typescript-eslint/eslint-plugin@8.42.0': + resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.41.0 + '@typescript-eslint/parser': ^8.42.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' @@ -6004,8 +6004,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.41.0': - resolution: {integrity: sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==} + '@typescript-eslint/parser@8.42.0': + resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6023,8 +6023,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.41.0': - resolution: {integrity: sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==} + '@typescript-eslint/project-service@8.42.0': + resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -6037,8 +6037,8 @@ packages: resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.41.0': - resolution: {integrity: sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==} + '@typescript-eslint/scope-manager@8.42.0': + resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.38.0': @@ -6053,8 +6053,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.41.0': - resolution: {integrity: sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==} + '@typescript-eslint/tsconfig-utils@8.42.0': + resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -6073,8 +6073,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.41.0': - resolution: {integrity: sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==} + '@typescript-eslint/type-utils@8.42.0': + resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6088,8 +6088,8 @@ packages: resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.41.0': - resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==} + '@typescript-eslint/types@8.42.0': + resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.38.0': @@ -6104,8 +6104,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.41.0': - resolution: {integrity: sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==} + '@typescript-eslint/typescript-estree@8.42.0': + resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -6124,8 +6124,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.41.0': - resolution: {integrity: sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==} + '@typescript-eslint/utils@8.42.0': + resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6139,8 +6139,8 @@ packages: resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.41.0': - resolution: {integrity: sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==} + '@typescript-eslint/visitor-keys@8.42.0': + resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -14573,8 +14573,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - typescript-eslint@8.41.0: - resolution: {integrity: sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==} + typescript-eslint@8.42.0: + resolution: {integrity: sha512-ozR/rQn+aQXQxh1YgbCzQWDFrsi9mcg+1PM3l/z5o1+20P7suOIaNg515bpr/OYt6FObz/NHcBstydDLHWeEKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -16879,6 +16879,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-block-quote@46.0.2': dependencies: @@ -16889,6 +16891,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-bookmark@46.0.2': dependencies: @@ -17010,6 +17014,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -17183,8 +17189,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -17227,6 +17231,8 @@ snapshots: '@ckeditor/ckeditor5-table': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@46.0.2': dependencies: @@ -17283,6 +17289,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -17429,6 +17437,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -18569,7 +18579,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/types': 8.42.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -19878,12 +19888,12 @@ snapshots: - supports-color - verdaccio - '@nx/eslint-plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': + '@nx/eslint-plugin@21.3.11(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-config-prettier@10.1.8(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17)))(typescript@5.9.2)': dependencies: '@nx/devkit': 21.3.11(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@nx/js': 21.3.11(patch_hash=7201af3a8fb4840b046e4e18cc2758fa67ee3d0cf11d0783869dc828cfc79fc7)(@babel/traverse@7.28.0)(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))(nx@21.3.11(@swc-node/register@1.10.10(@swc/core@1.11.29(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.9.2))(@swc/core@1.11.29(@swc/helpers@0.5.17))) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.2) - '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/type-utils': 8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/utils': 8.38.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) chalk: 4.1.2 @@ -22215,14 +22225,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.41.0 - '@typescript-eslint/type-utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.41.0 + '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/type-utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.42.0 eslint: 9.34.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -22244,12 +22254,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.41.0 - '@typescript-eslint/types': 8.41.0 - '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.41.0 + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.42.0 debug: 4.4.1(supports-color@6.0.0) eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 @@ -22274,10 +22284,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.41.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2) - '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) + '@typescript-eslint/types': 8.42.0 debug: 4.4.1(supports-color@6.0.0) typescript: 5.9.2 transitivePeerDependencies: @@ -22293,10 +22303,10 @@ snapshots: '@typescript-eslint/types': 8.40.0 '@typescript-eslint/visitor-keys': 8.40.0 - '@typescript-eslint/scope-manager@8.41.0': + '@typescript-eslint/scope-manager@8.42.0': dependencies: - '@typescript-eslint/types': 8.41.0 - '@typescript-eslint/visitor-keys': 8.41.0 + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/visitor-keys': 8.42.0 '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': dependencies: @@ -22306,7 +22316,7 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.41.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 @@ -22334,11 +22344,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.41.0 - '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1(supports-color@6.0.0) eslint: 9.34.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) @@ -22350,7 +22360,7 @@ snapshots: '@typescript-eslint/types@8.40.0': {} - '@typescript-eslint/types@8.41.0': {} + '@typescript-eslint/types@8.42.0': {} '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': dependencies: @@ -22384,12 +22394,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.41.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.41.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2) - '@typescript-eslint/types': 8.41.0 - '@typescript-eslint/visitor-keys': 8.41.0 + '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/visitor-keys': 8.42.0 debug: 4.4.1(supports-color@6.0.0) fast-glob: 3.3.3 is-glob: 4.0.3 @@ -22422,12 +22432,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.41.0 - '@typescript-eslint/types': 8.41.0 - '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.42.0 + '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: @@ -22443,9 +22453,9 @@ snapshots: '@typescript-eslint/types': 8.40.0 eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.41.0': + '@typescript-eslint/visitor-keys@8.42.0': dependencies: - '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/types': 8.42.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -23750,6 +23760,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: @@ -32792,12 +32804,12 @@ snapshots: transitivePeerDependencies: - supports-color - typescript-eslint@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + typescript-eslint@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: From 27fdd9e71518db618f795bcb53116d7a82665dd0 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Wed, 3 Sep 2025 04:13:29 +0300 Subject: [PATCH 101/121] style/text editor/find and replace: add style for the "replace" buttons --- apps/client/src/stylesheets/theme-next/forms.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 90c6afee6e..8fda98233e 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -6,7 +6,7 @@ button.btn.btn-primary, button.btn.btn-secondary, button.btn.btn-sm:not(.select-button), button.btn.btn-success, -button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel, .ck-button-replaceall, .ck-button-replace).ck-button_with-text { display: inline-flex; align-items: center; justify-content: center; @@ -23,7 +23,7 @@ button.btn.btn-primary:hover, button.btn.btn-secondary:hover, button.btn.btn-sm:not(.select-button):hover, button.btn.btn-success:hover, -button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:hover { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel, .ck-button-replaceall, .ck-button-replace).ck-button_with-text:not(.ck-disabled):hover { background: var(--cmd-button-hover-background-color); color: var(--cmd-button-hover-text-color); } @@ -32,7 +32,7 @@ button.btn.btn-primary:active, button.btn.btn-secondary:active, button.btn.btn-sm:not(.select-button):active, button.btn.btn-success:active, -button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:active { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel, .ck-button-replaceall, .ck-button-replace).ck-button_with-text:not(.ck-disabled):active { opacity: 0.85; box-shadow: unset; background: var(--cmd-button-background-color) !important; @@ -44,7 +44,7 @@ button.btn.btn-primary:disabled, button.btn.btn-secondary:disabled, button.btn.btn-sm:not(.select-button):disabled, button.btn.btn-success:disabled, -button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:disabled { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel, .ck-button-replaceall, .ck-button-replace).ck-button_with-text.ck-disabled { opacity: var(--cmd-button-disabled-opacity); } @@ -52,7 +52,7 @@ button.btn.btn-primary:focus-visible, button.btn.btn-secondary:focus-visible, button.btn.btn-sm:not(.select-button):focus-visible, button.btn.btn-success:focus-visible, -button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck-button_with-text:focus-visible { +button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel, .ck-button-replaceall, .ck-button-replace).ck-button_with-text:not(.ck-disabled):focus-visible { outline: 2px solid var(--input-focus-outline-color); } From c40398df5d9e9ff03385b9d15e77f9319aab8f7a Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Wed, 3 Sep 2025 04:29:02 +0300 Subject: [PATCH 102/121] style/text editor/forms: tweak text boxes --- apps/client/src/stylesheets/theme-next/forms.css | 12 ++++++------ .../client/src/stylesheets/theme-next/notes/text.css | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index 8fda98233e..bb2eec9532 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -154,8 +154,8 @@ input[type="password"], input[type="date"], input[type="time"], input[type="datetime-local"], -input.ck.ck-input-text, -input.ck.ck-input-number, +:root input.ck.ck-input-text, +:root input.ck.ck-input-number, textarea.form-control, textarea, .tn-input-field { @@ -174,8 +174,8 @@ input[type="password"]:hover, input[type="date"]:hover, input[type="time"]:hover, input[type="datetime-local"]:hover, -input.ck.ck-input-text:hover, -input.ck.ck-input-number:hover, +:root input.ck.ck-input-text:not([readonly="true"]):hover, +:root input.ck.ck-input-number:not([readonly="true"]):hover, textarea.form-control:hover, textarea:hover, .tn-input-field:hover { @@ -190,8 +190,8 @@ input[type="password"]:focus, input[type="date"]:focus, input[type="time"]:focus, input[type="datetime-local"]:focus, -input.ck.ck-input-text:focus, -input.ck.ck-input-number:focus, +:root input.ck.ck-input-text:focus, +:root input.ck.ck-input-number:focus, textarea.form-control:focus, textarea:focus, .tn-input-field:focus, diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css index 64cf8fdd86..6499fa0b4b 100644 --- a/apps/client/src/stylesheets/theme-next/notes/text.css +++ b/apps/client/src/stylesheets/theme-next/notes/text.css @@ -498,6 +498,11 @@ button.ck.ck-button:is(.ck-button-action, .ck-button-save, .ck-button-cancel).ck font-weight: 600; } +:root input.ck.ck-input-text[readonly="true"] { + cursor: not-allowed; + background: var(--input-background-color); +} + /* Forms */ :root .ck.ck-form__row.ck-form__row_with-submit > :not(:first-child) { From 9c5a130ab4e8cf1db8d06e7ef0cf93411437c416 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Wed, 3 Sep 2025 04:38:37 +0300 Subject: [PATCH 103/121] style/text editor/forms: restyle text areas --- apps/client/src/stylesheets/theme-next/forms.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css index bb2eec9532..86fad26824 100644 --- a/apps/client/src/stylesheets/theme-next/forms.css +++ b/apps/client/src/stylesheets/theme-next/forms.css @@ -158,6 +158,7 @@ input[type="datetime-local"], :root input.ck.ck-input-number, textarea.form-control, textarea, +:root textarea.ck.ck-textarea, .tn-input-field { outline: 3px solid transparent; outline-offset: 6px; @@ -178,6 +179,7 @@ input[type="datetime-local"]:hover, :root input.ck.ck-input-number:not([readonly="true"]):hover, textarea.form-control:hover, textarea:hover, +:root textarea.ck.ck-textarea:hover, .tn-input-field:hover { background: var(--input-hover-background); color: var(--input-hover-color); @@ -194,6 +196,7 @@ input[type="datetime-local"]:focus, :root input.ck.ck-input-number:focus, textarea.form-control:focus, textarea:focus, +:root textarea.ck.ck-textarea:focus, .tn-input-field:focus, .tn-input-field:focus-within { box-shadow: unset; From a9564f8f389b442564ccb504eea591f6c0521f4f Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Wed, 3 Sep 2025 05:25:26 +0300 Subject: [PATCH 104/121] style/launchbar buttons: fix broken hover state when background effects are enabled --- apps/client/src/stylesheets/style.css | 2 +- apps/client/src/stylesheets/theme-next/shell.css | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css index 0d192381de..41bdd21549 100644 --- a/apps/client/src/stylesheets/style.css +++ b/apps/client/src/stylesheets/style.css @@ -1457,7 +1457,7 @@ body:not(.mobile) #launcher-pane.horizontal .dropdown-submenu > .dropdown-menu { cursor: pointer; border: none; color: var(--launcher-pane-text-color); - background-color: var(--launcher-pane-background-color); + background: transparent; flex-shrink: 0; } diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index ec5d339408..b3b22f3d8d 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -59,8 +59,7 @@ body.background-effects.platform-win32.layout-vertical { } body.background-effects.platform-win32, -body.background-effects.platform-win32 #root-widget, -body.background-effects.platform-win32 #launcher-pane .launcher-button { +body.background-effects.platform-win32 #root-widget { background: transparent !important; } From 7db3bde93366d309c28d487dc6caf050f13bb98d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 09:02:10 +0300 Subject: [PATCH 105/121] chore(e2e): merge .env in playwright config + add retry --- apps/server-e2e/.env | 3 --- apps/server-e2e/playwright.config.ts | 11 +++++------ 2 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 apps/server-e2e/.env diff --git a/apps/server-e2e/.env b/apps/server-e2e/.env deleted file mode 100644 index 9087bb8d5e..0000000000 --- a/apps/server-e2e/.env +++ /dev/null @@ -1,3 +0,0 @@ -TRILIUM_INTEGRATION_TEST=memory -TRILIUM_PORT=8082 -TRILIUM_DATA_DIR=spec/db \ No newline at end of file diff --git a/apps/server-e2e/playwright.config.ts b/apps/server-e2e/playwright.config.ts index e7592bc698..3d7da5782a 100644 --- a/apps/server-e2e/playwright.config.ts +++ b/apps/server-e2e/playwright.config.ts @@ -1,12 +1,8 @@ import { defineConfig, devices } from '@playwright/test'; import { join } from 'path'; -require('dotenv').config({ - path: __dirname + "/" + ".env" -}); - // For CI, you may want to set BASE_URL to the deployed application. -const port = process.env['TRILIUM_PORT']; +const port = process.env['TRILIUM_PORT'] ?? "8082"; const baseURL = process.env['BASE_URL'] || `http://127.0.0.1:${port}`; /** @@ -16,6 +12,7 @@ export default defineConfig({ testDir: "src", reporter: [["list"], ["html", { outputFolder: "test-output" }]], outputDir: "test-output", + retries: 3, /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { @@ -31,7 +28,9 @@ export default defineConfig({ reuseExistingServer: !process.env.CI, cwd: join(__dirname, "../server"), env: { - TRILIUM_DATA_DIR: "spec/db" + TRILIUM_DATA_DIR: "spec/db", + TRILIUM_PORT: port, + TRILIUM_INTEGRATION_TEST: "memory" }, timeout: 5 * 60 * 1000 } : undefined, From a56d622df78e6be709cecd52344d60981a93d89b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 10:55:40 +0300 Subject: [PATCH 106/121] chore(dx): address self-review --- .gitignore | 2 -- apps/server/src/services/asset_path.ts | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 877dd4cb27..2981e8b0e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ # See https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files for more about ignoring files. - /.cache -!/.cache/vite/.gitkeep # compiled output dist diff --git a/apps/server/src/services/asset_path.ts b/apps/server/src/services/asset_path.ts index 237a3f5a3d..2e14996e40 100644 --- a/apps/server/src/services/asset_path.ts +++ b/apps/server/src/services/asset_path.ts @@ -1,7 +1,14 @@ import packageJson from "../../package.json" with { type: "json" }; import { isDev } from "./utils"; +/** + * The URL prefix for assets (e.g. `assets/v1.2.3`). + */ export const assetUrlFragment = `assets/v${packageJson.version}`; + +/** + * Similar to the {@link assetUrlFragment}, but on dev mode it also contains the `/src` suffix. + */ const assetPath = isDev ? assetUrlFragment + "/src" : assetUrlFragment; export default assetPath; From f9e725bcf819af2ed9b693b161ab3695f3537881 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 11:56:44 +0300 Subject: [PATCH 107/121] chore(dx): add aliases to desktop --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c8f7343fcf..c3e845111f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "server:start": "pnpm run --filter server dev", "server:start-prod": "pnpm run --filter server start-prod", "desktop:start": "pnpm run --filter desktop dev", - "electron:build": "pnpm run --filter desktop build", + "desktop:build": "pnpm run --filter desktop build", + "electron:build": "pnpm desktop:build", + "electron:start": "pnpm desktop:start", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", From cb6d87302dbca6dbcdf040731905c1cc270ab209 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 12:00:06 +0300 Subject: [PATCH 108/121] fix(dx/client): doc notes not working --- apps/client/src/services/doc_renderer.ts | 2 +- package.json | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/client/src/services/doc_renderer.ts b/apps/client/src/services/doc_renderer.ts index 1eca3d7c6c..de3cfba6ce 100644 --- a/apps/client/src/services/doc_renderer.ts +++ b/apps/client/src/services/doc_renderer.ts @@ -48,6 +48,6 @@ function getUrl(docNameValue: string, language: string) { // Cannot have spaces in the URL due to how JQuery.load works. docNameValue = docNameValue.replaceAll(" ", "%20"); - const basePath = window.glob.isDev ? new URL(window.glob.assetPath).pathname : window.glob.assetPath; + const basePath = window.glob.isDev ? window.glob.assetPath + "/.." : window.glob.assetPath; return `${basePath}/doc_notes/${language}/${docNameValue}.html`; } diff --git a/package.json b/package.json index c3e845111f..444ef6e2dc 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "server:start-prod": "pnpm run --filter server start-prod", "desktop:start": "pnpm run --filter desktop dev", "desktop:build": "pnpm run --filter desktop build", + "desktop:start-prod": "pnpm run --filter desktop start-prod", "electron:build": "pnpm desktop:build", "electron:start": "pnpm desktop:start", + "electron:start-prod": "pnpm desktop:start-prod", "chore:ci-update-nightly-version": "tsx ./scripts/update-nightly-version.ts", "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", From 050aa40e20a85fb3f0eadcc2ba0a0056b902ffb7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 12:12:01 +0300 Subject: [PATCH 109/121] fix(dx/share): templates and script not accessible --- apps/server/src/share/routes.ts | 5 ++++- packages/share-theme/src/templates/page.ejs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/server/src/share/routes.ts b/apps/server/src/share/routes.ts index 7e18ca505b..37162ea286 100644 --- a/apps/server/src/share/routes.ts +++ b/apps/server/src/share/routes.ts @@ -18,6 +18,7 @@ import utils, { isDev, safeExtractMessageAndStackFromError } from "../services/u import options from "../services/options.js"; import { t } from "i18next"; import ejs from "ejs"; +import { join } from "path"; function getSharedSubTreeRoot(note: SNote): { note?: SNote; branch?: SBranch } { if (note.noteId === shareRoot.SHARE_ROOT_NOTE_ID) { @@ -401,7 +402,9 @@ function register(router: Router) { function renderDefault(res: Response>, template: "page" | "404", opts: any = {}) { // Path is relative to apps/server/dist/assets/views - const shareThemePath = `../../share-theme/templates/${template}.ejs`; + const shareThemePath = process.env.NODE_ENV === "development" + ? join(__dirname, `../../../../packages/share-theme/src/templates/${template}.ejs`) + : `../../share-theme/templates/${template}.ejs`; res.render(shareThemePath, opts); } diff --git a/packages/share-theme/src/templates/page.ejs b/packages/share-theme/src/templates/page.ejs index 5c39051ebf..e4ac1f6030 100644 --- a/packages/share-theme/src/templates/page.ejs +++ b/packages/share-theme/src/templates/page.ejs @@ -6,7 +6,7 @@ api/notes/<%= note.getRelation("shareFavicon").value %>/download<% } else { %>../favicon.ico<% } %>"> - + <% if (!isDev && !note.isLabelTruthy("shareOmitDefaultCss")) { %> From c75d2435fa14d111b98bcff43e9bfdc4f5a05a02 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 15:23:32 +0300 Subject: [PATCH 110/121] fix(dx/share): ckcontent missing --- apps/client/src/share.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/share.ts b/apps/client/src/share.ts index b260b41152..b438f0c0c5 100644 --- a/apps/client/src/share.ts +++ b/apps/client/src/share.ts @@ -1,6 +1,6 @@ import "normalize.css"; import "boxicons/css/boxicons.min.css"; -// import "@triliumnext/ckeditor5/content.css"; +import "@triliumnext/ckeditor5/src/theme/ck-content.css"; import "@triliumnext/share-theme/styles/index.css"; import "@triliumnext/share-theme/scripts/index.js"; From 710ed9dd0eaa74eb6c7cbafab0bf20e9f92e19bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 12:45:44 +0000 Subject: [PATCH 111/121] chore(deps): update svelte monorepo --- pnpm-lock.yaml | 84 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f1d33651c..c4d9b05e58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -815,13 +815,13 @@ importers: version: 9.34.0 '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.1.0(@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))) + version: 6.1.0(@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))) '@sveltejs/kit': specifier: ^2.16.0 - version: 2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.37.0(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^6.0.0 - version: 6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.16(tailwindcss@4.1.12) @@ -833,7 +833,7 @@ importers: version: 9.34.0(jiti@2.5.1) eslint-plugin-svelte: specifier: ^3.0.0 - version: 3.11.0(eslint@9.34.0(jiti@2.5.1))(svelte@5.38.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.3.0)(typescript@5.9.2)) + version: 3.12.0(eslint@9.34.0(jiti@2.5.1))(svelte@5.38.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.3.0)(typescript@5.9.2)) globals: specifier: ^16.0.0 version: 16.3.0 @@ -2987,6 +2987,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.8.0': + resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -5232,8 +5238,8 @@ packages: svelte: ^5.0.0 vite: ^6.3.0 || ^7.0.0 - '@sveltejs/vite-plugin-svelte@6.1.3': - resolution: {integrity: sha512-3pppgIeIZs6nrQLazzKcdnTJ2IWiui/UucEPXKyFG35TKaHQrfkWBnv6hyJcLxFuR90t+LaoecrqTs8rJKWfSQ==} + '@sveltejs/vite-plugin-svelte@6.1.4': + resolution: {integrity: sha512-4jfkfvsGI+U2OhHX8OPCKtMCf7g7ledXhs3E6UcA4EY0jQWsiVbe83pTAHp9XTifzYNOiD4AJieJUsI0qqxsbw==} engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: svelte: ^5.0.0 @@ -8613,8 +8619,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-svelte@3.11.0: - resolution: {integrity: sha512-KliWlkieHyEa65aQIkRwUFfHzT5Cn4u3BQQsu3KlkJOs7c1u7ryn84EWaOjEzilbKgttT4OfBURA8Uc4JBSQIw==} + eslint-plugin-svelte@3.12.0: + resolution: {integrity: sha512-jUAUTm+6Z7wu/UkpJgzYToa17FSKXesoCDcA26Znsk4oPvMxtnU415kIb0OP9SUIAAVY6jCYngiVBBgvl70i9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 @@ -14151,8 +14157,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@1.3.0: - resolution: {integrity: sha512-VCgMHKV7UtOGcGLGNFSbmdm6kEKjtzo5nnpGU/mnx4OsFY6bZ7QwRF5DUx+Hokw5Lvdyo8dpk8B1m8mliomrNg==} + svelte-eslint-parser@1.3.1: + resolution: {integrity: sha512-0Iztj5vcOVOVkhy1pbo5uA9r+d3yaVoE5XPc9eABIWDOSJZ2mOsZ4D+t45rphWCOr0uMw3jtSG2fh2e7GvKnPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 @@ -16879,6 +16885,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-block-quote@46.0.2': dependencies: @@ -16889,6 +16897,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-bookmark@46.0.2': dependencies: @@ -16951,6 +16961,8 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-code-block@46.0.2(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -17010,6 +17022,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 '@ckeditor/ckeditor5-watchdog': 46.0.2 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.2)': dependencies: @@ -17183,8 +17197,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@46.0.2': dependencies: @@ -17252,6 +17264,8 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-essentials@46.0.2': dependencies: @@ -17283,6 +17297,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@46.0.2': dependencies: @@ -17396,8 +17412,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-icons@46.0.2': {} @@ -17429,6 +17443,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@46.0.2': dependencies: @@ -17781,6 +17797,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-special-characters@46.0.2': dependencies: @@ -18657,6 +18675,11 @@ snapshots: eslint: 9.34.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.8.0(eslint@9.34.0(jiti@2.5.1))': + dependencies: + eslint: 9.34.0(jiti@2.5.1) + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} '@eslint/compat@1.3.2(eslint@9.34.0(jiti@2.5.1))': @@ -21348,15 +21371,15 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))': + '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))': dependencies: - '@sveltejs/kit': 2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/kit': 2.37.0(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - '@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@standard-schema/spec': 1.0.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 1.0.2 @@ -21371,22 +21394,21 @@ snapshots: svelte: 5.38.6 vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) svelte: 5.38.6 vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.1.4(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))(svelte@5.38.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) debug: 4.4.1(supports-color@6.0.0) deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.17 + magic-string: 0.30.18 svelte: 5.38.6 vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) vitefu: 1.1.1(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.87.0)(sass@1.87.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) @@ -22413,7 +22435,7 @@ snapshots: '@typescript-eslint/utils@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.40.0 '@typescript-eslint/types': 8.40.0 '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) @@ -23750,6 +23772,8 @@ snapshots: ckeditor5-collaboration@46.0.2: dependencies: '@ckeditor/ckeditor5-collaboration-core': 46.0.2 + transitivePeerDependencies: + - supports-color ckeditor5-premium-features@46.0.2(bufferutil@4.0.9)(ckeditor5@46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41))(utf-8-validate@6.0.5): dependencies: @@ -25488,10 +25512,10 @@ snapshots: dependencies: eslint: 9.34.0(jiti@2.5.1) - eslint-plugin-svelte@3.11.0(eslint@9.34.0(jiti@2.5.1))(svelte@5.38.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.3.0)(typescript@5.9.2)): + eslint-plugin-svelte@3.12.0(eslint@9.34.0(jiti@2.5.1))(svelte@5.38.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.3.0)(typescript@5.9.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@jridgewell/sourcemap-codec': 1.5.4 + '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0(jiti@2.5.1)) + '@jridgewell/sourcemap-codec': 1.5.5 eslint: 9.34.0(jiti@2.5.1) esutils: 2.0.3 globals: 16.3.0 @@ -25500,7 +25524,7 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.3.0)(typescript@5.9.2)) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.3.0(svelte@5.38.6) + svelte-eslint-parser: 1.3.1(svelte@5.38.6) optionalDependencies: svelte: 5.38.6 transitivePeerDependencies: @@ -32218,7 +32242,7 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.3.0(svelte@5.38.6): + svelte-eslint-parser@1.3.1(svelte@5.38.6): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 From 9059642738d4b8984a5fe5ff6b4b3356ede9a1b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 14:14:24 +0000 Subject: [PATCH 112/121] chore(deps): update dependency dotenv to v17.2.2 --- pnpm-lock.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa6d05ace0..75679f9875 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1381,7 +1381,7 @@ importers: version: 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) dotenv: specifier: ^17.0.0 - version: 17.2.1 + version: 17.2.2 esbuild: specifier: ^0.25.0 version: 0.25.9 @@ -8294,10 +8294,6 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dotenv@17.2.1: - resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==} - engines: {node: '>=12'} - dotenv@17.2.2: resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} engines: {node: '>=12'} @@ -17270,8 +17266,6 @@ snapshots: '@ckeditor/ckeditor5-core': 46.0.2 '@ckeditor/ckeditor5-engine': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-essentials@46.0.2': dependencies: @@ -17418,6 +17412,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 46.0.2 ckeditor5: 46.0.2(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-icons@46.0.2': {} @@ -17916,6 +17912,8 @@ snapshots: '@ckeditor/ckeditor5-icons': 46.0.2 '@ckeditor/ckeditor5-ui': 46.0.2 '@ckeditor/ckeditor5-utils': 46.0.2 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-upload@46.0.2': dependencies: @@ -25048,8 +25046,6 @@ snapshots: dotenv@16.4.7: {} - dotenv@17.2.1: {} - dotenv@17.2.2: {} dotignore@0.1.2: From 11d95b89e107a5021ab2c9772d5611093ffb825a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 18:16:03 +0300 Subject: [PATCH 113/121] chore(dx/edit-docs): de-nxify --- apps/desktop/package.json | 7 +- apps/edit-docs/package.json | 120 +----------------- package.json | 3 +- .../electron-rebuild.mts | 38 +++--- .../start.mts => scripts/electron-start.mts | 9 +- 5 files changed, 33 insertions(+), 144 deletions(-) rename apps/desktop/scripts/rebuild.mts => scripts/electron-rebuild.mts (50%) rename apps/desktop/scripts/start.mts => scripts/electron-start.mts (53%) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 5b98a20995..03612216dc 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -30,14 +30,13 @@ "prebuild-install": "^7.1.1" }, "scripts": { - "dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx scripts/start.mts", - "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx scripts/start.mts", + "dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx ../../scripts/electron-start.mts src/main.ts", + "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts", "build": "tsx scripts/build.ts", "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", "electron-forge:make": "pnpm build && cross-env electron-forge make dist", "electron-forge:package": "pnpm build && electron-forge package dist", - "electron-forge:start": "pnpm build && electron-forge start dist", - "postinstall": "tsx scripts/rebuild.mts" + "electron-forge:start": "pnpm build && electron-forge start dist" }, "license": "AGPL-3.0-only", "author": { diff --git a/apps/edit-docs/package.json b/apps/edit-docs/package.json index c691d9420b..9257d3670e 100644 --- a/apps/edit-docs/package.json +++ b/apps/edit-docs/package.json @@ -15,120 +15,8 @@ "electron": "37.4.0", "fs-extra": "11.3.1" }, - "nx": { - "name": "edit-docs", - "implicitDependencies": [ - "server" - ], - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "main": "apps/edit-docs/src/edit-docs.ts", - "outputPath": "apps/edit-docs/dist", - "tsConfig": "apps/edit-docs/tsconfig.app.json", - "platform": "node", - "additionalEntryPoints": [ - "apps/edit-docs/src/edit-demo.ts" - ], - "external": [ - "electron", - "@electron/remote", - "better-sqlite3", - "./xhr-sync-worker.js" - ], - "format": [ - "cjs" - ], - "minify": false, - "thirdParty": true, - "declaration": false, - "esbuildOptions": { - "splitting": false, - "loader": { - ".css": "text" - } - }, - "assets": [ - { - "glob": "**/*", - "input": "apps/server/dist/node_modules", - "output": "node_modules" - }, - { - "glob": "**/*", - "input": "apps/server/dist/assets", - "output": "assets" - }, - { - "glob": "**/*", - "input": "apps/server/dist/public", - "output": "public" - }, - { - "glob": "xhr-sync-worker.js", - "input": "apps/server/node_modules/jsdom/lib/jsdom/living/xhr", - "output": "" - } - ], - "declarationRootDir": "apps/edit-docs/src" - } - }, - "rebuild-deps": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "defaultConfiguration": "default", - "cache": true, - "configurations": { - "default": { - "command": "cross-env DEBUG=* tsx scripts/electron-rebuild.mts {projectRoot}/dist" - }, - "nixos": { - "command": "cross-env DEBUG=* tsx scripts/electron-rebuild.mts {projectRoot}/dist $(nix-shell -p electron_35 --run \"electron --version\")" - } - } - }, - "edit-docs": { - "executor": "nx:run-commands", - "dependsOn": [ - "rebuild-deps" - ], - "defaultConfiguration": "default", - "configurations": { - "default": { - "command": "electron edit-docs.cjs", - "cwd": "{projectRoot}/dist" - }, - "nixos": { - "command": "nix-shell -p electron_35 --run \"electron {projectRoot}/dist/edit-docs.cjs\"", - "cwd": ".", - "forwardAllArgs": false - } - } - }, - "edit-demo": { - "executor": "nx:run-commands", - "dependsOn": [ - "rebuild-deps" - ], - "defaultConfiguration": "default", - "configurations": { - "default": { - "command": "electron edit-demo.cjs", - "cwd": "{projectRoot}/dist" - }, - "nixos": { - "command": "nix-shell -p electron_35 --run \"electron {projectRoot}/dist/edit-demo.cjs\"", - "cwd": ".", - "forwardAllArgs": false - } - } - } - } - } + "scripts": { + "edit-docs": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data TRILIUM_INTEGRATION_TEST=memory-no-store DOCS_ROOT=../../../docs USER_GUIDE_ROOT=\"../../server/src/assets/doc_notes/en/User Guide\" tsx ../../scripts/electron-start.mts src/edit-docs.ts", + "edit-demo": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data TRILIUM_INTEGRATION_TEST=memory-no-store DOCS_ROOT=../../../docs USER_GUIDE_ROOT=\"../../server/src/assets/doc_notes/en/User Guide\" tsx ../../scripts/electron-start.mts src/edit-demo.ts" + } } \ No newline at end of file diff --git a/package.json b/package.json index 444ef6e2dc..0d88353bce 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "chore:update-version": "tsx ./scripts/update-version.ts", "test:all": "pnpm test:parallel && pnpm test:sequential", "test:parallel": "pnpm --filter=!server --filter=!ckeditor5-mermaid --filter=!ckeditor5-math --parallel test", - "test:sequential": "pnpm --filter=server --filter=ckeditor5-mermaid --filter=ckeditor5-math --sequential test" + "test:sequential": "pnpm --filter=server --filter=ckeditor5-mermaid --filter=ckeditor5-math --sequential test", + "postinstall": "tsx scripts/electron-rebuild.mts" }, "private": true, "devDependencies": { diff --git a/apps/desktop/scripts/rebuild.mts b/scripts/electron-rebuild.mts similarity index 50% rename from apps/desktop/scripts/rebuild.mts rename to scripts/electron-rebuild.mts index 635d4690f5..48ede8cdd1 100644 --- a/apps/desktop/scripts/rebuild.mts +++ b/scripts/electron-rebuild.mts @@ -1,15 +1,13 @@ -import { join } from "path"; -import { cpSync, existsSync, mkdirSync, rmSync } from "fs"; +import { join, resolve } from "path"; +import { cpSync, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; import { execSync } from "child_process"; import { rebuild } from "@electron/rebuild" -import { getElectronPath, isNixOS } from "../../../scripts/utils.mjs"; -import packageJson from "../package.json" with { type: "json" }; +import { getElectronPath, isNixOS } from "./utils.mjs"; -const desktopProjectRoot = join(import.meta.dirname, ".."); -const workspaceRoot = join(desktopProjectRoot, "../.."); +const workspaceRoot = join(import.meta.dirname, ".."); -function copyNativeDependencies() { - const destPath = join(desktopProjectRoot, "node_modules/better-sqlite3"); +function copyNativeDependencies(projectRoot: string) { + const destPath = join(projectRoot, "node_modules/better-sqlite3"); if (existsSync(destPath)) { rmSync(destPath, { recursive: true }); @@ -18,24 +16,28 @@ function copyNativeDependencies() { cpSync(join(workspaceRoot, "node_modules/better-sqlite3"), destPath, { recursive: true, dereference: true }); } -function rebuildNativeDependencies() { - const electronVersion = determineElectronVersion(); +function rebuildNativeDependencies(projectRoot: string) { + const electronVersion = determineElectronVersion(projectRoot); if (!electronVersion) { console.error("Unable to determine Electron version."); process.exit(1); } - console.log(`Rebuilding ${desktopProjectRoot} with ${electronVersion}...`); + console.log(`Rebuilding ${projectRoot} with ${electronVersion}...`); + const resolvedPath = resolve(projectRoot); rebuild({ - projectRootPath: desktopProjectRoot, - buildPath: desktopProjectRoot, - electronVersion + projectRootPath: resolvedPath, + buildPath: resolvedPath, + electronVersion, + force: true }); } -function determineElectronVersion() { +function determineElectronVersion(projectRoot: string) { + const packageJson = JSON.parse(readFileSync(join(projectRoot, "package.json"), "utf-8")); + if (isNixOS()) { console.log("Detected NixOS, reading Electron version from PATH"); @@ -51,5 +53,7 @@ function determineElectronVersion() { } } -copyNativeDependencies(); -rebuildNativeDependencies(); +for (const projectRoot of [ "apps/desktop", "apps/edit-docs" ]) { + copyNativeDependencies(projectRoot); + rebuildNativeDependencies(projectRoot); +} diff --git a/apps/desktop/scripts/start.mts b/scripts/electron-start.mts similarity index 53% rename from apps/desktop/scripts/start.mts rename to scripts/electron-start.mts index e283a70236..92e85f9a89 100644 --- a/apps/desktop/scripts/start.mts +++ b/scripts/electron-start.mts @@ -1,20 +1,17 @@ import { execSync } from "child_process"; -import { getElectronPath, isNixOS } from "../../../scripts/utils.mjs"; -import { join } from "path"; +import { getElectronPath, isNixOS } from "./utils.mjs"; -const projectRoot = join(import.meta.dirname, ".."); const LD_LIBRARY_PATH = isNixOS() && execSync("nix eval --raw nixpkgs#gcc.cc.lib").toString("utf-8") + "/lib"; -execSync(`${getElectronPath()} ./src/main.ts`, { +execSync(`${getElectronPath()} ${process.argv[2]}`, { stdio: "inherit", - cwd: projectRoot, env: { ...process.env, NODE_OPTIONS: "--import tsx", NODE_ENV: "development", TRILIUM_ENV: "dev", TRILIUM_RESOURCE_DIR: "../server/src", - BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node"), + BETTERSQLITE3_NATIVE_PATH: "node_modules/better-sqlite3/build/Release/better_sqlite3.node", LD_LIBRARY_PATH } }); From e71284d887a123a225aeab00f8fc591361bd17fa Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 18:23:47 +0300 Subject: [PATCH 114/121] chore(dx): get rid of references to NX --- .github/instructions/nx.instructions.md | 40 ------------- .gitignore | 3 - CLAUDE.md | 13 +--- README.md | 4 +- apps/db-compare/README.md | 4 +- apps/website/README.md | 4 +- docs/README-ZH_CN.md | 4 +- docs/README-ZH_TW.md | 4 +- eslint.config.mjs | 60 ------------------- package.json | 2 + packages/ckeditor5/README.md | 7 --- packages/ckeditor5/vite.config.ts | 6 -- packages/codemirror/README.md | 7 --- packages/codemirror/eslint.config.mjs | 24 -------- packages/codemirror/vite.config.ts | 6 -- packages/commons/README.md | 11 ---- packages/commons/eslint.config.mjs | 24 -------- .../express-partial-content/eslint.config.mjs | 23 ------- .../express-partial-content/vite.config.ts | 4 -- packages/highlightjs/README.md | 11 ---- packages/highlightjs/eslint.config.mjs | 24 -------- 21 files changed, 14 insertions(+), 271 deletions(-) delete mode 100644 .github/instructions/nx.instructions.md delete mode 100644 eslint.config.mjs delete mode 100644 packages/ckeditor5/README.md delete mode 100644 packages/codemirror/README.md delete mode 100644 packages/codemirror/eslint.config.mjs delete mode 100644 packages/commons/README.md delete mode 100644 packages/commons/eslint.config.mjs delete mode 100644 packages/express-partial-content/eslint.config.mjs delete mode 100644 packages/highlightjs/README.md delete mode 100644 packages/highlightjs/eslint.config.mjs diff --git a/.github/instructions/nx.instructions.md b/.github/instructions/nx.instructions.md deleted file mode 100644 index d5894c44d6..0000000000 --- a/.github/instructions/nx.instructions.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -applyTo: '**' ---- - -// This file is automatically generated by Nx Console - -You are in an nx workspace using Nx 21.3.9 and pnpm as the package manager. - -You have access to the Nx MCP server and the tools it provides. Use them. Follow these guidelines in order to best help the user: - -# General Guidelines -- When answering questions, use the nx_workspace tool first to gain an understanding of the workspace architecture -- For questions around nx configuration, best practices or if you're unsure, use the nx_docs tool to get relevant, up-to-date docs!! Always use this instead of assuming things about nx configuration -- If the user needs help with an Nx configuration or project graph error, use the 'nx_workspace' tool to get any errors -- To help answer questions about the workspace structure or simply help with demonstrating how tasks depend on each other, use the 'nx_visualize_graph' tool - -# Generation Guidelines -If the user wants to generate something, use the following flow: - -- learn about the nx workspace and any specifics the user needs by using the 'nx_workspace' tool and the 'nx_project_details' tool if applicable -- get the available generators using the 'nx_generators' tool -- decide which generator to use. If no generators seem relevant, check the 'nx_available_plugins' tool to see if the user could install a plugin to help them -- get generator details using the 'nx_generator_schema' tool -- you may use the 'nx_docs' tool to learn more about a specific generator or technology if you're unsure -- decide which options to provide in order to best complete the user's request. Don't make any assumptions and keep the options minimalistic -- open the generator UI using the 'nx_open_generate_ui' tool -- wait for the user to finish the generator -- read the generator log file using the 'nx_read_generator_log' tool -- use the information provided in the log file to answer the user's question or continue with what they were doing - -# Running Tasks Guidelines -If the user wants help with tasks or commands (which include keywords like "test", "build", "lint", or other similar actions), use the following flow: -- Use the 'nx_current_running_tasks_details' tool to get the list of tasks (this can include tasks that were completed, stopped or failed). -- If there are any tasks, ask the user if they would like help with a specific task then use the 'nx_current_running_task_output' tool to get the terminal output for that task/command -- Use the terminal output from 'nx_current_running_task_output' to see what's wrong and help the user fix their problem. Use the appropriate tools if necessary -- If the user would like to rerun the task or command, always use `nx run ` to rerun in the terminal. This will ensure that the task will run in the nx context and will be run the same way it originally executed -- If the task was marked as "continuous" do not offer to rerun the task. This task is already running and the user can see the output in the terminal. You can use 'nx_current_running_task_output' to get the output of the task to verify the output. - - - diff --git a/.gitignore b/.gitignore index 2981e8b0e9..1988bc8ca5 100644 --- a/.gitignore +++ b/.gitignore @@ -33,9 +33,6 @@ testem.log .DS_Store Thumbs.db -.nx/cache -.nx/workspace-data - vite.config.*.timestamp* vitest.config.*.timestamp* test-output diff --git a/CLAUDE.md b/CLAUDE.md index 942ad06e3f..5e70898951 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Overview -Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. It's built as a TypeScript monorepo using NX, with multiple applications and shared packages. +Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. It's built as a TypeScript monorepo using pnpm, with multiple applications and shared packages. ## Development Commands @@ -14,12 +14,9 @@ Trilium Notes is a hierarchical note-taking application with advanced features l ### Running Applications - `pnpm run server:start` - Start development server (http://localhost:8080) -- `pnpm nx run server:serve` - Alternative server start command -- `pnpm nx run desktop:serve` - Run desktop Electron app - `pnpm run server:start-prod` - Run server in production mode ### Building -- `pnpm nx build ` - Build specific project (server, client, desktop, etc.) - `pnpm run client:build` - Build client application - `pnpm run server:build` - Build server application - `pnpm run electron:build` - Build desktop application @@ -28,13 +25,8 @@ Trilium Notes is a hierarchical note-taking application with advanced features l - `pnpm test:all` - Run all tests (parallel + sequential) - `pnpm test:parallel` - Run tests that can run in parallel - `pnpm test:sequential` - Run tests that must run sequentially (server, ckeditor5-mermaid, ckeditor5-math) -- `pnpm nx test ` - Run tests for specific project - `pnpm coverage` - Generate coverage reports -### Linting & Type Checking -- `pnpm nx run :lint` - Lint specific project -- `pnpm nx run :typecheck` - Type check specific project - ## Architecture Overview ### Monorepo Structure @@ -94,7 +86,6 @@ Frontend uses a widget system (`apps/client/src/widgets/`): - `apps/server/src/assets/db/schema.sql` - Core database structure 4. **Configuration**: - - `nx.json` - NX workspace configuration - `package.json` - Project dependencies and scripts ## Note Types and Features @@ -154,7 +145,7 @@ Trilium provides powerful user scripting capabilities: - Update schema in `apps/server/src/assets/db/schema.sql` ## Build System Notes -- Uses NX for monorepo management with build caching +- Uses pnpm for monorepo management - Vite for fast development builds - ESBuild for production optimization - pnpm workspaces for dependency management diff --git a/README.md b/README.md index 0d6626f6e3..d760054789 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Download the repository, install dependencies using `pnpm` and then run the envi git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx run edit-docs:edit-docs +pnpm edit-docs:edit-docs ``` ### Building the Executable @@ -151,7 +151,7 @@ Download the repository, install dependencies using `pnpm` and then build the de git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx --project=desktop electron-forge:make -- --arch=x64 --platform=win32 +pnpm run --filter desktop electron-forge:make --arch=x64 --platform=win32 ``` For more details, see the [development docs](https://github.com/TriliumNext/Trilium/tree/main/docs/Developer%20Guide/Developer%20Guide). diff --git a/apps/db-compare/README.md b/apps/db-compare/README.md index 4cc13218a4..c63f49b0af 100644 --- a/apps/db-compare/README.md +++ b/apps/db-compare/README.md @@ -6,12 +6,12 @@ To build and run manually: ```sh -nx build db-compare +pnpm build db-compare node ./apps/db-compare/dist/compare.js ``` To serve development build with arguments: ```sh -nx serve db-compare --args "apps/server/spec/db/document_v214.db" --args "apps/server/spec/db/document_v214_migrated.db" +pnpm dev --args "apps/server/spec/db/document_v214.db" --args "apps/server/spec/db/document_v214_migrated.db" ``` \ No newline at end of file diff --git a/apps/website/README.md b/apps/website/README.md index 9d692a9c0e..88ad0a1c69 100644 --- a/apps/website/README.md +++ b/apps/website/README.md @@ -4,8 +4,8 @@ Landing page for Trilium Notes powered by [Svelte](https://github.com/sveltejs/c ## Developing -To run a dev server that will hot-reload changes: `pnpm nx run website:dev` +To run a dev server that will hot-reload changes: `pnpm dev` ## Building -To create a production build: `pnpm nx run website:build` +To create a production build: `pnpm build` diff --git a/docs/README-ZH_CN.md b/docs/README-ZH_CN.md index a23a24acdf..818aa71aa9 100644 --- a/docs/README-ZH_CN.md +++ b/docs/README-ZH_CN.md @@ -139,7 +139,7 @@ pnpm run server:start git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx run edit-docs:edit-docs +pnpm run edit-docs:edit-docs ``` ### 建置桌面可执行文件 @@ -149,7 +149,7 @@ pnpm nx run edit-docs:edit-docs git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx --project=desktop electron-forge:make -- --arch=x64 --platform=win32 +pnpm --filter=desktop electron-forge:make --arch=x64 --platform=win32 ``` 更多细节请参见[开发文件](https://github.com/TriliumNext/Notes/blob/develop/docs/Developer%20Guide/Developer%20Guide/Building%20and%20deployment/Running%20a%20development%20build.md)。 diff --git a/docs/README-ZH_TW.md b/docs/README-ZH_TW.md index d471bfce31..085871d619 100644 --- a/docs/README-ZH_TW.md +++ b/docs/README-ZH_TW.md @@ -139,7 +139,7 @@ pnpm run server:start git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx run edit-docs:edit-docs +pnpm edit-docs:edit-docs ``` ### 建置桌面可執行檔 @@ -149,7 +149,7 @@ pnpm nx run edit-docs:edit-docs git clone https://github.com/TriliumNext/Trilium.git cd Trilium pnpm install -pnpm nx --project=desktop electron-forge:make -- --arch=x64 --platform=win32 +pnpm --filter=desktop electron-forge:make --arch=x64 --platform=win32 ``` 更多細節請參見[開發文件](https://github.com/TriliumNext/Notes/blob/develop/docs/Developer%20Guide/Developer%20Guide/Building%20and%20deployment/Running%20a%20development%20build.md)。 diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 14d9087311..0000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,60 +0,0 @@ -import nx from "@nx/eslint-plugin"; -import reactHooks from "eslint-plugin-react-hooks"; - -export default [ - ...nx.configs["flat/base"], - ...nx.configs["flat/typescript"], - ...nx.configs["flat/javascript"], - { - files: ['**/*.{ts,tsx}'], - plugins: { 'react-hooks': reactHooks }, - rules: { - 'react-hooks/rules-of-hooks': 'error', - } - }, - { - "ignores": [ - "**/dist", - "**/vite.config.*.timestamp*", - "**/vitest.config.*.timestamp*" - ] - }, - { - files: [ - "**/*.tsx", - ], - rules: { - "@nx/enforce-module-boundaries": [ - "error", - { - enforceBuildableLibDependency: true, - allow: [ - "^.*/eslint(\\.base)?\\.config\\.[cm]?js$" - ], - depConstraints: [ - { - sourceTag: "*", - onlyDependOnLibsWithTags: [ - "*" - ] - } - ] - } - ] - } - }, - { - files: [ - "**/*.ts", - "**/*.tsx", - "**/*.cts", - "**/*.mts", - "**/*.js", - "**/*.jsx", - "**/*.cjs", - "**/*.mjs" - ], - // Override or add rules here - rules: {} - } -]; diff --git a/package.json b/package.json index 0d88353bce..6eafcf347f 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,8 @@ "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", + "edit-docs:edit-docs": "pnpm run --filter edit-docs edit-docs", + "edit-docs:edit-demo": "pnpm run --filter edit-docs edit-demo", "test:all": "pnpm test:parallel && pnpm test:sequential", "test:parallel": "pnpm --filter=!server --filter=!ckeditor5-mermaid --filter=!ckeditor5-math --parallel test", "test:sequential": "pnpm --filter=server --filter=ckeditor5-mermaid --filter=ckeditor5-math --sequential test", diff --git a/packages/ckeditor5/README.md b/packages/ckeditor5/README.md deleted file mode 100644 index 99d7186b46..0000000000 --- a/packages/ckeditor5/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# ckeditor5 - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build ckeditor5` to build the library. diff --git a/packages/ckeditor5/vite.config.ts b/packages/ckeditor5/vite.config.ts index 64a0ea57a1..a310ff5c96 100644 --- a/packages/ckeditor5/vite.config.ts +++ b/packages/ckeditor5/vite.config.ts @@ -7,12 +7,6 @@ export default defineConfig(() => ({ root: __dirname, cacheDir: '../../node_modules/.vite/packages/ckeditor5', plugins: [dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })], - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - // Configuration for building your library. - // See: https://vitejs.dev/guide/build.html#library-mode build: { outDir: './dist', emptyOutDir: true, diff --git a/packages/codemirror/README.md b/packages/codemirror/README.md deleted file mode 100644 index 34cc0ce787..0000000000 --- a/packages/codemirror/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# codemirror - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build codemirror` to build the library. diff --git a/packages/codemirror/eslint.config.mjs b/packages/codemirror/eslint.config.mjs deleted file mode 100644 index 9ee1191ff6..0000000000 --- a/packages/codemirror/eslint.config.mjs +++ /dev/null @@ -1,24 +0,0 @@ -import baseConfig from "../../eslint.config.mjs"; - -export default [ - ...baseConfig, - { - "files": [ - "**/*.json" - ], - "rules": { - "@nx/dependency-checks": [ - "error", - { - "ignoredFiles": [ - "{projectRoot}/eslint.config.{js,cjs,mjs}", - "{projectRoot}/vite.config.{js,ts,mjs,mts}" - ] - } - ] - }, - "languageOptions": { - "parser": (await import('jsonc-eslint-parser')) - } - } -]; diff --git a/packages/codemirror/vite.config.ts b/packages/codemirror/vite.config.ts index c2ba7e8603..cb3055d05c 100644 --- a/packages/codemirror/vite.config.ts +++ b/packages/codemirror/vite.config.ts @@ -7,12 +7,6 @@ export default defineConfig(() => ({ root: __dirname, cacheDir: '../../node_modules/.vite/packages/codemirror', plugins: [dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') }), ], - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - // Configuration for building your library. - // See: https://vitejs.dev/guide/build.html#library-mode build: { outDir: './dist', emptyOutDir: true, diff --git a/packages/commons/README.md b/packages/commons/README.md deleted file mode 100644 index 21a2e80a85..0000000000 --- a/packages/commons/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# commons - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build commons` to build the library. - -## Running unit tests - -Run `nx test commons` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/packages/commons/eslint.config.mjs b/packages/commons/eslint.config.mjs deleted file mode 100644 index 9ee1191ff6..0000000000 --- a/packages/commons/eslint.config.mjs +++ /dev/null @@ -1,24 +0,0 @@ -import baseConfig from "../../eslint.config.mjs"; - -export default [ - ...baseConfig, - { - "files": [ - "**/*.json" - ], - "rules": { - "@nx/dependency-checks": [ - "error", - { - "ignoredFiles": [ - "{projectRoot}/eslint.config.{js,cjs,mjs}", - "{projectRoot}/vite.config.{js,ts,mjs,mts}" - ] - } - ] - }, - "languageOptions": { - "parser": (await import('jsonc-eslint-parser')) - } - } -]; diff --git a/packages/express-partial-content/eslint.config.mjs b/packages/express-partial-content/eslint.config.mjs deleted file mode 100644 index b0d78db72a..0000000000 --- a/packages/express-partial-content/eslint.config.mjs +++ /dev/null @@ -1,23 +0,0 @@ -import baseConfig from "../../eslint.config.mjs"; - -export default [ - ...baseConfig, - { - "files": [ - "**/*.json" - ], - "rules": { - "@nx/dependency-checks": [ - "error", - { - "ignoredFiles": [ - "{projectRoot}/eslint.config.{js,cjs,mjs}" - ] - } - ] - }, - "languageOptions": { - "parser": (await import('jsonc-eslint-parser')) - } - } -]; diff --git a/packages/express-partial-content/vite.config.ts b/packages/express-partial-content/vite.config.ts index 4503819211..e813c9ac19 100644 --- a/packages/express-partial-content/vite.config.ts +++ b/packages/express-partial-content/vite.config.ts @@ -5,10 +5,6 @@ export default defineConfig(() => ({ root: __dirname, cacheDir: '../../node_modules/.vite/packages/express-partial-content', plugins: [], - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, test: { watch: false, globals: true, diff --git a/packages/highlightjs/README.md b/packages/highlightjs/README.md deleted file mode 100644 index d3897f3f70..0000000000 --- a/packages/highlightjs/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# highlightjs - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build highlightjs` to build the library. - -## Running unit tests - -Run `nx test highlightjs` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/packages/highlightjs/eslint.config.mjs b/packages/highlightjs/eslint.config.mjs deleted file mode 100644 index 9ee1191ff6..0000000000 --- a/packages/highlightjs/eslint.config.mjs +++ /dev/null @@ -1,24 +0,0 @@ -import baseConfig from "../../eslint.config.mjs"; - -export default [ - ...baseConfig, - { - "files": [ - "**/*.json" - ], - "rules": { - "@nx/dependency-checks": [ - "error", - { - "ignoredFiles": [ - "{projectRoot}/eslint.config.{js,cjs,mjs}", - "{projectRoot}/vite.config.{js,ts,mjs,mts}" - ] - } - ] - }, - "languageOptions": { - "parser": (await import('jsonc-eslint-parser')) - } - } -]; From e73724a57643c48735910b9d49e2c7fb4199b012 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 20:08:17 +0300 Subject: [PATCH 115/121] chore(dx/desktop): integrate e2e tests in same project --- .gitignore | 2 +- apps/desktop-e2e/.env | 3 -- apps/desktop-e2e/eslint.config.mjs | 15 --------- apps/desktop-e2e/package.json | 5 --- apps/desktop-e2e/tsconfig.json | 25 -------------- .../src => desktop/e2e}/example.spec.ts | 2 +- .../src => desktop/e2e}/support.ts | 0 apps/desktop/package.json | 33 ++++++++++--------- .../playwright.config.ts | 7 ++-- 9 files changed, 21 insertions(+), 71 deletions(-) delete mode 100644 apps/desktop-e2e/.env delete mode 100644 apps/desktop-e2e/eslint.config.mjs delete mode 100644 apps/desktop-e2e/package.json delete mode 100644 apps/desktop-e2e/tsconfig.json rename apps/{desktop-e2e/src => desktop/e2e}/example.spec.ts (98%) rename apps/{desktop-e2e/src => desktop/e2e}/support.ts (100%) rename apps/{desktop-e2e => desktop}/playwright.config.ts (88%) diff --git a/.gitignore b/.gitignore index 1988bc8ca5..66e9781f96 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ vite.config.*.timestamp* vitest.config.*.timestamp* test-output -apps/*/data +apps/*/data* apps/*/out upload diff --git a/apps/desktop-e2e/.env b/apps/desktop-e2e/.env deleted file mode 100644 index e1766490e8..0000000000 --- a/apps/desktop-e2e/.env +++ /dev/null @@ -1,3 +0,0 @@ -TRILIUM_INTEGRATION_TEST=memory-no-store -TRILIUM_PORT=8082 -TRILIUM_DATA_DIR=data \ No newline at end of file diff --git a/apps/desktop-e2e/eslint.config.mjs b/apps/desktop-e2e/eslint.config.mjs deleted file mode 100644 index 1603594d72..0000000000 --- a/apps/desktop-e2e/eslint.config.mjs +++ /dev/null @@ -1,15 +0,0 @@ -import playwright from "eslint-plugin-playwright"; -import baseConfig from "../../eslint.config.mjs"; - -export default [ - playwright.configs["flat/recommended"], - ...baseConfig, - { - files: [ - "**/*.ts", - "**/*.js" - ], - // Override or add rules here - rules: {} - } -]; diff --git a/apps/desktop-e2e/package.json b/apps/desktop-e2e/package.json deleted file mode 100644 index 7a1b278c71..0000000000 --- a/apps/desktop-e2e/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@triliumnext/desktop-e2e", - "version": "0.0.1", - "private": true -} diff --git a/apps/desktop-e2e/tsconfig.json b/apps/desktop-e2e/tsconfig.json deleted file mode 100644 index 1df867f3a5..0000000000 --- a/apps/desktop-e2e/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "allowJs": true, - "outDir": "out-tsc/playwright", - "sourceMap": false - }, - "include": [ - "**/*.ts", - "**/*.js", - "playwright.config.ts", - "src/**/*.spec.ts", - "src/**/*.spec.js", - "src/**/*.test.ts", - "src/**/*.test.js", - "src/**/*.d.ts" - ], - "exclude": [ - "out-tsc", - "test-output", - "eslint.config.js", - "eslint.config.mjs", - "eslint.config.cjs" - ] -} diff --git a/apps/desktop-e2e/src/example.spec.ts b/apps/desktop/e2e/example.spec.ts similarity index 98% rename from apps/desktop-e2e/src/example.spec.ts rename to apps/desktop/e2e/example.spec.ts index 7deb514824..d07085ef91 100644 --- a/apps/desktop-e2e/src/example.spec.ts +++ b/apps/desktop/e2e/example.spec.ts @@ -60,7 +60,7 @@ test('First setup', async () => { // Verify the shared link is valid const requestContext = await request.newContext(); const response = await requestContext.get(linkUrl!); - expect(response).toBeOK(); + await expect(response).toBeOK(); await mainWindow.waitForTimeout(5000); }); diff --git a/apps/desktop-e2e/src/support.ts b/apps/desktop/e2e/support.ts similarity index 100% rename from apps/desktop-e2e/src/support.ts rename to apps/desktop/e2e/support.ts diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 03612216dc..fdd9ce2850 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -4,6 +4,22 @@ "description": "Build your personal knowledge base with Trilium Notes", "private": true, "main": "src/main.ts", + "license": "AGPL-3.0-only", + "author": { + "name": "Trilium Notes Team", + "email": "contact@eliandoran.me", + "url": "https://github.com/TriliumNext/Notes" + }, + "scripts": { + "dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx ../../scripts/electron-start.mts src/main.ts", + "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts", + "build": "tsx scripts/build.ts", + "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 ELECTRON_IS_DEV=0 electron dist", + "electron-forge:make": "pnpm build && cross-env electron-forge make dist", + "electron-forge:package": "pnpm build && electron-forge package dist", + "electron-forge:start": "pnpm build && electron-forge start dist", + "e2e": "pnpm build && cross-env TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=8082 TRILIUM_DATA_DIR=data-e2e ELECTRON_IS_DEV=0 playwright test" + }, "dependencies": { "@electron/remote": "2.1.3", "better-sqlite3": "^12.0.0", @@ -28,20 +44,5 @@ "@electron-forge/maker-zip": "7.8.3", "@electron-forge/plugin-auto-unpack-natives": "7.8.3", "prebuild-install": "^7.1.1" - }, - "scripts": { - "dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx ../../scripts/electron-start.mts src/main.ts", - "start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts", - "build": "tsx scripts/build.ts", - "start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist", - "electron-forge:make": "pnpm build && cross-env electron-forge make dist", - "electron-forge:package": "pnpm build && electron-forge package dist", - "electron-forge:start": "pnpm build && electron-forge start dist" - }, - "license": "AGPL-3.0-only", - "author": { - "name": "Trilium Notes Team", - "email": "contact@eliandoran.me", - "url": "https://github.com/TriliumNext/Notes" - } + } } \ No newline at end of file diff --git a/apps/desktop-e2e/playwright.config.ts b/apps/desktop/playwright.config.ts similarity index 88% rename from apps/desktop-e2e/playwright.config.ts rename to apps/desktop/playwright.config.ts index d1b7c40f29..9ac0337914 100644 --- a/apps/desktop-e2e/playwright.config.ts +++ b/apps/desktop/playwright.config.ts @@ -1,10 +1,5 @@ import { defineConfig, devices } from '@playwright/test'; -require('dotenv').config({ - path: __dirname + "/" + ".env" -}); - - /** * See https://playwright.dev/docs/test-configuration. */ @@ -14,6 +9,8 @@ export default defineConfig({ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', }, + testDir: "e2e", + outputDir: "test-output", projects: [ { name: "chromium", From 6163ab8c42454bf51863979c2da1e93bd8f16798 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 20:08:29 +0300 Subject: [PATCH 116/121] refactor(dx): remove unused .env files --- .env | 1 - apps/edit-docs/.env | 7 ------- 2 files changed, 8 deletions(-) delete mode 100644 .env delete mode 100644 apps/edit-docs/.env diff --git a/.env b/.env deleted file mode 100644 index ff859e6225..0000000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -NODE_OPTIONS=--max_old_space_size=4096 \ No newline at end of file diff --git a/apps/edit-docs/.env b/apps/edit-docs/.env deleted file mode 100644 index bb17074c37..0000000000 --- a/apps/edit-docs/.env +++ /dev/null @@ -1,7 +0,0 @@ -TRILIUM_DATA_DIR=../data -TRILIUM_INTEGRATION_TEST=memory-no-store -TRILIUM_PORT=37741 - -# Paths are relative to dist root -DOCS_ROOT=../../../docs -USER_GUIDE_ROOT=../../../apps/server/src/assets/doc_notes/en/User Guide \ No newline at end of file From ee9afb7fa0d324e676f06f28674d7032e215c5c9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 20:09:19 +0300 Subject: [PATCH 117/121] fix(next): 1px border on tab when background effects are on --- .../src/stylesheets/theme-next/shell.css | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index b3b22f3d8d..c709e457ab 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -886,6 +886,80 @@ body.layout-horizontal .tab-row-container { border-bottom: 1px solid var(--launcher-pane-horiz-border-color); } +body.electron.background-effects.layout-horizontal .tab-row-container { + border-bottom: unset !important; +} + +body.electron.background-effects.layout-horizontal .note-tab-wrapper { + top: 1px; +} + +body.electron.background-effects.layout-horizontal .tab-row-container .toggle-button { + position: relative; +} + +body.electron.background-effects.layout-horizontal .tab-row-container .toggle-button:after { + content: ""; + position: absolute; + bottom: 0; + left: -10px; + right: -10px; + top: 29px; + height: 1px; + border-bottom: 1px solid var(--launcher-pane-horiz-border-color); +} + +body.electron.background-effects.layout-horizontal .tab-row-container .tab-scroll-button-left, +body.electron.background-effects.layout-horizontal .tab-row-container .tab-scroll-button-right { + position: relative; +} + +body.electron.background-effects.layout-horizontal .tab-row-container .tab-scroll-button-left:after, +body.electron.background-effects.layout-horizontal .tab-row-container .tab-scroll-button-right:after { + content: ""; + position: absolute; + bottom: 0; + left: 0px; + right: 0px; + height: 1px; + border-bottom: 1px solid var(--launcher-pane-horiz-border-color); +} + +body.electron.background-effects.layout-horizontal .tab-row-container .note-tab[active]:before { + content: ""; + position: absolute; + bottom: 0; + left: -32768px; + top: var(--tab-height); + right: calc(100% - 1px); + height: 1px; + border-bottom: 1px solid var(--launcher-pane-horiz-border-color); +} + +body.electron.background-effects.layout-horizontal .tab-row-container .note-tab[active]:after { + content: ""; + position: absolute; + bottom: 0; + left: 100%; + top: var(--tab-height); + right: 0; + width: 100vw; + height: 1px; + border-bottom: 1px solid var(--launcher-pane-horiz-border-color); +} + +body.electron.background-effects.layout-horizontal .tab-row-container .note-new-tab:before { + content: ""; + position: absolute; + bottom: 0; + left: -4px; + top: calc(var(--tab-height), -1); + right: 0; + width: 100vw; + height: 1px; + border-bottom: 1px solid var(--launcher-pane-horiz-border-color); +} + body.layout-vertical.electron.platform-darwin .tab-row-container { border-bottom: 1px solid var(--subtle-border-color); } From 53df7835d3fb85304839f21f35ea2cfa58a96bc5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 20:24:23 +0300 Subject: [PATCH 118/121] Revert "chore(dx/server): remove dependency on CKEditor for now" This reverts commit 4739e2e3b265bd2e6f7e603bb0e380f613186d7e. --- apps/server/src/services/export/zip.ts | 3 +++ apps/server/src/types.d.ts | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/apps/server/src/services/export/zip.ts b/apps/server/src/services/export/zip.ts index 58ab7074fc..9d3e73d255 100644 --- a/apps/server/src/services/export/zip.ts +++ b/apps/server/src/services/export/zip.ts @@ -21,6 +21,7 @@ import type AttributeMeta from "../meta/attribute_meta.js"; import type BBranch from "../../becca/entities/bbranch.js"; import type { Response } from "express"; import type { NoteMetaFile } from "../meta/note_meta.js"; +import cssContent from "@triliumnext/ckeditor5/content.css"; type RewriteLinksFn = (content: string, noteMeta: NoteMeta) => string; @@ -513,6 +514,8 @@ ${markdownContent}`; if (!cssMeta.dataFileName) { return; } + + archive.append(cssContent, { name: cssMeta.dataFileName }); } try { diff --git a/apps/server/src/types.d.ts b/apps/server/src/types.d.ts index 4bcac86d28..c302e27d89 100644 --- a/apps/server/src/types.d.ts +++ b/apps/server/src/types.d.ts @@ -23,6 +23,12 @@ declare module "is-animated" { export default isAnimated; } +declare module "@triliumnext/ckeditor5/content.css" { + const content: string; + export default content; +} + + declare module "@triliumnext/share-theme/*.ejs" { const content: string; export default content; From 534113b303a9638d9a4b0f49008003d0f3b51e77 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Sep 2025 21:09:56 +0300 Subject: [PATCH 119/121] fix(dx/share): ckcontent for share theme not preserved --- apps/server/scripts/build.ts | 1 + apps/server/src/services/export/zip.ts | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/server/scripts/build.ts b/apps/server/scripts/build.ts index 8d62921ac7..84862d060d 100644 --- a/apps/server/scripts/build.ts +++ b/apps/server/scripts/build.ts @@ -12,6 +12,7 @@ async function main() { // Copy node modules dependencies build.copyNodeModules([ "better-sqlite3", "bindings", "file-uri-to-path" ]); build.copy("/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", "xhr-sync-worker.js"); + build.copy("/node_modules/ckeditor5/dist/ckeditor5-content.css", "ckeditor5-content.css"); // Integrate the client. build.triggerBuildAndCopyTo("apps/client", "public/"); diff --git a/apps/server/src/services/export/zip.ts b/apps/server/src/services/export/zip.ts index 9d3e73d255..91d01c8c74 100644 --- a/apps/server/src/services/export/zip.ts +++ b/apps/server/src/services/export/zip.ts @@ -6,7 +6,7 @@ import path from "path"; import mimeTypes from "mime-types"; import mdService from "./markdown.js"; import packageInfo from "../../../package.json" with { type: "json" }; -import { getContentDisposition, escapeHtml, getResourceDir } from "../utils.js"; +import { getContentDisposition, escapeHtml, getResourceDir, isDev } from "../utils.js"; import protectedSessionService from "../protected_session.js"; import sanitize from "sanitize-filename"; import fs from "fs"; @@ -21,7 +21,6 @@ import type AttributeMeta from "../meta/attribute_meta.js"; import type BBranch from "../../becca/entities/bbranch.js"; import type { Response } from "express"; import type { NoteMetaFile } from "../meta/note_meta.js"; -import cssContent from "@triliumnext/ckeditor5/content.css"; type RewriteLinksFn = (content: string, noteMeta: NoteMeta) => string; @@ -515,7 +514,11 @@ ${markdownContent}`; return; } - archive.append(cssContent, { name: cssMeta.dataFileName }); + const cssFile = isDev + ? path.join(__dirname, "../../../../../node_modules/ckeditor5/dist/ckeditor5-content.css") + : path.join(getResourceDir(), "ckeditor5-content.css"); + + archive.append(fs.readFileSync(cssFile, "utf-8"), { name: cssMeta.dataFileName }); } try { From 62a0a44049b1a632d2a7ad3ae9770646c2fd8111 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 4 Sep 2025 09:26:16 +0300 Subject: [PATCH 120/121] chore(dx): have electron-rebuild read from path on NixOS too --- scripts/utils.mts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/utils.mts b/scripts/utils.mts index ea63f3760c..65b1bad6ea 100644 --- a/scripts/utils.mts +++ b/scripts/utils.mts @@ -23,6 +23,15 @@ function resetPath() { export function getElectronPath() { if (isNixOS()) { resetPath(); + + try { + const path = execSync("which electron").toString("utf-8").trimEnd(); + return path; + } catch (e) { + // Nothing to do, since we have a fallback below. + } + + console.log("Using default since no Electron is available in path."); return execSync("nix eval --raw nixpkgs#electron_37").toString("utf-8") + "/bin/electron"; } else { return "electron"; From df1b87e3ac50d4e54c85000a4714c86fd3004e99 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 4 Sep 2025 12:12:23 +0300 Subject: [PATCH 121/121] chore(dx/nix): fix flake partially --- flake.nix | 32 ++++++++++++++++---------------- scripts/utils.mts | 12 +++++++++--- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/flake.nix b/flake.nix index ccf7c7b5aa..d819195be4 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,7 @@ stdenv wrapGAppsHook3 xcodebuild + which ; fullCleanSourceFilter = @@ -46,8 +47,7 @@ baseName = baseNameOf (toString name); in # No need to copy the flake. - # Don't copy local development instance of NX cache. - baseName != "flake.nix" && baseName != "flake.lock" && baseName != ".nx" + baseName != "flake.nix" && baseName != "flake.lock" ); fullCleanSource = src: @@ -93,19 +93,15 @@ postConfigure = '' - chmod +x node_modules/.pnpm/electron@*/node_modules/electron/install.js + chmod +x node_modules/electron/install.js patchShebangs --build node_modules - '' - + lib.optionalString stdenv.hostPlatform.isLinux '' - patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - node_modules/.pnpm/sass-embedded-linux-x64@*/node_modules/sass-embedded-linux-x64/dart-sass/src/dart ''; extraNativeBuildInputs = [ moreutils # sponge nodejs.python - removeReferencesTo + removeReferencesTo ] ++ lib.optionals (app == "desktop") [ copyDesktopItems @@ -113,6 +109,10 @@ # https://github.com/NixOS/nixpkgs/issues/172583 makeShellWrapper wrapGAppsHook3 + + # For determining the Electron version to rebuild for: + which + electron ] ++ lib.optionals (app == "server") [ makeBinaryWrapper @@ -129,7 +129,7 @@ ${preBuildCommands} ''; - scriptFull = "pnpm nx ${buildTask} --outputStyle stream --verbose"; + scriptFull = "pnpm run ${buildTask}"; installPhase = '' runHook preInstall @@ -181,12 +181,12 @@ desktop = makeApp { app = "desktop"; - preBuildCommands = "export npm_config_nodedir=${electron.headers}"; - buildTask = "run desktop:rebuild-deps"; + preBuildCommands = "export npm_config_nodedir=${electron.headers}; pnpm postinstall"; + buildTask = "desktop:build"; mainProgram = "trilium"; installCommands = '' - remove-references-to -t ${electron.headers} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi - remove-references-to -t ${nodejs.python} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${electron.headers} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${nodejs.python} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi mkdir -p $out/{bin,share/icons/hicolor/512x512/apps,opt/trilium} cp --archive apps/desktop/dist/* $out/opt/trilium @@ -203,11 +203,11 @@ server = makeApp { app = "server"; preBuildCommands = "pushd apps/server; pnpm rebuild; popd"; - buildTask = "--project=server build"; + buildTask = "server:build"; mainProgram = "trilium-server"; installCommands = '' - remove-references-to -t ${nodejs.python} apps/server/dist/node_modules/better-sqlite3/build/config.gypi - remove-references-to -t ${pnpm} apps/server/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${nodejs.python} apps/server/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${pnpm} apps/server/dist/node_modules/better-sqlite3/build/config.gypi pushd apps/server/dist rm -rf node_modules/better-sqlite3/build/Release/obj \ diff --git a/scripts/utils.mts b/scripts/utils.mts index 65b1bad6ea..8490b50fd2 100644 --- a/scripts/utils.mts +++ b/scripts/utils.mts @@ -1,11 +1,17 @@ import { execSync } from "child_process"; -import { readFileSync } from "fs"; +import { existsSync, readFileSync } from "fs"; import { platform } from "os"; export function isNixOS() { if (platform() !== "linux") return false; - const osReleaseFile = readFileSync("/etc/os-release", "utf-8"); - return osReleaseFile.includes("ID=nixos"); + + const osReleasePath = "/etc/os-release"; + if (existsSync(osReleasePath)) { + const osReleaseFile = readFileSync(osReleasePath, "utf-8"); + return osReleaseFile.includes("ID=nixos"); + } else { + return !!process.env.NIX_STORE; + } } function resetPath() {