From ad7f6547a1f1775fefef9567a9021c1f28aeea08 Mon Sep 17 00:00:00 2001 From: trickypr <23250792+trickypr@users.noreply.github.com> Date: Tue, 2 Jan 2024 13:59:40 +1100 Subject: [PATCH 01/10] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Move=20a=20lot=20of?= =?UTF-8?q?=20files=20around=20(this=20is=20broken)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actors/lib/ClickHandlerChild.sys.mjs | 29 +- .../actors/lib/ClickHandlerParent.sys.mjs | 10 +- .../actors/lib/ContextMenuChild.sys.mjs | 74 +- .../actors/lib/ContextMenuParent.sys.mjs | 11 +- .../actors/lib/LinkHandlerChild.sys.mjs | 49 +- .../actors/lib/LinkHandlerParent.sys.mjs | 6 +- apps/actors/package.json | 9 + apps/content/package.json | 41 + .../patches}/@melt-ui__svelte@0.64.5.patch | 0 .../content/patches}/svelte@4.2.1.patch | 0 .../webpack-license-plugin@4.4.2.patch | 0 apps/content/pnpm-lock.yaml | 3356 ++++++++++++++++ .../content/src}/bookmarks/Bookmarks.svelte | 0 .../content/src}/bookmarks/bookmarks.css | 0 .../content/src}/bookmarks/bookmarks.ts | 0 .../components/BookmarkEditor.svelte | 0 .../bookmarks/components/BookmarkItem.svelte | 0 .../bookmarks/components/BookmarkTree.svelte | 0 .../content/src}/browser/Browser.svelte | 0 .../content/src}/browser/browser.css | 0 .../content/src}/browser/browser.ts | 0 .../src}/browser/components/Browser.svelte | 0 .../components/customizableUI/Block.svelte | 0 .../customizableUI/BrowserView.svelte | 0 .../customizableUI/CustomizableUI.svelte | 0 .../customizableUI/IconButton.svelte | 0 .../customizableUI/OmniboxContainer.svelte | 0 .../components/customizableUI/Spacer.svelte | 0 .../components/customizableUI/Tabs.svelte | 0 .../customizableUI/UIItemBase.svelte | 0 .../components/customizableUI/index.ts | 0 .../components/keybindings/Keybinding.svelte | 0 .../components/keybindings/Keybindings.svelte | 0 .../menus/BrowserContextMenu.svelte | 0 .../menus/HamburgerMenu/HamburgerMenu.svelte | 0 .../HamburgerMenu/HamburgerMenuItem.svelte | 0 .../src}/browser/components/menus/index.ts | 0 .../components/omnibox/Bookmarks.svelte | 0 .../browser/components/omnibox/Omnibox.svelte | 0 .../components/omnibox/PageAction.svelte | 0 .../src}/browser/components/tabs/Tab.svelte | 0 .../src}/browser/components/tabs/tabDrag.ts | 0 .../content/src}/browser/lib/binaryEnums.ts | 0 .../content/src}/browser/lib/devtools.ts | 0 .../content/src}/browser/lib/fp.ts | 0 .../content/src}/browser/lib/keybinds.ts | 0 .../lib/modules/EPageActionsBindings.ts | 0 .../content/src}/browser/lib/resources.ts | 0 .../content/src}/browser/lib/shortcuts.ts | 0 .../content/src}/browser/lib/spinlock.ts | 0 .../content/src}/browser/lib/window/api.ts | 0 .../src}/browser/lib/window/arguments.ts | 0 .../src}/browser/lib/window/contextMenu.ts | 0 .../content/src}/browser/lib/window/index.ts | 0 .../src}/browser/lib/window/initialize.ts | 0 .../content/src}/browser/lib/window/tab.ts | 0 .../content/src}/browser/lib/window/tabs.ts | 0 .../content/src}/browser/lib/window/window.ts | 0 .../src}/browser/lib/xul/NSBrowserAccess.ts | 0 .../src}/browser/lib/xul/XULBrowserWindow.ts | 0 .../content/src}/browser/lib/xul/browser.ts | 0 .../content/src}/browser/lib/xul/ccWrapper.ts | 0 .../content/src}/browser/lib/xul/domevents.ts | 0 .../content/src}/contentAreaUtils.d.ts | 0 .../content/src}/credits/Credits.svelte | 0 .../content/src}/credits/credits.ts | 0 .../content/src}/globalOverlay.d.ts | 0 .../content/src}/history/History.svelte | 0 .../src}/history/component/Entry.svelte | 0 .../component/HistoryContainerNode.svelte | 0 .../history/component/HistoryItemNode.svelte | 0 .../src}/history/component/HistoryNode.svelte | 0 .../content/src}/history/history.ts | 0 {src/content => apps/content/src}/index.html | 0 {src/content => apps/content/src}/reset.d.ts | 0 .../content/src}/settings/Settings.svelte | 0 .../src}/settings/components/Category.svelte | 0 .../settings/components/SubCategory.svelte | 0 .../ContextMenuPref/ContextMenuPref.svelte | 0 .../ContextMenuPref/ContextMenuPreview.svelte | 0 .../pref/ContextMenuPref/InsertItem.svelte | 0 .../pref/ContextMenuPref/PreviewItem.svelte | 0 .../components/pref/ContextMenuPref/index.ts | 0 .../pref/ContextMenuPref/prefWrapper.ts | 0 .../pref/CustomizableUI/Component.svelte | 0 .../CustomizableUI/Components/Block.svelte | 0 .../CustomizableUI/Components/Browser.svelte | 0 .../Components/IconButton.svelte | 0 .../CustomizableUI/Components/Omnibox.svelte | 0 .../CustomizableUI/Components/Spacer.svelte | 0 .../CustomizableUI/Components/Tabs.svelte | 0 .../Components/TempDropTarget.svelte | 0 .../pref/CustomizableUI/Components/index.ts | 0 .../pref/CustomizableUI/Configure.svelte | 0 .../CustomizableUI/CustomizableUIPref.svelte | 0 .../components/pref/CustomizableUI/index.ts | 0 .../components/pref/SelectPref.svelte | 0 .../components/pref/StringPref.svelte | 0 .../src}/settings/components/pref/index.ts | 0 .../components/sidebar/Sidebar.svelte | 0 .../src}/settings/components/sidebar/index.ts | 0 .../settings/components/sidebar/sidebar.ts | 0 .../content/src}/settings/settings.css | 0 .../content/src}/settings/settings.ts | 0 .../content/src}/shared/Deferred.ts | 0 .../content/src}/shared/ExtBookmarkAPI.ts | 0 .../content/src}/shared/ExtHistoryAPI.ts | 0 .../src}/shared/TypedImportUtilities.ts | 0 .../src}/shared/components/Button.svelte | 0 .../src}/shared/components/FancySelect.svelte | 0 .../src}/shared/components/Spinner.svelte | 0 .../src}/shared/components/TextInput.svelte | 0 .../shared/components/ToolbarButton.svelte | 0 .../shared/components/Tree/TreeView.svelte | 0 .../src}/shared/components/Tree/index.ts | 0 .../content/src}/shared/components/index.ts | 0 .../src}/shared/contextMenus/MenuItem.ts | 0 .../content/src}/shared/contextMenus/index.ts | 0 .../src}/shared/contextMenus/menuItems.ts | 0 .../src}/shared/customizableUI/helpers.ts | 0 .../src}/shared/customizableUI/index.ts | 0 .../src}/shared/customizableUI/items.ts | 0 .../src}/shared/customizableUI/style.ts | 0 .../src}/shared/customizableUI/types.ts | 0 .../content/src}/shared/domUtils.ts | 0 .../content/src}/shared/lazy.ts | 0 .../content/src}/shared/mittUtils.ts | 0 .../content/src}/shared/search/constants.ts | 0 .../content/src}/shared/search/engine.ts | 0 .../content/src}/shared/search/provider.ts | 0 .../shared/search/providers/EngineProvider.ts | 0 .../shared/search/providers/URLProvider.ts | 0 .../src}/shared/search/providers/data/tld.txt | 0 .../src}/shared/search/providers/index.ts | 0 .../content/src}/shared/search/resources.ts | 0 .../content/src}/shared/search/suggestions.ts | 0 .../content/src}/shared/styles/global.css | 0 .../content/src}/shared/styles/window.css | 0 .../src}/shared/svelteUtils.svelte.license.md | 0 .../content/src}/shared/svelteUtils.ts | 0 .../content/src}/shared/xul/PlacesModel.ts | 0 .../content/src}/shared/xul/messageReciver.ts | 0 .../content/src}/shared/xul/observable.ts | 0 .../content/src}/tests/manager.ts | 0 .../src}/tests/shared/ExtHistoryAPI.ts | 0 .../tests/shared/contextMenus/MenuItem.ts | 0 .../src}/tests/shared/contextMenus/index.ts | 0 .../content/src}/tests/shared/index.ts | 0 .../content/src}/tests/shared/search/index.ts | 0 .../shared/search/providers/EngineProvider.ts | 0 .../shared/search/providers/URLProvider.ts | 0 .../tests/shared/search/providers/index.ts | 0 .../src}/tests/shared/search/suggestions.ts | 0 .../content/src}/tests/tests.ts | 0 {src/content => apps/content/src}/types.d.ts | 0 .../static}/search-extensions/README.md | 0 .../static}/search-extensions/ddg/favicon.ico | Bin .../search-extensions/ddg/manifest.json | 0 .../search-extensions/google/favicon.ico | Bin .../search-extensions/google/manifest.json | 0 .../extensions/lib}/ext-browser.json | 0 .../extensions/lib}/parent/ext-browser.js | 1 - .../extensions/lib}/parent/ext-pageAction.js | 6 +- .../extensions/lib}/sharedTypes.d.ts | 0 .../extensions/lib}/types/ConduitChild.d.ts | 0 .../extensions/lib}/types/index.d.ts | 2 +- .../extensions/lib}/types/utils.d.ts | 0 apps/extensions/package.json | 8 + apps/misc/package.json | 12 + .../misc/static/defaults/pref}/prefs.js | 0 .../localization/en-US/branding/brand.ftl | 0 .../en-US/browser/appExtensionFields.ftl | 0 .../browser/components/mozSupportLink.ftl | 0 .../misc/static}/localization/link.json | 0 .../modules/lib/BrowserGlue.sys.mjs | 30 +- apps/modules/lib/BrowserWindowTracker.sys.mjs | 52 + apps/modules/lib/EPageActions.sys.mjs | 108 + .../modules/lib}/FaviconLoader.sys.mjs | 0 apps/modules/lib/TypedImportUtils.sys.mjs | 10 + .../modules => apps/modules/lib}/mitt.sys.mjs | 0 .../lib}/sessionstore/SessionStore.sys.mjs | 0 apps/modules/package.json | 8 + lib/link/package.json | 13 + lib/link/types/_link.d.ts | 20 + lib/link/types/globals/ChromeUtils.d.ts | 4 + lib/link/types/globals/Cr.d.ts | 1 + lib/link/types/globals/Elements.d.ts | 78 + .../link/types/globals}/MatchPattern.d.ts | 0 .../link/types/globals}/MessageManager.d.ts | 0 lib/link/types/interfaces/ClickHandler.d.ts | 4 + lib/link/types/interfaces/ContextMenu.d.ts | 29 + .../types/interfaces/GenericDeferred.d.ts | 28 + .../link/types/modules}/AppConstants.d.ts | 8 + .../types/modules/BrowserWindowTracker.d.ts | 50 + lib/link/types/modules/EPageActions.d.ts | 96 + .../link/types/modules/PlacesUtils.d.ts | 164 +- lib/link/types/modules/mitt.d.ts | 6 + lib/link/types/modules/typedImport.d.ts | 16 + lib/shared/package.json | 22 + lib/shared/src/index.ts | 6 + .../shared/src/lazy.ts | 11 +- lib/shared/src/utilities/deferred.ts | 33 + lib/shared/src/utilities/index.ts | 2 + lib/shared/src/utilities/mitt.ts | 17 + lib/shared/src/utilities/svelte.license.md | 9 + lib/shared/src/utilities/svelte.ts | 119 + lib/shared/src/xul/PlacesModel.ts | 199 + lib/shared/src/xul/index.ts | 3 + lib/shared/src/xul/messageReceiver.ts | 14 + lib/shared/src/xul/observable.ts | 22 + lib/shared/tsconfig.json | 10 + package.json | 41 +- pnpm-lock.yaml | 3566 +++++++++++++++-- pnpm-workspace.yaml | 3 + src/actors/ContextMenu.types.ts | 30 - src/actors/link.json | 8 - src/modules/BrowserWindowTracker.ts | 68 - src/modules/EPageActions.ts | 133 - src/modules/link.json | 1 - .../en-US/locale/branding/brand.properties | 7 - static/chrome/link.json | 1 - static/modules/link.json | 1 - 222 files changed, 7797 insertions(+), 868 deletions(-) rename src/actors/ClickHandlerChild.ts => apps/actors/lib/ClickHandlerChild.sys.mjs (58%) rename src/actors/ClickHandlerParent.ts => apps/actors/lib/ClickHandlerParent.sys.mjs (77%) rename src/actors/ContextMenuChild.ts => apps/actors/lib/ContextMenuChild.sys.mjs (60%) rename src/actors/ContextMenuParent.ts => apps/actors/lib/ContextMenuParent.sys.mjs (69%) rename src/actors/LinkHandlerChild.ts => apps/actors/lib/LinkHandlerChild.sys.mjs (84%) rename src/actors/LinkHandlerParent.ts => apps/actors/lib/LinkHandlerParent.sys.mjs (77%) create mode 100644 apps/actors/package.json create mode 100644 apps/content/package.json rename {patches => apps/content/patches}/@melt-ui__svelte@0.64.5.patch (100%) rename {patches => apps/content/patches}/svelte@4.2.1.patch (100%) rename {patches => apps/content/patches}/webpack-license-plugin@4.4.2.patch (100%) create mode 100644 apps/content/pnpm-lock.yaml rename {src/content => apps/content/src}/bookmarks/Bookmarks.svelte (100%) rename {src/content => apps/content/src}/bookmarks/bookmarks.css (100%) rename {src/content => apps/content/src}/bookmarks/bookmarks.ts (100%) rename {src/content => apps/content/src}/bookmarks/components/BookmarkEditor.svelte (100%) rename {src/content => apps/content/src}/bookmarks/components/BookmarkItem.svelte (100%) rename {src/content => apps/content/src}/bookmarks/components/BookmarkTree.svelte (100%) rename {src/content => apps/content/src}/browser/Browser.svelte (100%) rename {src/content => apps/content/src}/browser/browser.css (100%) rename {src/content => apps/content/src}/browser/browser.ts (100%) rename {src/content => apps/content/src}/browser/components/Browser.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/Block.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/BrowserView.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/CustomizableUI.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/IconButton.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/OmniboxContainer.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/Spacer.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/Tabs.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/UIItemBase.svelte (100%) rename {src/content => apps/content/src}/browser/components/customizableUI/index.ts (100%) rename {src/content => apps/content/src}/browser/components/keybindings/Keybinding.svelte (100%) rename {src/content => apps/content/src}/browser/components/keybindings/Keybindings.svelte (100%) rename {src/content => apps/content/src}/browser/components/menus/BrowserContextMenu.svelte (100%) rename {src/content => apps/content/src}/browser/components/menus/HamburgerMenu/HamburgerMenu.svelte (100%) rename {src/content => apps/content/src}/browser/components/menus/HamburgerMenu/HamburgerMenuItem.svelte (100%) rename {src/content => apps/content/src}/browser/components/menus/index.ts (100%) rename {src/content => apps/content/src}/browser/components/omnibox/Bookmarks.svelte (100%) rename {src/content => apps/content/src}/browser/components/omnibox/Omnibox.svelte (100%) rename {src/content => apps/content/src}/browser/components/omnibox/PageAction.svelte (100%) rename {src/content => apps/content/src}/browser/components/tabs/Tab.svelte (100%) rename {src/content => apps/content/src}/browser/components/tabs/tabDrag.ts (100%) rename {src/content => apps/content/src}/browser/lib/binaryEnums.ts (100%) rename {src/content => apps/content/src}/browser/lib/devtools.ts (100%) rename {src/content => apps/content/src}/browser/lib/fp.ts (100%) rename {src/content => apps/content/src}/browser/lib/keybinds.ts (100%) rename {src/content => apps/content/src}/browser/lib/modules/EPageActionsBindings.ts (100%) rename {src/content => apps/content/src}/browser/lib/resources.ts (100%) rename {src/content => apps/content/src}/browser/lib/shortcuts.ts (100%) rename {src/content => apps/content/src}/browser/lib/spinlock.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/api.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/arguments.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/contextMenu.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/index.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/initialize.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/tab.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/tabs.ts (100%) rename {src/content => apps/content/src}/browser/lib/window/window.ts (100%) rename {src/content => apps/content/src}/browser/lib/xul/NSBrowserAccess.ts (100%) rename {src/content => apps/content/src}/browser/lib/xul/XULBrowserWindow.ts (100%) rename {src/content => apps/content/src}/browser/lib/xul/browser.ts (100%) rename {src/content => apps/content/src}/browser/lib/xul/ccWrapper.ts (100%) rename {src/content => apps/content/src}/browser/lib/xul/domevents.ts (100%) rename {src/content => apps/content/src}/contentAreaUtils.d.ts (100%) rename {src/content => apps/content/src}/credits/Credits.svelte (100%) rename {src/content => apps/content/src}/credits/credits.ts (100%) rename {src/content => apps/content/src}/globalOverlay.d.ts (100%) rename {src/content => apps/content/src}/history/History.svelte (100%) rename {src/content => apps/content/src}/history/component/Entry.svelte (100%) rename {src/content => apps/content/src}/history/component/HistoryContainerNode.svelte (100%) rename {src/content => apps/content/src}/history/component/HistoryItemNode.svelte (100%) rename {src/content => apps/content/src}/history/component/HistoryNode.svelte (100%) rename {src/content => apps/content/src}/history/history.ts (100%) rename {src/content => apps/content/src}/index.html (100%) rename {src/content => apps/content/src}/reset.d.ts (100%) rename {src/content => apps/content/src}/settings/Settings.svelte (100%) rename {src/content => apps/content/src}/settings/components/Category.svelte (100%) rename {src/content => apps/content/src}/settings/components/SubCategory.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/ContextMenuPref.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/ContextMenuPreview.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/InsertItem.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/PreviewItem.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/index.ts (100%) rename {src/content => apps/content/src}/settings/components/pref/ContextMenuPref/prefWrapper.ts (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Component.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/Block.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/Browser.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/IconButton.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/Omnibox.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/Spacer.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/Tabs.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/TempDropTarget.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Components/index.ts (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/Configure.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/CustomizableUIPref.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/CustomizableUI/index.ts (100%) rename {src/content => apps/content/src}/settings/components/pref/SelectPref.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/StringPref.svelte (100%) rename {src/content => apps/content/src}/settings/components/pref/index.ts (100%) rename {src/content => apps/content/src}/settings/components/sidebar/Sidebar.svelte (100%) rename {src/content => apps/content/src}/settings/components/sidebar/index.ts (100%) rename {src/content => apps/content/src}/settings/components/sidebar/sidebar.ts (100%) rename {src/content => apps/content/src}/settings/settings.css (100%) rename {src/content => apps/content/src}/settings/settings.ts (100%) rename {src/content => apps/content/src}/shared/Deferred.ts (100%) rename {src/content => apps/content/src}/shared/ExtBookmarkAPI.ts (100%) rename {src/content => apps/content/src}/shared/ExtHistoryAPI.ts (100%) rename {src/content => apps/content/src}/shared/TypedImportUtilities.ts (100%) rename {src/content => apps/content/src}/shared/components/Button.svelte (100%) rename {src/content => apps/content/src}/shared/components/FancySelect.svelte (100%) rename {src/content => apps/content/src}/shared/components/Spinner.svelte (100%) rename {src/content => apps/content/src}/shared/components/TextInput.svelte (100%) rename {src/content => apps/content/src}/shared/components/ToolbarButton.svelte (100%) rename {src/content => apps/content/src}/shared/components/Tree/TreeView.svelte (100%) rename {src/content => apps/content/src}/shared/components/Tree/index.ts (100%) rename {src/content => apps/content/src}/shared/components/index.ts (100%) rename {src/content => apps/content/src}/shared/contextMenus/MenuItem.ts (100%) rename {src/content => apps/content/src}/shared/contextMenus/index.ts (100%) rename {src/content => apps/content/src}/shared/contextMenus/menuItems.ts (100%) rename {src/content => apps/content/src}/shared/customizableUI/helpers.ts (100%) rename {src/content => apps/content/src}/shared/customizableUI/index.ts (100%) rename {src/content => apps/content/src}/shared/customizableUI/items.ts (100%) rename {src/content => apps/content/src}/shared/customizableUI/style.ts (100%) rename {src/content => apps/content/src}/shared/customizableUI/types.ts (100%) rename {src/content => apps/content/src}/shared/domUtils.ts (100%) rename {src/content => apps/content/src}/shared/lazy.ts (100%) rename {src/content => apps/content/src}/shared/mittUtils.ts (100%) rename {src/content => apps/content/src}/shared/search/constants.ts (100%) rename {src/content => apps/content/src}/shared/search/engine.ts (100%) rename {src/content => apps/content/src}/shared/search/provider.ts (100%) rename {src/content => apps/content/src}/shared/search/providers/EngineProvider.ts (100%) rename {src/content => apps/content/src}/shared/search/providers/URLProvider.ts (100%) rename {src/content => apps/content/src}/shared/search/providers/data/tld.txt (100%) rename {src/content => apps/content/src}/shared/search/providers/index.ts (100%) rename {src/content => apps/content/src}/shared/search/resources.ts (100%) rename {src/content => apps/content/src}/shared/search/suggestions.ts (100%) rename {src/content => apps/content/src}/shared/styles/global.css (100%) rename {src/content => apps/content/src}/shared/styles/window.css (100%) rename {src/content => apps/content/src}/shared/svelteUtils.svelte.license.md (100%) rename {src/content => apps/content/src}/shared/svelteUtils.ts (100%) rename {src/content => apps/content/src}/shared/xul/PlacesModel.ts (100%) rename {src/content => apps/content/src}/shared/xul/messageReciver.ts (100%) rename {src/content => apps/content/src}/shared/xul/observable.ts (100%) rename {src/content => apps/content/src}/tests/manager.ts (100%) rename {src/content => apps/content/src}/tests/shared/ExtHistoryAPI.ts (100%) rename {src/content => apps/content/src}/tests/shared/contextMenus/MenuItem.ts (100%) rename {src/content => apps/content/src}/tests/shared/contextMenus/index.ts (100%) rename {src/content => apps/content/src}/tests/shared/index.ts (100%) rename {src/content => apps/content/src}/tests/shared/search/index.ts (100%) rename {src/content => apps/content/src}/tests/shared/search/providers/EngineProvider.ts (100%) rename {src/content => apps/content/src}/tests/shared/search/providers/URLProvider.ts (100%) rename {src/content => apps/content/src}/tests/shared/search/providers/index.ts (100%) rename {src/content => apps/content/src}/tests/shared/search/suggestions.ts (100%) rename {src/content => apps/content/src}/tests/tests.ts (100%) rename {src/content => apps/content/src}/types.d.ts (100%) rename {static => apps/content/static}/search-extensions/README.md (100%) rename {static => apps/content/static}/search-extensions/ddg/favicon.ico (100%) rename {static => apps/content/static}/search-extensions/ddg/manifest.json (100%) rename {static => apps/content/static}/search-extensions/google/favicon.ico (100%) rename {static => apps/content/static}/search-extensions/google/manifest.json (100%) rename {static/extensions => apps/extensions/lib}/ext-browser.json (100%) rename {static/extensions => apps/extensions/lib}/parent/ext-browser.js (98%) rename {static/extensions => apps/extensions/lib}/parent/ext-pageAction.js (96%) rename {static/extensions => apps/extensions/lib}/sharedTypes.d.ts (100%) rename {static/extensions => apps/extensions/lib}/types/ConduitChild.d.ts (100%) rename {static/extensions => apps/extensions/lib}/types/index.d.ts (85%) rename {static/extensions => apps/extensions/lib}/types/utils.d.ts (100%) create mode 100644 apps/extensions/package.json create mode 100644 apps/misc/package.json rename {src => apps/misc/static/defaults/pref}/prefs.js (100%) rename {static => apps/misc/static}/localization/en-US/branding/brand.ftl (100%) rename {static => apps/misc/static}/localization/en-US/browser/appExtensionFields.ftl (100%) rename {static => apps/misc/static}/localization/en-US/browser/components/mozSupportLink.ftl (100%) rename {static => apps/misc/static}/localization/link.json (100%) rename src/modules/BrowserGlue.ts => apps/modules/lib/BrowserGlue.sys.mjs (59%) create mode 100644 apps/modules/lib/BrowserWindowTracker.sys.mjs create mode 100644 apps/modules/lib/EPageActions.sys.mjs rename {static/modules => apps/modules/lib}/FaviconLoader.sys.mjs (100%) create mode 100644 apps/modules/lib/TypedImportUtils.sys.mjs rename {static/modules => apps/modules/lib}/mitt.sys.mjs (100%) rename {static/modules => apps/modules/lib}/sessionstore/SessionStore.sys.mjs (100%) create mode 100644 apps/modules/package.json create mode 100644 lib/link/package.json create mode 100644 lib/link/types/_link.d.ts create mode 100644 lib/link/types/globals/ChromeUtils.d.ts create mode 100644 lib/link/types/globals/Cr.d.ts create mode 100644 lib/link/types/globals/Elements.d.ts rename {src/types => lib/link/types/globals}/MatchPattern.d.ts (100%) rename {src/types => lib/link/types/globals}/MessageManager.d.ts (100%) create mode 100644 lib/link/types/interfaces/ClickHandler.d.ts create mode 100644 lib/link/types/interfaces/ContextMenu.d.ts create mode 100644 lib/link/types/interfaces/GenericDeferred.d.ts rename {src/types => lib/link/types/modules}/AppConstants.d.ts (93%) create mode 100644 lib/link/types/modules/BrowserWindowTracker.d.ts create mode 100644 lib/link/types/modules/EPageActions.d.ts rename src/link.d.ts => lib/link/types/modules/PlacesUtils.d.ts (79%) create mode 100644 lib/link/types/modules/mitt.d.ts create mode 100644 lib/link/types/modules/typedImport.d.ts create mode 100644 lib/shared/package.json create mode 100644 lib/shared/src/index.ts rename src/modules/TypedImportUtils.ts => lib/shared/src/lazy.ts (60%) create mode 100644 lib/shared/src/utilities/deferred.ts create mode 100644 lib/shared/src/utilities/index.ts create mode 100644 lib/shared/src/utilities/mitt.ts create mode 100644 lib/shared/src/utilities/svelte.license.md create mode 100644 lib/shared/src/utilities/svelte.ts create mode 100644 lib/shared/src/xul/PlacesModel.ts create mode 100644 lib/shared/src/xul/index.ts create mode 100644 lib/shared/src/xul/messageReceiver.ts create mode 100644 lib/shared/src/xul/observable.ts create mode 100644 lib/shared/tsconfig.json create mode 100644 pnpm-workspace.yaml delete mode 100644 src/actors/ContextMenu.types.ts delete mode 100644 src/actors/link.json delete mode 100644 src/modules/BrowserWindowTracker.ts delete mode 100644 src/modules/EPageActions.ts delete mode 100644 src/modules/link.json delete mode 100644 static/chrome/en-US/locale/branding/brand.properties delete mode 100644 static/chrome/link.json delete mode 100644 static/modules/link.json diff --git a/src/actors/ClickHandlerChild.ts b/apps/actors/lib/ClickHandlerChild.sys.mjs similarity index 58% rename from src/actors/ClickHandlerChild.ts rename to apps/actors/lib/ClickHandlerChild.sys.mjs index aa368fd..cddf8f5 100644 --- a/src/actors/ClickHandlerChild.ts +++ b/apps/actors/lib/ClickHandlerChild.sys.mjs @@ -2,17 +2,21 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// - -export type ClickHandlerMessage = { - name: 'openlink' - data: { href: string } -} & { target: JSWindowActorParent } +// @ts-check +/// export class ClickHandlerChild extends JSWindowActorChild { - getHrefIfExists(target: Node): string | undefined { - if ((target as HTMLAnchorElement).href) { - return (target as HTMLAnchorElement).href + /** + * @param {Node} target + * @returns {string | undefined} + */ + getHrefIfExists(target) { + /** @type {HTMLAnchorElement} */ + // @ts-expect-error We cant cast with as, so this is how I am casting :/ + const asAnchor = target + + if (asAnchor.href) { + return asAnchor.href } if (target.parentElement) { @@ -20,10 +24,13 @@ export class ClickHandlerChild extends JSWindowActorChild { } } - handleEvent(event: MouseEvent) { + /** + * @param {MouseEvent & { target: Node }} event + */ + handleEvent(event) { if (event.defaultPrevented || !event.target) return - const href = this.getHrefIfExists(event.target as Node) + const href = this.getHrefIfExists(event.target) const ctrlClick = event.button === 0 && event.ctrlKey const middleClick = event.button === 1 diff --git a/src/actors/ClickHandlerParent.ts b/apps/actors/lib/ClickHandlerParent.sys.mjs similarity index 77% rename from src/actors/ClickHandlerParent.ts rename to apps/actors/lib/ClickHandlerParent.sys.mjs index fbc003c..b50a973 100644 --- a/src/actors/ClickHandlerParent.ts +++ b/apps/actors/lib/ClickHandlerParent.sys.mjs @@ -1,11 +1,15 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// -import { ClickHandlerMessage } from './ClickHandlerChild' + +// @ts-check +/// export class ClickHandlerParent extends JSWindowActorParent { - receiveMessage(event: ClickHandlerMessage) { + /** + * @param {ClickHandlerMessage} event + */ + receiveMessage(event) { if (event.name == 'openlink') { const win = event.target.browsingContext.embedderElement.ownerGlobal const uri = Services.io.newURI(event.data.href) diff --git a/src/actors/ContextMenuChild.ts b/apps/actors/lib/ContextMenuChild.sys.mjs similarity index 60% rename from src/actors/ContextMenuChild.ts rename to apps/actors/lib/ContextMenuChild.sys.mjs index cde566b..aa7398f 100644 --- a/src/actors/ContextMenuChild.ts +++ b/apps/actors/lib/ContextMenuChild.sys.mjs @@ -1,20 +1,26 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// +// @ts-check +/// import { lazyESModuleGetters } from 'resource://app/modules/TypedImportUtils.sys.mjs' -import type { ContextMenuInfo, MediaInfo } from './ContextMenu.types' - const lazy = lazyESModuleGetters({ SelectionUtils: 'resource://gre/modules/SelectionUtils.sys.mjs', E10SUtils: 'resource://gre/modules/E10SUtils.sys.mjs', }) export class ContextMenuChild extends JSWindowActorChild { - getHrefIfExists(target: Node): string | undefined { - if ((target as HTMLAnchorElement).href) { - return (target as HTMLAnchorElement).href + /** + * @param {Node} target + * @returns {string | undefined} + */ + getHrefIfExists(target) { + /** @type {HTMLAnchorElement} */ + // @ts-expect-error We cant cast with as, so this is how I am casting :/ + const asAnchor = target + if (asAnchor.href) { + return asAnchor.href } if (target.parentElement) { @@ -22,22 +28,31 @@ export class ContextMenuChild extends JSWindowActorChild { } } - getImageSrcIfExists(target: Node): string | undefined { - if ((target as HTMLImageElement).src) { - return (target as HTMLImageElement).src + /** + * @param {Node} target + * @returns {string | undefined} + */ + getImageSrcIfExists(target) { + /** @type {HTMLImageElement} */ + // @ts-expect-error We cant cast with as, so this is how I am casting :/ + const asImg = target + if (asImg.src) { + return asImg.src } } /** * This code was based on the code from here: https://searchfox.org/mozilla-central/source/browser/actors/ContextMenuChild.sys.mjs#568 + * @param {Node & nsIImageLoadingContentType} target */ - getMediaInfo(target: Node & nsIImageLoadingContentType) { + getMediaInfo(target) { // @ts-expect-error - Ci interfaces are not instanceofable if (!(target instanceof Ci.nsIImageLoadingContent && target.currentURI)) { return } - const mediaInfo: MediaInfo = {} + /** @type {ContextMenuMediaInfo} */ + const mediaInfo = {} try { const imageCache = Cc['@mozilla.org/image/tools;1'] @@ -72,21 +87,23 @@ export class ContextMenuChild extends JSWindowActorChild { return mediaInfo } - getReferrerInfo(target: Element) { + /** @param {Element} target */ + getReferrerInfo(target) { + /** @type {nsIReferrerInfoType} */ + // @ts-expect-error - Ci interfaces are really poorly typed at the moment const referrerInfo = Cc['@mozilla.org/referrer-info;1'].createInstance( Ci.nsIReferrerInfo, - ) as nsIReferrerInfoType + ) referrerInfo.initWithElement(target) return lazy.E10SUtils.serializeReferrerInfo(referrerInfo) } - handleEvent( - event: MouseEvent & { inputSource: number; composedTarget?: EventTarget }, - ) { - const data: { - position: ContextMenuInfo['position'] - context: ContextMenuInfo['context'] - } & Partial = { + /** + * @param {MouseEvent & { inputSource: number; composedTarget?: EventTarget & Node; target?: Node }} event + */ + handleEvent(event) { + /** @type {{ position: ContextMenuInfo['position']; context: ContextMenuInfo['context']} & Partial} */ + const data = { position: { screenX: event.screenX, screenY: event.screenY, @@ -95,8 +112,7 @@ export class ContextMenuChild extends JSWindowActorChild { context: { principal: - (event.target && - (event.target as Node).ownerDocument?.nodePrincipal) || + (event.target && event.target.ownerDocument?.nodePrincipal) || undefined, }, } @@ -111,18 +127,18 @@ export class ContextMenuChild extends JSWindowActorChild { if ( event.composedTarget && - (event.composedTarget as Node).nodeType === Node.ELEMENT_NODE + event.composedTarget.nodeType === Node.ELEMENT_NODE ) { - const node = event.composedTarget as Node + /** @type {Element & nsIImageLoadingContentType} */ + // @ts-expect-error - Ci interfaces are a pain + const node = event.composedTarget data.href = this.getHrefIfExists(node) data.imageSrc = this.getImageSrcIfExists(node) - data.mediaInfo = this.getMediaInfo( - node as Node & nsIImageLoadingContentType, - ) - data.context.referrerInfo = this.getReferrerInfo(node as Element) + data.mediaInfo = this.getMediaInfo(node) + data.context.referrerInfo = this.getReferrerInfo(node) } - this.sendAsyncMessage('contextmenu', data satisfies ContextMenuInfo) + this.sendAsyncMessage('contextmenu', data) } } diff --git a/src/actors/ContextMenuParent.ts b/apps/actors/lib/ContextMenuParent.sys.mjs similarity index 69% rename from src/actors/ContextMenuParent.ts rename to apps/actors/lib/ContextMenuParent.sys.mjs index 9340bff..e2a0e2b 100644 --- a/src/actors/ContextMenuParent.ts +++ b/apps/actors/lib/ContextMenuParent.sys.mjs @@ -1,16 +1,13 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import type { ContextMenuInfo } from './ContextMenu.types' -type ContextMenuEvent = { - name: 'contextmenu' - data: ContextMenuInfo - target: ContextMenuParent -} +// @ts-check +/// export class ContextMenuParent extends JSWindowActorParent { - receiveMessage(event: ContextMenuEvent) { + /** @param {ContextMenuEvent} event */ + receiveMessage(event) { if (event.name == 'contextmenu') { const win = event.target.browsingContext.embedderElement.ownerGlobal win.windowApi.contextMenu.showContextMenu(event.data, this) diff --git a/src/actors/LinkHandlerChild.ts b/apps/actors/lib/LinkHandlerChild.sys.mjs similarity index 84% rename from src/actors/LinkHandlerChild.ts rename to apps/actors/lib/LinkHandlerChild.sys.mjs index 155ded6..b0288a5 100644 --- a/src/actors/LinkHandlerChild.ts +++ b/apps/actors/lib/LinkHandlerChild.sys.mjs @@ -1,27 +1,10 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// +// @ts-check +/// import { FaviconLoader } from 'resource://app/modules/FaviconLoader.sys.mjs' -declare global { - interface Document { - documentURIObject: nsIURIType - } - - interface HTMLElement { - ownerGlobal: Window - } -} - -type DOMLinkAdded = Event & { target: HTMLLinkElement; type: 'DOMLinkAdded' } -type DOMHeadParsed = Event & { - target: HTMLHeadElement - type: 'DOMHeadElementParsed' -} -type PageShow = PageTransitionEvent & { type: 'pageshow' } -type PageHide = PageTransitionEvent & { type: 'pagehide' } - export class LinkHandlerChild extends JSWindowActorChild { iconLoader = new FaviconLoader(this) loadedTabIcon = false @@ -40,25 +23,37 @@ export class LinkHandlerChild extends JSWindowActorChild { } } - onPageShow(event: PageShow) { + /** + * @param {PageShowEvent} event + */ + onPageShow(event) { if (event.target != this.document) return this.fetchRootFavicon() if (this.iconLoader) this.iconLoader.onPageShow() } - onPageHide(event: PageHide) { + /** + * @param {PageHideEvent} event + */ + onPageHide(event) { if (event.target != this.document) return if (this.iconLoader) this.iconLoader.onPageHide() this.loadedTabIcon = false } - onHeadParsed(event: DOMHeadParsed) { + /** + * @param {DOMHeadParsedEvent} event + */ + onHeadParsed(event) { if (event.target.ownerDocument != this.document) return this.fetchRootFavicon() if (this.iconLoader) this.iconLoader.onPageShow() } - onLinkEvent(event: DOMLinkAdded) { + /** + * @param {DOMLinkAddedEvent} event + */ + onLinkEvent(event) { const link = event.target // Ignore sub-frames (bugs 305472, 479408). if (link.ownerGlobal != this.contentWindow) { @@ -76,7 +71,8 @@ export class LinkHandlerChild extends JSWindowActorChild { // whole content let iconAdded = false let searchAdded = false - const rels: Record = {} + /** @type {Record} */ + const rels = {} for (const relString of rel.split(/\s+/)) { rels[relString] = true } @@ -139,7 +135,10 @@ export class LinkHandlerChild extends JSWindowActorChild { } } - handleEvent(event: PageShow | PageHide | DOMHeadParsed | DOMLinkAdded) { + /** + * @param {PageShowEvent | PageHideEvent | DOMHeadParsedEvent | DOMLinkAddedEvent} event + */ + handleEvent(event) { switch (event.type) { case 'pageshow': return this.onPageShow(event) diff --git a/src/actors/LinkHandlerParent.ts b/apps/actors/lib/LinkHandlerParent.sys.mjs similarity index 77% rename from src/actors/LinkHandlerParent.ts rename to apps/actors/lib/LinkHandlerParent.sys.mjs index 911912f..1c0ba31 100644 --- a/src/actors/LinkHandlerParent.ts +++ b/apps/actors/lib/LinkHandlerParent.sys.mjs @@ -2,10 +2,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// +// @ts-check +/// export class LinkHandlerParent extends JSWindowActorParent { - receiveMessage(aMsg: { name: 'Link:SetIcon'; data: { iconURL: string } }) { + /** @param {{ name: 'Link:SetIcon'; data: { iconURL: string } }} aMsg */ + receiveMessage(aMsg) { const win = this.browsingContext.topChromeWindow switch (aMsg.name) { diff --git a/apps/actors/package.json b/apps/actors/package.json new file mode 100644 index 0000000..ab1c84d --- /dev/null +++ b/apps/actors/package.json @@ -0,0 +1,9 @@ +{ + "name": "actors", + "version": "1.0.0", + "description": "", + "dependencies": { + "@browser/link": "workspace:*" + }, + "license": "ISC" +} diff --git a/apps/content/package.json b/apps/content/package.json new file mode 100644 index 0000000..2fd54f3 --- /dev/null +++ b/apps/content/package.json @@ -0,0 +1,41 @@ +{ + "name": "content", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@melt-ui/pp": "^0.3.0", + "@tsconfig/svelte": "^5.0.2", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.8.1", + "html-webpack-plugin": "^5.6.0", + "mini-css-extract-plugin": "^2.7.6", + "postcss-loader": "^7.3.4", + "style-loader": "^3.3.3", + "svelte": "^4.2.8", + "svelte-loader": "^3.1.9", + "svelte-preprocess": "^5.1.3", + "svelte-sequential-preprocessor": "^2.0.1", + "ts-loader": "^9.5.1", + "typescript": "^5.3.3", + "webpack": "^5.89.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1", + "webpack-license-plugin": "^4.4.2" + }, + "dependencies": { + "@catppuccin/palette": "^1.0.1", + "@melt-ui/svelte": "^0.67.0", + "fnts": "^2.1.0", + "mitt": "^3.0.1", + "nanoid": "^5.0.4", + "remixicon": "^4.0.1", + "snarkdown": "^2.0.0" + } +} diff --git a/patches/@melt-ui__svelte@0.64.5.patch b/apps/content/patches/@melt-ui__svelte@0.64.5.patch similarity index 100% rename from patches/@melt-ui__svelte@0.64.5.patch rename to apps/content/patches/@melt-ui__svelte@0.64.5.patch diff --git a/patches/svelte@4.2.1.patch b/apps/content/patches/svelte@4.2.1.patch similarity index 100% rename from patches/svelte@4.2.1.patch rename to apps/content/patches/svelte@4.2.1.patch diff --git a/patches/webpack-license-plugin@4.4.2.patch b/apps/content/patches/webpack-license-plugin@4.4.2.patch similarity index 100% rename from patches/webpack-license-plugin@4.4.2.patch rename to apps/content/patches/webpack-license-plugin@4.4.2.patch diff --git a/apps/content/pnpm-lock.yaml b/apps/content/pnpm-lock.yaml new file mode 100644 index 0000000..1ca4d37 --- /dev/null +++ b/apps/content/pnpm-lock.yaml @@ -0,0 +1,3356 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +patchedDependencies: + '@melt-ui/svelte@0.67.0': + hash: aeypykqddydgtdgxoo44wxfeey + path: patches/@melt-ui__svelte@0.64.5.patch + svelte@4.2.8: + hash: cm43hmf4gczhssi3isoosy53r4 + path: patches/svelte@4.2.1.patch + webpack-license-plugin@4.4.2: + hash: j2giecj6dvolnysmkqbx73rnua + path: patches/webpack-license-plugin@4.4.2.patch + +dependencies: + '@catppuccin/palette': + specifier: ^1.0.1 + version: 1.0.1 + '@melt-ui/svelte': + specifier: ^0.67.0 + version: 0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) + fnts: + specifier: ^2.1.0 + version: 2.1.0(typescript@5.3.3) + mitt: + specifier: ^3.0.1 + version: 3.0.1 + nanoid: + specifier: ^5.0.4 + version: 5.0.4 + remixicon: + specifier: ^4.0.1 + version: 4.0.1 + snarkdown: + specifier: ^2.0.0 + version: 2.0.0 + +devDependencies: + '@melt-ui/pp': + specifier: ^0.3.0 + version: 0.3.0(@melt-ui/svelte@0.67.0)(svelte@4.2.8) + '@tsconfig/svelte': + specifier: ^5.0.2 + version: 5.0.2 + copy-webpack-plugin: + specifier: ^11.0.0 + version: 11.0.0(webpack@5.89.0) + css-loader: + specifier: ^6.8.1 + version: 6.8.1(webpack@5.89.0) + html-webpack-plugin: + specifier: ^5.6.0 + version: 5.6.0(webpack@5.89.0) + mini-css-extract-plugin: + specifier: ^2.7.6 + version: 2.7.6(webpack@5.89.0) + postcss-loader: + specifier: ^7.3.4 + version: 7.3.4(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0) + style-loader: + specifier: ^3.3.3 + version: 3.3.3(webpack@5.89.0) + svelte: + specifier: ^4.2.8 + version: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + svelte-loader: + specifier: ^3.1.9 + version: 3.1.9(svelte@4.2.8) + svelte-preprocess: + specifier: ^5.1.3 + version: 5.1.3(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.3) + svelte-sequential-preprocessor: + specifier: ^2.0.1 + version: 2.0.1 + ts-loader: + specifier: ^9.5.1 + version: 9.5.1(typescript@5.3.3)(webpack@5.89.0) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + webpack: + specifier: ^5.89.0 + version: 5.89.0(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-dev-server: + specifier: ^4.15.1 + version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + webpack-license-plugin: + specifier: ^4.4.2 + version: 4.4.2(patch_hash=j2giecj6dvolnysmkqbx73rnua)(webpack@5.89.0) + +packages: + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@catppuccin/palette@1.0.1: + resolution: {integrity: sha512-aCVFn6j2HnN6M/yk4co67rF/EWrXhZO2qpJUJd6Xsz8t1BF6PbmftM8Gz3wFHPfUdTogU0dUiKs+YsW19hJ8mQ==} + dev: false + + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + + /@floating-ui/core@1.5.2: + resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==} + dependencies: + '@floating-ui/utils': 0.1.6 + + /@floating-ui/dom@1.5.3: + resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} + dependencies: + '@floating-ui/core': 1.5.2 + '@floating-ui/utils': 0.1.6 + + /@floating-ui/utils@0.1.6: + resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} + + /@internationalized/date@3.5.1: + resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==} + dependencies: + '@swc/helpers': 0.5.3 + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + + /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.67.0)(svelte@4.2.8): + resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==} + engines: {pnpm: '>=8.6.3'} + peerDependencies: + '@melt-ui/svelte': '>= 0.29.0' + svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 + dependencies: + '@melt-ui/svelte': 0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) + estree-walker: 3.0.3 + magic-string: 0.30.5 + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + dev: true + + /@melt-ui/svelte@0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8): + resolution: {integrity: sha512-fd9PsDE6sKbeyExagqH0nOpZEnDqyr2efbkjfmCRRYXVW5vlDEOPaSB+mg4Tjch121102sFH1Od+MlXwmeHy3A==} + peerDependencies: + svelte: '>=3 <5' + dependencies: + '@floating-ui/core': 1.5.2 + '@floating-ui/dom': 1.5.3 + '@internationalized/date': 3.5.1 + dequal: 2.0.3 + focus-trap: 7.5.4 + nanoid: 4.0.2 + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + patched: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + dev: true + + /@swc/helpers@0.5.3: + resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} + dependencies: + tslib: 2.6.2 + + /@tsconfig/svelte@5.0.2: + resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} + dev: true + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.10.6 + dev: true + + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + dependencies: + '@types/express-serve-static-core': 4.17.41 + '@types/node': 20.10.6 + dev: true + + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 8.56.0 + '@types/estree': 1.0.5 + dev: true + + /@types/eslint@8.56.0: + resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/express-serve-static-core@4.17.41: + resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + dependencies: + '@types/node': 20.10.6 + '@types/qs': 6.9.11 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: true + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.41 + '@types/qs': 6.9.11 + '@types/serve-static': 1.15.5 + dev: true + + /@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + dev: true + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true + + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true + + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: true + + /@types/node-forge@1.3.10: + resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/pug@2.0.10: + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} + dev: true + + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + dev: true + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true + + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.10.6 + dev: true + + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + dependencies: + '@types/express': 4.17.21 + dev: true + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 20.10.6 + dev: true + + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 20.10.6 + dev: true + + /@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true + + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: true + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: true + + /@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + dev: true + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: true + + /@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + dev: true + + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: true + + /@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-opt': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/wast-printer': 1.11.6 + dev: true + + /@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + dev: true + + /@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.89.0): + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + dev: true + + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.89.0): + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + dev: true + + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.89.0): + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + dev: true + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + + /array-flatten@2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /bonjour-service@1.1.1: + resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001572 + electron-to-chromium: 1.4.616 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + dependencies: + source-map: 0.6.1 + dev: true + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-webpack-plugin@11.0.0(webpack@5.89.0): + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 13.2.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.1 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-loader@6.8.1(webpack@5.89.0): + resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) + postcss-modules-scope: 3.1.0(postcss@8.4.32) + postcss-modules-values: 4.0.0(postcss@8.4.32) + postcss-value-parser: 4.2.0 + semver: 7.5.4 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dns-equal@1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dependencies: + utila: 0.4.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.616: + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /envinfo@7.11.0: + resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + dev: true + + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /fnts@2.1.0(typescript@5.3.3): + resolution: {integrity: sha512-+KFw3//Dbxw3R5xCzP+3BMsjhNiRaJ8w1Al/1aCzI7OqrqzIHCpNZShY1nUFPciqHqe8Z3URo+aA595ePa7Kqw==} + peerDependencies: + typescript: '>=4.7' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.3.3 + dev: false + + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + + /follow-redirects@1.15.4: + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: true + + /html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} + dev: true + + /html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.26.0 + dev: true + + /html-webpack-plugin@5.6.0(webpack@5.89.0): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.21 + pretty-error: 4.0.0 + tapable: 2.2.1 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + dev: true + + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.21 + '@types/http-proxy': 1.17.14 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.4 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-utils@5.1.0(postcss@8.4.32): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.32 + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.10.6 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + dependencies: + picocolors: 1.0.0 + shell-quote: 1.8.1 + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + dev: true + + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.5 + dev: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /mini-css-extract-plugin@2.7.6(webpack@5.89.0): + resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.2.0 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + + /nanoid@5.0.4: + resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.3.0 + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /postcss-loader@7.3.4(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + dependencies: + cosmiconfig: 8.3.6(typescript@5.3.3) + jiti: 1.21.0 + postcss: 8.4.32 + semver: 7.5.4 + webpack: 5.89.0(webpack-cli@5.1.4) + transitivePeerDependencies: + - typescript + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.32 + dev: true + + /postcss-modules-local-by-default@4.0.3(postcss@8.4.32): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.1.0(postcss@8.4.32): + resolution: {integrity: sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.32 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.32): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 + dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + dependencies: + lodash: 4.17.21 + renderkid: 3.0.0 + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.8 + dev: true + + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true + + /remixicon@4.0.1: + resolution: {integrity: sha512-Apa13Q01mFIuQEMvSVni8NnF9cV0vud9YXb2prQ+g3jmWpxKoFCL+yIiQ+9JCeLptdGKyoqVjCYOwwBQVHdciQ==} + dev: false + + /renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.21 + strip-ansi: 6.0.1 + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sander@0.5.1: + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} + dependencies: + es6-promise: 3.3.1 + graceful-fs: 4.2.11 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: true + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + ajv-keywords: 5.1.0(ajv@8.12.0) + dev: true + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.10 + node-forge: 1.3.1 + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /snarkdown@2.0.0: + resolution: {integrity: sha512-MgL/7k/AZdXCTJiNgrO7chgDqaB9FGM/1Tvlcenenb7div6obaDATzs16JhFyHHBGodHT3B7RzRc5qk8pFhg3A==} + dev: false + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + + /sorcery@0.11.0: + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} + hasBin: true + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + buffer-crc32: 0.2.13 + minimist: 1.2.8 + sander: 0.5.1 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-expression-validate@2.0.0: + resolution: {integrity: sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==} + dependencies: + spdx-expression-parse: 3.0.1 + dev: true + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true + + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /style-loader@3.3.3(webpack@5.89.0): + resolution: {integrity: sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svelte-dev-helper@1.1.9: + resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==} + dev: true + + /svelte-hmr@0.14.12(svelte@4.2.8): + resolution: {integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: '>=3.19.0' + dependencies: + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + dev: true + + /svelte-loader@3.1.9(svelte@4.2.8): + resolution: {integrity: sha512-RITPqze3TppOhaZF8SEFTDTwFHov17k3UkOjpxyL/No/YVrvckKmXWOEj7QEpsZZZSNQPb28tMZbHEI2xLhJMQ==} + peerDependencies: + svelte: ^3.0.0 || ^4.0.0-next.0 + dependencies: + loader-utils: 2.0.4 + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + svelte-dev-helper: 1.1.9 + svelte-hmr: 0.14.12(svelte@4.2.8) + dev: true + + /svelte-preprocess@5.1.3(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.3): + resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} + engines: {node: '>= 16.0.0', pnpm: ^8.0.0} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@types/pug': 2.0.10 + detect-indent: 6.1.0 + magic-string: 0.30.5 + postcss: 8.4.32 + sorcery: 0.11.0 + strip-indent: 3.0.0 + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + typescript: 5.3.3 + dev: true + + /svelte-sequential-preprocessor@2.0.1: + resolution: {integrity: sha512-N5JqlBni6BzElxmuFrOPxOJnjsxh1cFDACLEVKs8OHBcx8ZNRO1p5SxuQex1m3qbLzAC8G99EHeWcxGkjyKjLQ==} + engines: {node: '>=16'} + dependencies: + svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + tslib: 2.6.2 + dev: true + + /svelte@4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4): + resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 3.2.1 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.5 + periscopic: 3.1.0 + patched: true + + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /terser-webpack-plugin@5.3.10(webpack@5.89.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.20 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.26.0 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /terser@5.26.0: + resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.0 + micromatch: 4.0.5 + semver: 7.5.4 + source-map: 0.7.4 + typescript: 5.3.3 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: true + + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.89.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.89.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.89.0) + colorette: 2.0.20 + commander: 10.0.1 + cross-spawn: 7.0.3 + envinfo: 7.11.0 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + webpack-merge: 5.10.0 + dev: true + + /webpack-dev-middleware@5.3.3(webpack@5.89.0): + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.89.0(webpack-cli@5.1.4) + dev: true + + /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.89.0): + resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.5 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.10 + ansi-html-community: 0.0.8 + bonjour-service: 1.1.1 + chokidar: 3.5.3 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.11 + html-entities: 2.4.0 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.1.0 + launch-editor: 2.6.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-dev-middleware: 5.3.3(webpack@5.89.0) + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-license-plugin@4.4.2(patch_hash=j2giecj6dvolnysmkqbx73rnua)(webpack@5.89.0): + resolution: {integrity: sha512-n6BWea7g/ogWF/Nd3eOXVj9NLThaa5XYUNENNu4/0kPzxU6kPAKBe5XtQ2uKrrzM6OBOAyjkzzorZ8dAjHOycw==} + engines: {node: '>=16.0.0'} + peerDependencies: + webpack: '>=4.0.0 < 6.0.0' + dependencies: + chalk: 5.3.0 + lodash: 4.17.21 + needle: 3.3.1 + spdx-expression-validate: 2.0.0 + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-sources: 3.2.3 + dev: true + patched: true + + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack@5.89.0(webpack-cli@5.1.4): + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.22.2 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.4.1 + 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: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.89.0) + watchpack: 2.4.0 + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true diff --git a/src/content/bookmarks/Bookmarks.svelte b/apps/content/src/bookmarks/Bookmarks.svelte similarity index 100% rename from src/content/bookmarks/Bookmarks.svelte rename to apps/content/src/bookmarks/Bookmarks.svelte diff --git a/src/content/bookmarks/bookmarks.css b/apps/content/src/bookmarks/bookmarks.css similarity index 100% rename from src/content/bookmarks/bookmarks.css rename to apps/content/src/bookmarks/bookmarks.css diff --git a/src/content/bookmarks/bookmarks.ts b/apps/content/src/bookmarks/bookmarks.ts similarity index 100% rename from src/content/bookmarks/bookmarks.ts rename to apps/content/src/bookmarks/bookmarks.ts diff --git a/src/content/bookmarks/components/BookmarkEditor.svelte b/apps/content/src/bookmarks/components/BookmarkEditor.svelte similarity index 100% rename from src/content/bookmarks/components/BookmarkEditor.svelte rename to apps/content/src/bookmarks/components/BookmarkEditor.svelte diff --git a/src/content/bookmarks/components/BookmarkItem.svelte b/apps/content/src/bookmarks/components/BookmarkItem.svelte similarity index 100% rename from src/content/bookmarks/components/BookmarkItem.svelte rename to apps/content/src/bookmarks/components/BookmarkItem.svelte diff --git a/src/content/bookmarks/components/BookmarkTree.svelte b/apps/content/src/bookmarks/components/BookmarkTree.svelte similarity index 100% rename from src/content/bookmarks/components/BookmarkTree.svelte rename to apps/content/src/bookmarks/components/BookmarkTree.svelte diff --git a/src/content/browser/Browser.svelte b/apps/content/src/browser/Browser.svelte similarity index 100% rename from src/content/browser/Browser.svelte rename to apps/content/src/browser/Browser.svelte diff --git a/src/content/browser/browser.css b/apps/content/src/browser/browser.css similarity index 100% rename from src/content/browser/browser.css rename to apps/content/src/browser/browser.css diff --git a/src/content/browser/browser.ts b/apps/content/src/browser/browser.ts similarity index 100% rename from src/content/browser/browser.ts rename to apps/content/src/browser/browser.ts diff --git a/src/content/browser/components/Browser.svelte b/apps/content/src/browser/components/Browser.svelte similarity index 100% rename from src/content/browser/components/Browser.svelte rename to apps/content/src/browser/components/Browser.svelte diff --git a/src/content/browser/components/customizableUI/Block.svelte b/apps/content/src/browser/components/customizableUI/Block.svelte similarity index 100% rename from src/content/browser/components/customizableUI/Block.svelte rename to apps/content/src/browser/components/customizableUI/Block.svelte diff --git a/src/content/browser/components/customizableUI/BrowserView.svelte b/apps/content/src/browser/components/customizableUI/BrowserView.svelte similarity index 100% rename from src/content/browser/components/customizableUI/BrowserView.svelte rename to apps/content/src/browser/components/customizableUI/BrowserView.svelte diff --git a/src/content/browser/components/customizableUI/CustomizableUI.svelte b/apps/content/src/browser/components/customizableUI/CustomizableUI.svelte similarity index 100% rename from src/content/browser/components/customizableUI/CustomizableUI.svelte rename to apps/content/src/browser/components/customizableUI/CustomizableUI.svelte diff --git a/src/content/browser/components/customizableUI/IconButton.svelte b/apps/content/src/browser/components/customizableUI/IconButton.svelte similarity index 100% rename from src/content/browser/components/customizableUI/IconButton.svelte rename to apps/content/src/browser/components/customizableUI/IconButton.svelte diff --git a/src/content/browser/components/customizableUI/OmniboxContainer.svelte b/apps/content/src/browser/components/customizableUI/OmniboxContainer.svelte similarity index 100% rename from src/content/browser/components/customizableUI/OmniboxContainer.svelte rename to apps/content/src/browser/components/customizableUI/OmniboxContainer.svelte diff --git a/src/content/browser/components/customizableUI/Spacer.svelte b/apps/content/src/browser/components/customizableUI/Spacer.svelte similarity index 100% rename from src/content/browser/components/customizableUI/Spacer.svelte rename to apps/content/src/browser/components/customizableUI/Spacer.svelte diff --git a/src/content/browser/components/customizableUI/Tabs.svelte b/apps/content/src/browser/components/customizableUI/Tabs.svelte similarity index 100% rename from src/content/browser/components/customizableUI/Tabs.svelte rename to apps/content/src/browser/components/customizableUI/Tabs.svelte diff --git a/src/content/browser/components/customizableUI/UIItemBase.svelte b/apps/content/src/browser/components/customizableUI/UIItemBase.svelte similarity index 100% rename from src/content/browser/components/customizableUI/UIItemBase.svelte rename to apps/content/src/browser/components/customizableUI/UIItemBase.svelte diff --git a/src/content/browser/components/customizableUI/index.ts b/apps/content/src/browser/components/customizableUI/index.ts similarity index 100% rename from src/content/browser/components/customizableUI/index.ts rename to apps/content/src/browser/components/customizableUI/index.ts diff --git a/src/content/browser/components/keybindings/Keybinding.svelte b/apps/content/src/browser/components/keybindings/Keybinding.svelte similarity index 100% rename from src/content/browser/components/keybindings/Keybinding.svelte rename to apps/content/src/browser/components/keybindings/Keybinding.svelte diff --git a/src/content/browser/components/keybindings/Keybindings.svelte b/apps/content/src/browser/components/keybindings/Keybindings.svelte similarity index 100% rename from src/content/browser/components/keybindings/Keybindings.svelte rename to apps/content/src/browser/components/keybindings/Keybindings.svelte diff --git a/src/content/browser/components/menus/BrowserContextMenu.svelte b/apps/content/src/browser/components/menus/BrowserContextMenu.svelte similarity index 100% rename from src/content/browser/components/menus/BrowserContextMenu.svelte rename to apps/content/src/browser/components/menus/BrowserContextMenu.svelte diff --git a/src/content/browser/components/menus/HamburgerMenu/HamburgerMenu.svelte b/apps/content/src/browser/components/menus/HamburgerMenu/HamburgerMenu.svelte similarity index 100% rename from src/content/browser/components/menus/HamburgerMenu/HamburgerMenu.svelte rename to apps/content/src/browser/components/menus/HamburgerMenu/HamburgerMenu.svelte diff --git a/src/content/browser/components/menus/HamburgerMenu/HamburgerMenuItem.svelte b/apps/content/src/browser/components/menus/HamburgerMenu/HamburgerMenuItem.svelte similarity index 100% rename from src/content/browser/components/menus/HamburgerMenu/HamburgerMenuItem.svelte rename to apps/content/src/browser/components/menus/HamburgerMenu/HamburgerMenuItem.svelte diff --git a/src/content/browser/components/menus/index.ts b/apps/content/src/browser/components/menus/index.ts similarity index 100% rename from src/content/browser/components/menus/index.ts rename to apps/content/src/browser/components/menus/index.ts diff --git a/src/content/browser/components/omnibox/Bookmarks.svelte b/apps/content/src/browser/components/omnibox/Bookmarks.svelte similarity index 100% rename from src/content/browser/components/omnibox/Bookmarks.svelte rename to apps/content/src/browser/components/omnibox/Bookmarks.svelte diff --git a/src/content/browser/components/omnibox/Omnibox.svelte b/apps/content/src/browser/components/omnibox/Omnibox.svelte similarity index 100% rename from src/content/browser/components/omnibox/Omnibox.svelte rename to apps/content/src/browser/components/omnibox/Omnibox.svelte diff --git a/src/content/browser/components/omnibox/PageAction.svelte b/apps/content/src/browser/components/omnibox/PageAction.svelte similarity index 100% rename from src/content/browser/components/omnibox/PageAction.svelte rename to apps/content/src/browser/components/omnibox/PageAction.svelte diff --git a/src/content/browser/components/tabs/Tab.svelte b/apps/content/src/browser/components/tabs/Tab.svelte similarity index 100% rename from src/content/browser/components/tabs/Tab.svelte rename to apps/content/src/browser/components/tabs/Tab.svelte diff --git a/src/content/browser/components/tabs/tabDrag.ts b/apps/content/src/browser/components/tabs/tabDrag.ts similarity index 100% rename from src/content/browser/components/tabs/tabDrag.ts rename to apps/content/src/browser/components/tabs/tabDrag.ts diff --git a/src/content/browser/lib/binaryEnums.ts b/apps/content/src/browser/lib/binaryEnums.ts similarity index 100% rename from src/content/browser/lib/binaryEnums.ts rename to apps/content/src/browser/lib/binaryEnums.ts diff --git a/src/content/browser/lib/devtools.ts b/apps/content/src/browser/lib/devtools.ts similarity index 100% rename from src/content/browser/lib/devtools.ts rename to apps/content/src/browser/lib/devtools.ts diff --git a/src/content/browser/lib/fp.ts b/apps/content/src/browser/lib/fp.ts similarity index 100% rename from src/content/browser/lib/fp.ts rename to apps/content/src/browser/lib/fp.ts diff --git a/src/content/browser/lib/keybinds.ts b/apps/content/src/browser/lib/keybinds.ts similarity index 100% rename from src/content/browser/lib/keybinds.ts rename to apps/content/src/browser/lib/keybinds.ts diff --git a/src/content/browser/lib/modules/EPageActionsBindings.ts b/apps/content/src/browser/lib/modules/EPageActionsBindings.ts similarity index 100% rename from src/content/browser/lib/modules/EPageActionsBindings.ts rename to apps/content/src/browser/lib/modules/EPageActionsBindings.ts diff --git a/src/content/browser/lib/resources.ts b/apps/content/src/browser/lib/resources.ts similarity index 100% rename from src/content/browser/lib/resources.ts rename to apps/content/src/browser/lib/resources.ts diff --git a/src/content/browser/lib/shortcuts.ts b/apps/content/src/browser/lib/shortcuts.ts similarity index 100% rename from src/content/browser/lib/shortcuts.ts rename to apps/content/src/browser/lib/shortcuts.ts diff --git a/src/content/browser/lib/spinlock.ts b/apps/content/src/browser/lib/spinlock.ts similarity index 100% rename from src/content/browser/lib/spinlock.ts rename to apps/content/src/browser/lib/spinlock.ts diff --git a/src/content/browser/lib/window/api.ts b/apps/content/src/browser/lib/window/api.ts similarity index 100% rename from src/content/browser/lib/window/api.ts rename to apps/content/src/browser/lib/window/api.ts diff --git a/src/content/browser/lib/window/arguments.ts b/apps/content/src/browser/lib/window/arguments.ts similarity index 100% rename from src/content/browser/lib/window/arguments.ts rename to apps/content/src/browser/lib/window/arguments.ts diff --git a/src/content/browser/lib/window/contextMenu.ts b/apps/content/src/browser/lib/window/contextMenu.ts similarity index 100% rename from src/content/browser/lib/window/contextMenu.ts rename to apps/content/src/browser/lib/window/contextMenu.ts diff --git a/src/content/browser/lib/window/index.ts b/apps/content/src/browser/lib/window/index.ts similarity index 100% rename from src/content/browser/lib/window/index.ts rename to apps/content/src/browser/lib/window/index.ts diff --git a/src/content/browser/lib/window/initialize.ts b/apps/content/src/browser/lib/window/initialize.ts similarity index 100% rename from src/content/browser/lib/window/initialize.ts rename to apps/content/src/browser/lib/window/initialize.ts diff --git a/src/content/browser/lib/window/tab.ts b/apps/content/src/browser/lib/window/tab.ts similarity index 100% rename from src/content/browser/lib/window/tab.ts rename to apps/content/src/browser/lib/window/tab.ts diff --git a/src/content/browser/lib/window/tabs.ts b/apps/content/src/browser/lib/window/tabs.ts similarity index 100% rename from src/content/browser/lib/window/tabs.ts rename to apps/content/src/browser/lib/window/tabs.ts diff --git a/src/content/browser/lib/window/window.ts b/apps/content/src/browser/lib/window/window.ts similarity index 100% rename from src/content/browser/lib/window/window.ts rename to apps/content/src/browser/lib/window/window.ts diff --git a/src/content/browser/lib/xul/NSBrowserAccess.ts b/apps/content/src/browser/lib/xul/NSBrowserAccess.ts similarity index 100% rename from src/content/browser/lib/xul/NSBrowserAccess.ts rename to apps/content/src/browser/lib/xul/NSBrowserAccess.ts diff --git a/src/content/browser/lib/xul/XULBrowserWindow.ts b/apps/content/src/browser/lib/xul/XULBrowserWindow.ts similarity index 100% rename from src/content/browser/lib/xul/XULBrowserWindow.ts rename to apps/content/src/browser/lib/xul/XULBrowserWindow.ts diff --git a/src/content/browser/lib/xul/browser.ts b/apps/content/src/browser/lib/xul/browser.ts similarity index 100% rename from src/content/browser/lib/xul/browser.ts rename to apps/content/src/browser/lib/xul/browser.ts diff --git a/src/content/browser/lib/xul/ccWrapper.ts b/apps/content/src/browser/lib/xul/ccWrapper.ts similarity index 100% rename from src/content/browser/lib/xul/ccWrapper.ts rename to apps/content/src/browser/lib/xul/ccWrapper.ts diff --git a/src/content/browser/lib/xul/domevents.ts b/apps/content/src/browser/lib/xul/domevents.ts similarity index 100% rename from src/content/browser/lib/xul/domevents.ts rename to apps/content/src/browser/lib/xul/domevents.ts diff --git a/src/content/contentAreaUtils.d.ts b/apps/content/src/contentAreaUtils.d.ts similarity index 100% rename from src/content/contentAreaUtils.d.ts rename to apps/content/src/contentAreaUtils.d.ts diff --git a/src/content/credits/Credits.svelte b/apps/content/src/credits/Credits.svelte similarity index 100% rename from src/content/credits/Credits.svelte rename to apps/content/src/credits/Credits.svelte diff --git a/src/content/credits/credits.ts b/apps/content/src/credits/credits.ts similarity index 100% rename from src/content/credits/credits.ts rename to apps/content/src/credits/credits.ts diff --git a/src/content/globalOverlay.d.ts b/apps/content/src/globalOverlay.d.ts similarity index 100% rename from src/content/globalOverlay.d.ts rename to apps/content/src/globalOverlay.d.ts diff --git a/src/content/history/History.svelte b/apps/content/src/history/History.svelte similarity index 100% rename from src/content/history/History.svelte rename to apps/content/src/history/History.svelte diff --git a/src/content/history/component/Entry.svelte b/apps/content/src/history/component/Entry.svelte similarity index 100% rename from src/content/history/component/Entry.svelte rename to apps/content/src/history/component/Entry.svelte diff --git a/src/content/history/component/HistoryContainerNode.svelte b/apps/content/src/history/component/HistoryContainerNode.svelte similarity index 100% rename from src/content/history/component/HistoryContainerNode.svelte rename to apps/content/src/history/component/HistoryContainerNode.svelte diff --git a/src/content/history/component/HistoryItemNode.svelte b/apps/content/src/history/component/HistoryItemNode.svelte similarity index 100% rename from src/content/history/component/HistoryItemNode.svelte rename to apps/content/src/history/component/HistoryItemNode.svelte diff --git a/src/content/history/component/HistoryNode.svelte b/apps/content/src/history/component/HistoryNode.svelte similarity index 100% rename from src/content/history/component/HistoryNode.svelte rename to apps/content/src/history/component/HistoryNode.svelte diff --git a/src/content/history/history.ts b/apps/content/src/history/history.ts similarity index 100% rename from src/content/history/history.ts rename to apps/content/src/history/history.ts diff --git a/src/content/index.html b/apps/content/src/index.html similarity index 100% rename from src/content/index.html rename to apps/content/src/index.html diff --git a/src/content/reset.d.ts b/apps/content/src/reset.d.ts similarity index 100% rename from src/content/reset.d.ts rename to apps/content/src/reset.d.ts diff --git a/src/content/settings/Settings.svelte b/apps/content/src/settings/Settings.svelte similarity index 100% rename from src/content/settings/Settings.svelte rename to apps/content/src/settings/Settings.svelte diff --git a/src/content/settings/components/Category.svelte b/apps/content/src/settings/components/Category.svelte similarity index 100% rename from src/content/settings/components/Category.svelte rename to apps/content/src/settings/components/Category.svelte diff --git a/src/content/settings/components/SubCategory.svelte b/apps/content/src/settings/components/SubCategory.svelte similarity index 100% rename from src/content/settings/components/SubCategory.svelte rename to apps/content/src/settings/components/SubCategory.svelte diff --git a/src/content/settings/components/pref/ContextMenuPref/ContextMenuPref.svelte b/apps/content/src/settings/components/pref/ContextMenuPref/ContextMenuPref.svelte similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/ContextMenuPref.svelte rename to apps/content/src/settings/components/pref/ContextMenuPref/ContextMenuPref.svelte diff --git a/src/content/settings/components/pref/ContextMenuPref/ContextMenuPreview.svelte b/apps/content/src/settings/components/pref/ContextMenuPref/ContextMenuPreview.svelte similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/ContextMenuPreview.svelte rename to apps/content/src/settings/components/pref/ContextMenuPref/ContextMenuPreview.svelte diff --git a/src/content/settings/components/pref/ContextMenuPref/InsertItem.svelte b/apps/content/src/settings/components/pref/ContextMenuPref/InsertItem.svelte similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/InsertItem.svelte rename to apps/content/src/settings/components/pref/ContextMenuPref/InsertItem.svelte diff --git a/src/content/settings/components/pref/ContextMenuPref/PreviewItem.svelte b/apps/content/src/settings/components/pref/ContextMenuPref/PreviewItem.svelte similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/PreviewItem.svelte rename to apps/content/src/settings/components/pref/ContextMenuPref/PreviewItem.svelte diff --git a/src/content/settings/components/pref/ContextMenuPref/index.ts b/apps/content/src/settings/components/pref/ContextMenuPref/index.ts similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/index.ts rename to apps/content/src/settings/components/pref/ContextMenuPref/index.ts diff --git a/src/content/settings/components/pref/ContextMenuPref/prefWrapper.ts b/apps/content/src/settings/components/pref/ContextMenuPref/prefWrapper.ts similarity index 100% rename from src/content/settings/components/pref/ContextMenuPref/prefWrapper.ts rename to apps/content/src/settings/components/pref/ContextMenuPref/prefWrapper.ts diff --git a/src/content/settings/components/pref/CustomizableUI/Component.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Component.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Component.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Component.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/Block.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/Block.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/Block.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/Block.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/Browser.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/Browser.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/Browser.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/Browser.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/IconButton.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/IconButton.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/IconButton.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/IconButton.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/Omnibox.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/Omnibox.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/Omnibox.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/Omnibox.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/Spacer.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/Spacer.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/Spacer.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/Spacer.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/Tabs.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/Tabs.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/Tabs.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/Tabs.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/TempDropTarget.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Components/TempDropTarget.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/TempDropTarget.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Components/TempDropTarget.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/Components/index.ts b/apps/content/src/settings/components/pref/CustomizableUI/Components/index.ts similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Components/index.ts rename to apps/content/src/settings/components/pref/CustomizableUI/Components/index.ts diff --git a/src/content/settings/components/pref/CustomizableUI/Configure.svelte b/apps/content/src/settings/components/pref/CustomizableUI/Configure.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/Configure.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/Configure.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/CustomizableUIPref.svelte b/apps/content/src/settings/components/pref/CustomizableUI/CustomizableUIPref.svelte similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/CustomizableUIPref.svelte rename to apps/content/src/settings/components/pref/CustomizableUI/CustomizableUIPref.svelte diff --git a/src/content/settings/components/pref/CustomizableUI/index.ts b/apps/content/src/settings/components/pref/CustomizableUI/index.ts similarity index 100% rename from src/content/settings/components/pref/CustomizableUI/index.ts rename to apps/content/src/settings/components/pref/CustomizableUI/index.ts diff --git a/src/content/settings/components/pref/SelectPref.svelte b/apps/content/src/settings/components/pref/SelectPref.svelte similarity index 100% rename from src/content/settings/components/pref/SelectPref.svelte rename to apps/content/src/settings/components/pref/SelectPref.svelte diff --git a/src/content/settings/components/pref/StringPref.svelte b/apps/content/src/settings/components/pref/StringPref.svelte similarity index 100% rename from src/content/settings/components/pref/StringPref.svelte rename to apps/content/src/settings/components/pref/StringPref.svelte diff --git a/src/content/settings/components/pref/index.ts b/apps/content/src/settings/components/pref/index.ts similarity index 100% rename from src/content/settings/components/pref/index.ts rename to apps/content/src/settings/components/pref/index.ts diff --git a/src/content/settings/components/sidebar/Sidebar.svelte b/apps/content/src/settings/components/sidebar/Sidebar.svelte similarity index 100% rename from src/content/settings/components/sidebar/Sidebar.svelte rename to apps/content/src/settings/components/sidebar/Sidebar.svelte diff --git a/src/content/settings/components/sidebar/index.ts b/apps/content/src/settings/components/sidebar/index.ts similarity index 100% rename from src/content/settings/components/sidebar/index.ts rename to apps/content/src/settings/components/sidebar/index.ts diff --git a/src/content/settings/components/sidebar/sidebar.ts b/apps/content/src/settings/components/sidebar/sidebar.ts similarity index 100% rename from src/content/settings/components/sidebar/sidebar.ts rename to apps/content/src/settings/components/sidebar/sidebar.ts diff --git a/src/content/settings/settings.css b/apps/content/src/settings/settings.css similarity index 100% rename from src/content/settings/settings.css rename to apps/content/src/settings/settings.css diff --git a/src/content/settings/settings.ts b/apps/content/src/settings/settings.ts similarity index 100% rename from src/content/settings/settings.ts rename to apps/content/src/settings/settings.ts diff --git a/src/content/shared/Deferred.ts b/apps/content/src/shared/Deferred.ts similarity index 100% rename from src/content/shared/Deferred.ts rename to apps/content/src/shared/Deferred.ts diff --git a/src/content/shared/ExtBookmarkAPI.ts b/apps/content/src/shared/ExtBookmarkAPI.ts similarity index 100% rename from src/content/shared/ExtBookmarkAPI.ts rename to apps/content/src/shared/ExtBookmarkAPI.ts diff --git a/src/content/shared/ExtHistoryAPI.ts b/apps/content/src/shared/ExtHistoryAPI.ts similarity index 100% rename from src/content/shared/ExtHistoryAPI.ts rename to apps/content/src/shared/ExtHistoryAPI.ts diff --git a/src/content/shared/TypedImportUtilities.ts b/apps/content/src/shared/TypedImportUtilities.ts similarity index 100% rename from src/content/shared/TypedImportUtilities.ts rename to apps/content/src/shared/TypedImportUtilities.ts diff --git a/src/content/shared/components/Button.svelte b/apps/content/src/shared/components/Button.svelte similarity index 100% rename from src/content/shared/components/Button.svelte rename to apps/content/src/shared/components/Button.svelte diff --git a/src/content/shared/components/FancySelect.svelte b/apps/content/src/shared/components/FancySelect.svelte similarity index 100% rename from src/content/shared/components/FancySelect.svelte rename to apps/content/src/shared/components/FancySelect.svelte diff --git a/src/content/shared/components/Spinner.svelte b/apps/content/src/shared/components/Spinner.svelte similarity index 100% rename from src/content/shared/components/Spinner.svelte rename to apps/content/src/shared/components/Spinner.svelte diff --git a/src/content/shared/components/TextInput.svelte b/apps/content/src/shared/components/TextInput.svelte similarity index 100% rename from src/content/shared/components/TextInput.svelte rename to apps/content/src/shared/components/TextInput.svelte diff --git a/src/content/shared/components/ToolbarButton.svelte b/apps/content/src/shared/components/ToolbarButton.svelte similarity index 100% rename from src/content/shared/components/ToolbarButton.svelte rename to apps/content/src/shared/components/ToolbarButton.svelte diff --git a/src/content/shared/components/Tree/TreeView.svelte b/apps/content/src/shared/components/Tree/TreeView.svelte similarity index 100% rename from src/content/shared/components/Tree/TreeView.svelte rename to apps/content/src/shared/components/Tree/TreeView.svelte diff --git a/src/content/shared/components/Tree/index.ts b/apps/content/src/shared/components/Tree/index.ts similarity index 100% rename from src/content/shared/components/Tree/index.ts rename to apps/content/src/shared/components/Tree/index.ts diff --git a/src/content/shared/components/index.ts b/apps/content/src/shared/components/index.ts similarity index 100% rename from src/content/shared/components/index.ts rename to apps/content/src/shared/components/index.ts diff --git a/src/content/shared/contextMenus/MenuItem.ts b/apps/content/src/shared/contextMenus/MenuItem.ts similarity index 100% rename from src/content/shared/contextMenus/MenuItem.ts rename to apps/content/src/shared/contextMenus/MenuItem.ts diff --git a/src/content/shared/contextMenus/index.ts b/apps/content/src/shared/contextMenus/index.ts similarity index 100% rename from src/content/shared/contextMenus/index.ts rename to apps/content/src/shared/contextMenus/index.ts diff --git a/src/content/shared/contextMenus/menuItems.ts b/apps/content/src/shared/contextMenus/menuItems.ts similarity index 100% rename from src/content/shared/contextMenus/menuItems.ts rename to apps/content/src/shared/contextMenus/menuItems.ts diff --git a/src/content/shared/customizableUI/helpers.ts b/apps/content/src/shared/customizableUI/helpers.ts similarity index 100% rename from src/content/shared/customizableUI/helpers.ts rename to apps/content/src/shared/customizableUI/helpers.ts diff --git a/src/content/shared/customizableUI/index.ts b/apps/content/src/shared/customizableUI/index.ts similarity index 100% rename from src/content/shared/customizableUI/index.ts rename to apps/content/src/shared/customizableUI/index.ts diff --git a/src/content/shared/customizableUI/items.ts b/apps/content/src/shared/customizableUI/items.ts similarity index 100% rename from src/content/shared/customizableUI/items.ts rename to apps/content/src/shared/customizableUI/items.ts diff --git a/src/content/shared/customizableUI/style.ts b/apps/content/src/shared/customizableUI/style.ts similarity index 100% rename from src/content/shared/customizableUI/style.ts rename to apps/content/src/shared/customizableUI/style.ts diff --git a/src/content/shared/customizableUI/types.ts b/apps/content/src/shared/customizableUI/types.ts similarity index 100% rename from src/content/shared/customizableUI/types.ts rename to apps/content/src/shared/customizableUI/types.ts diff --git a/src/content/shared/domUtils.ts b/apps/content/src/shared/domUtils.ts similarity index 100% rename from src/content/shared/domUtils.ts rename to apps/content/src/shared/domUtils.ts diff --git a/src/content/shared/lazy.ts b/apps/content/src/shared/lazy.ts similarity index 100% rename from src/content/shared/lazy.ts rename to apps/content/src/shared/lazy.ts diff --git a/src/content/shared/mittUtils.ts b/apps/content/src/shared/mittUtils.ts similarity index 100% rename from src/content/shared/mittUtils.ts rename to apps/content/src/shared/mittUtils.ts diff --git a/src/content/shared/search/constants.ts b/apps/content/src/shared/search/constants.ts similarity index 100% rename from src/content/shared/search/constants.ts rename to apps/content/src/shared/search/constants.ts diff --git a/src/content/shared/search/engine.ts b/apps/content/src/shared/search/engine.ts similarity index 100% rename from src/content/shared/search/engine.ts rename to apps/content/src/shared/search/engine.ts diff --git a/src/content/shared/search/provider.ts b/apps/content/src/shared/search/provider.ts similarity index 100% rename from src/content/shared/search/provider.ts rename to apps/content/src/shared/search/provider.ts diff --git a/src/content/shared/search/providers/EngineProvider.ts b/apps/content/src/shared/search/providers/EngineProvider.ts similarity index 100% rename from src/content/shared/search/providers/EngineProvider.ts rename to apps/content/src/shared/search/providers/EngineProvider.ts diff --git a/src/content/shared/search/providers/URLProvider.ts b/apps/content/src/shared/search/providers/URLProvider.ts similarity index 100% rename from src/content/shared/search/providers/URLProvider.ts rename to apps/content/src/shared/search/providers/URLProvider.ts diff --git a/src/content/shared/search/providers/data/tld.txt b/apps/content/src/shared/search/providers/data/tld.txt similarity index 100% rename from src/content/shared/search/providers/data/tld.txt rename to apps/content/src/shared/search/providers/data/tld.txt diff --git a/src/content/shared/search/providers/index.ts b/apps/content/src/shared/search/providers/index.ts similarity index 100% rename from src/content/shared/search/providers/index.ts rename to apps/content/src/shared/search/providers/index.ts diff --git a/src/content/shared/search/resources.ts b/apps/content/src/shared/search/resources.ts similarity index 100% rename from src/content/shared/search/resources.ts rename to apps/content/src/shared/search/resources.ts diff --git a/src/content/shared/search/suggestions.ts b/apps/content/src/shared/search/suggestions.ts similarity index 100% rename from src/content/shared/search/suggestions.ts rename to apps/content/src/shared/search/suggestions.ts diff --git a/src/content/shared/styles/global.css b/apps/content/src/shared/styles/global.css similarity index 100% rename from src/content/shared/styles/global.css rename to apps/content/src/shared/styles/global.css diff --git a/src/content/shared/styles/window.css b/apps/content/src/shared/styles/window.css similarity index 100% rename from src/content/shared/styles/window.css rename to apps/content/src/shared/styles/window.css diff --git a/src/content/shared/svelteUtils.svelte.license.md b/apps/content/src/shared/svelteUtils.svelte.license.md similarity index 100% rename from src/content/shared/svelteUtils.svelte.license.md rename to apps/content/src/shared/svelteUtils.svelte.license.md diff --git a/src/content/shared/svelteUtils.ts b/apps/content/src/shared/svelteUtils.ts similarity index 100% rename from src/content/shared/svelteUtils.ts rename to apps/content/src/shared/svelteUtils.ts diff --git a/src/content/shared/xul/PlacesModel.ts b/apps/content/src/shared/xul/PlacesModel.ts similarity index 100% rename from src/content/shared/xul/PlacesModel.ts rename to apps/content/src/shared/xul/PlacesModel.ts diff --git a/src/content/shared/xul/messageReciver.ts b/apps/content/src/shared/xul/messageReciver.ts similarity index 100% rename from src/content/shared/xul/messageReciver.ts rename to apps/content/src/shared/xul/messageReciver.ts diff --git a/src/content/shared/xul/observable.ts b/apps/content/src/shared/xul/observable.ts similarity index 100% rename from src/content/shared/xul/observable.ts rename to apps/content/src/shared/xul/observable.ts diff --git a/src/content/tests/manager.ts b/apps/content/src/tests/manager.ts similarity index 100% rename from src/content/tests/manager.ts rename to apps/content/src/tests/manager.ts diff --git a/src/content/tests/shared/ExtHistoryAPI.ts b/apps/content/src/tests/shared/ExtHistoryAPI.ts similarity index 100% rename from src/content/tests/shared/ExtHistoryAPI.ts rename to apps/content/src/tests/shared/ExtHistoryAPI.ts diff --git a/src/content/tests/shared/contextMenus/MenuItem.ts b/apps/content/src/tests/shared/contextMenus/MenuItem.ts similarity index 100% rename from src/content/tests/shared/contextMenus/MenuItem.ts rename to apps/content/src/tests/shared/contextMenus/MenuItem.ts diff --git a/src/content/tests/shared/contextMenus/index.ts b/apps/content/src/tests/shared/contextMenus/index.ts similarity index 100% rename from src/content/tests/shared/contextMenus/index.ts rename to apps/content/src/tests/shared/contextMenus/index.ts diff --git a/src/content/tests/shared/index.ts b/apps/content/src/tests/shared/index.ts similarity index 100% rename from src/content/tests/shared/index.ts rename to apps/content/src/tests/shared/index.ts diff --git a/src/content/tests/shared/search/index.ts b/apps/content/src/tests/shared/search/index.ts similarity index 100% rename from src/content/tests/shared/search/index.ts rename to apps/content/src/tests/shared/search/index.ts diff --git a/src/content/tests/shared/search/providers/EngineProvider.ts b/apps/content/src/tests/shared/search/providers/EngineProvider.ts similarity index 100% rename from src/content/tests/shared/search/providers/EngineProvider.ts rename to apps/content/src/tests/shared/search/providers/EngineProvider.ts diff --git a/src/content/tests/shared/search/providers/URLProvider.ts b/apps/content/src/tests/shared/search/providers/URLProvider.ts similarity index 100% rename from src/content/tests/shared/search/providers/URLProvider.ts rename to apps/content/src/tests/shared/search/providers/URLProvider.ts diff --git a/src/content/tests/shared/search/providers/index.ts b/apps/content/src/tests/shared/search/providers/index.ts similarity index 100% rename from src/content/tests/shared/search/providers/index.ts rename to apps/content/src/tests/shared/search/providers/index.ts diff --git a/src/content/tests/shared/search/suggestions.ts b/apps/content/src/tests/shared/search/suggestions.ts similarity index 100% rename from src/content/tests/shared/search/suggestions.ts rename to apps/content/src/tests/shared/search/suggestions.ts diff --git a/src/content/tests/tests.ts b/apps/content/src/tests/tests.ts similarity index 100% rename from src/content/tests/tests.ts rename to apps/content/src/tests/tests.ts diff --git a/src/content/types.d.ts b/apps/content/src/types.d.ts similarity index 100% rename from src/content/types.d.ts rename to apps/content/src/types.d.ts diff --git a/static/search-extensions/README.md b/apps/content/static/search-extensions/README.md similarity index 100% rename from static/search-extensions/README.md rename to apps/content/static/search-extensions/README.md diff --git a/static/search-extensions/ddg/favicon.ico b/apps/content/static/search-extensions/ddg/favicon.ico similarity index 100% rename from static/search-extensions/ddg/favicon.ico rename to apps/content/static/search-extensions/ddg/favicon.ico diff --git a/static/search-extensions/ddg/manifest.json b/apps/content/static/search-extensions/ddg/manifest.json similarity index 100% rename from static/search-extensions/ddg/manifest.json rename to apps/content/static/search-extensions/ddg/manifest.json diff --git a/static/search-extensions/google/favicon.ico b/apps/content/static/search-extensions/google/favicon.ico similarity index 100% rename from static/search-extensions/google/favicon.ico rename to apps/content/static/search-extensions/google/favicon.ico diff --git a/static/search-extensions/google/manifest.json b/apps/content/static/search-extensions/google/manifest.json similarity index 100% rename from static/search-extensions/google/manifest.json rename to apps/content/static/search-extensions/google/manifest.json diff --git a/static/extensions/ext-browser.json b/apps/extensions/lib/ext-browser.json similarity index 100% rename from static/extensions/ext-browser.json rename to apps/extensions/lib/ext-browser.json diff --git a/static/extensions/parent/ext-browser.js b/apps/extensions/lib/parent/ext-browser.js similarity index 98% rename from static/extensions/parent/ext-browser.js rename to apps/extensions/lib/parent/ext-browser.js index 5c7b0b5..2fd48cc 100644 --- a/static/extensions/parent/ext-browser.js +++ b/apps/extensions/lib/parent/ext-browser.js @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // @ts-check -/* eslint-disable no-undef */ /// /** @type {typeof import('resource://app/modules/TypedImportUtils.sys.mjs')} */ diff --git a/static/extensions/parent/ext-pageAction.js b/apps/extensions/lib/parent/ext-pageAction.js similarity index 96% rename from static/extensions/parent/ext-pageAction.js rename to apps/extensions/lib/parent/ext-pageAction.js index 2cf4cdb..c0ebab0 100644 --- a/static/extensions/parent/ext-pageAction.js +++ b/apps/extensions/lib/parent/ext-pageAction.js @@ -4,9 +4,7 @@ // @ts-check /// - -/* eslint-disable no-undef */ -// Imports are pulled from ext-browser +/// this.pageAction = class extends ExtensionAPIPersistent { /** @type {import('resource://app/modules/EPageActions.sys.mjs').PageAction | null} */ @@ -104,5 +102,3 @@ this.pageAction = class extends ExtensionAPIPersistent { } } } - -// global.pageActionFor = this.pageAction.for diff --git a/static/extensions/sharedTypes.d.ts b/apps/extensions/lib/sharedTypes.d.ts similarity index 100% rename from static/extensions/sharedTypes.d.ts rename to apps/extensions/lib/sharedTypes.d.ts diff --git a/static/extensions/types/ConduitChild.d.ts b/apps/extensions/lib/types/ConduitChild.d.ts similarity index 100% rename from static/extensions/types/ConduitChild.d.ts rename to apps/extensions/lib/types/ConduitChild.d.ts diff --git a/static/extensions/types/index.d.ts b/apps/extensions/lib/types/index.d.ts similarity index 85% rename from static/extensions/types/index.d.ts rename to apps/extensions/lib/types/index.d.ts index 42b3819..89b7fb8 100644 --- a/static/extensions/types/index.d.ts +++ b/apps/extensions/lib/types/index.d.ts @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// +/// /// /// diff --git a/static/extensions/types/utils.d.ts b/apps/extensions/lib/types/utils.d.ts similarity index 100% rename from static/extensions/types/utils.d.ts rename to apps/extensions/lib/types/utils.d.ts diff --git a/apps/extensions/package.json b/apps/extensions/package.json new file mode 100644 index 0000000..ef75707 --- /dev/null +++ b/apps/extensions/package.json @@ -0,0 +1,8 @@ +{ + "name": "extensions", + "version": "1.0.0", + "dependencies": { + "@browser/link": "workspace:*" + }, + "license": "ISC" +} diff --git a/apps/misc/package.json b/apps/misc/package.json new file mode 100644 index 0000000..f56a18f --- /dev/null +++ b/apps/misc/package.json @@ -0,0 +1,12 @@ +{ + "name": "misc", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/src/prefs.js b/apps/misc/static/defaults/pref/prefs.js similarity index 100% rename from src/prefs.js rename to apps/misc/static/defaults/pref/prefs.js diff --git a/static/localization/en-US/branding/brand.ftl b/apps/misc/static/localization/en-US/branding/brand.ftl similarity index 100% rename from static/localization/en-US/branding/brand.ftl rename to apps/misc/static/localization/en-US/branding/brand.ftl diff --git a/static/localization/en-US/browser/appExtensionFields.ftl b/apps/misc/static/localization/en-US/browser/appExtensionFields.ftl similarity index 100% rename from static/localization/en-US/browser/appExtensionFields.ftl rename to apps/misc/static/localization/en-US/browser/appExtensionFields.ftl diff --git a/static/localization/en-US/browser/components/mozSupportLink.ftl b/apps/misc/static/localization/en-US/browser/components/mozSupportLink.ftl similarity index 100% rename from static/localization/en-US/browser/components/mozSupportLink.ftl rename to apps/misc/static/localization/en-US/browser/components/mozSupportLink.ftl diff --git a/static/localization/link.json b/apps/misc/static/localization/link.json similarity index 100% rename from static/localization/link.json rename to apps/misc/static/localization/link.json diff --git a/src/modules/BrowserGlue.ts b/apps/modules/lib/BrowserGlue.sys.mjs similarity index 59% rename from src/modules/BrowserGlue.ts rename to apps/modules/lib/BrowserGlue.sys.mjs index de848ac..70fad5d 100644 --- a/src/modules/BrowserGlue.ts +++ b/apps/modules/lib/BrowserGlue.sys.mjs @@ -1,7 +1,5 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// +/// @ts-check +/// import { lazyESModuleGetters } from 'resource://app/modules/TypedImportUtils.sys.mjs' const lazy = lazyESModuleGetters({ @@ -67,30 +65,8 @@ export class BrowserGlue { } // nsIObserver impl - observe(aSubject: nsISupportsType, aTopic: string, aData: string): void { + observe(aSubject, aTopic, aData) { // eslint-disable-next-line no-console console.log({ aSubject, aTopic, aData }) } - - initializeDevtools() { - const { loader, require, DevToolsLoader } = - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (ChromeUtils as any).importESModule( - 'resource://devtools/shared/loader/Loader.sys.mjs', - ) - - const { DevToolsServer } = require('devtools/server/devtools-server') - - // Make the loader visible to the debugger by default and for the already - // loaded instance. Thunderbird now also provides the Browser Toolbox for - // chrome debugging, which uses its own separate loader instance. - DevToolsLoader.prototype.invisibleToDebugger = false - loader.invisibleToDebugger = false - DevToolsServer.allowChromeProcess = true - - // Initialize and load the toolkit/browser actors. This will also call above function to set the - // Thunderbird root actor - DevToolsServer.init() - DevToolsServer.registerAllActors() - } } diff --git a/apps/modules/lib/BrowserWindowTracker.sys.mjs b/apps/modules/lib/BrowserWindowTracker.sys.mjs new file mode 100644 index 0000000..92013e3 --- /dev/null +++ b/apps/modules/lib/BrowserWindowTracker.sys.mjs @@ -0,0 +1,52 @@ +/// @ts-check +/// +import mitt from 'resource://app/modules/mitt.sys.mjs' + +/** @type {import('resource://app/modules/BrowserWindowTracker.sys.mjs')['WindowTracker']} */ +export const WindowTracker = { + nextWindowId: 0, + + events: mitt(), + + activeWindow: null, + registeredWindows: new Map(), + + /** + * Registers a new browser window to be tracked + * + * @param w The window to register + */ + registerWindow(w) { + w.windowApi.id = this.nextWindowId++ + this.registeredWindows.set(w.windowApi.id, w) + this.events.emit('windowCreated', w) + }, + + removeWindow(w) { + this.registeredWindows.delete(w.windowApi.id) + this.events.emit('windowDestroyed', w) + }, + + getWindowById(wid) { + return this.registeredWindows.get(wid) + }, + + getWindowWithBrowser(browser) { + for (const window of this.registeredWindows.values()) { + const tab = window.windowApi.tabs.tabs.find( + (t) => t.getTabId() === browser.browserId, + ) + if (tab) return { window, tab } + } + return null + }, + + focusWindow(id) { + this.activeWindow = id + this.events.emit('focus', this.getActiveWindow()) + }, + + getActiveWindow() { + return this.registeredWindows.get(this.activeWindow ?? -1) + }, +} diff --git a/apps/modules/lib/EPageActions.sys.mjs b/apps/modules/lib/EPageActions.sys.mjs new file mode 100644 index 0000000..f6431ad --- /dev/null +++ b/apps/modules/lib/EPageActions.sys.mjs @@ -0,0 +1,108 @@ +/// @ts-check +/// +import mitt from 'resource://app/modules/mitt.sys.mjs' + +/** + * @typedef {import('resource://app/modules/EPageActions.sys.mjs').PageActionImpl} PageActionImpl + */ + +/** @implements {PageActionImpl} */ +export class PageAction { + /** @type {import('resource://app/modules/EPageActions.sys.mjs').PageActionImpl['events']} */ + events = mitt() + + tooltip + popupUrl + showMatches + hideMatches + /** @type {Record} */ + icons + + showTabIds = new Set() + hideTabIds = new Set() + + /** + * @param {import('resource://app/modules/EPageActions.sys.mjs').PageActionOptions} data + */ + constructor(data) { + this.tooltip = data.tooltip + this.popupUrl = data.popupUrl + this.showMatches = new MatchPatternSet(data.showMatches || []) + this.hideMatches = new MatchPatternSet(data.hideMatches || []) + } + + /** + * @param {string} url + * @param {number} tabId + * @returns {boolean} + */ + shouldShow(url, tabId) { + const urlMatch = + this.showMatches.matches(url) && + !this.hideMatches.matches(url, true) && + !this.hideTabIds.has(tabId) + const idMatch = this.showTabIds.has(tabId) + + return urlMatch || idMatch + } + + /** + * @param {Record} icons + */ + setIcons(icons) { + this.icons = icons + this.events.emit('updateIcon', icons) + } + + /** + * @param {number} id + */ + addShow(id) { + this.showTabIds.add(id) + this.hideTabIds.delete(id) + } + + /** + * @param {number} id + */ + addHide(id) { + this.hideTabIds.add(id) + this.showTabIds.delete(id) + } +} + +/** @type {import('resource://app/modules/EPageActions.sys.mjs')['EPageActions']} */ +export const EPageActions = { + /** @type {import('resource://app/modules/EPageActions.sys.mjs')['EPageActions']['events']} */ + events: mitt(), + + PageAction, + pageActions: new Map(), + + /** + * @param {string} extensionId + * @param {PageAction} pageAction + */ + registerPageAction(extensionId, pageAction) { + if (EPageActions.pageActions.has(extensionId)) { + EPageActions.removePageAction(extensionId) + } + + EPageActions.pageActions.set(extensionId, pageAction) + EPageActions.events.emit('register', { + action: pageAction, + extension: extensionId, + }) + }, + + /** + * @param {string} extensionId + */ + removePageAction(extensionId) { + const action = EPageActions.pageActions.get(extensionId) + if (!action) return + + EPageActions.pageActions.delete(extensionId) + EPageActions.events.emit('remove', { action, extension: extensionId }) + }, +} diff --git a/static/modules/FaviconLoader.sys.mjs b/apps/modules/lib/FaviconLoader.sys.mjs similarity index 100% rename from static/modules/FaviconLoader.sys.mjs rename to apps/modules/lib/FaviconLoader.sys.mjs diff --git a/apps/modules/lib/TypedImportUtils.sys.mjs b/apps/modules/lib/TypedImportUtils.sys.mjs new file mode 100644 index 0000000..a0da69f --- /dev/null +++ b/apps/modules/lib/TypedImportUtils.sys.mjs @@ -0,0 +1,10 @@ +/// @ts-check +/// + +/** @type {typeof import('resource://app/modules/TypedImportUtils.sys.mjs').lazyESModuleGetters} */ +export const lazyESModuleGetters = (modules) => { + /** @type {any} */ + const lazy = {} + ChromeUtils.defineESModuleGetters(lazy, modules) + return lazy +} diff --git a/static/modules/mitt.sys.mjs b/apps/modules/lib/mitt.sys.mjs similarity index 100% rename from static/modules/mitt.sys.mjs rename to apps/modules/lib/mitt.sys.mjs diff --git a/static/modules/sessionstore/SessionStore.sys.mjs b/apps/modules/lib/sessionstore/SessionStore.sys.mjs similarity index 100% rename from static/modules/sessionstore/SessionStore.sys.mjs rename to apps/modules/lib/sessionstore/SessionStore.sys.mjs diff --git a/apps/modules/package.json b/apps/modules/package.json new file mode 100644 index 0000000..0615d2c --- /dev/null +++ b/apps/modules/package.json @@ -0,0 +1,8 @@ +{ + "name": "@browser/modules", + "version": "1.0.0", + "dependencies": { + "@browser/link": "workspace:*" + }, + "license": "ISC" +} diff --git a/lib/link/package.json b/lib/link/package.json new file mode 100644 index 0000000..8cc389f --- /dev/null +++ b/lib/link/package.json @@ -0,0 +1,13 @@ +{ + "name": "@browser/link", + "version": "1.0.0", + "description": "", + "types": "./types/_link.d.ts", + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "gecko-types": "github:quark-platform/gecko-types", + "mitt": "^3.0.1" + } +} diff --git a/lib/link/types/_link.d.ts b/lib/link/types/_link.d.ts new file mode 100644 index 0000000..0a92320 --- /dev/null +++ b/lib/link/types/_link.d.ts @@ -0,0 +1,20 @@ +// This is the root file that will be imported everywhere. Add your new files +// here to have them show up globally + +/// + +/// +/// +/// +/// +/// + +/// +/// + +/// +/// +/// +/// +/// +/// diff --git a/lib/link/types/globals/ChromeUtils.d.ts b/lib/link/types/globals/ChromeUtils.d.ts new file mode 100644 index 0000000..c4d0d0f --- /dev/null +++ b/lib/link/types/globals/ChromeUtils.d.ts @@ -0,0 +1,4 @@ +declare module ChromeUtils { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + export function importESModule(path: string): any +} diff --git a/lib/link/types/globals/Cr.d.ts b/lib/link/types/globals/Cr.d.ts new file mode 100644 index 0000000..05206dc --- /dev/null +++ b/lib/link/types/globals/Cr.d.ts @@ -0,0 +1 @@ +declare let Cr: Record diff --git a/lib/link/types/globals/Elements.d.ts b/lib/link/types/globals/Elements.d.ts new file mode 100644 index 0000000..7408c8a --- /dev/null +++ b/lib/link/types/globals/Elements.d.ts @@ -0,0 +1,78 @@ +/// + +declare interface Document { + documentURIObject: nsIURIType +} + +declare interface Node { + nodePrincipal: nsIPrincipalType + ownerGlobal: Window + documentLoadGroup: nsIRequestType +} + +declare type DOMLinkAddedEvent = Event & { + target: HTMLLinkElement + type: 'DOMLinkAdded' +} +declare type DOMHeadParsedEvent = Event & { + target: HTMLHeadElement + type: 'DOMHeadElementParsed' +} +declare type PageShowEvent = PageTransitionEvent & { type: 'pageshow' } +declare type PageHideEvent = PageTransitionEvent & { type: 'pagehide' } + +declare interface LoadURIOptions { + triggeringPrincipal?: Principal + csp?: nsIContentSecurityPolicyType + loadFlags?: number + referrerInfo?: nsIReferrerInfoType + postData?: nsIInputStreamType + headers?: nsIInputStreamType + baseURI?: nsIURIType + hasValidUserGestureActivation?: boolean + triggeringSandboxFlags?: number + triggeringWindowId?: number + triggeringStorageAccess?: boolean + triggeringRemoteType?: string + cancelContentJSEpoch?: number + remoteTypeOverride?: string + wasSchemelessInput?: string +} + +declare interface XULBrowserElement extends HTMLElement { + contentTitle: string + source: string + canGoBack: boolean + goBack() + canGoForward: boolean + goForward() + reload() + loadURI(uri: nsIURIType, params?: LoadURIOptions) + browserId: number + mInitialized: boolean + webProgress: nsIWebProgressType + + docShell: unknown + swapDocShells(aOtherBrowser: XULBrowserElement) + + messageManager: ChromeMessageSender +} + +declare interface XULFindBarElement extends HTMLElement { + browser: XULBrowserElement + open() + close() +} + +declare interface XULPanel extends HTMLElement { + openPopup(target: HTMLElement, anchor: string) +} + +declare interface XULMenuPopup extends HTMLElement { + openPopupAtScreen( + x?: number, + y?: number, + isContextMenu?: boolean, + trigger?: Event, + ) +} diff --git a/src/types/MatchPattern.d.ts b/lib/link/types/globals/MatchPattern.d.ts similarity index 100% rename from src/types/MatchPattern.d.ts rename to lib/link/types/globals/MatchPattern.d.ts diff --git a/src/types/MessageManager.d.ts b/lib/link/types/globals/MessageManager.d.ts similarity index 100% rename from src/types/MessageManager.d.ts rename to lib/link/types/globals/MessageManager.d.ts diff --git a/lib/link/types/interfaces/ClickHandler.d.ts b/lib/link/types/interfaces/ClickHandler.d.ts new file mode 100644 index 0000000..d6d6816 --- /dev/null +++ b/lib/link/types/interfaces/ClickHandler.d.ts @@ -0,0 +1,4 @@ +declare type ClickHandlerMessage = { + name: 'openlink' + data: { href: string } +} & { target: JSWindowActorParent } diff --git a/lib/link/types/interfaces/ContextMenu.d.ts b/lib/link/types/interfaces/ContextMenu.d.ts new file mode 100644 index 0000000..705a6f3 --- /dev/null +++ b/lib/link/types/interfaces/ContextMenu.d.ts @@ -0,0 +1,29 @@ +declare interface ContextMenuMediaInfo { + contentType?: string + contentDisposition?: string +} + +declare interface ContextMenuInfo { + position: { + screenX: number + screenY: number + inputSource: number + } + + context: { + principal?: nsIPrincipalType + referrerInfo?: string + } + + mediaInfo?: ContextMenuMediaInfo + + textSelection?: string + href?: string + imageSrc?: string +} + +declare type ContextMenuEvent = { + name: 'contextmenu' + data: ContextMenuInfo + target: JSWindowActorParent +} diff --git a/lib/link/types/interfaces/GenericDeferred.d.ts b/lib/link/types/interfaces/GenericDeferred.d.ts new file mode 100644 index 0000000..3aa47d7 --- /dev/null +++ b/lib/link/types/interfaces/GenericDeferred.d.ts @@ -0,0 +1,28 @@ +/** + * The definition of Deferred object which is returned by PromiseUtils.defer(), + * It contains a Promise and methods to resolve/reject it. + */ +declare interface GenericDeferred { + /* A method to resolve the associated Promise with the value passed. + * If the promise is already settled it does nothing. + * + * @param value This value is used to resolve the promise + * If the value is a Promise then the associated promise assumes the state + * of Promise passed as value. + */ + resolve: (val: T) => void + + /* A method to reject the assocaited Promise with the value passed. + * If the promise is already settled it does nothing. + * + * @param reason The reason for the rejection of the Promise. + * Generally its an Error object. If however a Promise is passed, then the Promise + * itself will be the reason for rejection no matter the state of the Promise. + */ + reject: (err: E) => void + + /* A newly created Pomise object. + * Initially in pending state. + */ + promise: Promise +} diff --git a/src/types/AppConstants.d.ts b/lib/link/types/modules/AppConstants.d.ts similarity index 93% rename from src/types/AppConstants.d.ts rename to lib/link/types/modules/AppConstants.d.ts index 4f65153..b7e4724 100644 --- a/src/types/AppConstants.d.ts +++ b/lib/link/types/modules/AppConstants.d.ts @@ -96,3 +96,11 @@ type AppConstantsContents = { declare module 'resource://gre/modules/AppConstants.sys.mjs' { export const AppConstants: AppConstantsContents } + +declare interface MozESMExportFile { + AppConstants: 'resource://gre/modules/AppConstants.sys.mjs' +} + +declare interface MozESMExportType { + AppConstants: typeof import('resource://gre/modules/AppConstants.sys.mjs').AppConstants +} diff --git a/lib/link/types/modules/BrowserWindowTracker.d.ts b/lib/link/types/modules/BrowserWindowTracker.d.ts new file mode 100644 index 0000000..5e6989c --- /dev/null +++ b/lib/link/types/modules/BrowserWindowTracker.d.ts @@ -0,0 +1,50 @@ +declare module 'resource://app/modules/BrowserWindowTracker.sys.mjs' { + import type { Emitter } from 'resource://app/modules/mitt.sys.mjs' + + // TODO: Replace this with the correct tab type + // eslint-disable-next-line @typescript-eslint/no-explicit-any + type Tab = any + + export type WindowTrackerEvents = { + windowCreated: Window & typeof globalThis + windowDestroyed: Window & typeof globalThis + + focus: Window & typeof globalThis + } + + export const WindowTracker: { + nextWindowId: number + + events: Emitter + + activeWindow: number | null + registeredWindows: Map + + /** + * Registers a new browser window to be tracked + * + * @param w The window to register + */ + registerWindow(w: typeof window): void + + removeWindow(w: typeof window): void + + getWindowById(wid: number): typeof window | undefined + + getWindowWithBrowser( + browser: XULBrowserElement, + ): { window: Window & typeof globalThis; tab: Tab } | null + + focusWindow(id: number): void + + getActiveWindow(): (typeof window & typeof globalThis) | undefined + } +} + +declare interface MozESMExportFile { + WindowTracker: 'resource://app/modules/BrowserWindowTracker.sys.mjs' +} + +declare interface MozESMExportType { + WindowTracker: typeof import('resource://app/modules/BrowserWindowTracker.sys.mjs').WindowTracker +} diff --git a/lib/link/types/modules/EPageActions.d.ts b/lib/link/types/modules/EPageActions.d.ts new file mode 100644 index 0000000..485adff --- /dev/null +++ b/lib/link/types/modules/EPageActions.d.ts @@ -0,0 +1,96 @@ +declare module 'resource://app/modules/EPageActions.sys.mjs' { + import type { Emitter } from 'mitt' + + export type PageActionsEvents = { + register: { + extension: string + action: PageActionImpl + } + + remove: { + extension: string + action: PageActionImpl + } + } + + /** + * The following features are not going to be supported, primarily because I see + * no good reason for including support + * - `browser_style`: There is no documentation for this, provide a browser + * style component library instead + * - `pinned`: For the moment, I don't feel like pinning page actions + * + * @todo analytics to see how many page actions people have. If there are a few + * power users, we might want to implement `pinned` + */ + export interface PageActionOptions { + /** + * The tooltip displayed when the user hovers over the action button. + * + * @key `default_title` + */ + tooltip?: string + + /** + * The url of the popup to show when the icon is clicked. If this url does not + * exist, clicking the icon will send an event back to the extension. + * + * @key `default_popup` + */ + popupUrl?: string + + /** + * @key `show_matches` + */ + showMatches?: PS + + /** + * @key `hide_matches` + */ + hideMatches?: PS + + icons?: Record + } + + export type PageActionEvents = { + updateIcon: Record | undefined + click: { clickData: { modifiers: string[]; button: number } } + } + + export class PageActionImpl implements PageActionOptions { + events: Emitter + + tooltip?: string + popupUrl?: string + showMatches?: MatchPatternSet + hideMatches?: MatchPatternSet + showTabIds: Set + hideTabIds: Set + + constructor(data: PageActionOptions) + + shouldShow(url: string, tabId: number): boolean + setIcons(icon: Record): void + addShow(id: number): void + addHide(id: number): void + } + + export const PageAction: typeof PageActionImpl + + export const EPageActions: { + events: Emitter + PageAction: typeof PageActionImpl + pageActions: Map + + registerPageAction(extension: string, action: PageActionImpl): void + removePageAction(extension: string): void + } +} + +declare interface MozESMExportFile { + EPageActions: 'resource://app/modules/EPageActions.sys.mjs' +} + +declare interface MozESMExportType { + EPageActions: typeof import('resource://app/modules/EPageActions.sys.mjs').EPageActions +} diff --git a/src/link.d.ts b/lib/link/types/modules/PlacesUtils.d.ts similarity index 79% rename from src/link.d.ts rename to lib/link/types/modules/PlacesUtils.d.ts index ca0925d..fe23f9c 100644 --- a/src/link.d.ts +++ b/lib/link/types/modules/PlacesUtils.d.ts @@ -1,115 +1,5 @@ -/* eslint-disable @typescript-eslint/ban-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/// - -/// -/// -/// - -declare type LazyImportType> = - | { [Key in keyof Modules]: MozESMExportType[Key] } - | {} - -declare module 'resource://app/modules/TypedImportUtils.sys.mjs' { - export const lazyESModuleGetters: typeof import('./modules/TypedImportUtils').lazyESModuleGetters -} - -declare module 'resource://app/modules/mitt.sys.mjs' { - export type * from 'mitt' - - declare const mitt: typeof import('mitt').default - export default mitt -} - -declare module 'resource://app/modules/EPageActions.sys.mjs' { - export * from './modules/EPageActions' -} - -declare interface MozESMExportFile { - AppConstants: 'resource://gre/modules/AppConstants.sys.mjs' - TypedImportUtils: 'resource://app/modules/TypedImportUtils.sys.mjs' - WindowTracker: 'resource://app/modules/BrowserWindowTracker.sys.mjs' - EPageActions: 'resource://app/modules/EPageActions.sys.mjs' -} - -declare interface MozESMExportType { - AppConstants: typeof import('resource://gre/modules/AppConstants.sys.mjs').AppConstants - TypedImportUtils: typeof import('./modules/TypedImportUtils') - WindowTracker: typeof import('./modules/BrowserWindowTracker').WindowTracker - EPageActions: typeof import('./modules/EPageActions').EPageActions -} - -declare let Cr: Record - -declare interface Document { - documentURIObject: nsIURIType -} - -declare interface Node { - nodePrincipal: nsIPrincipalType - ownerGlobal: Window - documentLoadGroup: nsIRequestType -} - -declare interface LoadURIOptions { - triggeringPrincipal?: Principal - csp?: ContentSecurityPolicy - loadFlags?: number - referrerInfo?: ReferrerInfo - postData?: nsIInputStreamType - headers?: nsIInputStreamType - baseURI?: nsIURIType - hasValidUserGestureActivation?: boolean - triggeringSandboxFlags?: number - triggeringWindowId?: number - triggeringStorageAccess?: boolean - triggeringRemoteType?: string - cancelContentJSEpoch?: number - remoteTypeOverride?: string - wasSchemelessInput?: string -} - -declare interface XULBrowserElement extends HTMLElement { - contentTitle: string - source: string - canGoBack: boolean - goBack() - canGoForward: boolean - goForward() - reload() - loadURI(uri: nsIURIType, params?: LoadURIOptions) - browserId: number - mInitialized: boolean - webProgress: nsIWebProgressType - - docShell: unknown - swapDocShells(aOtherBrowser: XULBrowserElement) - - messageManager: ChromeMessageSender -} - -declare interface XULFindBarElement extends HTMLElement { - browser: XULBrowserElement - open() - close() -} - -declare interface XULPanel extends HTMLElement { - openPopup(target: HTMLElement, anchor: string) -} - -declare interface XULMenuPopup extends HTMLElement { - openPopupAtScreen( - x?: number, - y?: number, - isContextMenu?: boolean, - trigger?: Event, - ) -} +/* eslint-disable @typescript-eslint/ban-types */ declare interface PlacesBookmarkTreeNode { guid: string @@ -133,36 +23,7 @@ declare interface PlacesBookmarkTreeNode { postData?: string iconUri?: string - children?: BookmarkTreeNode[] -} - -/** - * The definition of Deferred object which is returned by PromiseUtils.defer(), - * It contains a Promise and methods to resolve/reject it. - */ -declare interface GenericDeferred { - /* A method to resolve the associated Promise with the value passed. - * If the promise is already settled it does nothing. - * - * @param value This value is used to resolve the promise - * If the value is a Promise then the associated promise assumes the state - * of Promise passed as value. - */ - resolve: (val: T) => void - - /* A method to reject the assocaited Promise with the value passed. - * If the promise is already settled it does nothing. - * - * @param reason The reason for the rejection of the Promise. - * Generally its an Error object. If however a Promise is passed, then the Promise - * itself will be the reason for rejection no matter the state of the Promise. - */ - reject: (err: E) => void - - /* A newly created Pomise object. - * Initially in pending state. - */ - promise: Promise + children?: PlacesBookmarkTreeNode[] } // Typescript generates really broken types for this module by default @@ -581,7 +442,7 @@ declare module 'resource://gre/modules/PlacesUtils.sys.mjs' { * - "hex" for hex format. * @returns {string} md5 hash of the input string in the required format. */ - function md5(data: string, { format }?: string): string + function md5(data: string, { format }?): string /** * Inserts a new place if one doesn't currently exist. * @@ -619,23 +480,6 @@ declare module 'resource://gre/modules/PlacesUtils.sys.mjs' { * be appended automatically to the prefix. * @returns {object} The logger. */ - function getLogger({ prefix }?: string): object + function getLogger({ prefix }?): object } } - -declare module ChromeUtils { - /** - * Synchronously loads and evaluates the JS module source located at - * 'aResourceURI'. - * - * @param aResourceURI A resource:// URI string to load the module from. - * @returns the module's namespace object. - * - * The implementation maintains a hash of aResourceURI->global obj. - * Subsequent invocations of import with 'aResourceURI' pointing to - * the same file will not cause the module to be re-evaluated. - */ - function importESModule( - path: Path, - ): T -} diff --git a/lib/link/types/modules/mitt.d.ts b/lib/link/types/modules/mitt.d.ts new file mode 100644 index 0000000..da42881 --- /dev/null +++ b/lib/link/types/modules/mitt.d.ts @@ -0,0 +1,6 @@ +declare module 'resource://app/modules/mitt.sys.mjs' { + export type * from 'mitt' + + const mitt: typeof import('mitt').default + export default mitt +} diff --git a/lib/link/types/modules/typedImport.d.ts b/lib/link/types/modules/typedImport.d.ts new file mode 100644 index 0000000..dc045fb --- /dev/null +++ b/lib/link/types/modules/typedImport.d.ts @@ -0,0 +1,16 @@ +declare module 'resource://app/modules/TypedImportUtils.sys.mjs' { + export function lazyESModuleGetters< + Modules extends Partial, + >( + modules: Modules, + // @ts-expect-error - Cannot guarantee overlapping key type + ): { [Key in keyof Modules]: MozESMExportType[Key] } +} + +declare interface MozESMExportFile { + lazyESModuleGetters: 'resource://app/modules/TypedImportUtils.sys.mjs' +} + +declare interface MozESMExportType { + lazyESModuleGetters: typeof import('resource://app/modules/TypedImportUtils.sys.mjs').lazyESModuleGetters +} diff --git a/lib/shared/package.json b/lib/shared/package.json new file mode 100644 index 0000000..2d047be --- /dev/null +++ b/lib/shared/package.json @@ -0,0 +1,22 @@ +{ + "name": "@browser/shared", + "version": "1.0.0", + "description": "", + "type": "module", + "source": "src/index.ts", + "types": "./dist/index.d.ts", + "scripts": { + "build": "microbundle --external=none --format=modern", + "dev": "microbundle watch --external=none --format=modern" + }, + "devDependencies": { + "@browser/link": "workspace:*", + "microbundle": "^0.15.1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "svelte": "^4.2.8" + } +} diff --git a/lib/shared/src/index.ts b/lib/shared/src/index.ts new file mode 100644 index 0000000..2a3d9fa --- /dev/null +++ b/lib/shared/src/index.ts @@ -0,0 +1,6 @@ +/// + +export * from './utilities/index.js' +export * from './xul/index.js' + +export * from './lazy.js' diff --git a/src/modules/TypedImportUtils.ts b/lib/shared/src/lazy.ts similarity index 60% rename from src/modules/TypedImportUtils.ts rename to lib/shared/src/lazy.ts index 51d6533..abc3513 100644 --- a/src/modules/TypedImportUtils.ts +++ b/lib/shared/src/lazy.ts @@ -1,7 +1,3 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - export function lazyESModuleGetters>( modules: Modules, // @ts-expect-error - Cannot guarantee overlapping key type @@ -13,3 +9,10 @@ export function lazyESModuleGetters>( return lazy } + +export const lazy = lazyESModuleGetters({ + AppConstants: 'resource://gre/modules/AppConstants.sys.mjs', + PlacesUtils: 'resource://gre/modules/PlacesUtils.sys.mjs', + Bookmarks: 'resource://gre/modules/Bookmarks.sys.mjs', + History: 'resource://gre/modules/History.sys.mjs', +}) diff --git a/lib/shared/src/utilities/deferred.ts b/lib/shared/src/utilities/deferred.ts new file mode 100644 index 0000000..5896ac6 --- /dev/null +++ b/lib/shared/src/utilities/deferred.ts @@ -0,0 +1,33 @@ +/// + +/** + * The definition of Deferred object which is returned by PromiseUtils.defer(), + * It contains a Promise and methods to resolve/reject it. + */ +export class Deferred implements GenericDeferred { + /* A method to resolve the associated Promise with the value passed. + * If the promise is already settled it does nothing. + * + * @param value This value is used to resolve the promise + * If the value is a Promise then the associated promise assumes the state + * of Promise passed as value. + */ + resolve!: (val: T) => void + + /* A method to reject the assocaited Promise with the value passed. + * If the promise is already settled it does nothing. + * + * @param reason The reason for the rejection of the Promise. + * Generally its an Error object. If however a Promise is passed, then the Promise + * itself will be the reason for rejection no matter the state of the Promise. + */ + reject!: (err: E) => void + + /* A newly created Pomise object. + * Initially in pending state. + */ + promise: Promise = new Promise((resolve, reject) => { + this.resolve = resolve + this.reject = reject + }) +} diff --git a/lib/shared/src/utilities/index.ts b/lib/shared/src/utilities/index.ts new file mode 100644 index 0000000..12a80b2 --- /dev/null +++ b/lib/shared/src/utilities/index.ts @@ -0,0 +1,2 @@ +export * from './deferred.js' +export * from './mitt.js' diff --git a/lib/shared/src/utilities/mitt.ts b/lib/shared/src/utilities/mitt.ts new file mode 100644 index 0000000..a667dea --- /dev/null +++ b/lib/shared/src/utilities/mitt.ts @@ -0,0 +1,17 @@ +import type { Emitter, EventType } from 'mitt' + +export const waitForEvent = < + Events extends Record, + Key extends keyof Events, +>( + emitter: Emitter, + event: Key, +) => + new Promise((resolve) => { + const handler = (value: Events[Key]) => { + emitter.off(event, handler) + resolve(value) + } + + emitter.on(event, handler) + }) diff --git a/lib/shared/src/utilities/svelte.license.md b/lib/shared/src/utilities/svelte.license.md new file mode 100644 index 0000000..872373a --- /dev/null +++ b/lib/shared/src/utilities/svelte.license.md @@ -0,0 +1,9 @@ +This license is for the `viewableWritable` function: + +Copyright (c) 2016-23 [these people](https://github.com/sveltejs/svelte/graphs/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/lib/shared/src/utilities/svelte.ts b/lib/shared/src/utilities/svelte.ts new file mode 100644 index 0000000..e8e6185 --- /dev/null +++ b/lib/shared/src/utilities/svelte.ts @@ -0,0 +1,119 @@ +import { + type Invalidator, + type Readable, + type StartStopNotifier, + type Subscriber, + type Unsubscriber, + type Updater, + type Writable, + get, + readable, +} from 'svelte/store' + +import { observable } from '../xul/index.js' + +type SubInvTuple = [Subscriber, Invalidator] + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const subscriber_queue: (SubInvTuple | any)[] = [] +const noop = () => {} + +export function safe_not_equal(a: T, b: T): boolean { + return a != a + ? b == b + : a !== b || (a && typeof a === 'object') || typeof a === 'function' +} + +export interface ViewableWritable extends Writable { + readOnce(): T +} + +/** + * Create a `Writable` store that allows both updating and reading by subscription. + * This variant allows for reading outside of a subscription + * + * https://svelte.dev/docs/svelte-store#writable + * + * @license MIT The following code was taken directly from svelte. For the license + * see svelteUtils.svelte.license.md + */ +export function viewableWritable( + value: T, + start: StartStopNotifier = noop, +): ViewableWritable { + let stop: Unsubscriber | null = null + const subscribers: Set<[Subscriber, Invalidator]> = new Set() + + function set(new_value: T): void { + if (safe_not_equal(value, new_value)) { + value = new_value + if (stop) { + // store is ready + const run_queue = !subscriber_queue.length + for (const subscriber of subscribers) { + subscriber[1]() + subscriber_queue.push(subscriber, value) + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]) + } + subscriber_queue.length = 0 + } + } + } + } + + function update(fn: Updater): void { + set(fn(value)) + } + + function subscribe( + run: Subscriber, + invalidate: Invalidator = noop, + ): Unsubscriber { + const subscriber: SubInvTuple = [run, invalidate] + subscribers.add(subscriber) + if (subscribers.size === 1) { + stop = start(set, update) || noop + } + run(value) + return () => { + subscribers.delete(subscriber) + if (subscribers.size === 0 && stop) { + stop() + stop = null + } + } + } + + function readOnce(): T { + return value + } + + return { set, update, subscribe, readOnce } +} + +export function resolverStore( + intermediate: T, + toResolve: Promise>, +): Readable { + return readable(intermediate, (set) => { + toResolve.then((resolved) => { + set(get(resolved)) + resolved.subscribe(set) + }) + }) +} + +// NOTE: Autocurrying doesn't infer T correctly +export const dynamicStringPref = + (processor: (value: string) => T) => + (pref: string): Readable => + readable(processor(Services.prefs.getStringPref(pref, '')), (set) => { + const observer = observable(() => + set(processor(Services.prefs.getStringPref(pref, ''))), + ) + Services.prefs.addObserver(pref, observer) + return () => Services.prefs.removeObserver(pref, observer) + }) diff --git a/lib/shared/src/xul/PlacesModel.ts b/lib/shared/src/xul/PlacesModel.ts new file mode 100644 index 0000000..f63a0ef --- /dev/null +++ b/lib/shared/src/xul/PlacesModel.ts @@ -0,0 +1,199 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +import mitt from 'mitt' +import { type Readable, get, readable } from 'svelte/store' + +import { lazy } from '../lazy' + +/** + * Based on the values defined inside of `historySidebar.js` inside of Firefox + * @see {@link https://searchfox.org/mozilla-central/source/browser/components/places/content/historySidebar.js#104} + */ +export enum HistoryGroupType { + /** + * An item list with the most visited items up the top. There are no folders. + */ + MostVisited = 'mostVisited', + /** An item list with no folders & the last visited item first */ + LastVisited = 'lastVisited', + /** + * Similar to {@link HistoryGroupType.LastVisited}, except everything is + * grouped into date subfolders + */ + GroupByDate = 'groupByDate', + /** + * Similar to {@link HistoryGroupType.LastVisited}, except everything is + * grouped into site subfolders + */ + GroupBySite = 'groupBySite', + /** + * Similar to {@link HistoryGroupType.LastVisited}, except everything is + * grouped into date subfolders at the top level, then site subfolders under + * that + */ + GroupBySiteAndDate = 'groupBySiteAndDate', +} + +function getQuerySortingOptions(groupType: HistoryGroupType): { + sortingMode: number | null + resultType: number | null +} { + const NHQO = Ci.nsINavHistoryQueryOptions + + let sortingMode: number | null = null + let resultType: number | null = null + + switch (groupType) { + case HistoryGroupType.MostVisited: + resultType = NHQO.RESULTS_AS_URI + sortingMode = NHQO.SORT_BY_VISITCOUNT_DESCENDING + break + case HistoryGroupType.LastVisited: + resultType = NHQO.RESULTS_AS_URI + sortingMode = NHQO.SORT_BY_DATE_DESCENDING + break + case HistoryGroupType.GroupByDate: + resultType = NHQO.RESULTS_AS_DATE_QUERY + sortingMode = NHQO.SORT_BY_DATE_DESCENDING + break + case HistoryGroupType.GroupBySite: + resultType = NHQO.RESULTS_AS_SITE_QUERY + sortingMode = NHQO.SORT_BY_DATE_DESCENDING + break + case HistoryGroupType.GroupBySiteAndDate: + resultType = NHQO.RESULTS_AS_DATE_SITE_QUERY + sortingMode = NHQO.SORT_BY_DATE_DESCENDING + break + } + + return { sortingMode, resultType } +} + +export function setNodeOpened( + node: nsINavHistoryContainerResultNodeType, + opened = true, +) { + node.containerOpen = opened +} + +export function openAll(node: nsINavHistoryResultNodeType) { + // @ts-expect-error Ci is not correctly typed + if (node instanceof Ci.nsINavHistoryContainerResultNode) { + const containerNode = node as nsINavHistoryContainerResultNodeType + containerNode.containerOpen = true + + const nodes = containerNode.childCount + for (let i = 0; i < nodes; i++) { + openAll(containerNode.getChild(i)) + } + } +} + +export const searchableHistoryModel = ( + searchTerms: Readable, + groupType: Readable, +) => { + const controller = new PlacesController() + + const callLoad = (searchTerms: string, groupType: HistoryGroupType) => { + const hasSearchTerm = searchTerms != '' + + const query = lazy.PlacesUtils.history.getNewQuery() + if (hasSearchTerm) query.searchTerms = searchTerms + + const options = lazy.PlacesUtils.history.getNewQueryOptions() + + const { sortingMode, resultType } = getQuerySortingOptions(groupType) + if (sortingMode) options.sortingMode = sortingMode + if (resultType) options.resultType = resultType + options.includeHidden = hasSearchTerm + + controller.load(query, options) + } + + return readable<{ root: nsINavHistoryContainerResultNodeType | null }>( + { root: null }, + (set) => { + controller.events.on('newResult', (result) => set({ root: result.root })) + searchTerms.subscribe((searchTerms) => + callLoad(searchTerms, get(groupType)), + ) + groupType.subscribe((groupType) => callLoad(get(searchTerms), groupType)) + + callLoad(get(searchTerms), get(groupType)) + }, + ) +} + +export type PlacesSharedEvents = { + newResult: nsINavHistoryResultType +} + +/** + * Similar in concept to Firefox's places tree view + * @see {@link https://searchfox.org/mozilla-central/source/browser/components/places/content/treeView.js} + */ +class PlacesController { + events = mitt() + observer?: PlacesObserver + + load(query: nsINavHistoryQueryType, options: nsINavHistoryQueryOptionsType) { + const observer = new PlacesObserver() + observer.events.on('*', (event, ...args) => + this.events.emit(event, ...args), + ) + + const result = lazy.PlacesUtils.history.executeQuery(query, options) + result.addObserver(observer) + + if (this.observer) this.observer.uninit() + this.observer = observer + } +} + +class PlacesObserver implements nsINavHistoryResultObserverType { + QueryInterface = ChromeUtils.generateQI([ + 'nsINavHistoryResultObserver', + 'nsISupportsWeakReference', + ]) + + private _result: nsINavHistoryResultType | null = null + events = mitt() + skipHistoryDetailsNotifications = false + + get result(): nsINavHistoryResultType { + return this._result! + } + + set result(result: nsINavHistoryResultType) { + if (this._result) { + this._result.removeObserver(this) + } + + this._result = result + this.events.emit('newResult', result) + } + + uninit() { + if (this._result) this._result.removeObserver(this) + } + + // Generated interface garbage + + nodeInserted(): void {} + nodeRemoved(): void {} + nodeMoved(): void {} + nodeTitleChanged(): void {} + nodeURIChanged(): void {} + nodeIconChanged(): void {} + nodeHistoryDetailsChanged(): void {} + nodeTagsChanged(): void {} + nodeKeywordChanged(): void {} + nodeDateAddedChanged(): void {} + nodeLastModifiedChanged(): void {} + containerStateChanged(): void {} + invalidateContainer(): void {} + sortingChanged(): void {} + batching(): void {} +} diff --git a/lib/shared/src/xul/index.ts b/lib/shared/src/xul/index.ts new file mode 100644 index 0000000..7f5cf84 --- /dev/null +++ b/lib/shared/src/xul/index.ts @@ -0,0 +1,3 @@ +export * from './messageReceiver.js' +export * from './observable.js' +export * from './PlacesModel.js' diff --git a/lib/shared/src/xul/messageReceiver.ts b/lib/shared/src/xul/messageReceiver.ts new file mode 100644 index 0000000..d1a3ec8 --- /dev/null +++ b/lib/shared/src/xul/messageReceiver.ts @@ -0,0 +1,14 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +export class MessageReviver< + Cb extends (argument: ReceiveMessageArgument) => unknown, +> implements MessageListener +{ + receiveMessage: Cb + + constructor(callback: Cb) { + this.receiveMessage = callback + } +} diff --git a/lib/shared/src/xul/observable.ts b/lib/shared/src/xul/observable.ts new file mode 100644 index 0000000..825c142 --- /dev/null +++ b/lib/shared/src/xul/observable.ts @@ -0,0 +1,22 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +export type ObservableCallback = ( + subject: nsISupportsType, + topic: string, + data: string, +) => void + +class ObservableImpl implements nsIObserverType { + QueryInterface = ChromeUtils.generateQI(['nsIObserver']) + observe: ObservableCallback + + constructor(cb: ObservableCallback) { + this.observe = cb + } +} + +export function observable(callback: ObservableCallback): nsIObserverType { + return new ObservableImpl(callback) +} diff --git a/lib/shared/tsconfig.json b/lib/shared/tsconfig.json new file mode 100644 index 0000000..2550ad9 --- /dev/null +++ b/lib/shared/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "target": "ESNext", + "moduleResolution": "NodeNext" + }, + "include": [ + "src/**/*" + ] +} \ No newline at end of file diff --git a/package.json b/package.json index ccadc0f..7cca5e8 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "main": "index.js", "scripts": { - "postinstall": "pnpm scripts:build && pnpm script:setup", + "_postinstall": "pnpm scripts:build && pnpm script:setup", "scripts:build": "tsc -p ./tsconfigs/tsconfig.scripts.json", "script:setup": "node ./.scripts/setup.js", "script:license-check": "node ./.scripts/license-check.js", @@ -30,57 +30,29 @@ "author": "", "license": "ISC", "devDependencies": { - "@melt-ui/pp": "^0.1.4", - "@melt-ui/svelte": "^0.64.0", "@tinyhttp/app": "^2.2.1", "@total-typescript/ts-reset": "^0.5.1", "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@tsconfig/svelte": "^5.0.2", "@types/node": "^20.8.4", "@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/parser": "^6.11.0", "concurrently": "^8.2.1", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.8.1", "eslint": "^8.53.0", "eslint-plugin-listeners": "^1.4.0", "execa": "^8.0.1", "gecko-types": "github:quark-platform/gecko-types", - "html-webpack-plugin": "^5.5.3", "kleur": "^4.1.5", - "mini-css-extract-plugin": "^2.7.6", "nodejs-file-downloader": "^4.12.1", - "postcss-loader": "^7.3.3", "prettier": "^3.0.3", "prettier-plugin-organize-imports": "^3.2.3", "prettier-plugin-svelte": "^3.0.3", - "style-loader": "^3.3.3", - "svelte": "^4.2.8", - "svelte-loader": "^3.1.9", - "svelte-preprocess": "^5.1.2", - "svelte-sequential-preprocessor": "^2.0.1", - "ts-loader": "^9.5.0", - "typescript": "^5.2.2", - "webpack": "^5.89.0", - "webpack-bundle-analyzer": "^4.10.1", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1", - "webpack-license-plugin": "^4.4.2", - "zora": "^5.2.0" - }, - "dependencies": { - "@catppuccin/palette": "^0.2.0", - "fnts": "^2.0.1", - "mitt": "^3.0.1", - "nanoid": "^5.0.3", - "remixicon": "^3.7.0", - "snarkdown": "^2.0.0" + "typescript": "^5.2.2" }, "pnpm": { "patchedDependencies": { - "svelte@4.2.8": "patches/svelte@4.2.1.patch", - "webpack-license-plugin@4.4.2": "patches/webpack-license-plugin@4.4.2.patch", - "@melt-ui/svelte@0.64.5": "patches/@melt-ui__svelte@0.64.5.patch" + "svelte@4.2.8": "apps/content/patches/svelte@4.2.1.patch", + "webpack-license-plugin@4.4.2": "apps/content/patches/webpack-license-plugin@4.4.2.patch", + "@melt-ui/svelte@0.67.0": "apps/content/patches/@melt-ui__svelte@0.64.5.patch" } }, "prettier": { @@ -130,7 +102,8 @@ "rules": { "@typescript-eslint/triple-slash-reference": "off", "no-extra-semi": "off", - "no-console": "warn" + "no-console": "warn", + "no-undef": "off" }, "ignorePatterns": [ "src/modules/*.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d117f90..8a85a3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,148 +5,192 @@ settings: excludeLinksFromLockfile: false patchedDependencies: - '@melt-ui/svelte@0.64.5': + '@melt-ui/svelte@0.67.0': hash: aeypykqddydgtdgxoo44wxfeey - path: patches/@melt-ui__svelte@0.64.5.patch + path: apps/content/patches/@melt-ui__svelte@0.64.5.patch svelte@4.2.8: hash: cm43hmf4gczhssi3isoosy53r4 - path: patches/svelte@4.2.1.patch + path: apps/content/patches/svelte@4.2.1.patch webpack-license-plugin@4.4.2: hash: j2giecj6dvolnysmkqbx73rnua - path: patches/webpack-license-plugin@4.4.2.patch - -dependencies: - '@catppuccin/palette': - specifier: ^0.2.0 - version: 0.2.0 - fnts: - specifier: ^2.0.1 - version: 2.0.1(typescript@5.2.2) - mitt: - specifier: ^3.0.1 - version: 3.0.1 - nanoid: - specifier: ^5.0.3 - version: 5.0.3 - remixicon: - specifier: ^3.7.0 - version: 3.7.0 - snarkdown: - specifier: ^2.0.0 - version: 2.0.0 - -devDependencies: - '@melt-ui/pp': - specifier: ^0.1.4 - version: 0.1.4(@melt-ui/svelte@0.64.5)(svelte@4.2.8) - '@melt-ui/svelte': - specifier: ^0.64.0 - version: 0.64.5(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) - '@tinyhttp/app': - specifier: ^2.2.1 - version: 2.2.1 - '@total-typescript/ts-reset': - specifier: ^0.5.1 - version: 0.5.1 - '@trivago/prettier-plugin-sort-imports': - specifier: ^4.3.0 - version: 4.3.0(prettier@3.0.3) - '@tsconfig/svelte': - specifier: ^5.0.2 - version: 5.0.2 - '@types/node': - specifier: ^20.8.4 - version: 20.8.4 - '@typescript-eslint/eslint-plugin': - specifier: ^6.11.0 - version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': - specifier: ^6.11.0 - version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) - concurrently: - specifier: ^8.2.1 - version: 8.2.1 - copy-webpack-plugin: - specifier: ^11.0.0 - version: 11.0.0(webpack@5.89.0) - css-loader: - specifier: ^6.8.1 - version: 6.8.1(webpack@5.89.0) - eslint: - specifier: ^8.53.0 - version: 8.53.0 - eslint-plugin-listeners: - specifier: ^1.4.0 - version: 1.4.0(eslint@8.53.0) - execa: - specifier: ^8.0.1 - version: 8.0.1 - gecko-types: - specifier: github:quark-platform/gecko-types - version: github.com/quark-platform/gecko-types/e4efe38ce26c3617d7a3ecb13491bca2004e0377 - html-webpack-plugin: - specifier: ^5.5.3 - version: 5.5.3(webpack@5.89.0) - kleur: - specifier: ^4.1.5 - version: 4.1.5 - mini-css-extract-plugin: - specifier: ^2.7.6 - version: 2.7.6(webpack@5.89.0) - nodejs-file-downloader: - specifier: ^4.12.1 - version: 4.12.1 - postcss-loader: - specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.31)(typescript@5.2.2)(webpack@5.89.0) - prettier: - specifier: ^3.0.3 - version: 3.0.3 - prettier-plugin-organize-imports: - specifier: ^3.2.3 - version: 3.2.3(prettier@3.0.3)(typescript@5.2.2) - prettier-plugin-svelte: - specifier: ^3.0.3 - version: 3.0.3(prettier@3.0.3)(svelte@4.2.8) - style-loader: - specifier: ^3.3.3 - version: 3.3.3(webpack@5.89.0) - svelte: - specifier: ^4.2.8 - version: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) - svelte-loader: - specifier: ^3.1.9 - version: 3.1.9(svelte@4.2.8) - svelte-preprocess: - specifier: ^5.1.2 - version: 5.1.2(postcss@8.4.31)(svelte@4.2.8)(typescript@5.2.2) - svelte-sequential-preprocessor: - specifier: ^2.0.1 - version: 2.0.1 - ts-loader: - specifier: ^9.5.0 - version: 9.5.0(typescript@5.2.2)(webpack@5.89.0) - typescript: - specifier: ^5.2.2 - version: 5.2.2 - webpack: - specifier: ^5.89.0 - version: 5.89.0(webpack-cli@5.1.4) - webpack-bundle-analyzer: - specifier: ^4.10.1 - version: 4.10.1 - webpack-cli: - specifier: ^5.1.4 - version: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) - webpack-dev-server: - specifier: ^4.15.1 - version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) - webpack-license-plugin: - specifier: ^4.4.2 - version: 4.4.2(patch_hash=j2giecj6dvolnysmkqbx73rnua)(webpack@5.89.0) - zora: - specifier: ^5.2.0 - version: 5.2.0 + path: apps/content/patches/webpack-license-plugin@4.4.2.patch + +importers: + + .: + devDependencies: + '@tinyhttp/app': + specifier: ^2.2.1 + version: 2.2.1 + '@total-typescript/ts-reset': + specifier: ^0.5.1 + version: 0.5.1 + '@trivago/prettier-plugin-sort-imports': + specifier: ^4.3.0 + version: 4.3.0(prettier@3.0.3) + '@types/node': + specifier: ^20.8.4 + version: 20.8.4 + '@typescript-eslint/eslint-plugin': + specifier: ^6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.11.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) + concurrently: + specifier: ^8.2.1 + version: 8.2.1 + eslint: + specifier: ^8.53.0 + version: 8.53.0 + eslint-plugin-listeners: + specifier: ^1.4.0 + version: 1.4.0(eslint@8.53.0) + execa: + specifier: ^8.0.1 + version: 8.0.1 + gecko-types: + specifier: github:quark-platform/gecko-types + version: github.com/quark-platform/gecko-types/e4efe38ce26c3617d7a3ecb13491bca2004e0377 + kleur: + specifier: ^4.1.5 + version: 4.1.5 + nodejs-file-downloader: + specifier: ^4.12.1 + version: 4.12.1 + prettier: + specifier: ^3.0.3 + version: 3.0.3 + prettier-plugin-organize-imports: + specifier: ^3.2.3 + version: 3.2.3(prettier@3.0.3)(typescript@5.2.2) + prettier-plugin-svelte: + specifier: ^3.0.3 + version: 3.0.3(prettier@3.0.3)(svelte@4.2.8) + typescript: + specifier: ^5.2.2 + version: 5.2.2 + + apps/actors: + dependencies: + '@browser/link': + specifier: workspace:* + version: link:../../lib/link + + apps/content: + dependencies: + '@catppuccin/palette': + specifier: ^1.0.1 + version: 1.0.1 + '@melt-ui/svelte': + specifier: ^0.67.0 + version: 0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) + fnts: + specifier: ^2.1.0 + version: 2.1.0(typescript@5.3.3) + mitt: + specifier: ^3.0.1 + version: 3.0.1 + nanoid: + specifier: ^5.0.4 + version: 5.0.4 + remixicon: + specifier: ^4.0.1 + version: 4.0.1 + snarkdown: + specifier: ^2.0.0 + version: 2.0.0 + devDependencies: + '@melt-ui/pp': + specifier: ^0.3.0 + version: 0.3.0(@melt-ui/svelte@0.67.0)(svelte@4.2.8) + '@tsconfig/svelte': + specifier: ^5.0.2 + version: 5.0.2 + copy-webpack-plugin: + specifier: ^11.0.0 + version: 11.0.0(webpack@5.89.0) + css-loader: + specifier: ^6.8.1 + version: 6.8.1(webpack@5.89.0) + html-webpack-plugin: + specifier: ^5.6.0 + version: 5.6.0(webpack@5.89.0) + mini-css-extract-plugin: + specifier: ^2.7.6 + version: 2.7.6(webpack@5.89.0) + postcss-loader: + specifier: ^7.3.4 + version: 7.3.4(postcss@8.4.31)(typescript@5.3.3)(webpack@5.89.0) + style-loader: + specifier: ^3.3.3 + version: 3.3.3(webpack@5.89.0) + svelte: + specifier: ^4.2.8 + version: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + svelte-loader: + specifier: ^3.1.9 + version: 3.1.9(svelte@4.2.8) + svelte-preprocess: + specifier: ^5.1.3 + version: 5.1.3(postcss@8.4.31)(svelte@4.2.8)(typescript@5.3.3) + svelte-sequential-preprocessor: + specifier: ^2.0.1 + version: 2.0.1 + ts-loader: + specifier: ^9.5.1 + version: 9.5.1(typescript@5.3.3)(webpack@5.89.0) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + webpack: + specifier: ^5.89.0 + version: 5.89.0(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-dev-server: + specifier: ^4.15.1 + version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + webpack-license-plugin: + specifier: ^4.4.2 + version: 4.4.2(patch_hash=j2giecj6dvolnysmkqbx73rnua)(webpack@5.89.0) + + apps/extensions: + dependencies: + '@browser/link': + specifier: workspace:* + version: link:../../lib/link + + apps/misc: {} + + apps/modules: + dependencies: + '@browser/link': + specifier: workspace:* + version: link:../../lib/link + + lib/link: + dependencies: + gecko-types: + specifier: github:quark-platform/gecko-types + version: github.com/quark-platform/gecko-types/e4efe38ce26c3617d7a3ecb13491bca2004e0377 + mitt: + specifier: ^3.0.1 + version: 3.0.1 + + lib/shared: + dependencies: + svelte: + specifier: ^4.2.8 + version: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) + devDependencies: + '@browser/link': + specifier: workspace:* + version: link:../link + microbundle: + specifier: ^0.15.1 + version: 0.15.1 packages: @@ -161,7 +205,6 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 - dev: true /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} @@ -171,6 +214,42 @@ packages: chalk: 2.4.2 dev: true + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator@7.17.7: resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} engines: {node: '>=6.9.0'} @@ -190,6 +269,86 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -210,38 +369,1127 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.3 + dev: true + + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.23.7): + resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.7): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + dev: true + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/types': 7.23.6 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.23.3 + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/preset-env@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/preset-flow@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): + 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 dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.3 + esutils: 2.0.3 dev: true - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} - engines: {node: '>=6.0.0'} - hasBin: true + /@babel/preset-react@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.17.0 + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.7) + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true /@babel/runtime@7.23.2: @@ -278,6 +1526,24 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.17.0: resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} engines: {node: '>=6.9.0'} @@ -295,8 +1561,17 @@ packages: to-fast-properties: 2.0.0 dev: true - /@catppuccin/palette@0.2.0: - resolution: {integrity: sha512-PoAMQMEbL8fBEO80eusB+XQg+1i2kxQHw6COwBRC4bVWxWuRroZjm3K6bOdqPHNHKikDIV7wLi9hSG4NoD1FEQ==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@catppuccin/palette@1.0.1: + resolution: {integrity: sha512-aCVFn6j2HnN6M/yk4co67rF/EWrXhZO2qpJUJd6Xsz8t1BF6PbmftM8Gz3wFHPfUdTogU0dUiKs+YsW19hJ8mQ==} dev: false /@discoveryjs/json-ext@0.5.7: @@ -345,18 +1620,15 @@ packages: resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==} dependencies: '@floating-ui/utils': 0.1.6 - dev: true /@floating-ui/dom@1.5.3: resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} dependencies: '@floating-ui/core': 1.5.2 '@floating-ui/utils': 0.1.6 - dev: true /@floating-ui/utils@0.1.6: resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} - dev: true /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} @@ -382,7 +1654,6 @@ packages: resolution: {integrity: sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==} dependencies: '@swc/helpers': 0.5.3 - dev: true /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -391,17 +1662,14 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.19 - dev: true /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/source-map@0.3.5: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} @@ -412,33 +1680,32 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.19: resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} dev: true - /@melt-ui/pp@0.1.4(@melt-ui/svelte@0.64.5)(svelte@4.2.8): - resolution: {integrity: sha512-zR+Kl3CZJPJBHW8V7YcdQCMI/dVcnW9Ct3yGbVaIywYVStVRS7F9uEDOea3xLLT2WTGodQePzPlUn53yKFu87g==} + /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.67.0)(svelte@4.2.8): + resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==} engines: {pnpm: '>=8.6.3'} peerDependencies: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 dependencies: - '@melt-ui/svelte': 0.64.5(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) + '@melt-ui/svelte': 0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8) estree-walker: 3.0.3 + magic-string: 0.30.5 svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) dev: true - /@melt-ui/svelte@0.64.5(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8): - resolution: {integrity: sha512-nPQA2guLuLitpZ6A968eWyGMC2riTKLq4R26hPRLdzP/JHCpd9yvddgMwil8JKbUKjT2dC3i358vUqeUOGxknA==} + /@melt-ui/svelte@0.67.0(patch_hash=aeypykqddydgtdgxoo44wxfeey)(svelte@4.2.8): + resolution: {integrity: sha512-fd9PsDE6sKbeyExagqH0nOpZEnDqyr2efbkjfmCRRYXVW5vlDEOPaSB+mg4Tjch121102sFH1Od+MlXwmeHy3A==} peerDependencies: svelte: '>=3 <5' dependencies: @@ -449,7 +1716,6 @@ packages: focus-trap: 7.5.4 nanoid: 4.0.2 svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) - dev: true patched: true /@nodelib/fs.scandir@2.1.5: @@ -473,15 +1739,106 @@ packages: fastq: 1.15.0 dev: true - /@polka/url@1.0.0-next.24: - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + /@rollup/plugin-alias@3.1.9(rollup@2.79.1): + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} + engines: {node: '>=8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + rollup: 2.79.1 + slash: 3.0.0 + dev: true + + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.7)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + dev: true + + /@rollup/plugin-commonjs@17.1.0(rollup@2.79.1): + resolution: {integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^2.30.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 7.2.3 + is-reference: 1.2.1 + magic-string: 0.25.9 + resolve: 1.22.8 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-json@4.1.0(rollup@2.79.1): + resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.10 dev: true /@swc/helpers@0.5.3: resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} dependencies: tslib: 2.6.2 - dev: true /@tinyhttp/accepts@2.2.0: resolution: {integrity: sha512-Jz60vPt9eQDXtFNaTHGhVsFNEFoQxHldGhB0a6L1oS4MvGJNs6pX5Ibntgth2/DcdtR+PFtbOhKVsZf8kveDLw==} @@ -628,6 +1985,11 @@ packages: - supports-color dev: true + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + /@tsconfig/svelte@5.0.2: resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} dev: true @@ -672,9 +2034,12 @@ packages: '@types/json-schema': 7.0.13 dev: true + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + /@types/estree@1.0.2: resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} - dev: true /@types/express-serve-static-core@4.17.37: resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} @@ -726,6 +2091,10 @@ packages: undici-types: 5.25.3 dev: true + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: true + /@types/pug@2.0.7: resolution: {integrity: sha512-I469DU0UXNC1aHepwirWhu9YKg5fkxohZD95Ey/5A7lovC+Siu+MCLffva87lnfThaOrw9Vb1DUN5t55oULAAw==} dev: true @@ -738,6 +2107,12 @@ packages: resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==} dev: true + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.8.4 + dev: true + /@types/retry@0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: true @@ -1028,7 +2403,7 @@ packages: webpack-cli: 5.x.x dependencies: webpack: 5.89.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) dev: true /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.89.0): @@ -1039,7 +2414,7 @@ packages: webpack-cli: 5.x.x dependencies: webpack: 5.89.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) dev: true /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.89.0): @@ -1054,7 +2429,7 @@ packages: optional: true dependencies: webpack: 5.89.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) dev: true @@ -1090,16 +2465,10 @@ packages: acorn: 8.10.0 dev: true - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} - engines: {node: '>=0.4.0'} - dev: true - /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -1162,11 +2531,21 @@ packages: hasBin: true dev: true + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1197,6 +2576,12 @@ packages: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 dev: true /array-flatten@1.1.1: @@ -1212,10 +2597,109 @@ packages: engines: {node: '>=8'} dev: true + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true + + /asyncro@3.0.0: + resolution: {integrity: sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==} + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001547 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.23.2 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + dev: true + + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-transform-async-to-promises@0.8.18: + resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==} + dev: true + + /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.23.7): + resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/parser': 7.23.3 dev: true /balanced-match@1.0.2: @@ -1275,6 +2759,12 @@ packages: concat-map: 0.0.1 dev: true + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1282,6 +2772,13 @@ packages: fill-range: 7.0.1 dev: true + /brotli-size@4.0.0: + resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} + engines: {node: '>= 10.16.0'} + dependencies: + duplexer: 0.1.1 + dev: true + /browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -1293,6 +2790,17 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001572 + electron-to-chromium: 1.4.616 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -1301,6 +2809,11 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -1318,6 +2831,14 @@ packages: get-intrinsic: 1.2.1 dev: true + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1330,10 +2851,39 @@ packages: tslib: 2.6.2 dev: true + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001547 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + /caniuse-lite@1.0.30001547: resolution: {integrity: sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==} dev: true + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + dev: true + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1409,7 +2959,6 @@ packages: acorn: 8.10.0 estree-walker: 3.0.3 periscopic: 3.1.0 - dev: true /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1432,6 +2981,10 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -1455,6 +3008,10 @@ packages: engines: {node: '>= 12'} dev: true + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -1481,6 +3038,12 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /concat-with-sourcemaps@1.1.0: + resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} + dependencies: + source-map: 0.6.1 + dev: true + /concurrently@8.2.1: resolution: {integrity: sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==} engines: {node: ^14.13.0 || >=16.0.0} @@ -1514,6 +3077,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true @@ -1538,11 +3105,28 @@ packages: webpack: 5.89.0(webpack-cli@5.1.4) dev: true + /core-js-compat@3.35.0: + resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} + dependencies: + browserslist: 4.22.2 + dev: true + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig@8.3.6(typescript@5.2.2): + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -1555,7 +3139,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.2.2 + typescript: 5.3.3 dev: true /cross-spawn@7.0.3: @@ -1567,6 +3151,15 @@ packages: which: 2.0.2 dev: true + /css-declaration-sorter@6.4.1(postcss@8.4.31): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.31 + dev: true + /css-loader@6.8.1(webpack@5.89.0): resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} engines: {node: '>= 12.13.0'} @@ -1594,13 +3187,20 @@ packages: nth-check: 2.1.1 dev: true + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 source-map-js: 1.0.2 - dev: true /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} @@ -1613,6 +3213,72 @@ packages: hasBin: true dev: true + /cssnano-preset-default@5.2.14(postcss@8.4.31): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.31) + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 8.2.4(postcss@8.4.31) + postcss-colormin: 5.3.1(postcss@8.4.31) + postcss-convert-values: 5.1.3(postcss@8.4.31) + postcss-discard-comments: 5.1.2(postcss@8.4.31) + postcss-discard-duplicates: 5.1.0(postcss@8.4.31) + postcss-discard-empty: 5.1.1(postcss@8.4.31) + postcss-discard-overridden: 5.1.0(postcss@8.4.31) + postcss-merge-longhand: 5.1.7(postcss@8.4.31) + postcss-merge-rules: 5.1.4(postcss@8.4.31) + postcss-minify-font-values: 5.1.0(postcss@8.4.31) + postcss-minify-gradients: 5.1.1(postcss@8.4.31) + postcss-minify-params: 5.1.4(postcss@8.4.31) + postcss-minify-selectors: 5.2.1(postcss@8.4.31) + postcss-normalize-charset: 5.1.0(postcss@8.4.31) + postcss-normalize-display-values: 5.1.0(postcss@8.4.31) + postcss-normalize-positions: 5.1.1(postcss@8.4.31) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.31) + postcss-normalize-string: 5.1.0(postcss@8.4.31) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.31) + postcss-normalize-unicode: 5.1.1(postcss@8.4.31) + postcss-normalize-url: 5.1.0(postcss@8.4.31) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.31) + postcss-ordered-values: 5.1.3(postcss@8.4.31) + postcss-reduce-initial: 5.1.2(postcss@8.4.31) + postcss-reduce-transforms: 5.1.0(postcss@8.4.31) + postcss-svgo: 5.1.0(postcss@8.4.31) + postcss-unique-selectors: 5.1.1(postcss@8.4.31) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.31): + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /cssnano@5.1.15(postcss@8.4.31): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.4.31) + lilconfig: 2.1.0 + postcss: 8.4.31 + yaml: 1.10.2 + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + /date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -1620,10 +3286,6 @@ packages: '@babel/runtime': 7.23.2 dev: true - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: true - /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -1662,6 +3324,11 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + /default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -1669,11 +3336,29 @@ packages: execa: 5.1.1 dev: true + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} dev: true + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -1687,7 +3372,6 @@ packages: /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - dev: true /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} @@ -1768,6 +3452,10 @@ packages: tslib: 2.6.2 dev: true + /duplexer@0.1.1: + resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} + dev: true + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true @@ -1776,10 +3464,22 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.7 + dev: true + /electron-to-chromium@1.4.551: resolution: {integrity: sha512-/Ng/W/kFv7wdEHYzxdK7Cv0BHEGSkSB3M0Ssl8Ndr1eMiYeas/+Mv4cNaDqamqWx6nd2uQZfPz6g25z25M/sdw==} dev: true + /electron-to-chromium@1.4.616: + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -1818,6 +3518,51 @@ packages: is-arrayish: 0.2.1 dev: true + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + /es-escape-html@0.1.1: resolution: {integrity: sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==} engines: {node: '>=12.x'} @@ -1827,6 +3572,24 @@ packages: resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} dev: true + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + /es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true @@ -1960,11 +3723,22 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + dev: true + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.2 - dev: true /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -2095,6 +3869,14 @@ packages: websocket-driver: 0.7.4 dev: true + /figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2102,6 +3884,17 @@ packages: flat-cache: 3.2.0 dev: true + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /filesize@6.4.0: + resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} + engines: {node: '>= 0.4.0'} + dev: true + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -2124,6 +3917,15 @@ packages: - supports-color dev: true + /find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2153,22 +3955,21 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /fnts@2.0.1(typescript@5.2.2): - resolution: {integrity: sha512-pg5jBjtTdWMen8OzFKd0gPOHgnvAzm0ndKKrGT4xYZYBSobDLhqLSf2tnDpmdPuPvV3rMwae0lOmmvOJ+l1VNg==} + /fnts@2.1.0(typescript@5.3.3): + resolution: {integrity: sha512-+KFw3//Dbxw3R5xCzP+3BMsjhNiRaJ8w1Al/1aCzI7OqrqzIHCpNZShY1nUFPciqHqe8Z3URo+aA595ePa7Kqw==} peerDependencies: typescript: '>=4.7' peerDependenciesMeta: typescript: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: false /focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 - dev: true /follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} @@ -2180,16 +3981,35 @@ packages: optional: true dev: true + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} dev: true + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} dev: true + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + /fs-monkey@1.0.5: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} dev: true @@ -2210,6 +4030,35 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + dependencies: + loader-utils: 3.2.1 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2224,6 +4073,15 @@ packages: has-symbols: 1.0.3 dev: true + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2234,6 +4092,14 @@ packages: engines: {node: '>=16'} dev: true + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2275,6 +4141,17 @@ packages: type-fest: 0.20.2 dev: true + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -2298,6 +4175,16 @@ packages: slash: 4.0.0 dev: true + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true @@ -2306,6 +4193,13 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true + /gzip-size@3.0.0: + resolution: {integrity: sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==} + engines: {node: '>=0.12.0'} + dependencies: + duplexer: 0.1.2 + dev: true + /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -2317,6 +4211,17 @@ packages: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: true + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -2327,6 +4232,12 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} @@ -2337,11 +4248,25 @@ packages: engines: {node: '>= 0.4'} dev: true + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has@1.0.4: resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} dev: true + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -2365,10 +4290,6 @@ packages: resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} dev: true - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - /html-minifier-terser@6.1.0: resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} engines: {node: '>=12'} @@ -2383,11 +4304,17 @@ packages: terser: 5.21.0 dev: true - /html-webpack-plugin@5.5.3(webpack@5.89.0): - resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==} + /html-webpack-plugin@5.6.0(webpack@5.89.0): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: + '@rspack/core': 0.x || 1.x webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -2499,6 +4426,10 @@ packages: safer-buffer: 2.1.2 dev: true + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + dev: true + /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -2513,6 +4444,13 @@ packages: engines: {node: '>= 4'} dev: true + /import-cwd@3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + dependencies: + import-from: 3.0.0 + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -2521,6 +4459,13 @@ packages: resolve-from: 4.0.0 dev: true + /import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -2550,6 +4495,15 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + /interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} @@ -2565,10 +4519,24 @@ packages: engines: {node: '>= 10'} dev: true + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -2576,12 +4544,32 @@ packages: binary-extensions: 2.2.0 dev: true + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.4 dev: true + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -2605,6 +4593,22 @@ packages: is-extglob: 2.1.1 dev: true + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2627,15 +4631,29 @@ packages: isobject: 3.0.1 dev: true - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + /is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 1.0.2 dev: true /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.2 + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 dev: true /is-stream@2.0.1: @@ -2648,6 +4666,33 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -2659,6 +4704,10 @@ packages: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -2668,10 +4717,30 @@ packages: engines: {node: '>=0.10.0'} dev: true + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + /javascript-natural-sort@0.7.1: resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} dev: true + /jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.8.4 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -2697,6 +4766,11 @@ packages: argparse: 2.0.1 dev: true + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -2729,6 +4803,14 @@ packages: hasBin: true dev: true + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -2760,6 +4842,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true @@ -2778,9 +4865,13 @@ packages: json5: 2.2.3 dev: true + /loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: true + /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: true /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -2796,10 +4887,26 @@ packages: p-locate: 5.0.0 dev: true + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -2810,6 +4917,12 @@ packages: tslib: 2.6.2 dev: true + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -2817,23 +4930,41 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + sourcemap-codec: 1.4.8 dev: true - /magic-string@0.30.4: - resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==} + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: true + + /maxmin@2.1.0: + resolution: {integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + figures: 1.7.0 + gzip-size: 3.0.0 + pretty-bytes: 3.0.1 + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -2865,6 +4996,58 @@ packages: engines: {node: '>= 0.6'} dev: true + /microbundle@0.15.1: + resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==} + hasBin: true + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-flow': 7.23.3(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) + '@rollup/plugin-alias': 3.1.9(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.7)(rollup@2.79.1) + '@rollup/plugin-commonjs': 17.1.0(rollup@2.79.1) + '@rollup/plugin-json': 4.1.0(rollup@2.79.1) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + asyncro: 3.0.0 + autoprefixer: 10.4.16(postcss@8.4.31) + babel-plugin-macros: 3.1.0 + babel-plugin-transform-async-to-promises: 0.8.18 + babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.23.7) + brotli-size: 4.0.0 + builtin-modules: 3.3.0 + camelcase: 6.3.0 + escape-string-regexp: 4.0.0 + filesize: 6.4.0 + gzip-size: 6.0.0 + kleur: 4.1.5 + lodash.merge: 4.6.2 + postcss: 8.4.31 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-bundle-size: 1.0.3 + rollup-plugin-postcss: 4.0.2(postcss@8.4.31) + rollup-plugin-terser: 7.0.2(rollup@2.79.1) + rollup-plugin-typescript2: 0.32.1(rollup@2.79.1)(typescript@4.9.5) + rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) + sade: 1.8.1 + terser: 5.21.0 + tiny-glob: 0.2.9 + tslib: 2.6.2 + typescript: 4.9.5 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + - ts-node + dev: true + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -2932,6 +5115,13 @@ packages: brace-expansion: 1.1.11 dev: true + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -2947,9 +5137,9 @@ packages: minimist: 1.2.8 dev: true - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} dev: true /ms@2.0.0: @@ -2982,10 +5172,9 @@ packages: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true - dev: true - /nanoid@5.0.3: - resolution: {integrity: sha512-I7X2b22cxA4LIHXPSqbBCEQSL+1wv8TuoefejsX4HFWyC6jc5JG7CEaxOltiKjc1M+YCS2YkrZZcj4+dytw9GA==} + /nanoid@5.0.4: + resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} engines: {node: ^18 || >=20} hasBin: true dev: false @@ -3031,6 +5220,10 @@ packages: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + /nodejs-file-downloader@4.12.1: resolution: {integrity: sha512-LpfCTNhh805AlLnJnzt1PuEj+RmbrccbAQZ6hBRw2e6QPVR0Qntuo6qqyvPHG5s77/0w0IEKgRAD4nbSnr/X4w==} dependencies: @@ -3048,6 +5241,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -3068,10 +5271,39 @@ packages: boolbase: 1.0.0 dev: true + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true @@ -3117,11 +5349,6 @@ packages: is-wsl: 2.2.0 dev: true - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - dev: true - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -3134,6 +5361,11 @@ packages: type-check: 0.4.0 dev: true + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -3162,6 +5394,14 @@ packages: p-limit: 3.1.0 dev: true + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + dev: true + /p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} @@ -3170,6 +5410,13 @@ packages: retry: 0.13.1 dev: true + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: true + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -3250,7 +5497,6 @@ packages: '@types/estree': 1.0.2 estree-walker: 3.0.3 is-reference: 3.0.2 - dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -3261,6 +5507,11 @@ packages: engines: {node: '>=8.6'} dev: true + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: true + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -3268,14 +5519,101 @@ packages: find-up: 4.1.0 dev: true - /postcss-loader@7.3.3(postcss@8.4.31)(typescript@5.2.2)(webpack@5.89.0): - resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} + /postcss-calc@8.2.4(postcss@8.4.31): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@5.3.1(postcss@8.4.31): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@5.1.3(postcss@8.4.31): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@5.1.2(postcss@8.4.31): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-duplicates@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-empty@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-overridden@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-load-config@3.1.4(postcss@8.4.31): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.31 + yaml: 1.10.2 + dev: true + + /postcss-loader@7.3.4(postcss@8.4.31)(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 dependencies: - cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig: 8.3.6(typescript@5.3.3) jiti: 1.20.0 postcss: 8.4.31 semver: 7.5.4 @@ -3284,6 +5622,74 @@ packages: - typescript dev: true + /postcss-merge-longhand@5.1.7(postcss@8.4.31): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.4.31) + dev: true + + /postcss-merge-rules@5.1.4(postcss@8.4.31): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-minify-font-values@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@5.1.4(postcss@8.4.31): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@5.2.1(postcss@8.4.31): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -3325,6 +5731,145 @@ packages: postcss: 8.4.31 dev: true + /postcss-modules@4.3.1(postcss@8.4.31): + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) + string-hash: 1.1.3 + dev: true + + /postcss-normalize-charset@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-normalize-display-values@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + normalize-url: 6.1.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@5.1.3(postcss@8.4.31): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-initial@5.1.2(postcss@8.4.31): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + postcss: 8.4.31 + dev: true + + /postcss-reduce-transforms@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -3333,6 +5878,27 @@ packages: util-deprecate: 1.0.2 dev: true + /postcss-svgo@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 + dev: true + + /postcss-unique-selectors@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -3378,10 +5944,22 @@ packages: svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} - hasBin: true + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-bytes@3.0.1: + resolution: {integrity: sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: true + + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} dev: true /pretty-error@4.0.0: @@ -3395,6 +5973,11 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /promise.series@0.2.0: + resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} + engines: {node: '>=0.12'} + dev: true + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -3475,22 +6058,67 @@ packages: resolve: 1.22.8 dev: true + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: true + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.2 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + /regexparam@2.0.1: resolution: {integrity: sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==} engines: {node: '>=8'} dev: true + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} dev: true - /remixicon@3.7.0: - resolution: {integrity: sha512-FFbVLRCaTtsSDe/l9JX+lT/zzm9V3kYbda25lzsy3ML5FHv/bGVKiHwZSlCo/IMhBD1/CK6SGIruyfiq4bbsuQ==} + /remixicon@4.0.1: + resolution: {integrity: sha512-Apa13Q01mFIuQEMvSVni8NnF9cV0vud9YXb2prQ+g3jmWpxKoFCL+yIiQ+9JCeLptdGKyoqVjCYOwwBQVHdciQ==} dev: false /renderkid@3.0.0: @@ -3567,6 +6195,96 @@ packages: glob: 7.2.3 dev: true + /rollup-plugin-bundle-size@1.0.3: + resolution: {integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==} + dependencies: + chalk: 1.1.3 + maxmin: 2.1.0 + dev: true + + /rollup-plugin-postcss@4.0.2(postcss@8.4.31): + resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} + engines: {node: '>=10'} + peerDependencies: + postcss: 8.x + dependencies: + chalk: 4.1.2 + concat-with-sourcemaps: 1.1.0 + cssnano: 5.1.15(postcss@8.4.31) + import-cwd: 3.0.0 + p-queue: 6.6.2 + pify: 5.0.0 + postcss: 8.4.31 + postcss-load-config: 3.1.4(postcss@8.4.31) + postcss-modules: 4.3.1(postcss@8.4.31) + promise.series: 0.2.0 + resolve: 1.22.8 + rollup-pluginutils: 2.8.2 + safe-identifier: 0.4.2 + style-inject: 0.3.0 + transitivePeerDependencies: + - ts-node + dev: true + + /rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.22.13 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.21.0 + dev: true + + /rollup-plugin-typescript2@0.32.1(rollup@2.79.1)(typescript@4.9.5): + resolution: {integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==} + peerDependencies: + rollup: '>=1.26.3' + typescript: '>=2.4.0' + dependencies: + '@rollup/pluginutils': 4.2.1 + find-cache-dir: 3.3.2 + fs-extra: 10.1.0 + resolve: 1.22.8 + rollup: 2.79.1 + tslib: 2.6.2 + typescript: 4.9.5 + dev: true + + /rollup-plugin-visualizer@5.12.0(rollup@2.79.1): + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 2.79.1 + source-map: 0.7.4 + yargs: 17.7.2 + dev: true + + /rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + dependencies: + estree-walker: 0.6.1 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -3579,6 +6297,23 @@ packages: tslib: 2.6.2 dev: true + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true @@ -3587,6 +6322,18 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-identifier@0.4.2: + resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -3640,6 +6387,11 @@ packages: node-forge: 1.3.1 dev: true + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -3669,6 +6421,12 @@ packages: - supports-color dev: true + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: @@ -3702,6 +6460,25 @@ packages: - supports-color dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + /setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: true @@ -3750,15 +6527,6 @@ packages: engines: {node: '>=14'} dev: true - /sirv@2.0.3: - resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.24 - mrmime: 1.0.1 - totalist: 3.0.1 - dev: true - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3794,7 +6562,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -3818,6 +6585,11 @@ packages: engines: {node: '>= 8'} dev: true + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + /spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} dev: true @@ -3869,6 +6641,11 @@ packages: - supports-color dev: true + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -3879,6 +6656,10 @@ packages: engines: {node: '>= 0.8'} dev: true + /string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + dev: true + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -3888,6 +6669,45 @@ packages: strip-ansi: 6.0.1 dev: true + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -3900,6 +6720,13 @@ packages: safe-buffer: 5.2.1 dev: true + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3929,6 +6756,10 @@ packages: engines: {node: '>=8'} dev: true + /style-inject@0.3.0: + resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} + dev: true + /style-loader@3.3.3(webpack@5.89.0): resolution: {integrity: sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==} engines: {node: '>= 12.13.0'} @@ -3938,6 +6769,22 @@ packages: webpack: 5.89.0(webpack-cli@5.1.4) dev: true + /stylehacks@5.1.1(postcss@8.4.31): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3988,9 +6835,9 @@ packages: svelte-hmr: 0.14.12(svelte@4.2.8) dev: true - /svelte-preprocess@5.1.2(postcss@8.4.31)(svelte@4.2.8)(typescript@5.2.2): - resolution: {integrity: sha512-XF0aliMAcYnP4hLETvB6HRAMnaL09ASYT1Z2I1Gwu0nz6xbdg/dSgAEthtFZJA4AKrNhFDFdmUDO+H9d/6xg5g==} - engines: {node: '>= 14.10.0'} + /svelte-preprocess@5.1.3(postcss@8.4.31)(svelte@4.2.8)(typescript@5.3.3): + resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} + engines: {node: '>= 16.0.0', pnpm: ^8.0.0} requiresBuild: true peerDependencies: '@babel/core': ^7.10.2 @@ -4028,12 +6875,12 @@ packages: dependencies: '@types/pug': 2.0.7 detect-indent: 6.1.0 - magic-string: 0.27.0 + magic-string: 0.30.5 postcss: 8.4.31 sorcery: 0.11.0 strip-indent: 3.0.0 svelte: 4.2.8(patch_hash=cm43hmf4gczhssi3isoosy53r4) - typescript: 5.2.2 + typescript: 5.3.3 dev: true /svelte-sequential-preprocessor@2.0.1: @@ -4059,14 +6906,26 @@ packages: estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.4 + magic-string: 0.30.5 periscopic: 3.1.0 - dev: true patched: true + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + /tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -4116,6 +6975,13 @@ packages: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -4133,11 +6999,6 @@ packages: engines: {node: '>=0.6'} dev: true - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: true - /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -4158,8 +7019,8 @@ packages: typescript: 5.2.2 dev: true - /ts-loader@9.5.0(typescript@5.2.2)(webpack@5.89.0): - resolution: {integrity: sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==} + /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} engines: {node: '>=12.0.0'} peerDependencies: typescript: '*' @@ -4170,13 +7031,12 @@ packages: micromatch: 4.0.5 semver: 7.5.4 source-map: 0.7.4 - typescript: 5.2.2 + typescript: 5.3.3 webpack: 5.89.0(webpack-cli@5.1.4) dev: true /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -4198,15 +7058,102 @@ packages: mime-types: 2.1.35 dev: true + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true /undici-types@5.25.3: resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} dev: true + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -4223,6 +7170,17 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -4270,30 +7228,7 @@ packages: minimalistic-assert: 1.0.1 dev: true - /webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.10.0 - acorn-walk: 8.3.1 - commander: 7.2.0 - debounce: 1.2.1 - escape-string-regexp: 4.0.0 - gzip-size: 6.0.0 - html-escaper: 2.0.2 - is-plain-object: 5.0.0 - opener: 1.5.2 - picocolors: 1.0.0 - sirv: 2.0.3 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0): + /webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0): resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} engines: {node: '>=14.15.0'} hasBin: true @@ -4323,7 +7258,6 @@ packages: interpret: 3.1.1 rechoir: 0.8.0 webpack: 5.89.0(webpack-cli@5.1.4) - webpack-bundle-analyzer: 4.10.1 webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) webpack-merge: 5.9.0 dev: true @@ -4384,7 +7318,7 @@ packages: sockjs: 0.3.24 spdy: 4.0.2 webpack: 5.89.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) webpack-dev-middleware: 5.3.3(webpack@5.89.0) ws: 8.14.2 transitivePeerDependencies: @@ -4457,7 +7391,7 @@ packages: tapable: 2.2.1 terser-webpack-plugin: 5.3.9(webpack@5.89.0) watchpack: 2.4.0 - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -4479,6 +7413,27 @@ packages: engines: {node: '>=0.8.0'} dev: true + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -4504,19 +7459,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /ws@8.14.2: resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} engines: {node: '>=10.0.0'} @@ -4535,10 +7477,19 @@ packages: engines: {node: '>=10'} dev: true + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -4562,12 +7513,7 @@ packages: engines: {node: '>=10'} dev: true - /zora@5.2.0: - resolution: {integrity: sha512-FSZOvfJVfMWhk/poictNsDBCXq/Z+2Zu2peWs6d8OhWWb9nY++czw95D47hdw06L/kfjasLevwrbUtnXyWLAJw==} - dev: true - github.com/quark-platform/gecko-types/e4efe38ce26c3617d7a3ecb13491bca2004e0377: resolution: {tarball: https://codeload.github.com/quark-platform/gecko-types/tar.gz/e4efe38ce26c3617d7a3ecb13491bca2004e0377} name: gecko-types version: 1.0.0 - dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..ce42121 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - apps/* + - lib/* diff --git a/src/actors/ContextMenu.types.ts b/src/actors/ContextMenu.types.ts deleted file mode 100644 index ee99fb7..0000000 --- a/src/actors/ContextMenu.types.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// NOTE: This file should only have types imported from it. Its contents will not be -// available at runtime - -export interface MediaInfo { - contentType?: string - contentDisposition?: string -} - -export interface ContextMenuInfo { - position: { - screenX: number - screenY: number - inputSource: number - } - - context: { - principal?: nsIPrincipalType - referrerInfo?: string - } - - mediaInfo?: MediaInfo - - textSelection?: string - href?: string - imageSrc?: string -} diff --git a/src/actors/link.json b/src/actors/link.json deleted file mode 100644 index 3435b4d..0000000 --- a/src/actors/link.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - "ClickHandlerChild", - "ClickHandlerParent", - "ContextMenuChild", - "ContextMenuParent", - "LinkHandlerChild", - "LinkHandlerParent" -] diff --git a/src/modules/BrowserWindowTracker.ts b/src/modules/BrowserWindowTracker.ts deleted file mode 100644 index bb5ed6d..0000000 --- a/src/modules/BrowserWindowTracker.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/* eslint-disable @typescript-eslint/no-explicit-any */ -import mitt from 'resource://app/modules/mitt.sys.mjs' - -type Tab = unknown - -export type WindowTrackerEvents = { - windowCreated: Window & typeof globalThis - windowDestroyed: Window & typeof globalThis - - focus: Window & typeof globalThis -} - -export const WindowTracker = { - /** - * @private - */ - nextWindowId: 0, - - events: mitt(), - - activeWindow: null as number | null, - registeredWindows: new Map(), - - /** - * Registers a new browser window to be tracked - * - * @param w The window to register - */ - registerWindow(w: typeof window) { - ;(w as any).windowApi.id = this.nextWindowId++ - this.registeredWindows.set((w as any).windowApi.id, w) - this.events.emit('windowCreated', w) - }, - - removeWindow(w: typeof window) { - this.registeredWindows.delete((w as any).windowApi.id) - this.events.emit('windowDestroyed', w) - }, - - getWindowById(wid: number) { - return this.registeredWindows.get(wid) - }, - - getWindowWithBrowser( - browser: XULBrowserElement, - ): { window: Window & typeof globalThis; tab: Tab } | null { - for (const window of this.registeredWindows.values()) { - const tab = (window as any).windowApi.tabs.tabs.find( - (t: Tab) => (t as any).getTabId() === browser.browserId, - ) - if (tab) return { window, tab } - } - return null - }, - - focusWindow(id: number) { - this.activeWindow = id - this.events.emit('focus', this.getActiveWindow()!) - }, - - getActiveWindow(): (typeof window & typeof globalThis) | undefined { - return this.registeredWindows.get(this.activeWindow ?? -1) - }, -} diff --git a/src/modules/EPageActions.ts b/src/modules/EPageActions.ts deleted file mode 100644 index 4fb1c55..0000000 --- a/src/modules/EPageActions.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// -import mitt from 'resource://app/modules/mitt.sys.mjs' - -export type PageActionsEvents = { - register: { - extension: string - action: PageAction - } - - remove: { - extension: string - action: PageAction - } -} - -/** - * The following features are not going to be supported, primarily because I see - * no good reason for including support - * - `browser_style`: There is no documentation for this, provide a browser - * style component library instead - * - `pinned`: For the moment, I don't feel like pinning page actions - * - * @todo analytics to see how many page actions people have. If there are a few - * power users, we might want to implement `pinned` - */ -export interface PageActionOptions { - /** - * The tooltip displayed when the user hovers over the action button. - * - * @key `default_title` - */ - tooltip?: string - - /** - * The url of the popup to show when the icon is clicked. If this url does not - * exist, clicking the icon will send an event back to the extension. - * - * @key `default_popup` - */ - popupUrl?: string - - /** - * @key `show_matches` - */ - showMatches?: PS - - /** - * @key `hide_matches` - */ - hideMatches?: PS - - icons?: Record -} - -export type PageActionEvents = { - updateIcon: Record | undefined - click: { clickData: { modifiers: string[]; button: number } } -} - -export class PageAction implements PageActionOptions { - events = mitt() - - tooltip?: string - popupUrl?: string - showMatches: MatchPatternSet - hideMatches: MatchPatternSet - icons?: Record - - showTabIds = new Set() - hideTabIds = new Set() - - constructor(data: PageActionOptions) { - this.tooltip = data.tooltip - this.popupUrl = data.popupUrl - this.showMatches = new MatchPatternSet(data.showMatches || []) - this.hideMatches = new MatchPatternSet(data.hideMatches || []) - } - - shouldShow(url: string, tabId: number) { - const urlMatch = - this.showMatches.matches(url) && - !this.hideMatches.matches(url, true) && - !this.hideTabIds.has(tabId) - const idMatch = this.showTabIds.has(tabId) - - return urlMatch || idMatch - } - - setIcons(icons: Record) { - this.icons = icons - this.events.emit('updateIcon', icons) - } - - addShow(id: number) { - this.showTabIds.add(id) - this.hideTabIds.delete(id) - } - - addHide(id: number) { - this.hideTabIds.add(id) - this.showTabIds.delete(id) - } -} - -export const EPageActions = { - events: mitt(), - - PageAction, - pageActions: new Map(), - - registerPageAction(extensionId: string, pageAction: PageAction) { - if (EPageActions.pageActions.has(extensionId)) { - EPageActions.removePageAction(extensionId) - } - - EPageActions.pageActions.set(extensionId, pageAction) - EPageActions.events.emit('register', { - action: pageAction, - extension: extensionId, - }) - }, - - removePageAction(extensionId: string) { - const action = EPageActions.pageActions.get(extensionId) - if (!action) return - - EPageActions.pageActions.delete(extensionId) - EPageActions.events.emit('remove', { action, extension: extensionId }) - }, -} diff --git a/src/modules/link.json b/src/modules/link.json deleted file mode 100644 index e331a4d..0000000 --- a/src/modules/link.json +++ /dev/null @@ -1 +0,0 @@ -["BrowserGlue", "BrowserWindowTracker", "EPageActions", "TypedImportUtils"] diff --git a/static/chrome/en-US/locale/branding/brand.properties b/static/chrome/en-US/locale/branding/brand.properties deleted file mode 100644 index 5b0b84c..0000000 --- a/static/chrome/en-US/locale/branding/brand.properties +++ /dev/null @@ -1,7 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -brandShorterName=Experiment -brandShortName=Experiment -brandFullName=Experiment diff --git a/static/chrome/link.json b/static/chrome/link.json deleted file mode 100644 index de5f11d..0000000 --- a/static/chrome/link.json +++ /dev/null @@ -1 +0,0 @@ -["en-US/locale/branding/brand.properties"] diff --git a/static/modules/link.json b/static/modules/link.json deleted file mode 100644 index 04e13bf..0000000 --- a/static/modules/link.json +++ /dev/null @@ -1 +0,0 @@ -["sessionstore/SessionStore", "FaviconLoader", "mitt"] From 94239662130eaaa392c9133e0e2ad02b3aa52784 Mon Sep 17 00:00:00 2001 From: trickypr <23250792+trickypr@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:15:54 +1100 Subject: [PATCH 02/10] =?UTF-8?q?=F0=9F=9A=A7=20Get=20webpack=20building?= =?UTF-8?q?=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/content/package.json | 10 +++++--- apps/content/src/bookmarks/bookmarks.ts | 1 - .../lib/modules/EPageActionsBindings.ts | 4 ++-- apps/content/src/browser/lib/window/api.ts | 1 - .../src/browser/lib/window/contextMenu.ts | 6 ----- .../src/shared/contextMenus/MenuItem.ts | 1 - .../src/shared/contextMenus/menuItems.ts | 5 +--- apps/content/src/shared/styles/global.css | 2 +- apps/content/src/types.d.ts | 1 + apps/content/tsconfig.json | 23 +++++++++++++++++++ {.config => apps/content}/webpack.config.js | 12 ++++------ apps/modules/lib/EPageActions.sys.mjs | 4 +++- lib/link/types/_link.d.ts | 1 + lib/link/types/modules/EPageActions.d.ts | 1 + package.json | 6 ----- pnpm-lock.yaml | 13 +++++++++++ tsconfig.json | 14 ----------- 17 files changed, 58 insertions(+), 47 deletions(-) create mode 100644 apps/content/tsconfig.json rename {.config => apps/content}/webpack.config.js (93%) delete mode 100644 tsconfig.json diff --git a/apps/content/package.json b/apps/content/package.json index 2fd54f3..f69e4e5 100644 --- a/apps/content/package.json +++ b/apps/content/package.json @@ -2,15 +2,18 @@ "name": "content", "version": "1.0.0", "description": "", - "main": "index.js", + "type": "module", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "dev": "webpack serve --mode development", + "build": "webpack --mode production" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { + "@browser/link": "workspace:*", "@melt-ui/pp": "^0.3.0", + "@total-typescript/ts-reset": "^0.5.1", "@tsconfig/svelte": "^5.0.2", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", @@ -36,6 +39,7 @@ "mitt": "^3.0.1", "nanoid": "^5.0.4", "remixicon": "^4.0.1", - "snarkdown": "^2.0.0" + "snarkdown": "^2.0.0", + "zora": "^5.2.0" } } diff --git a/apps/content/src/bookmarks/bookmarks.ts b/apps/content/src/bookmarks/bookmarks.ts index cefcc53..ef5c124 100644 --- a/apps/content/src/bookmarks/bookmarks.ts +++ b/apps/content/src/bookmarks/bookmarks.ts @@ -1,7 +1,6 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/// import 'remixicon/fonts/remixicon.css' import '@shared/styles/window.css' diff --git a/apps/content/src/browser/lib/modules/EPageActionsBindings.ts b/apps/content/src/browser/lib/modules/EPageActionsBindings.ts index 21444a5..ff22c67 100644 --- a/apps/content/src/browser/lib/modules/EPageActionsBindings.ts +++ b/apps/content/src/browser/lib/modules/EPageActionsBindings.ts @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { readable } from 'svelte/store' -import type { PageAction } from 'resource://app/modules/EPageActions.sys.mjs' +import type { PageActionImpl } from 'resource://app/modules/EPageActions.sys.mjs' import { resource } from '../resources' @@ -19,7 +19,7 @@ export const pageActions = readable( }, ) -export const pageActionIcons = (pageAction: PageAction) => +export const pageActionIcons = (pageAction: PageActionImpl) => readable | undefined>(pageAction.icons, (set) => pageAction.events.on('updateIcon', set), ) diff --git a/apps/content/src/browser/lib/window/api.ts b/apps/content/src/browser/lib/window/api.ts index 45094d4..d368f11 100644 --- a/apps/content/src/browser/lib/window/api.ts +++ b/apps/content/src/browser/lib/window/api.ts @@ -4,7 +4,6 @@ import mitt from 'mitt' import type { WindowArguments } from '.' -import type { ContextMenuInfo } from '../../../../actors/ContextMenu.types' import { browserContextMenuInfo, setContextMenuParentActor, diff --git a/apps/content/src/browser/lib/window/contextMenu.ts b/apps/content/src/browser/lib/window/contextMenu.ts index 5ad8cd5..67ae667 100644 --- a/apps/content/src/browser/lib/window/contextMenu.ts +++ b/apps/content/src/browser/lib/window/contextMenu.ts @@ -1,14 +1,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - import { writable } from 'svelte/store' -import type { ContextMenuInfo } from '../../../../actors/ContextMenu.types' - -// Reexport to reduce the number of references ot the actors folder -export type { ContextMenuInfo } - export let contextMenuParentActor: JSWindowActorParent export const browserContextMenuInfo = writable({ position: { screenX: 0, screenY: 0, inputSource: 0 }, diff --git a/apps/content/src/shared/contextMenus/MenuItem.ts b/apps/content/src/shared/contextMenus/MenuItem.ts index faff7b7..4fec197 100644 --- a/apps/content/src/shared/contextMenus/MenuItem.ts +++ b/apps/content/src/shared/contextMenus/MenuItem.ts @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { dynamicStringPref } from '@shared/svelteUtils' -import type { ContextMenuInfo } from '../../../actors/ContextMenu.types' import { MENU_ITEM_ACTIONS } from './menuItems' /** diff --git a/apps/content/src/shared/contextMenus/menuItems.ts b/apps/content/src/shared/contextMenus/menuItems.ts index 3b5054a..6b460a9 100644 --- a/apps/content/src/shared/contextMenus/menuItems.ts +++ b/apps/content/src/shared/contextMenus/menuItems.ts @@ -4,10 +4,7 @@ import curry from 'fnts/curry' import { resource } from '@browser/lib/resources' -import { - type ContextMenuInfo, - contextMenuParentActor, -} from '@browser/lib/window/contextMenu' +import { contextMenuParentActor } from '@browser/lib/window/contextMenu' import { getClipboardHelper } from '@browser/lib/xul/ccWrapper' import type { MenuItemAction, VisibilityCheck } from '.' diff --git a/apps/content/src/shared/styles/global.css b/apps/content/src/shared/styles/global.css index 4b13e2b..c090131 100644 --- a/apps/content/src/shared/styles/global.css +++ b/apps/content/src/shared/styles/global.css @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -@import '@catppuccin/palette/style'; +@import '@catppuccin/palette/css/catppuccin.css'; /** * Note that CSS color naming follows the same conventions that catppuccin uses diff --git a/apps/content/src/types.d.ts b/apps/content/src/types.d.ts index fdf1dc8..b7afc45 100644 --- a/apps/content/src/types.d.ts +++ b/apps/content/src/types.d.ts @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /// /// +/// /// /// diff --git a/apps/content/tsconfig.json b/apps/content/tsconfig.json new file mode 100644 index 0000000..fbcffc8 --- /dev/null +++ b/apps/content/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "es2022", + "allowArbitraryExtensions": true, + "paths": { + "@shared/*": [ + "./src/shared/*" + ], + "@browser/*": [ + "./src/browser/*" + ] + }, + "skipLibCheck": true + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules/*", + "static/*" + ] +} \ No newline at end of file diff --git a/.config/webpack.config.js b/apps/content/webpack.config.js similarity index 93% rename from .config/webpack.config.js rename to apps/content/webpack.config.js index 6261d67..1e233ce 100644 --- a/.config/webpack.config.js +++ b/apps/content/webpack.config.js @@ -6,10 +6,9 @@ import MiniCssExtractPlugin from 'mini-css-extract-plugin' import { join, resolve } from 'node:path' import preprocess from 'svelte-preprocess' import sequence from 'svelte-sequential-preprocessor' -import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer' import WebpackLicensePlugin from 'webpack-license-plugin' -const HTML_TEMPLATE_FILE = './src/content/index.html' +const HTML_TEMPLATE_FILE = './src/index.html' const getDistFile = (file) => resolve('dist', file) const absolutePackage = (file) => resolve('node_modules', file) @@ -44,7 +43,7 @@ export default (env, argv) => { * @returns The weback config */ const sharedSettings = (contentFiles, dev) => { - const srcDir = './src/content' + const srcDir = './src' /** @type {Record} */ const entry = {} @@ -58,7 +57,7 @@ const sharedSettings = (contentFiles, dev) => { name: 'Content', entry, output: { - path: getDistFile('browser_content'), + path: resolve('dist'), filename: '[name].js', publicPath: 'chrome://browser/content/', clean: true, @@ -66,8 +65,8 @@ const sharedSettings = (contentFiles, dev) => { resolve: { extensions: ['.ts', '.mjs', '.js', '.svelte'], alias: { - '@shared': resolve('src/content/shared'), - '@browser': resolve('src/content/browser'), + '@shared': resolve('src/shared'), + '@browser': resolve('src/browser'), }, }, resolveLoader: { @@ -171,7 +170,6 @@ const sharedSettings = (contentFiles, dev) => { }, ], }), - // dev && new BundleAnalyzerPlugin(), ].filter(Boolean), experiments: { diff --git a/apps/modules/lib/EPageActions.sys.mjs b/apps/modules/lib/EPageActions.sys.mjs index f6431ad..08d36fb 100644 --- a/apps/modules/lib/EPageActions.sys.mjs +++ b/apps/modules/lib/EPageActions.sys.mjs @@ -15,7 +15,9 @@ export class PageAction { popupUrl showMatches hideMatches - /** @type {Record} */ + /** + * @type {Record} + */ icons showTabIds = new Set() diff --git a/lib/link/types/_link.d.ts b/lib/link/types/_link.d.ts index 0a92320..416374b 100644 --- a/lib/link/types/_link.d.ts +++ b/lib/link/types/_link.d.ts @@ -10,6 +10,7 @@ /// /// +/// /// /// diff --git a/lib/link/types/modules/EPageActions.d.ts b/lib/link/types/modules/EPageActions.d.ts index 485adff..6a11ce6 100644 --- a/lib/link/types/modules/EPageActions.d.ts +++ b/lib/link/types/modules/EPageActions.d.ts @@ -64,6 +64,7 @@ declare module 'resource://app/modules/EPageActions.sys.mjs' { popupUrl?: string showMatches?: MatchPatternSet hideMatches?: MatchPatternSet + icons?: Record showTabIds: Set hideTabIds: Set diff --git a/package.json b/package.json index 7cca5e8..6d0a744 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,7 @@ "app:start": "MOZ_ENABLE_WAYLAND=1 ./.store/rt/quark-runtime -no-remote", "app:startX": "./.store/rt/quark-runtime -no-remote", "build": "rm -rf dist && concurrently -c auto pnpm:build-*", - "build-content": "webpack --mode production -c ./.config/webpack.config.js", - "build-modules": "tsc -p ./tsconfigs/tsconfig.modules.json", - "build-actors": "tsc -p ./tsconfigs/tsconfig.actors.json", "dev": "concurrently -c auto pnpm:dev-*", - "dev-content": "webpack serve --mode development -c ./.config/webpack.config.js", - "dev-modules": "tsc -w -p ./tsconfigs/tsconfig.modules.json", - "dev-actors": "tsc -w -p ./tsconfigs/tsconfig.actors.json", "rt:slink": "rm --force ./.store/artifact.tar.bz2 && ln -s ../../experiment-runtime/dist/experiment-runtime-1.0.0.en-US.linux-x86_64.tar.bz2 ./.store/artifact.tar.bz2", "lint": "eslint .", "format": "pnpm lint && pnpm script:license-check --fix && prettier . --write --plugin prettier-plugin-svelte", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a85a3f..23c2a32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,10 +100,19 @@ importers: snarkdown: specifier: ^2.0.0 version: 2.0.0 + zora: + specifier: ^5.2.0 + version: 5.2.0 devDependencies: + '@browser/link': + specifier: workspace:* + version: link:../../lib/link '@melt-ui/pp': specifier: ^0.3.0 version: 0.3.0(@melt-ui/svelte@0.67.0)(svelte@4.2.8) + '@total-typescript/ts-reset': + specifier: ^0.5.1 + version: 0.5.1 '@tsconfig/svelte': specifier: ^5.0.2 version: 5.0.2 @@ -7513,6 +7522,10 @@ packages: engines: {node: '>=10'} dev: true + /zora@5.2.0: + resolution: {integrity: sha512-FSZOvfJVfMWhk/poictNsDBCXq/Z+2Zu2peWs6d8OhWWb9nY++czw95D47hdw06L/kfjasLevwrbUtnXyWLAJw==} + dev: false + github.com/quark-platform/gecko-types/e4efe38ce26c3617d7a3ecb13491bca2004e0377: resolution: {tarball: https://codeload.github.com/quark-platform/gecko-types/tar.gz/e4efe38ce26c3617d7a3ecb13491bca2004e0377} name: gecko-types diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 75379a2..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "@tsconfig/svelte/tsconfig.json", - "compilerOptions": { - "target": "es2022", - "allowArbitraryExtensions": true, - "paths": { - "@shared/*": ["./src/content/shared/*"], - "@browser/*": ["./src/content/browser/*"] - }, - "skipLibCheck": true - }, - "include": ["src/content/**/*"], - "exclude": ["node_modules/*", "public/*"] -} From 51f5b7cb5ac5e5bd05f0dfa4ef83f61331adbbf4 Mon Sep 17 00:00:00 2001 From: trickypr <23250792+trickypr@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:41:53 +1100 Subject: [PATCH 03/10] =?UTF-8?q?=F0=9F=9A=A7=20Get=20scripts=20functional?= =?UTF-8?q?=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/content/tsconfig.json | 19 +-- apps/content/webpack.config.js | 4 + apps/misc/static/defaults/pref/prefs.js | 100 ++++++++-------- apps/misc/static/localization/link.json | 5 - apps/modules/lib/BrowserGlue.sys.mjs | 4 + apps/modules/lib/BrowserWindowTracker.sys.mjs | 4 + apps/modules/lib/EPageActions.sys.mjs | 4 + apps/modules/lib/TypedImportUtils.sys.mjs | 4 + lib/link/types/globals/ChromeUtils.d.ts | 4 - lib/link/types/globals/Cr.d.ts | 1 - lib/link/types/interfaces/ClickHandler.d.ts | 4 - lib/link/types/modules/mitt.d.ts | 6 - lib/shared/src/index.ts | 6 - lib/shared/src/utilities/index.ts | 2 - lib/shared/src/xul/index.ts | 3 - {lib => libs}/link/package.json | 0 {lib => libs}/link/types/_link.d.ts | 4 + libs/link/types/globals/ChromeUtils.d.ts | 8 ++ libs/link/types/globals/Cr.d.ts | 5 + .../link/types/globals/Elements.d.ts | 4 + .../link/types/globals/MatchPattern.d.ts | 0 .../link/types/globals/MessageManager.d.ts | 0 libs/link/types/interfaces/ClickHandler.d.ts | 8 ++ .../link/types/interfaces/ContextMenu.d.ts | 4 + .../types/interfaces/GenericDeferred.d.ts | 4 + .../link/types/modules/AppConstants.d.ts | 0 .../types/modules/BrowserWindowTracker.d.ts | 4 + .../link/types/modules/EPageActions.d.ts | 4 + .../link/types/modules/PlacesUtils.d.ts | 4 + libs/link/types/modules/mitt.d.ts | 10 ++ .../link/types/modules/typedImport.d.ts | 4 + {lib => libs}/shared/package.json | 0 libs/shared/src/index.ts | 10 ++ {lib => libs}/shared/src/lazy.ts | 4 + .../shared/src/utilities/deferred.ts | 4 + libs/shared/src/utilities/index.ts | 6 + {lib => libs}/shared/src/utilities/mitt.ts | 4 + .../shared/src/utilities/svelte.license.md | 0 {lib => libs}/shared/src/utilities/svelte.ts | 4 + {lib => libs}/shared/src/xul/PlacesModel.ts | 0 libs/shared/src/xul/index.ts | 7 ++ .../shared/src/xul/messageReceiver.ts | 0 {lib => libs}/shared/src/xul/observable.ts | 0 {lib => libs}/shared/tsconfig.json | 6 +- package.json | 6 +- pnpm-workspace.yaml | 2 +- scripts/lib/constants.ts | 8 +- scripts/lib/files.ts | 5 +- scripts/lib/fs.ts | 5 + scripts/lib/linker.ts | 74 ++++-------- scripts/license-check.ts | 8 +- scripts/setup.ts | 43 +++---- .../tsconfig.json | 10 +- tsconfigs/tsconfig.actors.json | 9 -- tsconfigs/tsconfig.modules.json | 110 ------------------ 55 files changed, 235 insertions(+), 323 deletions(-) delete mode 100644 apps/misc/static/localization/link.json delete mode 100644 lib/link/types/globals/ChromeUtils.d.ts delete mode 100644 lib/link/types/globals/Cr.d.ts delete mode 100644 lib/link/types/interfaces/ClickHandler.d.ts delete mode 100644 lib/link/types/modules/mitt.d.ts delete mode 100644 lib/shared/src/index.ts delete mode 100644 lib/shared/src/utilities/index.ts delete mode 100644 lib/shared/src/xul/index.ts rename {lib => libs}/link/package.json (100%) rename {lib => libs}/link/types/_link.d.ts (81%) create mode 100644 libs/link/types/globals/ChromeUtils.d.ts create mode 100644 libs/link/types/globals/Cr.d.ts rename {lib => libs}/link/types/globals/Elements.d.ts (90%) rename {lib => libs}/link/types/globals/MatchPattern.d.ts (100%) rename {lib => libs}/link/types/globals/MessageManager.d.ts (100%) create mode 100644 libs/link/types/interfaces/ClickHandler.d.ts rename {lib => libs}/link/types/interfaces/ContextMenu.d.ts (71%) rename {lib => libs}/link/types/interfaces/GenericDeferred.d.ts (83%) rename {lib => libs}/link/types/modules/AppConstants.d.ts (100%) rename {lib => libs}/link/types/modules/BrowserWindowTracker.d.ts (87%) rename {lib => libs}/link/types/modules/EPageActions.d.ts (92%) rename {lib => libs}/link/types/modules/PlacesUtils.d.ts (98%) create mode 100644 libs/link/types/modules/mitt.d.ts rename {lib => libs}/link/types/modules/typedImport.d.ts (73%) rename {lib => libs}/shared/package.json (100%) create mode 100644 libs/shared/src/index.ts rename {lib => libs}/shared/src/lazy.ts (77%) rename {lib => libs}/shared/src/utilities/deferred.ts (85%) create mode 100644 libs/shared/src/utilities/index.ts rename {lib => libs}/shared/src/utilities/mitt.ts (65%) rename {lib => libs}/shared/src/utilities/svelte.license.md (100%) rename {lib => libs}/shared/src/utilities/svelte.ts (93%) rename {lib => libs}/shared/src/xul/PlacesModel.ts (100%) create mode 100644 libs/shared/src/xul/index.ts rename {lib => libs}/shared/src/xul/messageReceiver.ts (100%) rename {lib => libs}/shared/src/xul/observable.ts (100%) rename {lib => libs}/shared/tsconfig.json (76%) rename tsconfigs/tsconfig.scripts.json => scripts/tsconfig.json (99%) delete mode 100644 tsconfigs/tsconfig.actors.json delete mode 100644 tsconfigs/tsconfig.modules.json diff --git a/apps/content/tsconfig.json b/apps/content/tsconfig.json index fbcffc8..8f2d3b9 100644 --- a/apps/content/tsconfig.json +++ b/apps/content/tsconfig.json @@ -4,20 +4,11 @@ "target": "es2022", "allowArbitraryExtensions": true, "paths": { - "@shared/*": [ - "./src/shared/*" - ], - "@browser/*": [ - "./src/browser/*" - ] + "@shared/*": ["./src/shared/*"], + "@browser/*": ["./src/browser/*"] }, "skipLibCheck": true }, - "include": [ - "src/**/*" - ], - "exclude": [ - "node_modules/*", - "static/*" - ] -} \ No newline at end of file + "include": ["src/**/*"], + "exclude": ["node_modules/*", "static/*"] +} diff --git a/apps/content/webpack.config.js b/apps/content/webpack.config.js index 1e233ce..9c0faf2 100644 --- a/apps/content/webpack.config.js +++ b/apps/content/webpack.config.js @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + // @ts-check import { preprocessMeltUI } from '@melt-ui/pp' import CopyWebpackPlugin from 'copy-webpack-plugin' diff --git a/apps/misc/static/defaults/pref/prefs.js b/apps/misc/static/defaults/pref/prefs.js index 08bbfde..6006c76 100644 --- a/apps/misc/static/defaults/pref/prefs.js +++ b/apps/misc/static/defaults/pref/prefs.js @@ -7,113 +7,113 @@ // This is roughly equivelent to `user.js` or `firefox.js` // Home settings -pref('browser.newwindow.default', 'about:blank'); -pref('browser.newtab.default', 'https://web.tabliss.io/'); +pref('browser.newwindow.default', 'about:blank') +pref('browser.newtab.default', 'https://web.tabliss.io/') // Search settings -pref('browser.search.engine.default', 'google@search.fushra.com'); +pref('browser.search.engine.default', 'google@search.fushra.com') // Context menu prefs pref( 'browser.contextmenus.page', - 'link__copy,link__new-tab,separator,selection__copy' -); + 'link__copy,link__new-tab,separator,selection__copy', +) pref( 'browser.uiCustomization.state', - '{"type":"block","direction":"vertical","content":[{"type":"block","direction":"horizontal","size":{"type":"content"},"content":[{"type":"tabs"}],"color":"base"},{"type":"block","direction":"horizontal","size":{"type":"content"},"content":[{"type":"icon","icon":"arrow-left-line"},{"type":"icon","icon":"refresh-line"},{"type":"icon","icon":"arrow-right-line"},{"type":"spacer","grow":1},{"type":"omnibox"},{"type":"spacer","grow":1},{"type":"icon","icon":"menu-line"}],"color":"surface-0"},{"type":"browser"}],"size":{"type":"grow","value":1},"color":"base"}' -); + '{"type":"block","direction":"vertical","content":[{"type":"block","direction":"horizontal","size":{"type":"content"},"content":[{"type":"tabs"}],"color":"base"},{"type":"block","direction":"horizontal","size":{"type":"content"},"content":[{"type":"icon","icon":"arrow-left-line"},{"type":"icon","icon":"refresh-line"},{"type":"icon","icon":"arrow-right-line"},{"type":"spacer","grow":1},{"type":"omnibox"},{"type":"spacer","grow":1},{"type":"icon","icon":"menu-line"}],"color":"surface-0"},{"type":"browser"}],"size":{"type":"grow","value":1},"color":"base"}', +) // Default keybinds -pref('browser.keybinds.toolbox', 'accel+alt+shift+I'); -pref('browser.keybinds.chrome.reload', 'accel+alt+shift+R'); - -pref('browser.keybinds.newWindow', 'accel+N'); -pref('browser.keybinds.newTab', 'accel+T'); -pref('browser.keybinds.closeTab', 'accel+W'); -pref('browser.keybinds.nextTab', 'accel+VK_TAB'); -pref('browser.keybinds.previousTab', 'accel+shift+VK_TAB'); -pref('browser.keybinds.tab1', 'accel+1'); -pref('browser.keybinds.tab2', 'accel+2'); -pref('browser.keybinds.tab3', 'accel+3'); -pref('browser.keybinds.tab4', 'accel+4'); -pref('browser.keybinds.tab5', 'accel+5'); -pref('browser.keybinds.tab6', 'accel+6'); -pref('browser.keybinds.tab7', 'accel+7'); -pref('browser.keybinds.tab8', 'accel+8'); -pref('browser.keybinds.findInPage', 'accel+F'); +pref('browser.keybinds.toolbox', 'accel+alt+shift+I') +pref('browser.keybinds.chrome.reload', 'accel+alt+shift+R') + +pref('browser.keybinds.newWindow', 'accel+N') +pref('browser.keybinds.newTab', 'accel+T') +pref('browser.keybinds.closeTab', 'accel+W') +pref('browser.keybinds.nextTab', 'accel+VK_TAB') +pref('browser.keybinds.previousTab', 'accel+shift+VK_TAB') +pref('browser.keybinds.tab1', 'accel+1') +pref('browser.keybinds.tab2', 'accel+2') +pref('browser.keybinds.tab3', 'accel+3') +pref('browser.keybinds.tab4', 'accel+4') +pref('browser.keybinds.tab5', 'accel+5') +pref('browser.keybinds.tab6', 'accel+6') +pref('browser.keybinds.tab7', 'accel+7') +pref('browser.keybinds.tab8', 'accel+8') +pref('browser.keybinds.findInPage', 'accel+F') // Misc. prefs -pref('browser.tabs.newTabFocus', false); +pref('browser.tabs.newTabFocus', false) // ======================================================= // Gecko prefs // Findbar -pref('accessibility.typeaheadfind', false); -pref('accessibility.typeaheadfind.timeout', 5000); -pref('accessibility.typeaheadfind.linksonly', false); -pref('accessibility.typeaheadfind.flashBar', 1); +pref('accessibility.typeaheadfind', false) +pref('accessibility.typeaheadfind.timeout', 5000) +pref('accessibility.typeaheadfind.linksonly', false) +pref('accessibility.typeaheadfind.flashBar', 1) // Enable firefox compat -pref('general.useragent.compatMode.firefox', true); +pref('general.useragent.compatMode.firefox', true) // Downloads // Enable logging downloads operations to the Console. -pref('browser.download.loglevel', 'Error'); +pref('browser.download.loglevel', 'Error') // Number of milliseconds to wait for the http headers (and thus // the Content-Disposition filename) before giving up and falling back to // picking a filename without that info in hand so that the user sees some // feedback from their action. -pref('browser.download.saveLinkAsFilenameTimeout', 4000); +pref('browser.download.saveLinkAsFilenameTimeout', 4000) -pref('browser.download.useDownloadDir', true); -pref('browser.download.folderList', 1); -pref('browser.download.manager.addToRecentDocs', true); -pref('browser.download.manager.resumeOnWakeDelay', 10000); +pref('browser.download.useDownloadDir', true) +pref('browser.download.folderList', 1) +pref('browser.download.manager.addToRecentDocs', true) +pref('browser.download.manager.resumeOnWakeDelay', 10000) // This records whether or not the panel has been shown at least once. -pref('browser.download.panel.shown', false); +pref('browser.download.panel.shown', false) // This records whether or not to show the 'Open in system viewer' context menu item when appropriate -pref('browser.download.openInSystemViewerContextMenuItem', true); +pref('browser.download.openInSystemViewerContextMenuItem', true) // This records whether or not to show the 'Always open...' context menu item when appropriate -pref('browser.download.alwaysOpenInSystemViewerContextMenuItem', true); +pref('browser.download.alwaysOpenInSystemViewerContextMenuItem', true) // Open downloaded file types internally for the given types. // This is a comma-separated list, the empty string ("") means no types are // viewable internally. pref( 'browser.download.viewableInternally.enabledTypes', - 'xml,svg,webp,avif,jxl' -); + 'xml,svg,webp,avif,jxl', +) // This controls whether the button is automatically shown/hidden depending // on whether there are downloads to show. -pref('browser.download.autohideButton', true); +pref('browser.download.autohideButton', true) // Controls whether to open the downloads panel every time a download begins. // The first download ever run in a new profile will still open the panel. -pref('browser.download.alwaysOpenPanel', true); +pref('browser.download.alwaysOpenPanel', true) // Determines the behavior of the "Delete" item in the downloads context menu. // Valid values are 0, 1, and 2. // 0 - Don't remove the download from session list or history. // 1 - Remove the download from session list, but not history. // 2 - Remove the download from both session list and history. -pref('browser.download.clearHistoryOnDelete', 0); +pref('browser.download.clearHistoryOnDelete', 0) // We do this because we want page actions etc. to have color schemes -pref('svg.context-properties.content.enabled', true); +pref('svg.context-properties.content.enabled', true) // ============================================================================= // Multithreading -pref('browser.tabs.remote.autostart', true); -pref('browser.tabs.remote.separatePrivilegedContentProcess', true); -pref('browser.tabs.remote.separatePrivilegedMozillaWebContentProcess', true); +pref('browser.tabs.remote.autostart', true) +pref('browser.tabs.remote.separatePrivilegedContentProcess', true) +pref('browser.tabs.remote.separatePrivilegedMozillaWebContentProcess', true) -pref('extensions.webextensions.remote', true); -pref('extensions.webextensions.protocol.remote', true); +pref('extensions.webextensions.remote', true) +pref('extensions.webextensions.protocol.remote', true) diff --git a/apps/misc/static/localization/link.json b/apps/misc/static/localization/link.json deleted file mode 100644 index 40ca28e..0000000 --- a/apps/misc/static/localization/link.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - "en-US/branding/brand.ftl", - "en-US/browser/components/mozSupportLink.ftl", - "en-US/browser/appExtensionFields.ftl" -] diff --git a/apps/modules/lib/BrowserGlue.sys.mjs b/apps/modules/lib/BrowserGlue.sys.mjs index 70fad5d..b28cb8b 100644 --- a/apps/modules/lib/BrowserGlue.sys.mjs +++ b/apps/modules/lib/BrowserGlue.sys.mjs @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// @ts-check /// import { lazyESModuleGetters } from 'resource://app/modules/TypedImportUtils.sys.mjs' diff --git a/apps/modules/lib/BrowserWindowTracker.sys.mjs b/apps/modules/lib/BrowserWindowTracker.sys.mjs index 92013e3..c234b2f 100644 --- a/apps/modules/lib/BrowserWindowTracker.sys.mjs +++ b/apps/modules/lib/BrowserWindowTracker.sys.mjs @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// @ts-check /// import mitt from 'resource://app/modules/mitt.sys.mjs' diff --git a/apps/modules/lib/EPageActions.sys.mjs b/apps/modules/lib/EPageActions.sys.mjs index 08d36fb..9aed654 100644 --- a/apps/modules/lib/EPageActions.sys.mjs +++ b/apps/modules/lib/EPageActions.sys.mjs @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// @ts-check /// import mitt from 'resource://app/modules/mitt.sys.mjs' diff --git a/apps/modules/lib/TypedImportUtils.sys.mjs b/apps/modules/lib/TypedImportUtils.sys.mjs index a0da69f..db273e2 100644 --- a/apps/modules/lib/TypedImportUtils.sys.mjs +++ b/apps/modules/lib/TypedImportUtils.sys.mjs @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// @ts-check /// diff --git a/lib/link/types/globals/ChromeUtils.d.ts b/lib/link/types/globals/ChromeUtils.d.ts deleted file mode 100644 index c4d0d0f..0000000 --- a/lib/link/types/globals/ChromeUtils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module ChromeUtils { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - export function importESModule(path: string): any -} diff --git a/lib/link/types/globals/Cr.d.ts b/lib/link/types/globals/Cr.d.ts deleted file mode 100644 index 05206dc..0000000 --- a/lib/link/types/globals/Cr.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare let Cr: Record diff --git a/lib/link/types/interfaces/ClickHandler.d.ts b/lib/link/types/interfaces/ClickHandler.d.ts deleted file mode 100644 index d6d6816..0000000 --- a/lib/link/types/interfaces/ClickHandler.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare type ClickHandlerMessage = { - name: 'openlink' - data: { href: string } -} & { target: JSWindowActorParent } diff --git a/lib/link/types/modules/mitt.d.ts b/lib/link/types/modules/mitt.d.ts deleted file mode 100644 index da42881..0000000 --- a/lib/link/types/modules/mitt.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare module 'resource://app/modules/mitt.sys.mjs' { - export type * from 'mitt' - - const mitt: typeof import('mitt').default - export default mitt -} diff --git a/lib/shared/src/index.ts b/lib/shared/src/index.ts deleted file mode 100644 index 2a3d9fa..0000000 --- a/lib/shared/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// - -export * from './utilities/index.js' -export * from './xul/index.js' - -export * from './lazy.js' diff --git a/lib/shared/src/utilities/index.ts b/lib/shared/src/utilities/index.ts deleted file mode 100644 index 12a80b2..0000000 --- a/lib/shared/src/utilities/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './deferred.js' -export * from './mitt.js' diff --git a/lib/shared/src/xul/index.ts b/lib/shared/src/xul/index.ts deleted file mode 100644 index 7f5cf84..0000000 --- a/lib/shared/src/xul/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './messageReceiver.js' -export * from './observable.js' -export * from './PlacesModel.js' diff --git a/lib/link/package.json b/libs/link/package.json similarity index 100% rename from lib/link/package.json rename to libs/link/package.json diff --git a/lib/link/types/_link.d.ts b/libs/link/types/_link.d.ts similarity index 81% rename from lib/link/types/_link.d.ts rename to libs/link/types/_link.d.ts index 416374b..4b36920 100644 --- a/lib/link/types/_link.d.ts +++ b/libs/link/types/_link.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + // This is the root file that will be imported everywhere. Add your new files // here to have them show up globally diff --git a/libs/link/types/globals/ChromeUtils.d.ts b/libs/link/types/globals/ChromeUtils.d.ts new file mode 100644 index 0000000..13df0b6 --- /dev/null +++ b/libs/link/types/globals/ChromeUtils.d.ts @@ -0,0 +1,8 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +declare module ChromeUtils { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + export function importESModule(path: string): any +} diff --git a/libs/link/types/globals/Cr.d.ts b/libs/link/types/globals/Cr.d.ts new file mode 100644 index 0000000..94892d3 --- /dev/null +++ b/libs/link/types/globals/Cr.d.ts @@ -0,0 +1,5 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +declare let Cr: Record diff --git a/lib/link/types/globals/Elements.d.ts b/libs/link/types/globals/Elements.d.ts similarity index 90% rename from lib/link/types/globals/Elements.d.ts rename to libs/link/types/globals/Elements.d.ts index 7408c8a..2bfdaed 100644 --- a/lib/link/types/globals/Elements.d.ts +++ b/libs/link/types/globals/Elements.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// declare interface Document { diff --git a/lib/link/types/globals/MatchPattern.d.ts b/libs/link/types/globals/MatchPattern.d.ts similarity index 100% rename from lib/link/types/globals/MatchPattern.d.ts rename to libs/link/types/globals/MatchPattern.d.ts diff --git a/lib/link/types/globals/MessageManager.d.ts b/libs/link/types/globals/MessageManager.d.ts similarity index 100% rename from lib/link/types/globals/MessageManager.d.ts rename to libs/link/types/globals/MessageManager.d.ts diff --git a/libs/link/types/interfaces/ClickHandler.d.ts b/libs/link/types/interfaces/ClickHandler.d.ts new file mode 100644 index 0000000..b55aa10 --- /dev/null +++ b/libs/link/types/interfaces/ClickHandler.d.ts @@ -0,0 +1,8 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +declare type ClickHandlerMessage = { + name: 'openlink' + data: { href: string } +} & { target: JSWindowActorParent } diff --git a/lib/link/types/interfaces/ContextMenu.d.ts b/libs/link/types/interfaces/ContextMenu.d.ts similarity index 71% rename from lib/link/types/interfaces/ContextMenu.d.ts rename to libs/link/types/interfaces/ContextMenu.d.ts index 705a6f3..d9c9a5d 100644 --- a/lib/link/types/interfaces/ContextMenu.d.ts +++ b/libs/link/types/interfaces/ContextMenu.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + declare interface ContextMenuMediaInfo { contentType?: string contentDisposition?: string diff --git a/lib/link/types/interfaces/GenericDeferred.d.ts b/libs/link/types/interfaces/GenericDeferred.d.ts similarity index 83% rename from lib/link/types/interfaces/GenericDeferred.d.ts rename to libs/link/types/interfaces/GenericDeferred.d.ts index 3aa47d7..eeaab85 100644 --- a/lib/link/types/interfaces/GenericDeferred.d.ts +++ b/libs/link/types/interfaces/GenericDeferred.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /** * The definition of Deferred object which is returned by PromiseUtils.defer(), * It contains a Promise and methods to resolve/reject it. diff --git a/lib/link/types/modules/AppConstants.d.ts b/libs/link/types/modules/AppConstants.d.ts similarity index 100% rename from lib/link/types/modules/AppConstants.d.ts rename to libs/link/types/modules/AppConstants.d.ts diff --git a/lib/link/types/modules/BrowserWindowTracker.d.ts b/libs/link/types/modules/BrowserWindowTracker.d.ts similarity index 87% rename from lib/link/types/modules/BrowserWindowTracker.d.ts rename to libs/link/types/modules/BrowserWindowTracker.d.ts index 5e6989c..f8ac3af 100644 --- a/lib/link/types/modules/BrowserWindowTracker.d.ts +++ b/libs/link/types/modules/BrowserWindowTracker.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + declare module 'resource://app/modules/BrowserWindowTracker.sys.mjs' { import type { Emitter } from 'resource://app/modules/mitt.sys.mjs' diff --git a/lib/link/types/modules/EPageActions.d.ts b/libs/link/types/modules/EPageActions.d.ts similarity index 92% rename from lib/link/types/modules/EPageActions.d.ts rename to libs/link/types/modules/EPageActions.d.ts index 6a11ce6..c645973 100644 --- a/lib/link/types/modules/EPageActions.d.ts +++ b/libs/link/types/modules/EPageActions.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + declare module 'resource://app/modules/EPageActions.sys.mjs' { import type { Emitter } from 'mitt' diff --git a/lib/link/types/modules/PlacesUtils.d.ts b/libs/link/types/modules/PlacesUtils.d.ts similarity index 98% rename from lib/link/types/modules/PlacesUtils.d.ts rename to libs/link/types/modules/PlacesUtils.d.ts index fe23f9c..09c91ab 100644 --- a/lib/link/types/modules/PlacesUtils.d.ts +++ b/libs/link/types/modules/PlacesUtils.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/ban-types */ diff --git a/libs/link/types/modules/mitt.d.ts b/libs/link/types/modules/mitt.d.ts new file mode 100644 index 0000000..f19f0b3 --- /dev/null +++ b/libs/link/types/modules/mitt.d.ts @@ -0,0 +1,10 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +declare module 'resource://app/modules/mitt.sys.mjs' { + export type * from 'mitt' + + const mitt: typeof import('mitt').default + export default mitt +} diff --git a/lib/link/types/modules/typedImport.d.ts b/libs/link/types/modules/typedImport.d.ts similarity index 73% rename from lib/link/types/modules/typedImport.d.ts rename to libs/link/types/modules/typedImport.d.ts index dc045fb..dca9ec0 100644 --- a/lib/link/types/modules/typedImport.d.ts +++ b/libs/link/types/modules/typedImport.d.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + declare module 'resource://app/modules/TypedImportUtils.sys.mjs' { export function lazyESModuleGetters< Modules extends Partial, diff --git a/lib/shared/package.json b/libs/shared/package.json similarity index 100% rename from lib/shared/package.json rename to libs/shared/package.json diff --git a/libs/shared/src/index.ts b/libs/shared/src/index.ts new file mode 100644 index 0000000..ee5f786 --- /dev/null +++ b/libs/shared/src/index.ts @@ -0,0 +1,10 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/// + +export * from './utilities/index.js' +export * from './xul/index.js' + +export * from './lazy.js' diff --git a/lib/shared/src/lazy.ts b/libs/shared/src/lazy.ts similarity index 77% rename from lib/shared/src/lazy.ts rename to libs/shared/src/lazy.ts index abc3513..a0804fd 100644 --- a/lib/shared/src/lazy.ts +++ b/libs/shared/src/lazy.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + export function lazyESModuleGetters>( modules: Modules, // @ts-expect-error - Cannot guarantee overlapping key type diff --git a/lib/shared/src/utilities/deferred.ts b/libs/shared/src/utilities/deferred.ts similarity index 85% rename from lib/shared/src/utilities/deferred.ts rename to libs/shared/src/utilities/deferred.ts index 5896ac6..7d1145f 100644 --- a/lib/shared/src/utilities/deferred.ts +++ b/libs/shared/src/utilities/deferred.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + /// /** diff --git a/libs/shared/src/utilities/index.ts b/libs/shared/src/utilities/index.ts new file mode 100644 index 0000000..45b630a --- /dev/null +++ b/libs/shared/src/utilities/index.ts @@ -0,0 +1,6 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +export * from './deferred.js' +export * from './mitt.js' diff --git a/lib/shared/src/utilities/mitt.ts b/libs/shared/src/utilities/mitt.ts similarity index 65% rename from lib/shared/src/utilities/mitt.ts rename to libs/shared/src/utilities/mitt.ts index a667dea..bd71b33 100644 --- a/lib/shared/src/utilities/mitt.ts +++ b/libs/shared/src/utilities/mitt.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + import type { Emitter, EventType } from 'mitt' export const waitForEvent = < diff --git a/lib/shared/src/utilities/svelte.license.md b/libs/shared/src/utilities/svelte.license.md similarity index 100% rename from lib/shared/src/utilities/svelte.license.md rename to libs/shared/src/utilities/svelte.license.md diff --git a/lib/shared/src/utilities/svelte.ts b/libs/shared/src/utilities/svelte.ts similarity index 93% rename from lib/shared/src/utilities/svelte.ts rename to libs/shared/src/utilities/svelte.ts index e8e6185..db66c5f 100644 --- a/lib/shared/src/utilities/svelte.ts +++ b/libs/shared/src/utilities/svelte.ts @@ -1,3 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + import { type Invalidator, type Readable, diff --git a/lib/shared/src/xul/PlacesModel.ts b/libs/shared/src/xul/PlacesModel.ts similarity index 100% rename from lib/shared/src/xul/PlacesModel.ts rename to libs/shared/src/xul/PlacesModel.ts diff --git a/libs/shared/src/xul/index.ts b/libs/shared/src/xul/index.ts new file mode 100644 index 0000000..7a6dadd --- /dev/null +++ b/libs/shared/src/xul/index.ts @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +export * from './messageReceiver.js' +export * from './observable.js' +export * from './PlacesModel.js' diff --git a/lib/shared/src/xul/messageReceiver.ts b/libs/shared/src/xul/messageReceiver.ts similarity index 100% rename from lib/shared/src/xul/messageReceiver.ts rename to libs/shared/src/xul/messageReceiver.ts diff --git a/lib/shared/src/xul/observable.ts b/libs/shared/src/xul/observable.ts similarity index 100% rename from lib/shared/src/xul/observable.ts rename to libs/shared/src/xul/observable.ts diff --git a/lib/shared/tsconfig.json b/libs/shared/tsconfig.json similarity index 76% rename from lib/shared/tsconfig.json rename to libs/shared/tsconfig.json index 2550ad9..df4849b 100644 --- a/lib/shared/tsconfig.json +++ b/libs/shared/tsconfig.json @@ -4,7 +4,5 @@ "target": "ESNext", "moduleResolution": "NodeNext" }, - "include": [ - "src/**/*" - ] -} \ No newline at end of file + "include": ["src/**/*"] +} diff --git a/package.json b/package.json index 6d0a744..b9a9637 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "type": "module", "main": "index.js", "scripts": { - "_postinstall": "pnpm scripts:build && pnpm script:setup", - "scripts:build": "tsc -p ./tsconfigs/tsconfig.scripts.json", + "postinstall": "pnpm scripts:build && pnpm script:setup", + "scripts:build": "tsc -p ./scripts/tsconfig.json", "script:setup": "node ./.scripts/setup.js", "script:license-check": "node ./.scripts/license-check.js", "script:unit-test": "node ./.scripts/unit-test.js", @@ -101,7 +101,7 @@ }, "ignorePatterns": [ "src/modules/*.js", - "dist/*", + "**/dist/*", ".scripts/*", ".store/*" ] diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ce42121..0a26f3f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - apps/* - - lib/* + - libs/* diff --git a/scripts/lib/constants.ts b/scripts/lib/constants.ts index 1b7a740..b295046 100644 --- a/scripts/lib/constants.ts +++ b/scripts/lib/constants.ts @@ -5,6 +5,8 @@ import { resolve } from 'path' const getXFile = (x: string) => (file: string) => resolve(x, file) +export const getFile = getXFile(process.cwd()) + export const STORE_PATH = resolve(process.cwd(), '.store/') export const getStoreFile = getXFile(STORE_PATH) @@ -14,10 +16,4 @@ export const getArtifactFile = getXFile(ARTIFACT_RT_PATH) export const DIST_PATH = resolve(process.cwd(), 'dist') export const getDistFile = getXFile(DIST_PATH) -export const SRC_PATH = resolve(process.cwd(), 'src') -export const getSrcFile = getXFile(SRC_PATH) - -export const STATIC_PATH = resolve(process.cwd(), 'static') -export const getStaticFile = getXFile(STATIC_PATH) - export const SCRIPTS_PATH = resolve(process.cwd(), 'scripts') diff --git a/scripts/lib/files.ts b/scripts/lib/files.ts index 430b2b6..52cf4cc 100644 --- a/scripts/lib/files.ts +++ b/scripts/lib/files.ts @@ -11,13 +11,14 @@ export const CHANGES: { file: string; append?: string | string[] }[] = [ append: [ 'locale branding en-US en-US/locale/branding/', 'resource search-extensions browser/content/browser/search-extensions/ contentaccessible=yes', + 'content bextensions browser/content/extensions/', ], }, { file: 'components/components.manifest', append: [ - 'category webextension-modules browser chrome://browser/content/extensions/ext-browser.json', - 'category webextension-scripts c-browser chrome://browser/content/extensions/parent/ext-browser.js', + 'category webextension-modules browser chrome://bextensions/content/ext-browser.json', + 'category webextension-scripts c-browser chrome://bextensions/content/parent/ext-browser.js', ], }, ] diff --git a/scripts/lib/fs.ts b/scripts/lib/fs.ts index 1416aca..6f6b3b9 100644 --- a/scripts/lib/fs.ts +++ b/scripts/lib/fs.ts @@ -7,6 +7,9 @@ import { isAbsolute, join } from 'node:path' import { failure } from './logging.js' +/** + * Ignores node modules & dist directories + */ export async function walkDirectory(directory: string): Promise { const output: string[] = [] @@ -18,6 +21,8 @@ export async function walkDirectory(directory: string): Promise { const directoryContents = await readdir(directory) for (const file of directoryContents) { + if (file.includes('node_modules') || file.includes('dist')) continue + const fullPath = join(directory, file) const fStat = await stat(fullPath) diff --git a/scripts/lib/linker.ts b/scripts/lib/linker.ts index 8b5b843..027f84f 100644 --- a/scripts/lib/linker.ts +++ b/scripts/lib/linker.ts @@ -1,66 +1,36 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { mkdir, readFile, rm, symlink } from 'fs/promises' +import { mkdir, readdir, rm, stat, symlink } from 'fs/promises' import { existsSync } from 'node:fs' import { dirname } from 'path' -import { - getArtifactFile, - getDistFile, - getSrcFile, - getStaticFile, -} from './constants.js' +export async function linkContents(from: string, to: string) { + const folderContents = await readdir(from) -export async function linkTscFolder(folderName: string) { - const linkFile = await readFile( - getSrcFile(`${folderName}/link.json`), - 'utf-8', - ) - const links = JSON.parse(linkFile) as string[] + for (const item of folderContents) { + const statResult = await stat(`${from}/${item}`) - for (const link of links) { - const distFileName = `${link}.js` - const geckoName = `${link}.sys.mjs` - const geckoPath = getArtifactFile(`${folderName}/${geckoName}`) + if (statResult.isDirectory()) { + await linkContents(`${from}/${item}`, `${to}/${item}`) + continue + } - if (existsSync(geckoPath)) await rm(geckoPath) - await symlink(getDistFile(`${folderName}/${distFileName}`), geckoPath) + if (existsSync(`${to}/${item}`)) await rm(`${to}/${item}`) + if (!existsSync(dirname(`${to}/${item}`))) + await mkdir(dirname(`${to}/${item}`), { recursive: true }) + await symlink(`${from}/${item}`, `${to}/${item}`) } } -export async function linkStaticFolder( - folderName: string, - outFolderName?: string, - ext = '.sys.mjs', -) { - const linkFile = await readFile( - getStaticFile(`${folderName}/link.json`), - 'utf-8', - ) - const links = JSON.parse(linkFile) as string[] +/** + * Creates a link for a specific folder + * @param from The directory to source the link + * @param to The location to place the link + */ +export async function linkFolder(from: string, to: string) { + if (existsSync(to)) await rm(to, { recursive: true }) + if (!existsSync(dirname(to))) await mkdir(dirname(to), { recursive: true }) - for (const link of links) { - const fileName = `${link}${ext}` - const geckoPath = getArtifactFile( - `${outFolderName || folderName}/${fileName}`, - ) - const srcFile = getStaticFile(`${folderName}/${fileName}`) - - if (existsSync(geckoPath)) await rm(geckoPath) - if (!existsSync(dirname(geckoPath))) - await mkdir(dirname(geckoPath), { recursive: true }) - await symlink(srcFile, geckoPath) - } -} - -export async function linkFolder(staticName: string, outputName: string) { - const staticFolder = getStaticFile(staticName) - const geckoFolder = getArtifactFile(outputName) - - if (existsSync(geckoFolder)) await rm(geckoFolder, { recursive: true }) - if (!existsSync(dirname(geckoFolder))) - await mkdir(dirname(geckoFolder), { recursive: true }) - - await symlink(staticFolder, geckoFolder) + await symlink(from, to) } diff --git a/scripts/license-check.ts b/scripts/license-check.ts index a365bea..b706e0d 100644 --- a/scripts/license-check.ts +++ b/scripts/license-check.ts @@ -4,20 +4,20 @@ import { readFileSync } from 'node:fs' import { argv } from 'node:process' -import { SCRIPTS_PATH, SRC_PATH, STATIC_PATH } from './lib/constants.js' +import { SCRIPTS_PATH, getFile } from './lib/constants.js' import { walkDirectory } from './lib/fs.js' import { autoFix, isValidLicense } from './lib/license.js' import { failure } from './lib/logging.js' const IGNORED_FILES = new RegExp( - '.*\\.(json|patch|md|jpeg|png|gif|tiff|ico|txt)', + '(.*pnpm-lock\\.yaml)|(.*\\.(json|patch|md|jpeg|png|gif|tiff|ico|txt))', ) const shouldFix = argv.includes('--fix') const filesToCheck = [ ...(await walkDirectory(SCRIPTS_PATH)), - ...(await walkDirectory(SRC_PATH)), - ...(await walkDirectory(STATIC_PATH)), + ...(await walkDirectory(getFile('apps'))), + ...(await walkDirectory(getFile('libs'))), ] const invalidFiles = filesToCheck diff --git a/scripts/setup.ts b/scripts/setup.ts index 07fd20f..9485dd5 100644 --- a/scripts/setup.ts +++ b/scripts/setup.ts @@ -12,16 +12,11 @@ */ import { execa } from 'execa' import { existsSync } from 'fs' -import { mkdir, rm, symlink } from 'fs/promises' +import { mkdir, rm } from 'fs/promises' -import { - ARTIFACT_RT_PATH, - getArtifactFile, - getDistFile, - getSrcFile, -} from './lib/constants.js' +import { ARTIFACT_RT_PATH, getArtifactFile, getFile } from './lib/constants.js' import { setupFiles } from './lib/files.js' -import { linkStaticFolder, linkTscFolder } from './lib/linker.js' +import { linkContents, linkFolder } from './lib/linker.js' import { failure, info } from './lib/logging.js' import { downloadReleaseAsset, getLatestRelease } from './lib/releases.js' @@ -68,32 +63,24 @@ await execa('unzip', [omnijar], { cwd: ARTIFACT_RT_PATH }) await rm(omnijar) info('Setting up symlinks...') -const contentDir = getArtifactFile('chrome/browser/content/browser') -const contentDirDist = getDistFile('browser_content') -await mkdir(contentDirDist, { recursive: true }) -await rm(contentDir, { recursive: true, force: true }) -await symlink(contentDirDist, contentDir) - -// Link preference file -const prefFile = getArtifactFile('defaults/pref/prefs.js') -const prefFileSrc = getSrcFile('prefs.js') -await rm(prefFile, { recursive: true, force: true }) -await symlink(prefFileSrc, prefFile) +await linkFolder( + getFile('apps/content/dist'), + getArtifactFile('chrome/browser/content/browser'), +) +await linkFolder( + getFile('apps/extensions/lib'), + getArtifactFile('chrome/browser/content/extensions'), +) -// Link typescript folders -await linkTscFolder('modules') -await linkTscFolder('actors') +await linkContents(getFile('apps/misc/static'), ARTIFACT_RT_PATH) -// Link static folders -await linkStaticFolder('modules') -await linkStaticFolder('localization', undefined, '') -await linkStaticFolder('chrome', undefined, '') -// await linkFolder('extensions', 'chrome/browser/content/browser/extensions') +await linkContents(getFile('apps/actors/lib'), getArtifactFile('actors')) +await linkContents(getFile('apps/modules/lib'), getArtifactFile('modules')) info('Setting up files...') await setupFiles() info('') info('You are all set up!') -info(' To start webpack, run `pnpm dev`') +info(' To start the dev server, run `pnpm dev`') info(' To launch the app, run `pnpm app:start`') diff --git a/tsconfigs/tsconfig.scripts.json b/scripts/tsconfig.json similarity index 99% rename from tsconfigs/tsconfig.scripts.json rename to scripts/tsconfig.json index 9af788a..811dede 100644 --- a/tsconfigs/tsconfig.scripts.json +++ b/scripts/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ - /* Projects */ // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ @@ -9,7 +8,6 @@ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ "target": "es2022" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ @@ -23,7 +21,6 @@ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ "module": "nodenext" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ @@ -42,12 +39,10 @@ // "resolveJsonModule": true, /* Enable importing .json files. */ // "allowArbitraryExtensions": true /* Enable importing files with any extension, provided a declaration file is present. */, // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ @@ -72,7 +67,6 @@ // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ @@ -80,7 +74,6 @@ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - /* Type Checking */ "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ @@ -101,10 +94,9 @@ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["../scripts/**/*"] + "include": ["./**/*"] } diff --git a/tsconfigs/tsconfig.actors.json b/tsconfigs/tsconfig.actors.json deleted file mode 100644 index f89e7a5..0000000 --- a/tsconfigs/tsconfig.actors.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/tsconfig", - "extends": "./tsconfig.modules.json", - "compilerOptions": { - "outDir": "../dist/actors", - "rootDir": "../src/actors/" - }, - "include": ["../src/actors/**/*"] -} diff --git a/tsconfigs/tsconfig.modules.json b/tsconfigs/tsconfig.modules.json deleted file mode 100644 index faffa5e..0000000 --- a/tsconfigs/tsconfig.modules.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true /* Disable including any library files, including the default lib.d.ts. */, - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "esnext" /* Specify what module code is generated. */, - "rootDir": "../src/modules/" /* Specify the root folder within your source files. */, - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "../dist/modules/" /* Specify an output folder for all emitted files. */, - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": ["../src/modules/**/*"] -} From a869aa76d33066cebb17651b0542132e614fc9bd Mon Sep 17 00:00:00 2001 From: trickypr <23250792+trickypr@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:49:52 +1100 Subject: [PATCH 04/10] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20tld=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/content/src/shared/search/providers/data/tld.txt | 6 +----- package.json | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/apps/content/src/shared/search/providers/data/tld.txt b/apps/content/src/shared/search/providers/data/tld.txt index fb2417b..225b529 100644 --- a/apps/content/src/shared/search/providers/data/tld.txt +++ b/apps/content/src/shared/search/providers/data/tld.txt @@ -1,4 +1,4 @@ -# Version 2023111200, Last Updated Sun Nov 12 07:07:01 2023 UTC +# Version 2023123101, Last Updated Mon Jan 1 07:07:01 2024 UTC AAA AARP ABB @@ -379,7 +379,6 @@ ES ESQ ESTATE ET -ETISALAT EU EUROVISION EUS @@ -1017,7 +1016,6 @@ SB SBI SBS SC -SCA SCB SCHAEFFLER SCHMIDT @@ -1235,7 +1233,6 @@ VIVO VLAANDEREN VN VODKA -VOLKSWAGEN VOLVO VOTE VOTING @@ -1370,7 +1367,6 @@ XN--MGB9AWBF XN--MGBA3A3EJT XN--MGBA3A4F16A XN--MGBA7C0BBN0A -XN--MGBAAKC7DVF XN--MGBAAM7A8H XN--MGBAB2BD XN--MGBAH1A3HJKRD diff --git a/package.json b/package.json index b9a9637..06d42a2 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "lint": "eslint .", "format": "pnpm lint && pnpm script:license-check --fix && prettier . --write --plugin prettier-plugin-svelte", "data": "concurrently -c auto pnpm:data:*", - "data:tld": "wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -O ./src/content/shared/search/providers/data/tld.txt" + "data:tld": "wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -O ./apps/content/src/shared/search/providers/data/tld.txt" }, "keywords": [], "author": "", From 1c4d336a14361e65cd6e8ec5aacb200fe29111e9 Mon Sep 17 00:00:00 2001 From: trickypr <23250792+trickypr@users.noreply.github.com> Date: Tue, 2 Jan 2024 15:51:09 +1100 Subject: [PATCH 05/10] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Move=20to=20turbo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- apps/content/package.json | 1 + .../components/keybindings/Keybinding.svelte | 2 +- .../menus/BrowserContextMenu.svelte | 2 +- .../components/omnibox/PageAction.svelte | 6 +- .../src/browser/components/tabs/tabDrag.ts | 3 +- apps/content/src/browser/lib/window/tab.ts | 2 +- apps/content/src/browser/lib/window/tabs.ts | 3 +- apps/content/src/browser/lib/xul/domevents.ts | 3 +- apps/content/src/history/History.svelte | 5 +- apps/content/src/shared/Deferred.ts | 35 --- apps/content/src/shared/ExtBookmarkAPI.ts | 2 +- apps/content/src/shared/ExtHistoryAPI.ts | 3 +- .../src/shared/contextMenus/MenuItem.ts | 2 +- .../src/shared/customizableUI/helpers.ts | 10 +- apps/content/src/shared/domUtils.ts | 3 +- apps/content/src/shared/lazy.ts | 17 -- apps/content/src/shared/mittUtils.ts | 21 -- apps/content/src/shared/search/engine.ts | 3 +- .../shared/search/providers/EngineProvider.ts | 4 +- .../src/shared/svelteUtils.svelte.license.md | 9 - apps/content/src/shared/svelteUtils.ts | 122 ----------- apps/content/src/shared/xul/PlacesModel.ts | 199 ------------------ apps/content/src/shared/xul/messageReciver.ts | 14 -- apps/content/src/shared/xul/observable.ts | 22 -- apps/extensions/lib/ext-browser.json | 2 +- .../en-US/locale/branding/brand.properties | 7 + apps/misc/static/defaults/pref/prefs.js | 100 ++++----- libs/shared/package.json | 16 +- libs/shared/src/utilities/index.ts | 1 + libs/shared/src/utilities/svelte.ts | 22 +- libs/shared/src/xul/PlacesModel.ts | 2 +- package.json | 7 +- pnpm-lock.yaml | 127 ++++++++--- scripts/lib/fs.ts | 9 +- turbo.json | 9 + 36 files changed, 229 insertions(+), 571 deletions(-) delete mode 100644 apps/content/src/shared/Deferred.ts delete mode 100644 apps/content/src/shared/lazy.ts delete mode 100644 apps/content/src/shared/mittUtils.ts delete mode 100644 apps/content/src/shared/svelteUtils.svelte.license.md delete mode 100644 apps/content/src/shared/svelteUtils.ts delete mode 100644 apps/content/src/shared/xul/PlacesModel.ts delete mode 100644 apps/content/src/shared/xul/messageReciver.ts delete mode 100644 apps/content/src/shared/xul/observable.ts create mode 100644 apps/misc/static/chrome/en-US/locale/branding/brand.properties create mode 100644 turbo.json diff --git a/.gitignore b/.gitignore index 5286b3c..b685e45 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,4 @@ .store/ dist/ node_modules/ -# For some reson, tsc will generate some in place js files -src/**/*.j* -!src/prefs.js - +**/.turbo diff --git a/apps/content/package.json b/apps/content/package.json index f69e4e5..ccec4f2 100644 --- a/apps/content/package.json +++ b/apps/content/package.json @@ -33,6 +33,7 @@ "webpack-license-plugin": "^4.4.2" }, "dependencies": { + "@experiment/shared": "workspace:*", "@catppuccin/palette": "^1.0.1", "@melt-ui/svelte": "^0.67.0", "fnts": "^2.1.0", diff --git a/apps/content/src/browser/components/keybindings/Keybinding.svelte b/apps/content/src/browser/components/keybindings/Keybinding.svelte index 0a1f8ea..bf02194 100644 --- a/apps/content/src/browser/components/keybindings/Keybinding.svelte +++ b/apps/content/src/browser/components/keybindings/Keybinding.svelte @@ -4,8 +4,8 @@