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 a6e31de5d..681d2acf5 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 95728b99e..8b926c495 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 8b926c495..c0a172c73 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 cf6e7c6eb..331de6d94 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 681d2acf5..c8da5f3b0 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 c8da5f3b0..a147678f5 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 a147678f5..ec5d33940 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 c0a172c73..38c823864 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 69753b0db..4edfd6e38 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 404a47fec..cd8b3f0ce 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 bee48c023..1c17b1ca9 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 cd8b3f0ce..e1fa130bc 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 b2604614c..0d192381d 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 e1fa130bc..5514d287f 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 ad83baab6..c8ba56d4d 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 f4465f905..7802d7c5a 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 5514d287f..3a42463bb 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 7802d7c5a..d1d0b61fd 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 3a42463bb..b53721aec 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 d1d0b61fd..555214086 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 b53721aec..d93a5c450 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 d93a5c450..46ce4d7ba 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 46ce4d7ba..3222763aa 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 049b21810..726a1260e 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 eb9a069f5..000000000 --- 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 aba6dc787..28ecfa66d 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 c274b43ce..35c056af2 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 9d3e73d25..58ab7074f 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 c302e27d8..4bcac86d2 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 a36d33d01..d9232fca4 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 eff04806c..8b9be2e0a 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 d4a78437b..437e4d40f 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 c50bbb1ba..1c9d2ab05 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 2d84b2145..377abce2c 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 0755f8c30..b2eb2e16b 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 5024f813e..e4f34f135 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 7c58f2c78..a6f30aba3 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 16e82a001..41d4c1594 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 49562a8cc..311e70b77 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 c6eb24ed1..e2214e515 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 640313bff..72ef792ac 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 d9232fca4..93fa686b0 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 d0de552fd..5484e0158 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 2695d1fc3..076b7a647 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 28ecfa66d..b2cba94d0 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 09749c270..877dd4cb2 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 5484e0158..99d5fac72 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 a16ad1bbb..bbd613a9e 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 57ff4084e..cf644cd3b 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 2ba27be02..351ed4c1e 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 805ffe276..507b9ff5a 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 67dfee187..47e02f1d1 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 ba117aaf7..d5659645e 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 b30b929fe..000000000 --- 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 29ffec2a7..355268179 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 99d5fac72..b076f6db2 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 06d42a2cc..7c25d542c 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 076b7a647..237a3f5a3 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 e1163e2b5..696e7900e 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 09c78f880..ec765ecce 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 99edeece8..23716647d 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 4333ece78..09be57e1c 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 c54b77187..719eb6901 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 66f96f2b6..b93f1d62c 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 4333ece78..09be57e1c 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 eecb33f8d..8b4dfd21f 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 828157d66..0d12a7d28 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 4333ece78..09be57e1c 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 f33a90620..6d6982ae2 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 a4efff473..4c4a2794c 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 4333ece78..09be57e1c 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 58fa30892..d4f750bc8 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 d5fc6519e..0edc9c833 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 06f8e2d83..a2ec5fd56 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 4333ece78..09be57e1c 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 daa888751..24d5a1a35 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 4eb15e913..7bb78aa93 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 311e70b77..81d63ffd1 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 000000000..782ca02d7 --- /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 35c056af2..c4ecf757f 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 9fc9ba2e5..0cc7bb255 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 782ca02d7..000000000 --- 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 c4ecf757f..35c056af2 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 0cc7bb255..9fc9ba2e5 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 a624fe686..2ec0c1daa 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 037fd23c0..5b76fe8e8 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 726a1260e..d7bfb82fc 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 a7bc00b42..a66a72837 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 9ddd5e4ff..d8228ca19 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 b076f6db2..cd413584b 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 93fa686b0..347c8595a 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 000000000..225333bb0 --- /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 225333bb0..85db1651d 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 85db1651d..7011f4d5c 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 27811a06e..381b091bc 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 72ef792ac..29ee10ef5 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 7011f4d5c..41e826453 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 45b0a0544..f6d93d94a 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 c97f18c49..b260b4115 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 41e826453..b6921a4c0 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 cd413584b..6c8dc6bc3 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 b6921a4c0..65a07d3bc 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 751c3c679..2d1c59793 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 5b76fe8e8..25d622b77 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 347c8595a..bff80d21c 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 29ee10ef5..a07d6120f 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 6c8dc6bc3..02e69c449 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 65a07d3bc..29147ec5b 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 02e69c449..a1a2bfb63 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 29147ec5b..b02969722 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 000000000..27790488b --- /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 b02969722..c4a17941d 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 27790488b..5857ffce4 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 25d622b77..e5cbdf01b 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 000000000..07e31f71a --- /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 c4a17941d..5606644f5 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 5857ffce4..e4706b03b 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 a66a72837..a7bc00b42 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 d8228ca19..eeb36f9d7 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 07e31f71a..1b42b4eab 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 e5cbdf01b..f59c4f0b6 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 e4706b03b..d8207d4ed 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 eeb36f9d7..5420a5b43 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 0866439e3..504e81b21 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 3222763aa..909752a20 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 909752a20..56728f64c 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 56728f64c..64cf8fdd8 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 555214086..5de075bc1 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 5de075bc1..90c6afee6 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 1d6a0d53c..000000000 --- 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 f59c4f0b6..1eb5233ad 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 000000000..8f05c9db5 --- /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 000000000..192f36f4c --- /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 2c068ac8f..cf29be32e 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 000000000..d8cefe4c5 --- /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 42314f055..343e2489c 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 686467780..568ace5f5 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 8f05c9db5..a37c72075 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 192f36f4c..df956fc48 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 15f5af389..206a828d6 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 229e09ec7..36cca4b5e 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 d7bfb82fc..c7c746135 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 a37c72075..f367c3cde 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 df956fc48..17245205c 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 a07d6120f..04a5b0911 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 1eb5233ad..036745fe2 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 1b42b4eab..c0c7bdb73 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 b2cba94d0..46c12a288 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 d8207d4ed..8da5be9d1 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 add8f3156..540b7ddcb 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 b0ab05212..c5935172d 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 443f2aa35..c4789cb2c 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 f20c5a2d4..d9edb2cc2 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 20161630f..133d40622 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 bff80d21c..6ade52f89 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 5606644f5..8d62921ac 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 f367c3cde..25b341ada 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 c4c6ed551..7b2ee4ecd 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 25086af64..b4f047aea 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 381b091bc..9a979ccdb 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 a9970fd0a..0844eb347 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 6ade52f89..6ad5f1a60 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 2e70fc803..7a1b278c7 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 4e6a141c8..aa8f73e17 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 927089448..000000000 --- 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 377abce2c..33a775b76 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 b2eb2e16b..c49c08aee 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 e4f34f135..4c00d5173 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 a6f30aba3..486b26559 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 41d4c1594..006f3e13b 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 81d63ffd1..2159a3517 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 f6d93d94a..2e1cba9a0 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 8b9be2e0a..ebc1884d0 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 437e4d40f..11a2848f5 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 e2214e515..249e2373f 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 7c2740589..0868d34a3 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 1c9d2ab05..7d69ecd39 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 46c12a288..27efa733a 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 c7c746135..b742d0214 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 c42623b76..3215c90ee 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 76829347a..e9d88fcfa 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 9a979ccdb..ef91684f2 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 c5935172d..7e15f1e20 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 f13f7d757..9087bb8d5 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 75de90147..997e4f036 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 6ad5f1a60..9bbe77ccd 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 b742d0214..f6751f4ea 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 f6751f4ea..91b5c14c8 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 370ae38a6..3bea74336 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 b134ded67..623dad60c 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 94194e2b1..000000000 --- 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 3612d5d9b..000000000 --- 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 43591d92c..000000000 --- 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 9bd1c0d93..000000000 --- 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 e33a78275..000000000 --- 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 9bbe77ccd..cc0910bf0 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 e64c42352..4db7b7470 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 28994bb29..000000000 --- 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 4ee21bb3c..9ee96f4c1 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 036745fe2..16d193593 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 17245205c..a2151ba2d 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 cc0910bf0..5985632bd 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 46ef21986..000000000 --- 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 9ee6c438e..000000000 --- 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 d49595a69..000000000 --- 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 16d193593..2a98a880b 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 25b341ada..635d4690f 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 a2151ba2d..e283a7023 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 d8cefe4c5..ea63f3760 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 2a98a880b..2a904bc79 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 997e4f036..719bb2fbf 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 f506db695..1056ebb96 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 540b7ddcb..26d35b79f 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 2a904bc79..5b98a2099 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 719bb2fbf..e7592bc69 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 3f81eb26a..90e17afef 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 b4f047aea..711aaaaeb 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 2e70fc803..2c04ce445 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 a9970fd0a..f17a61555 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 0f1d33651..ec94a94e6 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 abbf7154a..57039d02c 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 0f1d33651..04752b83a 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 2d84b2145..14fa63b28 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 0755f8c30..10d021cb0 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 5024f813e..f1bb3c0d2 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 7c58f2c78..4644bb337 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 16e82a001..9920301d8 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 0f1d33651..835f3b0ef 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 90c6afee6..8fda98233 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 8fda98233..bb2eec953 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 64cf8fdd8..6499fa0b4 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 bb2eec953..86fad2682 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 0d192381d..41bdd2154 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 ec5d33940..b3b22f3d8 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 9087bb8d5..000000000 --- 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 e7592bc69..3d7da5782 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 877dd4cb2..2981e8b0e 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 237a3f5a3..2e14996e4 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 c8f7343fc..c3e845111 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 1eca3d7c6..de3cfba6c 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 c3e845111..444ef6e2d 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 7e18ca505..37162ea28 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 5c39051eb..e4ac1f603 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 b260b4115..b438f0c0c 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 0f1d33651..c4d9b05e5 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 fa6d05ace..75679f987 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 5b98a2099..03612216d 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 c691d9420..9257d3670 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 444ef6e2d..0d88353bc 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 635d4690f..48ede8cdd 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 e283a7023..92e85f9a8 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 d5894c44d..000000000 --- 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 2981e8b0e..1988bc8ca 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 942ad06e3..5e7089895 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 0d6626f6e..d76005478 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 4cc13218a..c63f49b0a 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 9d692a9c0..88ad0a1c6 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 a23a24acd..818aa71aa 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 d471bfce3..085871d61 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 14d908731..000000000 --- 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 0d88353bc..6eafcf347 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 99d7186b4..000000000 --- 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 64a0ea57a..a310ff5c9 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 34cc0ce78..000000000 --- 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 9ee1191ff..000000000 --- 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 c2ba7e860..cb3055d05 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 21a2e80a8..000000000 --- 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 9ee1191ff..000000000 --- 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 b0d78db72..000000000 --- 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 450381921..e813c9ac1 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 d3897f3f7..000000000 --- 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 9ee1191ff..000000000 --- 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 1988bc8ca..66e9781f9 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 e1766490e..000000000 --- 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 1603594d7..000000000 --- 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 7a1b278c7..000000000 --- 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 1df867f3a..000000000 --- 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 7deb51482..d07085ef9 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 03612216d..fdd9ce285 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 d1b7c40f2..9ac033791 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 ff859e622..000000000 --- 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 bb17074c3..000000000 --- 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 b3b22f3d8..c709e457a 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 58ab7074f..9d3e73d25 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 4bcac86d2..c302e27d8 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 8d62921ac..84862d060 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 9d3e73d25..91d01c8c7 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 ea63f3760..65b1bad6e 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 ccf7c7b5a..d819195be 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 65b1bad6e..8490b50fd 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() {