From 3e74e364dee788b981cd5f9f99eaa008c7d95486 Mon Sep 17 00:00:00 2001 From: Titouan Mathis Date: Wed, 26 Aug 2026 21:42:08 +0200 Subject: [PATCH] feat!: v4 takes the @studiometa/js-toolkit name at 4.0.0-alpha.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v4 prototype was `@studiometa/js-toolkit-v4`, private, at version 0.0.0, so nothing outside this repository could install it. It is now the package: `@studiometa/js-toolkit@4.0.0-alpha.0`, publishable, in `packages/js-toolkit/`. An npm workspace cannot hold two packages under one name, so v3 had to leave `main` for v4 to take it. It did, intact, on the `3.x` branch, which keeps the `latest` release, the documentation at js-toolkit.studiometa.dev and the three open pull requests that target v3. What moved: - `packages/v4/` → `packages/js-toolkit/`, with `git mv` so the history follows. `packages/js-toolkit/` (v3), `packages/docs/` (the 3.x documentation) and `packages/demo/` (the 3.x playground) are deleted here and live on `3.x`. - 360 occurrences of `@studiometa/js-toolkit-v4` across 122 files: the docs samples, the specs, the ported `@studiometa/ui` families, the packed-package consumers and the Vitest and TypeScript path aliases. The twoslash caches were regenerated by the docs build, since a cache is keyed on the sample and every sample changed. - Every `packages/v4` path: the root scripts, `generate-subpaths.js`, the lint and format configs, and the workflows. What the package gained, because it is published now: a `README.md` and a `LICENSE` in the tarball, `publishConfig.access`, and the repository, author, license, bugs and homepage fields. `check-package.js` asserts the packed top level, so it now expects those two files and still refuses anything that is not a build artifact. `src/coexistence.spec.ts` and `tsconfig.coexistence.json` are deleted. They are the only files that need both versions installed at once, and they stay on `3.x` where v3's sources are. RATIONALE.md says so where it describes the symbol that spec defends. Two things this move surfaced rather than caused: - `oxlint`'s component-authoring block applied to v3's sources and the 3.x demo. Retargeted at `migration/` and `demo/`, which is where this repository writes components now — minus `require-config` and `async-lifecycle-methods`, which encode a v3 shape: v4 lets an abstract base declare no config, and `mounted()` returns its cleanup, so making it `async` is the mistake rather than the rule. - `vite-plugin-decorators` filtered on `code: '@'` alone, so it handed `demo/index.html` to SWC, which parsed it as TypeScript and threw. The root never exposed the v4 demo's build script, so nothing ran into it. This commit exposes it as `npm run demo:build`, and adds the `id` filter the `code` filter needed. Documentation: js-toolkit-v4.studiometa.dev keeps its domain for the whole prerelease, and the Cloudflare Pages project `js-toolkit` now has `3.x` as its production branch, so js-toolkit.studiometa.dev keeps serving the 3.x pages from that branch. Verified before this commit deletes them: the first deploy from `3.x` landed as a production deployment carrying the custom domain. The two domains swap when 4.0.0 ships. Until then the install instructions say `@studiometa/js-toolkit@next`, since plain `npm install` gives 3.x. `focus-trap` moves from the root to this package: it is an optional peer of `@vueuse/integrations`, which VitePress uses, and the docs build fails without it. Verified: `npm run build`, `npm run lint`, `npm test` (113 files, 1569 tests), `npm run check:package` (596 files, 306.6 kB packed, Node, browser and TypeScript consumers), `npm run docs:build` and `npm run demo:build`. Release plumbing — the lockstep `postversion` hook, the publish workflow and the tag itself — is the next commit, not this one. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_011izFBQT4AsFcD4tVZz1f7R --- .github/actions/bench-diff/README.md | 12 +- .github/workflows/benchmarks-v3.yml | 83 - .../{benchmarks-v4.yml => benchmarks.yml} | 36 +- .github/workflows/docs.yml | 50 +- .github/workflows/export-size.yml | 9 +- .github/workflows/tests.yml | 35 +- .gitignore | 12 +- .oxfmtrc.json | 15 +- .oxlintrc.json | 28 +- CHANGELOG.md | 2 +- README.md | 22 +- package-lock.json | 27330 ++++------------ package.json | 33 +- packages/demo/eslint.config.js | 8 - packages/demo/meta.config.js | 34 - packages/demo/package.json | 39 - packages/demo/prettier.config.js | 5 - packages/demo/src/css/styles.css | 4 - packages/demo/src/js/app.ts | 5 - .../src/js/components/AnimateScrollTest.js | 18 - .../demo/src/js/components/AnimateTest.js | 125 - .../src/js/components/AnimateTestMultiple.js | 49 - .../BreakpointManagerDemoBase.js | 34 - .../BreakpointManagerDemoDesktop.js | 11 - .../BreakpointManagerDemoMobile.js | 11 - .../BreakpointManagerDemoTablet.js | 11 - .../components/BreakPointManagerDemo/index.js | 33 - .../js/components/BreakpointObserverDemo.js | 54 - packages/demo/src/js/components/Cursor.js | 43 - packages/demo/src/js/components/Lazyload.js | 77 - .../demo/src/js/components/MediaQueryDemo.js | 28 - packages/demo/src/js/components/Parallax.js | 25 - .../js/components/ParentNativeEvent/Child.js | 13 - .../js/components/ParentNativeEvent/index.js | 32 - .../demo/src/js/components/PointerProps.ts | 30 - .../src/js/components/ResponsiveOptions.js | 47 - .../demo/src/js/components/ScrollToDemo.js | 29 - .../src/js/components/ScrolledInViewOffset.js | 24 - packages/demo/src/js/components/Skew.js | 52 - packages/demo/src/js/components/Slider.js | 12 - packages/demo/src/js/utils/isObjectFreed.js | 54 - packages/demo/src/package.json | 3 - packages/demo/src/templates/layouts/base.twig | 10 - packages/demo/src/templates/pages/foo.twig | 43 - packages/demo/src/templates/pages/index.twig | 51 - packages/docs/.vitepress/config.ts | 470 - packages/docs/api/autoload/defineManifest.md | 173 - packages/docs/api/autoload/index.md | 135 - .../docs/api/autoload/registerManifests.md | 109 - packages/docs/api/configuration.md | 259 - packages/docs/api/decorators/index.md | 20 - .../api/decorators/withBreakpointManager.md | 62 - .../api/decorators/withBreakpointObserver.md | 104 - packages/docs/api/decorators/withDrag.md | 106 - .../docs/api/decorators/withExtraConfig.md | 98 - .../docs/api/decorators/withFreezedOptions.md | 27 - packages/docs/api/decorators/withGroup.md | 234 - .../decorators/withIntersectionObserver.md | 133 - .../api/decorators/withMountOnMediaQuery.md | 66 - .../api/decorators/withMountWhenInView.md | 91 - .../decorators/withMountWhenPrefersMotion.md | 49 - packages/docs/api/decorators/withMutation.md | 75 - .../api/decorators/withRelativePointer.md | 72 - .../api/decorators/withResponsiveOptions.md | 156 - .../docs/api/decorators/withScrolledInView.md | 173 - .../api/decorators/withScrolledInView/demo.md | 198 - packages/docs/api/helpers/closestComponent.md | 50 - packages/docs/api/helpers/createApp.md | 131 - packages/docs/api/helpers/defineFeatures.md | 89 - packages/docs/api/helpers/getClosestParent.md | 39 - .../docs/api/helpers/getDirectChildren.md | 47 - .../api/helpers/getInstanceFromElement.md | 26 - packages/docs/api/helpers/getInstances.md | 25 - .../docs/api/helpers/importOnInteraction.md | 98 - .../docs/api/helpers/importOnMediaQuery.md | 45 - packages/docs/api/helpers/importWhenIdle.md | 42 - .../api/helpers/importWhenPrefersMotion.md | 38 - .../docs/api/helpers/importWhenVisible.md | 91 - packages/docs/api/helpers/index.md | 47 - packages/docs/api/helpers/isDirectChild.md | 42 - packages/docs/api/helpers/logTree.md | 43 - packages/docs/api/helpers/queryComponent.md | 92 - .../docs/api/helpers/registerComponent.md | 93 - .../docs/api/helpers/registerComponents.md | 75 - packages/docs/api/html/data-component.md | 84 - packages/docs/api/html/data-option.md | 42 - packages/docs/api/html/data-ref.md | 10 - packages/docs/api/html/index.md | 75 - packages/docs/api/index.md | 26 - packages/docs/api/instance-events.md | 182 - packages/docs/api/instance-methods.md | 279 - packages/docs/api/instance-properties.md | 183 - packages/docs/api/instantiation.md | 106 - packages/docs/api/methods-hooks-events.md | 193 - packages/docs/api/methods-hooks-lifecycle.md | 113 - packages/docs/api/methods-hooks-services.md | 155 - packages/docs/api/services/index.md | 33 - packages/docs/api/services/useDrag.md | 127 - packages/docs/api/services/useKey.md | 115 - packages/docs/api/services/useLoad.md | 28 - packages/docs/api/services/useMutation.md | 63 - packages/docs/api/services/usePointer.md | 105 - packages/docs/api/services/useRaf.md | 55 - packages/docs/api/services/useResize.md | 124 - packages/docs/api/services/useScroll.md | 172 - packages/docs/api/static-methods.md | 35 - packages/docs/assets/events-diagram.png | Bin 746176 -> 0 bytes packages/docs/assets/lifecycle-hooks-dark.svg | 65 - packages/docs/assets/lifecycle-hooks.svg | 65 - packages/docs/assets/services-hooks-dark.svg | 49 - packages/docs/assets/services-hooks.svg | 49 - packages/docs/examples/accordion/index.md | 66 - .../examples/counter-component/Counter.html | 13 - .../examples/counter-component/Counter.ts | 26 - .../docs/examples/counter-component/index.md | 88 - .../docs/examples/form-validation/index.md | 179 - packages/docs/examples/index.md | 20 - packages/docs/examples/lazy-image/index.md | 59 - packages/docs/examples/modal/index.md | 156 - .../ScrollLinkedAnimation.html | 28 - .../ScrollLinkedAnimation.js | 79 - .../examples/scroll-linked-animation/index.md | 155 - packages/docs/examples/tabs/index.md | 175 - .../docs/examples/teleport-refs/Modal.html | 4 - packages/docs/examples/teleport-refs/Modal.js | 61 - packages/docs/examples/teleport-refs/index.md | 97 - .../docs/guide/concepts/component-tree.md | 271 - packages/docs/guide/concepts/philosophy.md | 59 - .../guide/concepts/service-architecture.md | 118 - .../docs/guide/going-further/autoloading.md | 173 - .../docs/guide/going-further/lazy-imports.md | 184 - packages/docs/guide/going-further/linting.md | 353 - .../going-further/registering-new-services.md | 118 - .../guide/going-further/typing-components.md | 349 - .../guide/going-further/using-decorators.md | 86 - packages/docs/guide/index.md | 47 - .../docs/guide/introduction/installation.md | 197 - .../guide/introduction/lifecycle-hooks.md | 72 - .../guide/introduction/managing-components.md | 124 - .../guide/introduction/managing-options.md | 189 - .../docs/guide/introduction/managing-refs.md | 225 - .../docs/guide/introduction/using-services.md | 162 - .../guide/introduction/working-with-events.md | 80 - packages/docs/guide/migration/v1-to-v2.md | 350 - packages/docs/guide/migration/v2-to-v3.md | 241 - packages/docs/guide/migration/v3-to-v4.md | 75 - packages/docs/index.md | 36 - packages/docs/package.json | 22 - packages/docs/public/hero.webp | Bin 242776 -> 0 bytes packages/docs/utils/Queue.md | 19 - packages/docs/utils/SmartQueue.md | 18 - packages/docs/utils/cache.md | 40 - .../utils/collision/boundingRectToCircle.md | 29 - .../utils/collision/collideCircleCircle.md | 33 - .../docs/utils/collision/collideCircleRect.md | 34 - .../utils/collision/collidePointCircle.md | 32 - .../docs/utils/collision/collidePointRect.md | 33 - .../docs/utils/collision/collideRectRect.md | 35 - packages/docs/utils/collision/index.md | 12 - packages/docs/utils/createElement.md | 31 - packages/docs/utils/css/addClass.md | 24 - packages/docs/utils/css/addStyle.md | 23 - packages/docs/utils/css/animate.md | 109 - packages/docs/utils/css/getOffsetSizes.md | 33 - packages/docs/utils/css/matrix.md | 26 - packages/docs/utils/css/removeClass.md | 24 - packages/docs/utils/css/removeStyle.md | 23 - packages/docs/utils/css/toggleClass.md | 31 - packages/docs/utils/css/transform.md | 55 - packages/docs/utils/css/transition.md | 72 - packages/docs/utils/debounce.md | 29 - packages/docs/utils/domScheduler.md | 24 - packages/docs/utils/history/historyPush.md | 65 - packages/docs/utils/history/historyReplace.md | 65 - packages/docs/utils/history/index.md | 7 - .../utils/history/objectToURLSearchParams.md | 36 - packages/docs/utils/index.md | 38 - packages/docs/utils/is/index.md | 12 - packages/docs/utils/is/isArray.md | 21 - packages/docs/utils/is/isBoolean.md | 21 - packages/docs/utils/is/isDefined.md | 23 - packages/docs/utils/is/isDev.md | 14 - packages/docs/utils/is/isEmpty.md | 32 - packages/docs/utils/is/isEmptyString.md | 23 - packages/docs/utils/is/isFunction.md | 21 - packages/docs/utils/is/isNull.md | 22 - packages/docs/utils/is/isNumber.md | 21 - packages/docs/utils/is/isObject.md | 21 - packages/docs/utils/is/isString.md | 21 - packages/docs/utils/keyCodes.md | 16 - packages/docs/utils/loadElement.md | 73 - packages/docs/utils/loadIframe.md | 72 - packages/docs/utils/loadImage.md | 72 - packages/docs/utils/loadLink.md | 72 - packages/docs/utils/loadScript.md | 72 - packages/docs/utils/math/clamp.md | 24 - packages/docs/utils/math/clamp01.md | 21 - packages/docs/utils/math/createEaseInOut.md | 20 - packages/docs/utils/math/createEaseOut.md | 20 - packages/docs/utils/math/createRange.md | 22 - packages/docs/utils/math/damp.md | 34 - packages/docs/utils/math/ease.md | 121 - packages/docs/utils/math/fold.md | 73 - packages/docs/utils/math/inertiaFinalValue.md | 23 - packages/docs/utils/math/lerp.md | 22 - packages/docs/utils/math/map.md | 24 - packages/docs/utils/math/mean.md | 22 - packages/docs/utils/math/round.md | 22 - packages/docs/utils/math/smoothTo.md | 168 - packages/docs/utils/math/spring.md | 94 - packages/docs/utils/math/wrap.md | 72 - packages/docs/utils/memo.md | 28 - packages/docs/utils/memoize.md | 27 - packages/docs/utils/nextFrame.md | 29 - packages/docs/utils/nextMicrotask.md | 27 - packages/docs/utils/nextTick.md | 27 - packages/docs/utils/random.md | 23 - packages/docs/utils/randomInt.md | 22 - packages/docs/utils/randomItem.md | 24 - packages/docs/utils/scrollTo.md | 77 - .../docs/utils/storage/createLocalStorage.md | 31 - .../utils/storage/createSessionStorage.md | 27 - packages/docs/utils/storage/createStorage.md | 82 - .../createUrlSearchParamsInHashStorage.md | 45 - .../storage/createUrlSearchParamsStorage.md | 55 - packages/docs/utils/storage/index.md | 10 - packages/docs/utils/storage/providers.md | 108 - packages/docs/utils/string/camelCase.md | 20 - packages/docs/utils/string/dashCase.md | 20 - packages/docs/utils/string/endsWith.md | 22 - packages/docs/utils/string/index.md | 16 - packages/docs/utils/string/lowerCase.md | 20 - packages/docs/utils/string/pascalCase.md | 20 - packages/docs/utils/string/snakeCase.md | 20 - packages/docs/utils/string/startsWith.md | 22 - packages/docs/utils/string/upperCase.md | 20 - .../utils/string/withLeadingCharacters.md | 20 - .../docs/utils/string/withLeadingSlash.md | 19 - .../utils/string/withTrailingCharacters.md | 20 - .../docs/utils/string/withTrailingSlash.md | 19 - .../utils/string/withoutLeadingCharacters.md | 20 - .../withoutLeadingCharactersRecursive.md | 21 - .../docs/utils/string/withoutLeadingSlash.md | 19 - .../utils/string/withoutTrailingCharacters.md | 20 - .../withoutTrailingCharactersRecursive.md | 21 - .../docs/utils/string/withoutTrailingSlash.md | 19 - packages/docs/utils/throttle.md | 25 - packages/docs/utils/trapFocus.md | 37 - packages/docs/utils/tween.md | 168 - packages/docs/utils/useScheduler.md | 36 - packages/docs/vite.config.ts | 20 - packages/eslint-plugin/src/utils/ast.spec.ts | 2 +- packages/{v4 => js-toolkit}/DESIGN.md | 12 +- packages/{v4 => js-toolkit}/RATIONALE.md | 2 +- packages/js-toolkit/README.md | 127 +- .../demo/components/Accordion.ts | 0 .../demo/components/Reveal.ts | 0 .../demo/components/Slider.ts | 0 .../demo/components/TodoList.ts | 0 packages/{v4 => js-toolkit}/demo/index.html | 0 packages/{v4 => js-toolkit}/demo/main.ts | 0 packages/{v4 => js-toolkit}/demo/style.css | 0 .../{v4 => js-toolkit}/demo/vite.config.js | 0 .../docs/.vitepress/config.ts | 6 +- .../.vitepress/theme/components/Loader.vue | 0 .../theme/components/PreviewIframe.vue | 0 .../theme/composables/useAllLinks.ts | 0 .../theme/composables/useObserver.ts | 0 .../docs/.vitepress/theme/index.ts | 0 .../docs/.vitepress/theme/styles.css | 0 packages/js-toolkit/docs/api/configuration.md | 176 + .../docs/api/context/createContext.md | 4 +- .../docs/api/context/createGroup.md | 4 +- .../docs/api/context/index.md | 4 +- .../docs/api/context/injectContext.md | 8 +- .../docs/api/context/injectContextSync.md | 8 +- .../docs/api/context/provideContext.md | 8 +- .../docs/api/context/provideRootContext.md | 4 +- .../docs/api/context/signal.md | 8 +- .../docs/api/context/subscribeContext.md | 4 +- .../docs/api/decorators/children.md | 12 +- .../docs/api/decorators/component.md | 16 +- .../docs/api/decorators/index.md | 4 +- .../docs/api/decorators/inject.md | 12 +- .../docs/api/decorators/on.md | 16 +- .../docs/api/decorators/provide.md | 12 +- .../docs/api/decorators/read-write.md | 12 +- .../docs/api/diagnostics/DIAGNOSTICS.md | 12 +- .../docs/api/diagnostics/EVENTS.md | 8 +- .../docs/api/diagnostics/index.md | 4 +- .../docs/api/diagnostics/reportDiagnostic.md | 4 +- .../docs/api/diagnostics/warn.md | 4 +- .../docs/api/dom/breakpoints.md | 8 +- .../docs/api/dom/domUpdate.md | 0 .../docs/api/dom/emitExtendable.md | 0 .../{v4 => js-toolkit}/docs/api/dom/index.md | 0 .../{v4 => js-toolkit}/docs/api/dom/swap.md | 12 +- .../docs/api/dom/watchAttributeNamespace.md | 0 .../docs/api/dom/watchAttributes.md | 4 +- .../docs/api/dom/whenDOMSettled.md | 4 +- .../docs/api/html/data-component.md | 4 +- .../docs/api/html/data-mount.md | 0 .../docs/api/html/data-option.md | 0 .../docs/api/html/data-ref.md | 0 .../{v4 => js-toolkit}/docs/api/html/index.md | 0 packages/{v4 => js-toolkit}/docs/api/index.md | 12 +- .../docs/api/instance-events.md | 4 +- .../docs/api/instance-methods.md | 20 +- .../docs/api/instance-properties.md | 0 .../docs/api/methods-hooks-events.md | 155 + .../docs/api/methods-hooks-lifecycle.md | 95 + .../docs/api/methods-hooks-options.md | 100 + .../docs/api/methods-hooks-services.md | 16 +- .../docs/api/registry/defineManifest.md | 0 .../docs/api/registry/fromMetaGlob.md | 0 .../docs/api/registry/fromWebpackContext.md | 0 .../docs/api/registry/getInstance.md | 4 +- .../docs/api/registry/getInstances.md | 8 +- .../docs/api/registry/getMountedInstances.md | 4 +- .../api/registry/getUnmountedInstances.md | 4 +- .../docs/api/registry/index.md | 0 .../docs/api/registry/registerComponent.md | 12 +- .../docs/api/registry/registerComponents.md | 38 + .../docs/api/registry/registerManifest.md | 0 .../docs/api/scheduler/defaultScheduler.md | 8 +- .../docs/api/scheduler/index.md | 0 .../docs/api/scheduler/nextFrame.md | 32 + .../docs/api/scheduler/viewTransition.md | 4 +- .../docs/api/services/createService.md | 8 +- .../docs/api/services/createServiceMixin.md | 4 +- .../docs/api/services/index.md | 0 .../docs/api/services/mixins.md | 16 +- .../js-toolkit/docs/api/services/perTarget.md | 66 + .../js-toolkit/docs/api/services/toggle.md | 82 + .../docs/api/services/until.md | 4 +- .../docs/api/services/useBreakpoint.md | 4 +- .../js-toolkit/docs/api/services/useDrag.md | 121 + .../js-toolkit/docs/api/services/useInView.md | 65 + .../js-toolkit/docs/api/services/useKey.md | 107 + .../docs/api/services/useMediaQuery.md | 46 + .../docs/api/services/useMutation.md | 70 + .../docs/api/services/usePointer.md | 93 + .../api/services/usePrefersReducedMotion.md | 43 + .../js-toolkit/docs/api/services/useRaf.md | 94 + .../js-toolkit/docs/api/services/useResize.md | 61 + .../js-toolkit/docs/api/services/useScroll.md | 90 + .../docs/api/services/useScrollProgress.md | 4 +- .../docs/api/services/useWindowScroll.md | 26 + .../docs/api/services/useWindowSize.md | 26 + .../docs/api/storage/createStorage.md | 8 +- .../docs/api/storage/index.md | 0 .../docs/api/storage/presets.md | 4 +- .../docs/api/storage/providers.md | 8 +- .../{v4 => js-toolkit}/docs/api/test/index.md | 0 .../docs/guide/concepts/attribute-grammar.md | 0 .../docs/guide/concepts/mutation-engine.md | 0 .../docs/guide/concepts/philosophy.md | 2 +- .../docs/guide/concepts/the-registry.md | 6 +- .../docs/guide/going-further/autoloading.md | 0 .../going-further/handling-diagnostics.md | 12 +- .../guide/going-further/mount-strategies.md | 4 +- .../guide/going-further/scheduling-work.md | 20 +- .../docs/guide/going-further/sharing-state.md | 32 +- .../guide/going-further/swapping-content.md | 8 +- .../guide/going-further/testing-components.md | 0 .../guide/going-further/typing-components.md | 25 +- .../guide/going-further/using-decorators.md | 16 +- .../docs/guide/going-further/using-storage.md | 12 +- packages/js-toolkit/docs/guide/index.md | 168 + .../docs/guide/introduction/installation.md | 30 +- .../guide/introduction/lifecycle-hooks.md | 183 + .../guide/introduction/managing-components.md | 237 + .../guide/introduction/managing-options.md | 242 + .../docs/guide/introduction/managing-refs.md | 181 + .../docs/guide/introduction/using-services.md | 227 + .../guide/introduction/working-with-events.md | 260 + .../docs/guide/migration/v3-to-v4.md | 0 packages/{v4 => js-toolkit}/docs/index.md | 0 .../{ => js-toolkit}/docs/public/logo.png | Bin packages/{v4 => js-toolkit}/docs/utils/css.md | 20 +- packages/{v4 => js-toolkit}/docs/utils/dom.md | 12 +- .../{v4 => js-toolkit}/docs/utils/easings.md | 16 +- .../{v4 => js-toolkit}/docs/utils/focus.md | 10 +- packages/js-toolkit/docs/utils/history.md | 74 + .../{v4 => js-toolkit}/docs/utils/index.md | 8 +- packages/{v4 => js-toolkit}/docs/utils/is.md | 8 +- .../{v4 => js-toolkit}/docs/utils/load.md | 8 +- .../{v4 => js-toolkit}/docs/utils/math.md | 24 +- .../{v4 => js-toolkit}/docs/utils/motion.md | 24 +- .../{v4 => js-toolkit}/docs/utils/objects.md | 12 +- .../{v4 => js-toolkit}/docs/utils/scroll.md | 12 +- .../{v4 => js-toolkit}/docs/utils/strings.md | 16 +- .../{v4 => js-toolkit}/docs/utils/timing.md | 20 +- .../docs/utils/transitions.md | 8 +- .../{v4 => js-toolkit}/docs/vite.config.ts | 0 .../migration/Accordion/Accordion.spec.ts | 0 .../migration/Accordion/Accordion.ts | 0 .../migration/Accordion/AccordionCore.ts | 0 .../migration/Accordion/AccordionItem.ts | 0 .../migration/Accordion/index.ts | 0 .../migration/Action/Action.spec.ts | 0 .../migration/Action/Action.ts | 0 .../migration/Action/ActionEvent.ts | 0 .../migration/Action/Target.ts | 0 .../migration/Action/expression.ts | 0 .../migration/Action/index.ts | 0 .../migration/AnchorNav/AnchorNav.spec.ts | 0 .../migration/AnchorNav/AnchorNav.ts | 0 .../migration/AnchorNav/AnchorNavLink.spec.ts | 0 .../migration/AnchorNav/AnchorNavLink.ts | 0 .../AnchorNav/AnchorNavTarget.spec.ts | 0 .../migration/AnchorNav/AnchorNavTarget.ts | 0 .../migration/AnchorNav/index.ts | 0 .../Carousel/AbstractCarouselChild.ts | 0 .../Carousel/AbstractCarouselComponent.ts | 0 .../migration/Carousel/Carousel.spec.ts | 0 .../migration/Carousel/Carousel.ts | 0 .../migration/Carousel/CarouselBtn.ts | 0 .../migration/Carousel/CarouselDrag.ts | 0 .../migration/Carousel/CarouselItem.ts | 0 .../migration/Carousel/CarouselWrapper.ts | 0 .../migration/Carousel/Indexable.ts | 0 .../migration/Carousel/context.ts | 0 .../migration/Carousel/index.ts | 0 .../migration/Carousel/utils.ts | 0 .../ClickOutside/ClickOutside.spec.ts | 0 .../migration/ClickOutside/ClickOutside.ts | 0 .../migration/ClickOutside/index.ts | 0 .../migration/Cursor/Cursor.spec.ts | 0 .../migration/Cursor/Cursor.ts | 0 .../migration/Cursor/index.ts | 0 .../migration/Data/DataBind.spec.ts | 0 .../migration/Data/DataBind.ts | 0 .../migration/Data/DataComputed.ts | 0 .../migration/Data/DataDerived.spec.ts | 0 .../migration/Data/DataEffect.ts | 0 .../migration/Data/DataModel.ts | 0 .../migration/Data/DataScope.spec.ts | 0 .../migration/Data/DataScope.ts | 0 .../migration/Data/expression.ts | 0 .../migration/Data/formControl.ts | 0 .../migration/Data/index.ts | 0 .../migration/Data/registry.ts | 0 .../migration/Dialog/Dialog.spec.ts | 0 .../migration/Dialog/Dialog.ts | 0 .../migration/Dialog/index.ts | 0 .../migration/Draggable/Draggable.spec.ts | 0 .../migration/Draggable/Draggable.ts | 0 .../migration/Draggable/index.ts | 0 .../migration/Fetch/Fetch.spec.ts | 0 .../migration/Fetch/Fetch.ts | 0 .../Fetch/FetchShopifyPartial.spec.ts | 0 .../migration/Fetch/FetchShopifyPartial.ts | 0 .../migration/Fetch/FetchShopifySection.ts | 0 .../migration/Fetch/index.ts | 0 .../migration/Figure/AbstractFigure.spec.ts | 0 .../migration/Figure/AbstractFigure.ts | 0 .../migration/Figure/AbstractFigureDynamic.ts | 0 .../migration/Figure/Figure.ts | 0 .../migration/Figure/FigureShopify.spec.ts | 0 .../migration/Figure/FigureShopify.ts | 0 .../migration/Figure/FigureTwicpics.spec.ts | 0 .../migration/Figure/FigureTwicpics.ts | 0 .../migration/Figure/index.ts | 0 .../migration/Figure/utils.ts | 0 .../migration/FigureVideo/FigureVideo.spec.ts | 0 .../migration/FigureVideo/FigureVideo.ts | 0 .../FigureVideo/FigureVideoTwicpics.spec.ts | 0 .../FigureVideo/FigureVideoTwicpics.ts | 0 .../migration/FigureVideo/index.ts | 0 .../migration/Hoverable/Hoverable.spec.ts | 0 .../migration/Hoverable/Hoverable.ts | 0 .../migration/Hoverable/index.ts | 0 .../migration/InView/InView.spec.ts | 0 .../migration/InView/InView.ts | 0 .../migration/InView/InViewOnce.ts | 0 .../migration/InView/index.ts | 0 .../migration/LazyInclude/LazyInclude.spec.ts | 0 .../migration/LazyInclude/LazyInclude.ts | 0 .../migration/LazyInclude/index.ts | 0 .../migration/Menu/Menu.spec.ts | 0 .../{v4 => js-toolkit}/migration/Menu/Menu.ts | 0 .../migration/Menu/MenuBtn.spec.ts | 0 .../migration/Menu/MenuBtn.ts | 0 .../migration/Menu/MenuList.spec.ts | 0 .../migration/Menu/MenuList.ts | 0 .../migration/Menu/index.ts | 0 .../migration/Prefetch/AbstractPrefetch.ts | 0 .../migration/Prefetch/Prefetch.spec.ts | 0 .../Prefetch/PrefetchOnInteraction.ts | 0 .../migration/Prefetch/PrefetchWhenVisible.ts | 0 .../migration/Prefetch/index.ts | 0 .../{v4 => js-toolkit}/migration/REPORT.md | 8 +- .../AbstractScrollAnimation.ts | 0 .../ScrollAnimation/ScrollAnimation.spec.ts | 0 .../ScrollAnimation/ScrollAnimationTarget.ts | 0 .../ScrollAnimationTimeline.ts | 0 .../migration/ScrollAnimation/bezier.ts | 0 .../migration/ScrollAnimation/index.ts | 0 .../ScrollAnimation/keyframes.spec.ts | 0 .../migration/ScrollAnimation/keyframes.ts | 0 .../ScrollAnimation/withScrolledInView.ts | 0 .../migration/ScrollTo/ScrollTo.spec.ts | 0 .../migration/ScrollTo/ScrollTo.ts | 0 .../migration/ScrollTo/index.ts | 0 .../migration/Sentinel/Sentinel.spec.ts | 0 .../migration/Sentinel/Sentinel.ts | 0 .../migration/Sentinel/index.ts | 0 .../migration/Slider/Slider.spec.ts | 0 .../migration/Slider/Slider.ts | 0 .../migration/Slider/SliderBtn.ts | 0 .../migration/Slider/SliderCount.ts | 0 .../migration/Slider/SliderDots.spec.ts | 0 .../migration/Slider/SliderDots.ts | 0 .../migration/Slider/SliderDrag.spec.ts | 0 .../migration/Slider/SliderDrag.ts | 0 .../migration/Slider/SliderItem.ts | 0 .../migration/Slider/SliderProgress.spec.ts | 0 .../migration/Slider/SliderProgress.ts | 0 .../migration/Slider/index.ts | 0 .../migration/Sticky/Sticky.spec.ts | 0 .../migration/Sticky/Sticky.ts | 0 .../migration/Sticky/index.ts | 0 .../migration/Timer/Timer.spec.ts | 0 .../migration/Timer/Timer.ts | 0 .../migration/Timer/TimerProgress.spec.ts | 0 .../migration/Timer/TimerProgress.ts | 0 .../migration/Timer/index.ts | 0 .../migration/Toaster/Toast.spec.ts | 0 .../migration/Toaster/Toast.ts | 0 .../migration/Toaster/Toaster.spec.ts | 0 .../migration/Toaster/Toaster.ts | 0 .../migration/Toaster/index.ts | 0 .../migration/Track/AbstractTrack.ts | 0 .../migration/Track/Track.spec.ts | 0 .../migration/Track/Track.ts | 0 .../migration/Track/TrackContext.ts | 0 .../migration/Track/TrackEvent.spec.ts | 0 .../migration/Track/TrackEvent.ts | 0 .../migration/Track/TrackShopify.ts | 0 .../migration/Track/index.ts | 0 .../migration/Transition/Transition.ts | 0 .../migration/Transition/ViewTransition.ts | 0 .../migration/Transition/index.ts | 0 .../Transition/withTransition.spec.ts | 0 .../migration/Transition/withTransition.ts | 0 .../migration/event-modifiers.ts | 0 .../migration/expression.spec.ts | 0 .../migration/expression.ts | 0 .../{v4 => js-toolkit}/migration/index.ts | 0 packages/js-toolkit/package.json | 1283 +- .../scripts/build-runtime-fixtures.js | 0 packages/js-toolkit/scripts/build.js | 101 +- .../scripts/check-constant-subpaths.js | 2 +- .../scripts/check-diagnostics.js | 0 .../scripts/check-doc-links.js | 0 .../scripts/check-package.js | 14 +- packages/js-toolkit/scripts/measure-graph.js | 276 - .../js-toolkit/scripts/utils/set-version.js | 26 - packages/{v4 => js-toolkit}/src/Base.spec.ts | 0 packages/{v4 => js-toolkit}/src/Base.ts | 0 packages/js-toolkit/src/Base/Base.spec.ts | 739 - packages/js-toolkit/src/Base/Base.ts | 708 - .../src/Base/__snapshots__/Base.spec.ts.snap | 44 - packages/js-toolkit/src/Base/features.spec.ts | 64 - packages/js-toolkit/src/Base/features.ts | 41 - packages/js-toolkit/src/Base/index.spec.ts | 13 - packages/js-toolkit/src/Base/index.ts | 14 - .../src/Base/managers/AbstractManager.ts | 45 - .../src/Base/managers/ChildrenManager.spec.ts | 75 - .../src/Base/managers/ChildrenManager.ts | 218 - .../src/Base/managers/EventsManager.spec.ts | 415 - .../src/Base/managers/EventsManager.ts | 381 - .../src/Base/managers/OptionsManager.spec.ts | 205 - .../src/Base/managers/OptionsManager.ts | 256 - .../src/Base/managers/RefsManager.spec.ts | 22 - .../src/Base/managers/RefsManager.ts | 129 - .../managers/ResponsiveOptionsManager.spec.ts | 74 - .../Base/managers/ResponsiveOptionsManager.ts | 77 - .../src/Base/managers/ServicesManager.spec.ts | 117 - .../src/Base/managers/ServicesManager.ts | 178 - .../js-toolkit/src/Base/managers/index.ts | 7 - .../Base/parent-resolution-residual.spec.ts | 563 - .../js-toolkit/src/Base/query-closest.spec.ts | 59 - packages/js-toolkit/src/Base/types.ts | 2032 -- packages/js-toolkit/src/Base/utils.spec.ts | 276 - packages/js-toolkit/src/Base/utils.ts | 260 - .../src/__benchmarks__/animate.bench.ts | 174 - .../src/__benchmarks__/base.bench.ts | 144 - .../__benchmarks__/mount-at-scale.bench.ts | 204 - .../__benchmarks__/mount-at-scale.fixtures.ts | 478 - .../__benchmarks__/mount-at-scale.profile.ts | 221 - .../__benchmarks__/parent-resolution.bench.ts | 130 - .../__benchmarks__/query-resolution.bench.ts | 140 - .../src/__benchmarks__/scheduler.bench.ts | 98 - .../src/__benchmarks__/services.bench.ts | 116 - .../src/__benchmarks__/transform.bench.ts | 90 - .../src/__benchmarks__/tween.bench.ts | 98 - .../src/__benchmarks__/v3-vs-v4.bench.ts | 227 - .../withScrolledInView.bench.ts | 153 - packages/js-toolkit/src/__utils__/event.ts | 130 - .../js-toolkit/src/__utils__/faketimers.ts | 29 - packages/js-toolkit/src/__utils__/h.ts | 13 - packages/js-toolkit/src/__utils__/happydom.ts | 51 - packages/js-toolkit/src/__utils__/index.ts | 11 - .../js-toolkit/src/__utils__/lifecycle.ts | 9 - .../js-toolkit/src/__utils__/matchMedia.ts | 127 - .../js-toolkit/src/__utils__/mockFeatures.ts | 46 - .../src/__utils__/mockIntersectionObserver.ts | 123 - packages/js-toolkit/src/__utils__/mockLoad.ts | 17 - .../src/__utils__/mockRequestIdleCallback.ts | 9 - .../js-toolkit/src/__utils__/resizeWindow.ts | 23 - packages/js-toolkit/src/__utils__/scroll.ts | 88 - .../src/attribute-namespaces.spec.ts | 0 .../src/attribute-namespaces.ts | 0 .../{v4 => js-toolkit}/src/attributes.spec.ts | 0 packages/{v4 => js-toolkit}/src/attributes.ts | 0 .../{v4 => js-toolkit}/src/autoload.spec.ts | 0 .../js-toolkit/src/autoload/autoload.spec.ts | 233 - packages/js-toolkit/src/autoload/autoload.ts | 62 - .../src/autoload/define-manifest.spec.ts | 152 - .../src/autoload/define-manifest.ts | 123 - packages/js-toolkit/src/autoload/index.ts | 30 - .../js-toolkit/src/autoload/loader.spec.ts | 613 - packages/js-toolkit/src/autoload/loader.ts | 501 - packages/js-toolkit/src/autoload/modules.ts | 50 - .../js-toolkit/src/autoload/runtime.spec.ts | 317 - packages/js-toolkit/src/autoload/runtime.ts | 215 - .../src/autoload/subpath-exports.spec.ts | 135 - packages/js-toolkit/src/autoload/types.ts | 52 - .../src/children-watchers.ts | 0 .../src/component-brand.spec.ts | 0 .../{v4 => js-toolkit}/src/component-brand.ts | 2 +- .../src/component-declarations.ts | 0 .../src/config-extension.spec.ts | 0 .../src/context-subscription.spec.ts | 0 .../src/context-subscription.ts | 0 .../{v4 => js-toolkit}/src/context.spec.ts | 0 packages/{v4 => js-toolkit}/src/context.ts | 0 .../{v4 => js-toolkit}/src/decorators.spec.ts | 0 packages/{v4 => js-toolkit}/src/decorators.ts | 0 .../js-toolkit/src/decorators/index.spec.ts | 25 - packages/js-toolkit/src/decorators/index.ts | 53 - .../decorators/withBreakpointManager.spec.ts | 95 - .../src/decorators/withBreakpointManager.ts | 128 - .../decorators/withBreakpointObserver.spec.ts | 230 - .../src/decorators/withBreakpointObserver.ts | 202 - .../src/decorators/withDrag.spec.ts | 25 - .../js-toolkit/src/decorators/withDrag.ts | 60 - .../src/decorators/withExtraConfig.spec.ts | 33 - .../src/decorators/withExtraConfig.ts | 33 - .../src/decorators/withFreezedOptions.spec.ts | 58 - .../src/decorators/withFreezedOptions.ts | 44 - .../src/decorators/withGroup.spec.ts | 306 - .../js-toolkit/src/decorators/withGroup.ts | 153 - .../withIntersectionObserver.spec.ts | 71 - .../decorators/withIntersectionObserver.ts | 76 - .../decorators/withMountOnMediaQuery.spec.ts | 57 - .../src/decorators/withMountOnMediaQuery.ts | 101 - .../decorators/withMountWhenInView.spec.ts | 66 - .../src/decorators/withMountWhenInView.ts | 109 - .../withMountWhenPrefersMotion.spec.ts | 34 - .../decorators/withMountWhenPrefersMotion.ts | 12 - .../src/decorators/withMutation.spec.ts | 34 - .../js-toolkit/src/decorators/withMutation.ts | 59 - .../js-toolkit/src/decorators/withName.ts | 18 - .../decorators/withRelativePointer.spec.ts | 36 - .../src/decorators/withRelativePointer.ts | 56 - .../decorators/withResponsiveOptions.spec.ts | 41 - .../src/decorators/withResponsiveOptions.ts | 57 - .../decorators/withScrolledInView/index.ts | 8 - .../decorators/withScrolledInView/types.ts | 3 - .../withScrolledInView/utils.spec.ts | 140 - .../decorators/withScrolledInView/utils.ts | 123 - .../withScrolledInView.spec.ts | 178 - .../withScrolledInView/withScrolledInView.ts | 286 - .../src/diagnostic-contract.ts | 0 .../src/diagnostics.spec.ts | 0 .../{v4 => js-toolkit}/src/diagnostics.ts | 0 .../{v4 => js-toolkit}/src/document-order.ts | 0 .../src/dom-mutations.spec.ts | 0 .../{v4 => js-toolkit}/src/dom-mutations.ts | 0 .../src/duplicate-runtime.spec.ts | 0 .../{v4 => js-toolkit}/src/events.spec.ts | 0 packages/{v4 => js-toolkit}/src/events.ts | 0 .../{v4 => js-toolkit}/src/exports.spec.ts | 66 +- packages/js-toolkit/src/global.d.ts | 24 - packages/{v4 => js-toolkit}/src/group.spec.ts | 0 packages/{v4 => js-toolkit}/src/group.ts | 0 .../js-toolkit/src/helpers/createApp.spec.ts | 211 - packages/js-toolkit/src/helpers/createApp.ts | 54 - .../src/helpers/defineFeatures.spec.ts | 45 - .../js-toolkit/src/helpers/defineFeatures.ts | 27 - .../src/helpers/getClosestParent.spec.ts | 81 - .../src/helpers/getClosestParent.ts | 19 - .../src/helpers/getDirectChildren.spec.ts | 83 - .../src/helpers/getDirectChildren.ts | 60 - .../helpers/getInstanceFromElement.spec.ts | 26 - .../src/helpers/getInstanceFromElement.ts | 16 - .../src/helpers/importOnInteraction.spec.ts | 108 - .../src/helpers/importOnInteraction.ts | 48 - .../src/helpers/importOnMediaQuery.spec.ts | 96 - .../src/helpers/importOnMediaQuery.ts | 40 - .../src/helpers/importWhenIdle.spec.ts | 77 - .../js-toolkit/src/helpers/importWhenIdle.ts | 41 - .../helpers/importWhenPrefersMotion.spec.ts | 65 - .../src/helpers/importWhenPrefersMotion.ts | 16 - .../src/helpers/importWhenVisible.spec.ts | 94 - .../src/helpers/importWhenVisible.ts | 41 - packages/js-toolkit/src/helpers/index.spec.ts | 26 - packages/js-toolkit/src/helpers/index.ts | 19 - .../js-toolkit/src/helpers/logTree.spec.ts | 227 - packages/js-toolkit/src/helpers/logTree.ts | 101 - .../src/helpers/queryComponent.spec.ts | 241 - .../js-toolkit/src/helpers/queryComponent.ts | 186 - .../src/helpers/registerComponent.spec.ts | 162 - .../src/helpers/registerComponent.ts | 60 - .../src/helpers/registerComponents.spec.ts | 111 - .../src/helpers/registerComponents.ts | 40 - packages/js-toolkit/src/helpers/utils.ts | 27 - packages/js-toolkit/src/index.spec.ts | 76 - packages/js-toolkit/src/index.ts | 356 +- .../{v4 => js-toolkit}/src/instances.spec.ts | 0 packages/{v4 => js-toolkit}/src/instances.ts | 0 .../{v4 => js-toolkit}/src/manifest.spec.ts | 0 packages/{v4 => js-toolkit}/src/manifest.ts | 0 .../src/mount-at-scale.bench.ts | 2 +- .../src/mount-at-scale.fixtures.ts | 0 .../src/mount-at-scale.spec.ts | 0 .../src/mount-strategies.spec.ts | 0 .../src/mount-strategies.ts | 0 .../src/mount-strategies.unit.spec.ts | 0 .../{v4 => js-toolkit}/src/mount.bench.ts | 0 .../src/negotiated-events.spec.ts | 0 .../src/negotiated-events.ts | 0 packages/{v4 => js-toolkit}/src/props.spec.ts | 0 .../src/protocol-symbols.spec.ts | 2 +- .../src/protocol-symbols.ts | 6 +- .../{v4 => js-toolkit}/src/registry.spec.ts | 0 packages/{v4 => js-toolkit}/src/registry.ts | 2 +- .../src/responsive-components.spec.ts | 0 .../src/responsive-options.bench.ts | 0 .../src/responsive-options.spec.ts | 0 .../src/responsive-options.ts | 0 .../{v4 => js-toolkit}/src/scheduler.bench.ts | 0 .../{v4 => js-toolkit}/src/scheduler.spec.ts | 0 packages/{v4 => js-toolkit}/src/scheduler.ts | 0 .../src/services/AbstractService.spec.ts | 82 - .../src/services/AbstractService.ts | 168 - .../src/services/DragService.spec.ts | 173 - .../js-toolkit/src/services/DragService.ts | 338 - .../src/services/KeyService.spec.ts | 52 - .../js-toolkit/src/services/KeyService.ts | 83 - .../src/services/LoadService.spec.ts | 17 - .../js-toolkit/src/services/LoadService.ts | 29 - .../src/services/MutationService.spec.ts | 54 - .../src/services/MutationService.ts | 53 - .../src/services/PointerService.spec.ts | 170 - .../js-toolkit/src/services/PointerService.ts | 175 - .../src/services/RafService.spec.ts | 104 - .../js-toolkit/src/services/RafService.ts | 79 - .../src/services/ResizeService.spec.ts | 73 - .../js-toolkit/src/services/ResizeService.ts | 105 - .../src/services/ScrollService.spec.ts | 239 - .../js-toolkit/src/services/ScrollService.ts | 195 - .../src/services/breakpoint.spec.ts | 0 .../src/services/breakpoint.ts | 0 .../src/services/drag.spec.ts | 0 .../{v4 => js-toolkit}/src/services/drag.ts | 0 .../src/services/in-view.spec.ts | 0 .../src/services/in-view.ts | 0 .../js-toolkit/src/services/index.spec.ts | 26 - packages/js-toolkit/src/services/index.ts | 51 - .../src/services/key.spec.ts | 0 .../{v4 => js-toolkit}/src/services/key.ts | 0 .../src/services/media.spec.ts | 0 .../{v4 => js-toolkit}/src/services/media.ts | 0 .../src/services/mixin.spec.ts | 0 .../{v4 => js-toolkit}/src/services/mixin.ts | 0 .../src/services/mutation.spec.ts | 0 .../src/services/mutation.ts | 0 .../src/services/pointer.spec.ts | 0 .../src/services/pointer.ts | 0 .../src/services/raf.spec.ts | 0 .../{v4 => js-toolkit}/src/services/raf.ts | 0 .../src/services/resize.spec.ts | 0 .../{v4 => js-toolkit}/src/services/resize.ts | 0 .../services/scroll-progress-offset.spec.ts | 0 .../src/services/scroll-progress-offset.ts | 0 .../src/services/scroll-progress.spec.ts | 0 .../src/services/scroll-progress.ts | 0 .../src/services/scroll.spec.ts | 0 .../{v4 => js-toolkit}/src/services/scroll.ts | 0 .../src/services/service.bench.ts | 2 +- .../src/services/service.spec.ts | 0 .../src/services/service.ts | 0 .../src/services/shape.bench.ts | 0 .../src/services/toggle.spec.ts | 0 .../{v4 => js-toolkit}/src/services/toggle.ts | 0 .../src/services/until.spec.ts | 0 .../{v4 => js-toolkit}/src/services/until.ts | 0 packages/js-toolkit/src/services/utils.ts | 4 - .../src/shared-runtime.spec.ts | 2 +- .../{v4 => js-toolkit}/src/shared-runtime.ts | 6 +- .../src/storage/createStorage.spec.ts | 0 .../src/storage/createStorage.ts | 0 .../{v4 => js-toolkit}/src/storage/index.ts | 0 .../src/storage/providers.spec.ts | 0 .../src/storage/providers.ts | 0 .../src/storage/serializers.ts | 0 .../{v4 => js-toolkit}/src/storage/sync.ts | 0 .../{v4 => js-toolkit}/src/storage/types.ts | 0 .../src/subpaths/AbstractService.ts | 1 - .../src/subpaths/BREAKPOINTS.ts | 0 packages/js-toolkit/src/subpaths/Base.ts | 2 +- .../src/subpaths/ComponentLoader.ts | 1 - .../src/subpaths/DEFAULT_DIAGNOSTIC_PREFIX.ts | 1 - .../src/subpaths/DIAGNOSTICS.ts | 0 .../src/subpaths/DRAG_MODES.ts | 0 .../js-toolkit/src/subpaths/DragService.ts | 1 - .../{v4 => js-toolkit}/src/subpaths/EVENTS.ts | 0 .../js-toolkit/src/subpaths/IDLE_TIMEOUT.ts | 1 - .../js-toolkit/src/subpaths/KeyService.ts | 1 - .../js-toolkit/src/subpaths/LoadService.ts | 1 - .../src/subpaths/MOUNT_ATTRIBUTE.ts | 0 .../src/subpaths/MutationService.ts | 1 - .../js-toolkit/src/subpaths/PointerService.ts | 1 - .../js-toolkit/src/subpaths/RafService.ts | 1 - .../js-toolkit/src/subpaths/ResizeService.ts | 1 - .../src/subpaths/SWAP_MODES.ts | 0 .../js-toolkit/src/subpaths/ScrollService.ts | 1 - .../src/subpaths/VISIBLE_ROOT_MARGIN.ts | 1 - packages/js-toolkit/src/subpaths/autoload.ts | 1 - .../src/subpaths/children.ts | 0 .../src/subpaths/closestComponent.ts | 1 - .../src/subpaths/component.ts | 0 .../src/subpaths/composeManifests.ts | 1 - packages/js-toolkit/src/subpaths/createApp.ts | 1 - .../src/subpaths/createContext.ts | 0 .../src/subpaths/createFallbackProvider.ts | 0 .../src/subpaths/createGroup.ts | 0 .../src/subpaths/createLocalStorage.ts | 0 .../subpaths/createMemoryStorageProvider.ts | 0 .../src/subpaths/createService.ts | 0 .../src/subpaths/createServiceMixin.ts | 0 .../src/subpaths/createSessionStorage.ts | 0 .../src/subpaths/createStorage.ts | 0 .../createUrlSearchParamsInHashProvider.ts | 0 .../createUrlSearchParamsInHashStorage.ts | 0 .../subpaths/createUrlSearchParamsProvider.ts | 0 .../subpaths/createUrlSearchParamsStorage.ts | 0 .../src/subpaths/defaultScheduler.ts | 0 .../js-toolkit/src/subpaths/defineFeatures.ts | 1 - .../js-toolkit/src/subpaths/defineManifest.ts | 2 +- .../src/subpaths/domUpdate.ts | 0 .../src/subpaths/emitExtendable.ts | 0 .../js-toolkit/src/subpaths/fromMetaGlob.ts | 2 +- .../src/subpaths/fromWebpackContext.ts | 2 +- .../src/subpaths/getBreakpoints.ts | 0 .../src/subpaths/getClosestParent.ts | 1 - .../src/subpaths/getDirectChildren.ts | 1 - .../src/subpaths/getInstance.ts | 0 .../src/subpaths/getInstanceFromElement.ts | 1 - .../js-toolkit/src/subpaths/getInstances.ts | 2 +- .../src/subpaths/getMountedInstances.ts | 0 .../src/subpaths/getScopedGroups.ts | 1 - .../src/subpaths/getUnmountedInstances.ts | 0 .../src/subpaths/importOnInteraction.ts | 1 - .../src/subpaths/importOnMediaQuery.ts | 1 - .../js-toolkit/src/subpaths/importWhenIdle.ts | 1 - .../src/subpaths/importWhenPrefersMotion.ts | 1 - .../src/subpaths/importWhenVisible.ts | 1 - .../{v4 => js-toolkit}/src/subpaths/inject.ts | 0 .../src/subpaths/injectContext.ts | 0 .../src/subpaths/injectContextSync.ts | 0 .../js-toolkit/src/subpaths/isDirectChild.ts | 1 - .../src/subpaths/jsonSerializer.ts | 0 .../src/subpaths/localStorageProvider.ts | 0 packages/js-toolkit/src/subpaths/logTree.ts | 1 - .../src/subpaths/memoryStorageProvider.ts | 0 .../src/subpaths/namespaceQualifier.ts | 0 .../src/subpaths/nextFrame.ts | 0 .../{v4 => js-toolkit}/src/subpaths/on.ts | 0 .../src/subpaths/perTarget.ts | 0 .../src/subpaths/provide.ts | 0 .../src/subpaths/provideContext.ts | 0 .../src/subpaths/provideRootContext.ts | 0 .../js-toolkit/src/subpaths/queryComponent.ts | 1 - .../src/subpaths/queryComponentAll.ts | 1 - .../{v4 => js-toolkit}/src/subpaths/read.ts | 0 .../src/subpaths/readEagerTokens.ts | 1 - .../src/subpaths/registerComponent.ts | 2 +- .../src/subpaths/registerComponents.ts | 2 +- .../src/subpaths/registerManifest.ts | 2 +- .../src/subpaths/registerManifests.ts | 1 - .../src/subpaths/reportDiagnostic.ts | 0 .../src/subpaths/sessionStorageProvider.ts | 0 .../src/subpaths/setBreakpoints.ts | 0 .../{v4 => js-toolkit}/src/subpaths/signal.ts | 0 .../src/subpaths/subscribeContext.ts | 0 .../{v4 => js-toolkit}/src/subpaths/swap.ts | 0 .../{v4 => js-toolkit}/src/subpaths/toggle.ts | 0 .../{v4 => js-toolkit}/src/subpaths/until.ts | 0 .../subpaths/urlSearchParamsInHashProvider.ts | 0 .../src/subpaths/urlSearchParamsProvider.ts | 0 .../src/subpaths/useBreakpoint.ts | 0 packages/js-toolkit/src/subpaths/useDrag.ts | 2 +- .../src/subpaths/useInView.ts | 0 packages/js-toolkit/src/subpaths/useKey.ts | 2 +- packages/js-toolkit/src/subpaths/useLoad.ts | 1 - .../src/subpaths/useMediaQuery.ts | 0 .../js-toolkit/src/subpaths/useMutation.ts | 2 +- .../js-toolkit/src/subpaths/usePointer.ts | 2 +- .../src/subpaths/usePrefersReducedMotion.ts | 0 packages/js-toolkit/src/subpaths/useRaf.ts | 2 +- packages/js-toolkit/src/subpaths/useResize.ts | 2 +- packages/js-toolkit/src/subpaths/useScroll.ts | 2 +- .../src/subpaths/useScrollProgress.ts | 0 .../src/subpaths/useWindowScroll.ts | 0 .../src/subpaths/useWindowSize.ts | 0 .../src/subpaths/utils/DEFAULT_DAMP_FACTOR.ts | 0 .../src/subpaths/utils/INERTIA_FRAME.ts | 0 .../src/subpaths/utils/MAX_SPRING_RATIO.ts | 0 .../js-toolkit/src/subpaths/utils/Queue.ts | 1 - .../src/subpaths/utils/SCROLL_ALIGNMENTS.ts | 0 .../src/subpaths/utils/SCROLL_AXES.ts | 0 .../src/subpaths/utils/SmartQueue.ts | 1 - .../src/subpaths/utils/TRANSFORM_PROPS.ts | 0 .../src/subpaths/utils/TRANSITION_OPTIONS.ts | 0 .../js-toolkit/src/subpaths/utils/addClass.ts | 1 - .../js-toolkit/src/subpaths/utils/addStyle.ts | 1 - .../js-toolkit/src/subpaths/utils/animate.ts | 1 - .../subpaths/utils/boundingRectToCircle.ts | 1 - .../js-toolkit/src/subpaths/utils/cache.ts | 1 - .../src/subpaths/utils/camelCase.ts | 2 +- .../src/subpaths/utils/capitalize.ts | 0 .../js-toolkit/src/subpaths/utils/clamp.ts | 2 +- .../js-toolkit/src/subpaths/utils/clamp01.ts | 2 +- .../src/subpaths/utils/clampDampFactor.ts | 0 .../src/subpaths/utils/collideCircleCircle.ts | 1 - .../src/subpaths/utils/collideCircleRect.ts | 1 - .../src/subpaths/utils/collidePointCircle.ts | 1 - .../src/subpaths/utils/collidePointRect.ts | 1 - .../src/subpaths/utils/collideRectRect.ts | 1 - .../src/subpaths/utils/createEaseInOut.ts | 2 +- .../src/subpaths/utils/createEaseOut.ts | 2 +- .../src/subpaths/utils/createElement.ts | 2 +- .../src/subpaths/utils/createLocalStorage.ts | 1 - .../utils/createLocalStorageProvider.ts | 1 - .../utils/createMemoryStorageProvider.ts | 1 - .../src/subpaths/utils/createNoopProvider.ts | 1 - .../src/subpaths/utils/createRange.ts | 2 +- .../subpaths/utils/createSessionStorage.ts | 1 - .../utils/createSessionStorageProvider.ts | 1 - .../src/subpaths/utils/createStorage.ts | 1 - .../createUrlSearchParamsInHashProvider.ts | 1 - .../createUrlSearchParamsInHashStorage.ts | 1 - .../utils/createUrlSearchParamsProvider.ts | 1 - .../utils/createUrlSearchParamsStorage.ts | 1 - .../js-toolkit/src/subpaths/utils/damp.ts | 2 +- .../js-toolkit/src/subpaths/utils/dashCase.ts | 1 - .../js-toolkit/src/subpaths/utils/debounce.ts | 2 +- .../src/subpaths/utils/decayOver.ts | 0 .../src/subpaths/utils/deepmerge.ts | 0 .../src/subpaths/utils/domScheduler.ts | 1 - .../js-toolkit/src/subpaths/utils/ease.ts | 1 - .../src/subpaths/utils/easeInCirc.ts | 2 +- .../src/subpaths/utils/easeInCubic.ts | 2 +- .../src/subpaths/utils/easeInExpo.ts | 2 +- .../src/subpaths/utils/easeInOutCirc.ts | 2 +- .../src/subpaths/utils/easeInOutCubic.ts | 2 +- .../src/subpaths/utils/easeInOutExpo.ts | 2 +- .../src/subpaths/utils/easeInOutQuad.ts | 2 +- .../src/subpaths/utils/easeInOutQuart.ts | 2 +- .../src/subpaths/utils/easeInOutQuint.ts | 2 +- .../src/subpaths/utils/easeInOutSine.ts | 2 +- .../src/subpaths/utils/easeInQuad.ts | 2 +- .../src/subpaths/utils/easeInQuart.ts | 2 +- .../src/subpaths/utils/easeInQuint.ts | 2 +- .../src/subpaths/utils/easeInSine.ts | 2 +- .../src/subpaths/utils/easeLinear.ts | 2 +- .../src/subpaths/utils/easeOutCirc.ts | 2 +- .../src/subpaths/utils/easeOutCubic.ts | 2 +- .../src/subpaths/utils/easeOutExpo.ts | 2 +- .../src/subpaths/utils/easeOutQuad.ts | 2 +- .../src/subpaths/utils/easeOutQuart.ts | 2 +- .../src/subpaths/utils/easeOutQuint.ts | 2 +- .../src/subpaths/utils/easeOutSine.ts | 2 +- .../js-toolkit/src/subpaths/utils/endsWith.ts | 1 - .../src/subpaths/utils/enterTransition.ts | 0 .../js-toolkit/src/subpaths/utils/fold.ts | 2 +- .../src/subpaths/utils/getAncestorWhere.ts | 1 - .../subpaths/utils/getAncestorWhereUntil.ts | 1 - .../subpaths/utils/getComponentResolver.ts | 1 - .../src/subpaths/utils/getOffsetSizes.ts | 2 +- .../src/subpaths/utils/hasWindow.ts | 1 - .../src/subpaths/utils/historyPush.ts | 2 +- .../src/subpaths/utils/historyReplace.ts | 2 +- .../src/subpaths/utils/inertiaDecay.ts | 0 .../src/subpaths/utils/inertiaFinalValue.ts | 2 +- .../src/subpaths/utils/inertiaStep.ts | 0 .../src/subpaths/utils/inertiaTimeConstant.ts | 0 .../js-toolkit/src/subpaths/utils/isArray.ts | 1 - .../js-toolkit/src/subpaths/utils/isDev.ts | 1 - .../js-toolkit/src/subpaths/utils/isEmpty.ts | 1 - .../src/subpaths/utils/isEmptyString.ts | 1 - .../src/subpaths/utils/kebabCase.ts | 0 .../js-toolkit/src/subpaths/utils/keyCodes.ts | 1 - .../src/subpaths/utils/leaveTransition.ts | 0 .../js-toolkit/src/subpaths/utils/lerp.ts | 2 +- .../src/subpaths/utils/loadElement.ts | 1 - .../src/subpaths/utils/loadIframe.ts | 1 - .../src/subpaths/utils/loadImage.ts | 2 +- .../js-toolkit/src/subpaths/utils/loadLink.ts | 2 +- .../src/subpaths/utils/loadScript.ts | 2 +- .../subpaths/utils/localStorageProvider.ts | 1 - .../src/subpaths/utils/lockScroll.ts | 0 .../src/subpaths/utils/lowerCase.ts | 2 +- packages/js-toolkit/src/subpaths/utils/map.ts | 2 +- .../js-toolkit/src/subpaths/utils/matrix.ts | 2 +- .../js-toolkit/src/subpaths/utils/mean.ts | 2 +- .../js-toolkit/src/subpaths/utils/memoize.ts | 1 - .../subpaths/utils/memoryStorageProvider.ts | 1 - .../src/subpaths/utils/nextFrame.ts | 1 - .../src/subpaths/utils/nextMicrotask.ts | 1 - .../js-toolkit/src/subpaths/utils/nextTick.ts | 1 - .../src/subpaths/utils/pascalCase.ts | 2 +- .../src/subpaths/utils/removeClass.ts | 1 - .../src/subpaths/utils/removeStyle.ts | 1 - .../js-toolkit/src/subpaths/utils/round.ts | 2 +- .../src/subpaths/utils/saveActiveElement.ts | 2 +- .../src/subpaths/utils/scrollPosition.ts | 0 .../src/subpaths/utils/selectorFor.ts | 0 .../subpaths/utils/sessionStorageProvider.ts | 1 - .../src/subpaths/utils/setClassesOrStyles.ts | 0 .../js-toolkit/src/subpaths/utils/smoothTo.ts | 2 +- .../src/subpaths/utils/snakeCase.ts | 2 +- .../js-toolkit/src/subpaths/utils/spring.ts | 2 +- .../src/subpaths/utils/startsWith.ts | 1 - .../js-toolkit/src/subpaths/utils/throttle.ts | 2 +- .../src/subpaths/utils/toggleClass.ts | 1 - .../src/subpaths/utils/transform.ts | 2 +- .../src/subpaths/utils/transition.ts | 2 +- .../src/subpaths/utils/trapFocus.ts | 2 +- .../js-toolkit/src/subpaths/utils/tween.ts | 1 - .../src/subpaths/utils/untrapFocus.ts | 2 +- .../src/subpaths/utils/upperCase.ts | 2 +- .../utils/urlSearchParamsInHashProvider.ts | 1 - .../subpaths/utils/urlSearchParamsProvider.ts | 1 - .../src/subpaths/utils/useScheduler.ts | 1 - .../js-toolkit/src/subpaths/utils/wait.ts | 2 +- .../subpaths/utils/withLeadingCharacters.ts | 2 +- .../src/subpaths/utils/withLeadingSlash.ts | 2 +- .../subpaths/utils/withTrailingCharacters.ts | 2 +- .../src/subpaths/utils/withTrailingSlash.ts | 2 +- .../utils/withoutLeadingCharacters.ts | 2 +- .../withoutLeadingCharactersRecursive.ts | 2 +- .../src/subpaths/utils/withoutLeadingSlash.ts | 2 +- .../utils/withoutTrailingCharacters.ts | 2 +- .../withoutTrailingCharactersRecursive.ts | 2 +- .../subpaths/utils/withoutTrailingSlash.ts | 2 +- .../js-toolkit/src/subpaths/utils/wrap.ts | 2 +- packages/js-toolkit/src/subpaths/version.ts | 1 - .../src/subpaths/viewTransition.ts | 0 .../{v4 => js-toolkit}/src/subpaths/warn.ts | 0 .../src/subpaths/watchAttributeNamespace.ts | 0 .../src/subpaths/watchAttributes.ts | 0 .../src/subpaths/whenDOMSettled.ts | 0 .../src/subpaths/withBreakpointManager.ts | 1 - .../src/subpaths/withBreakpointObserver.ts | 1 - packages/js-toolkit/src/subpaths/withDrag.ts | 2 +- .../src/subpaths/withExtraConfig.ts | 1 - .../src/subpaths/withFreezedOptions.ts | 1 - packages/js-toolkit/src/subpaths/withGroup.ts | 1 - .../src/subpaths/withInView.ts | 0 .../src/subpaths/withIntersectionObserver.ts | 1 - .../src/subpaths/withKey.ts | 0 .../src/subpaths/withMountOnMediaQuery.ts | 1 - .../src/subpaths/withMountWhenInView.ts | 1 - .../subpaths/withMountWhenPrefersMotion.ts | 1 - .../js-toolkit/src/subpaths/withMutation.ts | 2 +- packages/js-toolkit/src/subpaths/withName.ts | 1 - .../src/subpaths/withPointer.ts | 0 .../src/subpaths/withRaf.ts | 0 .../src/subpaths/withRelativePointer.ts | 1 - .../src/subpaths/withResize.ts | 0 .../src/subpaths/withResponsiveOptions.ts | 1 - .../src/subpaths/withScroll.ts | 0 .../src/subpaths/withScrollProgress.ts | 0 .../src/subpaths/withScrolledInView.ts | 1 - .../{v4 => js-toolkit}/src/subpaths/write.ts | 0 packages/{v4 => js-toolkit}/src/swap.spec.ts | 0 packages/{v4 => js-toolkit}/src/swap.ts | 0 .../{v4 => js-toolkit}/src/test/index.spec.ts | 2 +- packages/{v4 => js-toolkit}/src/test/index.ts | 4 +- .../{v4 => js-toolkit}/src/todo.fixtures.ts | 0 packages/js-toolkit/src/utils/Queue.spec.ts | 103 - packages/js-toolkit/src/utils/Queue.ts | 99 - .../js-toolkit/src/utils/SmartQueue.spec.ts | 104 - packages/js-toolkit/src/utils/SmartQueue.ts | 68 - packages/js-toolkit/src/utils/cache.spec.ts | 20 - packages/js-toolkit/src/utils/cache.ts | 23 - .../collide/boundingRectToCircle.spec.ts | 33 - .../src/utils/collide/boundingRectToCircle.ts | 25 - .../utils/collide/collideCircleCircle.spec.ts | 40 - .../src/utils/collide/collideCircleCircle.ts | 30 - .../utils/collide/collideCircleRect.spec.ts | 61 - .../src/utils/collide/collideCircleRect.ts | 53 - .../utils/collide/collidePointCircle.spec.ts | 38 - .../src/utils/collide/collidePointCircle.ts | 33 - .../utils/collide/collidePointRect.spec.ts | 40 - .../src/utils/collide/collidePointRect.ts | 31 - .../src/utils/collide/collideRectRect.spec.ts | 64 - .../src/utils/collide/collideRectRect.ts | 25 - .../js-toolkit/src/utils/collide/index.ts | 9 - .../js-toolkit/src/utils/css/animate.spec.ts | 326 - packages/js-toolkit/src/utils/css/animate.ts | 474 - .../js-toolkit/src/utils/css/classes.spec.ts | 42 - packages/js-toolkit/src/utils/css/classes.ts | 62 - .../src/utils/css/getOffsetSizes.spec.ts | 49 - .../src/utils/css/getOffsetSizes.ts | 30 - packages/js-toolkit/src/utils/css/index.ts | 15 - .../js-toolkit/src/utils/css/matrix.spec.ts | 24 - packages/js-toolkit/src/utils/css/matrix.ts | 34 - .../js-toolkit/src/utils/css/styles.spec.ts | 24 - packages/js-toolkit/src/utils/css/styles.ts | 44 - .../src/utils/css/transform.spec.ts | 52 - .../js-toolkit/src/utils/css/transform.ts | 102 - .../src/utils/css/transition.spec.ts | 75 - .../js-toolkit/src/utils/css/transition.ts | 195 - .../js-toolkit/src/utils/css/utils.spec.ts | 34 - packages/js-toolkit/src/utils/css/utils.ts | 10 - .../js-toolkit/src/utils/debounce.spec.ts | 39 - packages/js-toolkit/src/utils/debounce.ts | 22 - .../src/utils/deepmerge.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/deepmerge.ts | 0 .../{v4 => js-toolkit}/src/utils/dom.spec.ts | 0 packages/{v4 => js-toolkit}/src/utils/dom.ts | 0 .../js-toolkit/src/utils/dom/ancestors.ts | 23 - .../src/utils/dom/createElement.spec.ts | 86 - .../js-toolkit/src/utils/dom/createElement.ts | 77 - packages/js-toolkit/src/utils/dom/index.ts | 2 - .../src/utils/easings.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/easings.ts | 0 .../src/utils/focus.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/focus.ts | 0 .../src/utils/getComponentResolver.ts | 20 - packages/js-toolkit/src/utils/has.ts | 6 - .../src/utils/history.server.spec.ts | 8 - packages/js-toolkit/src/utils/history.spec.ts | 143 +- packages/js-toolkit/src/utils/history.ts | 155 +- packages/js-toolkit/src/utils/index.spec.ts | 208 +- packages/js-toolkit/src/utils/index.ts | 183 +- packages/js-toolkit/src/utils/is.spec.ts | 112 +- packages/js-toolkit/src/utils/is.ts | 102 +- .../js-toolkit/src/utils/isDefined.spec.ts | 24 - .../js-toolkit/src/utils/isFunction.spec.ts | 20 - packages/js-toolkit/src/utils/keyCodes.ts | 13 - .../{v4 => js-toolkit}/src/utils/load.spec.ts | 0 packages/{v4 => js-toolkit}/src/utils/load.ts | 0 .../js-toolkit/src/utils/loadElement.spec.ts | 93 - packages/js-toolkit/src/utils/loadElement.ts | 79 - .../math/__snapshots__/ease.spec.ts.snap | 485 - .../js-toolkit/src/utils/math/clamp.spec.ts | 14 - packages/js-toolkit/src/utils/math/clamp.ts | 19 - .../js-toolkit/src/utils/math/clamp01.spec.ts | 12 - packages/js-toolkit/src/utils/math/clamp01.ts | 9 - .../js-toolkit/src/utils/math/createEases.ts | 38 - .../src/utils/math/createRange.spec.ts | 12 - .../js-toolkit/src/utils/math/createRange.ts | 15 - .../js-toolkit/src/utils/math/damp.spec.ts | 18 - packages/js-toolkit/src/utils/math/damp.ts | 15 - .../js-toolkit/src/utils/math/ease.spec.ts | 16 - packages/js-toolkit/src/utils/math/ease.ts | 101 - .../js-toolkit/src/utils/math/fold.spec.ts | 56 - packages/js-toolkit/src/utils/math/fold.ts | 18 - packages/js-toolkit/src/utils/math/index.ts | 39 - .../src/utils/math/inertiaFinalValue.spec.ts | 20 - .../src/utils/math/inertiaFinalValue.ts | 24 - .../js-toolkit/src/utils/math/lerp.spec.ts | 11 - packages/js-toolkit/src/utils/math/lerp.ts | 12 - .../js-toolkit/src/utils/math/map.spec.ts | 11 - packages/js-toolkit/src/utils/math/map.ts | 20 - .../js-toolkit/src/utils/math/mean.spec.ts | 10 - packages/js-toolkit/src/utils/math/mean.ts | 19 - .../js-toolkit/src/utils/math/round.spec.ts | 26 - packages/js-toolkit/src/utils/math/round.ts | 11 - .../src/utils/math/smoothTo.spec.ts | 164 - .../js-toolkit/src/utils/math/smoothTo.ts | 145 - .../js-toolkit/src/utils/math/spring.spec.ts | 60 - packages/js-toolkit/src/utils/math/spring.ts | 31 - .../js-toolkit/src/utils/math/wrap.spec.ts | 50 - packages/js-toolkit/src/utils/math/wrap.ts | 13 - .../src/utils/maths.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/maths.ts | 0 .../{v4 => js-toolkit}/src/utils/memo.spec.ts | 0 packages/js-toolkit/src/utils/memo.ts | 55 +- packages/js-toolkit/src/utils/memoize.spec.ts | 36 - packages/js-toolkit/src/utils/memoize.ts | 47 - .../js-toolkit/src/utils/nextFrame.spec.ts | 47 - packages/js-toolkit/src/utils/nextFrame.ts | 18 - .../js-toolkit/src/utils/nextMicrotask.ts | 14 - .../js-toolkit/src/utils/nextTick.spec.ts | 33 - packages/js-toolkit/src/utils/nextTick.ts | 15 - .../{v4 => js-toolkit}/src/utils/noop.spec.ts | 0 packages/js-toolkit/src/utils/noop.ts | 12 +- .../src/utils/object/getAllProperties.ts | 35 - packages/js-toolkit/src/utils/random.spec.ts | 99 +- packages/js-toolkit/src/utils/random.ts | 40 +- packages/js-toolkit/src/utils/scheduler.ts | 88 - .../src/utils/scroll-lock.spec.ts | 0 .../src/utils/scroll-lock.ts | 0 .../js-toolkit/src/utils/scrollTo.spec.ts | 479 +- packages/js-toolkit/src/utils/scrollTo.ts | 340 +- .../src/utils/selectors.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/selectors.ts | 0 .../src/utils/smoothTo.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/smoothTo.ts | 0 .../src/utils/storage.server.spec.ts | 95 - packages/js-toolkit/src/utils/storage.spec.ts | 857 - packages/js-toolkit/src/utils/storage.ts | 23 - .../storage/createLocalStorageProvider.ts | 30 - .../storage/createMemoryStorageProvider.ts | 26 - .../src/utils/storage/createNoopProvider.ts | 18 - .../storage/createSessionStorageProvider.ts | 29 - .../src/utils/storage/createStorage.ts | 112 - .../createUrlSearchParamsInHashProvider.ts | 65 - .../storage/createUrlSearchParamsProvider.ts | 42 - .../src/utils/storage/getBrowserContext.ts | 16 - .../src/utils/storage/getGlobalStorage.ts | 3 - .../src/utils/storage/getStorageKeys.ts | 9 - .../js-toolkit/src/utils/storage/index.ts | 65 - .../js-toolkit/src/utils/storage/providers.ts | 18 - .../src/utils/storage/serializers.ts | 12 - .../js-toolkit/src/utils/storage/types.ts | 37 - .../src/utils/string/changeCase.spec.ts | 76 - .../js-toolkit/src/utils/string/changeCase.ts | 89 - .../src/utils/string/endsWith.spec.ts | 24 - .../js-toolkit/src/utils/string/endsWith.ts | 21 - .../js-toolkit/src/utils/string/index.spec.ts | 67 - packages/js-toolkit/src/utils/string/index.ts | 13 - .../src/utils/string/startsWith.spec.ts | 19 - .../js-toolkit/src/utils/string/startsWith.ts | 20 - .../src/utils/string/withLeadingCharacters.ts | 13 - .../src/utils/string/withLeadingSlash.ts | 12 - .../utils/string/withTrailingCharacters.ts | 13 - .../src/utils/string/withTrailingSlash.ts | 12 - .../utils/string/withoutLeadingCharacters.ts | 11 - .../withoutLeadingCharactersRecursive.ts | 20 - .../src/utils/string/withoutLeadingSlash.ts | 12 - .../utils/string/withoutTrailingCharacters.ts | 11 - .../withoutTrailingCharactersRecursive.ts | 20 - .../src/utils/string/withoutTrailingSlash.ts | 12 - .../src/utils/strings.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/strings.ts | 0 .../js-toolkit/src/utils/throttle.spec.ts | 45 - packages/js-toolkit/src/utils/throttle.ts | 23 - .../src/utils/timing.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/timing.ts | 0 .../src/utils/transform.spec.ts | 0 .../{v4 => js-toolkit}/src/utils/transform.ts | 0 .../src/utils/transition.spec.ts | 0 .../src/utils/transition.ts | 0 .../js-toolkit/src/utils/trapFocus.spec.ts | 57 - packages/js-toolkit/src/utils/trapFocus.ts | 87 - packages/js-toolkit/src/utils/tween.spec.ts | 156 - packages/js-toolkit/src/utils/tween.ts | 246 - packages/js-toolkit/src/utils/wait.ts | 5 - packages/js-toolkit/src/version.ts | 5 - .../src/viewTransition.spec.ts | 0 .../{v4 => js-toolkit}/src/viewTransition.ts | 0 .../test/package-browser-consumer.js | 16 +- .../test/package-node-consumer.js | 46 +- .../test/package-typescript-consumer.ts | 10 +- .../package-typescript-consumer.tsconfig.json | 0 .../{v4 => js-toolkit}/test/runtime-copy-a.ts | 4 +- .../{v4 => js-toolkit}/test/runtime-copy-b.ts | 4 +- .../test/runtime-fixture.html | 0 .../test/runtime-harness.js | 16 +- packages/js-toolkit/tsconfig.build.json | 6 +- packages/js-toolkit/tsconfig.json | 20 +- packages/js-toolkit/tsconfig.lint.json | 8 - .../vite-plugin-decorators.js | 6 +- .../{v4 => js-toolkit}/vitest.bench.config.js | 4 +- packages/js-toolkit/vitest.bench.config.ts | 57 - packages/{v4 => js-toolkit}/vitest.config.js | 10 +- packages/js-toolkit/vitest.config.ts | 31 - .../.vitepress/theme/components/Loader.vue | 31 - .../theme/components/PreviewIframe.vue | 67 - .../theme/composables/useAllLinks.ts | 81 - .../theme/composables/useObserver.ts | 38 - packages/v4/docs/.vitepress/theme/index.ts | 13 - packages/v4/docs/.vitepress/theme/styles.css | 65 - packages/v4/docs/api/configuration.md | 176 - packages/v4/docs/api/methods-hooks-events.md | 155 - .../v4/docs/api/methods-hooks-lifecycle.md | 95 - packages/v4/docs/api/methods-hooks-options.md | 100 - .../docs/api/registry/registerComponents.md | 38 - packages/v4/docs/api/scheduler/nextFrame.md | 32 - packages/v4/docs/api/services/perTarget.md | 66 - packages/v4/docs/api/services/toggle.md | 82 - packages/v4/docs/api/services/useDrag.md | 121 - packages/v4/docs/api/services/useInView.md | 65 - packages/v4/docs/api/services/useKey.md | 107 - .../v4/docs/api/services/useMediaQuery.md | 46 - packages/v4/docs/api/services/useMutation.md | 70 - packages/v4/docs/api/services/usePointer.md | 93 - .../api/services/usePrefersReducedMotion.md | 43 - packages/v4/docs/api/services/useRaf.md | 94 - packages/v4/docs/api/services/useResize.md | 61 - packages/v4/docs/api/services/useScroll.md | 90 - .../v4/docs/api/services/useWindowScroll.md | 26 - .../v4/docs/api/services/useWindowSize.md | 26 - packages/v4/docs/guide/index.md | 168 - .../guide/introduction/lifecycle-hooks.md | 183 - .../guide/introduction/managing-components.md | 237 - .../guide/introduction/managing-options.md | 242 - .../docs/guide/introduction/managing-refs.md | 181 - .../docs/guide/introduction/using-services.md | 227 - .../guide/introduction/working-with-events.md | 260 - packages/v4/docs/public/logo.png | Bin 2800 -> 0 bytes packages/v4/docs/utils/history.md | 78 - packages/v4/package.json | 841 - packages/v4/scripts/build.js | 53 - packages/v4/src/coexistence.spec.ts | 173 - packages/v4/src/index.ts | 237 - packages/v4/src/subpaths/Base.ts | 1 - packages/v4/src/subpaths/defineManifest.ts | 1 - packages/v4/src/subpaths/fromMetaGlob.ts | 1 - .../v4/src/subpaths/fromWebpackContext.ts | 1 - packages/v4/src/subpaths/getInstances.ts | 1 - packages/v4/src/subpaths/registerComponent.ts | 1 - .../v4/src/subpaths/registerComponents.ts | 1 - packages/v4/src/subpaths/registerManifest.ts | 1 - packages/v4/src/subpaths/useDrag.ts | 1 - packages/v4/src/subpaths/useKey.ts | 1 - packages/v4/src/subpaths/useMutation.ts | 1 - packages/v4/src/subpaths/usePointer.ts | 1 - packages/v4/src/subpaths/useRaf.ts | 1 - packages/v4/src/subpaths/useResize.ts | 1 - packages/v4/src/subpaths/useScroll.ts | 1 - packages/v4/src/subpaths/utils/camelCase.ts | 1 - packages/v4/src/subpaths/utils/clamp.ts | 1 - packages/v4/src/subpaths/utils/clamp01.ts | 1 - .../v4/src/subpaths/utils/createEaseInOut.ts | 1 - .../v4/src/subpaths/utils/createEaseOut.ts | 1 - .../v4/src/subpaths/utils/createElement.ts | 1 - packages/v4/src/subpaths/utils/createRange.ts | 1 - packages/v4/src/subpaths/utils/damp.ts | 1 - packages/v4/src/subpaths/utils/debounce.ts | 1 - packages/v4/src/subpaths/utils/easeInCirc.ts | 1 - packages/v4/src/subpaths/utils/easeInCubic.ts | 1 - packages/v4/src/subpaths/utils/easeInExpo.ts | 1 - .../v4/src/subpaths/utils/easeInOutCirc.ts | 1 - .../v4/src/subpaths/utils/easeInOutCubic.ts | 1 - .../v4/src/subpaths/utils/easeInOutExpo.ts | 1 - .../v4/src/subpaths/utils/easeInOutQuad.ts | 1 - .../v4/src/subpaths/utils/easeInOutQuart.ts | 1 - .../v4/src/subpaths/utils/easeInOutQuint.ts | 1 - .../v4/src/subpaths/utils/easeInOutSine.ts | 1 - packages/v4/src/subpaths/utils/easeInQuad.ts | 1 - packages/v4/src/subpaths/utils/easeInQuart.ts | 1 - packages/v4/src/subpaths/utils/easeInQuint.ts | 1 - packages/v4/src/subpaths/utils/easeInSine.ts | 1 - packages/v4/src/subpaths/utils/easeLinear.ts | 1 - packages/v4/src/subpaths/utils/easeOutCirc.ts | 1 - .../v4/src/subpaths/utils/easeOutCubic.ts | 1 - packages/v4/src/subpaths/utils/easeOutExpo.ts | 1 - packages/v4/src/subpaths/utils/easeOutQuad.ts | 1 - .../v4/src/subpaths/utils/easeOutQuart.ts | 1 - .../v4/src/subpaths/utils/easeOutQuint.ts | 1 - packages/v4/src/subpaths/utils/easeOutSine.ts | 1 - packages/v4/src/subpaths/utils/fold.ts | 1 - .../v4/src/subpaths/utils/getOffsetSizes.ts | 1 - packages/v4/src/subpaths/utils/historyPush.ts | 1 - .../v4/src/subpaths/utils/historyReplace.ts | 1 - .../src/subpaths/utils/inertiaFinalValue.ts | 1 - packages/v4/src/subpaths/utils/isBoolean.ts | 1 - packages/v4/src/subpaths/utils/isDefined.ts | 1 - packages/v4/src/subpaths/utils/isFunction.ts | 1 - packages/v4/src/subpaths/utils/isNull.ts | 1 - packages/v4/src/subpaths/utils/isNumber.ts | 1 - packages/v4/src/subpaths/utils/isObject.ts | 1 - packages/v4/src/subpaths/utils/isString.ts | 1 - packages/v4/src/subpaths/utils/lerp.ts | 1 - packages/v4/src/subpaths/utils/loadImage.ts | 1 - packages/v4/src/subpaths/utils/loadLink.ts | 1 - packages/v4/src/subpaths/utils/loadScript.ts | 1 - packages/v4/src/subpaths/utils/lowerCase.ts | 1 - packages/v4/src/subpaths/utils/map.ts | 1 - packages/v4/src/subpaths/utils/matrix.ts | 1 - packages/v4/src/subpaths/utils/mean.ts | 1 - packages/v4/src/subpaths/utils/memo.ts | 1 - packages/v4/src/subpaths/utils/noop.ts | 1 - packages/v4/src/subpaths/utils/noopValue.ts | 1 - .../subpaths/utils/objectToURLSearchParams.ts | 1 - packages/v4/src/subpaths/utils/pascalCase.ts | 1 - packages/v4/src/subpaths/utils/random.ts | 1 - packages/v4/src/subpaths/utils/randomInt.ts | 1 - packages/v4/src/subpaths/utils/randomItem.ts | 1 - packages/v4/src/subpaths/utils/round.ts | 1 - .../src/subpaths/utils/saveActiveElement.ts | 1 - packages/v4/src/subpaths/utils/scrollTo.ts | 1 - packages/v4/src/subpaths/utils/smoothTo.ts | 1 - packages/v4/src/subpaths/utils/snakeCase.ts | 1 - packages/v4/src/subpaths/utils/spring.ts | 1 - packages/v4/src/subpaths/utils/throttle.ts | 1 - packages/v4/src/subpaths/utils/transform.ts | 1 - packages/v4/src/subpaths/utils/transition.ts | 1 - packages/v4/src/subpaths/utils/trapFocus.ts | 1 - packages/v4/src/subpaths/utils/untrapFocus.ts | 1 - packages/v4/src/subpaths/utils/upperCase.ts | 1 - packages/v4/src/subpaths/utils/wait.ts | 1 - .../subpaths/utils/withLeadingCharacters.ts | 1 - .../v4/src/subpaths/utils/withLeadingSlash.ts | 1 - .../subpaths/utils/withTrailingCharacters.ts | 1 - .../src/subpaths/utils/withTrailingSlash.ts | 1 - .../utils/withoutLeadingCharacters.ts | 1 - .../withoutLeadingCharactersRecursive.ts | 1 - .../src/subpaths/utils/withoutLeadingSlash.ts | 1 - .../utils/withoutTrailingCharacters.ts | 1 - .../withoutTrailingCharactersRecursive.ts | 1 - .../subpaths/utils/withoutTrailingSlash.ts | 1 - packages/v4/src/subpaths/utils/wrap.ts | 1 - packages/v4/src/subpaths/withDrag.ts | 1 - packages/v4/src/subpaths/withMutation.ts | 1 - packages/v4/src/utils/history.spec.ts | 92 - packages/v4/src/utils/history.ts | 105 - packages/v4/src/utils/index.spec.ts | 67 - packages/v4/src/utils/index.ts | 125 - packages/v4/src/utils/is.spec.ts | 63 - packages/v4/src/utils/is.ts | 61 - packages/v4/src/utils/memo.ts | 50 - packages/v4/src/utils/noop.ts | 15 - packages/v4/src/utils/random.spec.ts | 75 - packages/v4/src/utils/random.ts | 33 - packages/v4/src/utils/scrollTo.spec.ts | 299 - packages/v4/src/utils/scrollTo.ts | 245 - packages/v4/tsconfig.build.json | 11 - packages/v4/tsconfig.coexistence.json | 8 - packages/v4/tsconfig.json | 21 - scripts/generate-subpaths.js | 25 +- scripts/lib/subpath-exports.js | 7 +- 1443 files changed, 11657 insertions(+), 74372 deletions(-) delete mode 100644 .github/workflows/benchmarks-v3.yml rename .github/workflows/{benchmarks-v4.yml => benchmarks.yml} (57%) delete mode 100644 packages/demo/eslint.config.js delete mode 100644 packages/demo/meta.config.js delete mode 100644 packages/demo/package.json delete mode 100644 packages/demo/prettier.config.js delete mode 100644 packages/demo/src/css/styles.css delete mode 100644 packages/demo/src/js/app.ts delete mode 100644 packages/demo/src/js/components/AnimateScrollTest.js delete mode 100644 packages/demo/src/js/components/AnimateTest.js delete mode 100644 packages/demo/src/js/components/AnimateTestMultiple.js delete mode 100644 packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoBase.js delete mode 100644 packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoDesktop.js delete mode 100644 packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoMobile.js delete mode 100644 packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoTablet.js delete mode 100644 packages/demo/src/js/components/BreakPointManagerDemo/index.js delete mode 100644 packages/demo/src/js/components/BreakpointObserverDemo.js delete mode 100644 packages/demo/src/js/components/Cursor.js delete mode 100644 packages/demo/src/js/components/Lazyload.js delete mode 100644 packages/demo/src/js/components/MediaQueryDemo.js delete mode 100644 packages/demo/src/js/components/Parallax.js delete mode 100644 packages/demo/src/js/components/ParentNativeEvent/Child.js delete mode 100644 packages/demo/src/js/components/ParentNativeEvent/index.js delete mode 100644 packages/demo/src/js/components/PointerProps.ts delete mode 100644 packages/demo/src/js/components/ResponsiveOptions.js delete mode 100644 packages/demo/src/js/components/ScrollToDemo.js delete mode 100644 packages/demo/src/js/components/ScrolledInViewOffset.js delete mode 100644 packages/demo/src/js/components/Skew.js delete mode 100644 packages/demo/src/js/components/Slider.js delete mode 100644 packages/demo/src/js/utils/isObjectFreed.js delete mode 100644 packages/demo/src/package.json delete mode 100644 packages/demo/src/templates/layouts/base.twig delete mode 100644 packages/demo/src/templates/pages/foo.twig delete mode 100644 packages/demo/src/templates/pages/index.twig delete mode 100644 packages/docs/.vitepress/config.ts delete mode 100644 packages/docs/api/autoload/defineManifest.md delete mode 100644 packages/docs/api/autoload/index.md delete mode 100644 packages/docs/api/autoload/registerManifests.md delete mode 100644 packages/docs/api/configuration.md delete mode 100644 packages/docs/api/decorators/index.md delete mode 100644 packages/docs/api/decorators/withBreakpointManager.md delete mode 100644 packages/docs/api/decorators/withBreakpointObserver.md delete mode 100644 packages/docs/api/decorators/withDrag.md delete mode 100644 packages/docs/api/decorators/withExtraConfig.md delete mode 100644 packages/docs/api/decorators/withFreezedOptions.md delete mode 100644 packages/docs/api/decorators/withGroup.md delete mode 100644 packages/docs/api/decorators/withIntersectionObserver.md delete mode 100644 packages/docs/api/decorators/withMountOnMediaQuery.md delete mode 100644 packages/docs/api/decorators/withMountWhenInView.md delete mode 100644 packages/docs/api/decorators/withMountWhenPrefersMotion.md delete mode 100644 packages/docs/api/decorators/withMutation.md delete mode 100644 packages/docs/api/decorators/withRelativePointer.md delete mode 100644 packages/docs/api/decorators/withResponsiveOptions.md delete mode 100644 packages/docs/api/decorators/withScrolledInView.md delete mode 100644 packages/docs/api/decorators/withScrolledInView/demo.md delete mode 100644 packages/docs/api/helpers/closestComponent.md delete mode 100644 packages/docs/api/helpers/createApp.md delete mode 100644 packages/docs/api/helpers/defineFeatures.md delete mode 100644 packages/docs/api/helpers/getClosestParent.md delete mode 100644 packages/docs/api/helpers/getDirectChildren.md delete mode 100644 packages/docs/api/helpers/getInstanceFromElement.md delete mode 100644 packages/docs/api/helpers/getInstances.md delete mode 100644 packages/docs/api/helpers/importOnInteraction.md delete mode 100644 packages/docs/api/helpers/importOnMediaQuery.md delete mode 100644 packages/docs/api/helpers/importWhenIdle.md delete mode 100644 packages/docs/api/helpers/importWhenPrefersMotion.md delete mode 100644 packages/docs/api/helpers/importWhenVisible.md delete mode 100644 packages/docs/api/helpers/index.md delete mode 100644 packages/docs/api/helpers/isDirectChild.md delete mode 100644 packages/docs/api/helpers/logTree.md delete mode 100644 packages/docs/api/helpers/queryComponent.md delete mode 100644 packages/docs/api/helpers/registerComponent.md delete mode 100644 packages/docs/api/helpers/registerComponents.md delete mode 100644 packages/docs/api/html/data-component.md delete mode 100644 packages/docs/api/html/data-option.md delete mode 100644 packages/docs/api/html/data-ref.md delete mode 100644 packages/docs/api/html/index.md delete mode 100644 packages/docs/api/index.md delete mode 100644 packages/docs/api/instance-events.md delete mode 100644 packages/docs/api/instance-methods.md delete mode 100644 packages/docs/api/instance-properties.md delete mode 100644 packages/docs/api/instantiation.md delete mode 100644 packages/docs/api/methods-hooks-events.md delete mode 100644 packages/docs/api/methods-hooks-lifecycle.md delete mode 100644 packages/docs/api/methods-hooks-services.md delete mode 100644 packages/docs/api/services/index.md delete mode 100644 packages/docs/api/services/useDrag.md delete mode 100644 packages/docs/api/services/useKey.md delete mode 100644 packages/docs/api/services/useLoad.md delete mode 100644 packages/docs/api/services/useMutation.md delete mode 100644 packages/docs/api/services/usePointer.md delete mode 100644 packages/docs/api/services/useRaf.md delete mode 100644 packages/docs/api/services/useResize.md delete mode 100644 packages/docs/api/services/useScroll.md delete mode 100644 packages/docs/api/static-methods.md delete mode 100644 packages/docs/assets/events-diagram.png delete mode 100644 packages/docs/assets/lifecycle-hooks-dark.svg delete mode 100644 packages/docs/assets/lifecycle-hooks.svg delete mode 100644 packages/docs/assets/services-hooks-dark.svg delete mode 100644 packages/docs/assets/services-hooks.svg delete mode 100644 packages/docs/examples/accordion/index.md delete mode 100644 packages/docs/examples/counter-component/Counter.html delete mode 100644 packages/docs/examples/counter-component/Counter.ts delete mode 100644 packages/docs/examples/counter-component/index.md delete mode 100644 packages/docs/examples/form-validation/index.md delete mode 100644 packages/docs/examples/index.md delete mode 100644 packages/docs/examples/lazy-image/index.md delete mode 100644 packages/docs/examples/modal/index.md delete mode 100644 packages/docs/examples/scroll-linked-animation/ScrollLinkedAnimation.html delete mode 100644 packages/docs/examples/scroll-linked-animation/ScrollLinkedAnimation.js delete mode 100644 packages/docs/examples/scroll-linked-animation/index.md delete mode 100644 packages/docs/examples/tabs/index.md delete mode 100644 packages/docs/examples/teleport-refs/Modal.html delete mode 100644 packages/docs/examples/teleport-refs/Modal.js delete mode 100644 packages/docs/examples/teleport-refs/index.md delete mode 100644 packages/docs/guide/concepts/component-tree.md delete mode 100644 packages/docs/guide/concepts/philosophy.md delete mode 100644 packages/docs/guide/concepts/service-architecture.md delete mode 100644 packages/docs/guide/going-further/autoloading.md delete mode 100644 packages/docs/guide/going-further/lazy-imports.md delete mode 100644 packages/docs/guide/going-further/linting.md delete mode 100644 packages/docs/guide/going-further/registering-new-services.md delete mode 100644 packages/docs/guide/going-further/typing-components.md delete mode 100644 packages/docs/guide/going-further/using-decorators.md delete mode 100644 packages/docs/guide/index.md delete mode 100644 packages/docs/guide/introduction/installation.md delete mode 100644 packages/docs/guide/introduction/lifecycle-hooks.md delete mode 100644 packages/docs/guide/introduction/managing-components.md delete mode 100644 packages/docs/guide/introduction/managing-options.md delete mode 100644 packages/docs/guide/introduction/managing-refs.md delete mode 100644 packages/docs/guide/introduction/using-services.md delete mode 100644 packages/docs/guide/introduction/working-with-events.md delete mode 100644 packages/docs/guide/migration/v1-to-v2.md delete mode 100644 packages/docs/guide/migration/v2-to-v3.md delete mode 100644 packages/docs/guide/migration/v3-to-v4.md delete mode 100644 packages/docs/index.md delete mode 100644 packages/docs/package.json delete mode 100644 packages/docs/public/hero.webp delete mode 100644 packages/docs/utils/Queue.md delete mode 100644 packages/docs/utils/SmartQueue.md delete mode 100644 packages/docs/utils/cache.md delete mode 100644 packages/docs/utils/collision/boundingRectToCircle.md delete mode 100644 packages/docs/utils/collision/collideCircleCircle.md delete mode 100644 packages/docs/utils/collision/collideCircleRect.md delete mode 100644 packages/docs/utils/collision/collidePointCircle.md delete mode 100644 packages/docs/utils/collision/collidePointRect.md delete mode 100644 packages/docs/utils/collision/collideRectRect.md delete mode 100644 packages/docs/utils/collision/index.md delete mode 100644 packages/docs/utils/createElement.md delete mode 100644 packages/docs/utils/css/addClass.md delete mode 100644 packages/docs/utils/css/addStyle.md delete mode 100644 packages/docs/utils/css/animate.md delete mode 100644 packages/docs/utils/css/getOffsetSizes.md delete mode 100644 packages/docs/utils/css/matrix.md delete mode 100644 packages/docs/utils/css/removeClass.md delete mode 100644 packages/docs/utils/css/removeStyle.md delete mode 100644 packages/docs/utils/css/toggleClass.md delete mode 100644 packages/docs/utils/css/transform.md delete mode 100644 packages/docs/utils/css/transition.md delete mode 100644 packages/docs/utils/debounce.md delete mode 100644 packages/docs/utils/domScheduler.md delete mode 100644 packages/docs/utils/history/historyPush.md delete mode 100644 packages/docs/utils/history/historyReplace.md delete mode 100644 packages/docs/utils/history/index.md delete mode 100644 packages/docs/utils/history/objectToURLSearchParams.md delete mode 100644 packages/docs/utils/index.md delete mode 100644 packages/docs/utils/is/index.md delete mode 100644 packages/docs/utils/is/isArray.md delete mode 100644 packages/docs/utils/is/isBoolean.md delete mode 100644 packages/docs/utils/is/isDefined.md delete mode 100644 packages/docs/utils/is/isDev.md delete mode 100644 packages/docs/utils/is/isEmpty.md delete mode 100644 packages/docs/utils/is/isEmptyString.md delete mode 100644 packages/docs/utils/is/isFunction.md delete mode 100644 packages/docs/utils/is/isNull.md delete mode 100644 packages/docs/utils/is/isNumber.md delete mode 100644 packages/docs/utils/is/isObject.md delete mode 100644 packages/docs/utils/is/isString.md delete mode 100644 packages/docs/utils/keyCodes.md delete mode 100644 packages/docs/utils/loadElement.md delete mode 100644 packages/docs/utils/loadIframe.md delete mode 100644 packages/docs/utils/loadImage.md delete mode 100644 packages/docs/utils/loadLink.md delete mode 100644 packages/docs/utils/loadScript.md delete mode 100644 packages/docs/utils/math/clamp.md delete mode 100644 packages/docs/utils/math/clamp01.md delete mode 100644 packages/docs/utils/math/createEaseInOut.md delete mode 100644 packages/docs/utils/math/createEaseOut.md delete mode 100644 packages/docs/utils/math/createRange.md delete mode 100644 packages/docs/utils/math/damp.md delete mode 100644 packages/docs/utils/math/ease.md delete mode 100644 packages/docs/utils/math/fold.md delete mode 100644 packages/docs/utils/math/inertiaFinalValue.md delete mode 100644 packages/docs/utils/math/lerp.md delete mode 100644 packages/docs/utils/math/map.md delete mode 100644 packages/docs/utils/math/mean.md delete mode 100644 packages/docs/utils/math/round.md delete mode 100644 packages/docs/utils/math/smoothTo.md delete mode 100644 packages/docs/utils/math/spring.md delete mode 100644 packages/docs/utils/math/wrap.md delete mode 100644 packages/docs/utils/memo.md delete mode 100644 packages/docs/utils/memoize.md delete mode 100644 packages/docs/utils/nextFrame.md delete mode 100644 packages/docs/utils/nextMicrotask.md delete mode 100644 packages/docs/utils/nextTick.md delete mode 100644 packages/docs/utils/random.md delete mode 100644 packages/docs/utils/randomInt.md delete mode 100644 packages/docs/utils/randomItem.md delete mode 100644 packages/docs/utils/scrollTo.md delete mode 100644 packages/docs/utils/storage/createLocalStorage.md delete mode 100644 packages/docs/utils/storage/createSessionStorage.md delete mode 100644 packages/docs/utils/storage/createStorage.md delete mode 100644 packages/docs/utils/storage/createUrlSearchParamsInHashStorage.md delete mode 100644 packages/docs/utils/storage/createUrlSearchParamsStorage.md delete mode 100644 packages/docs/utils/storage/index.md delete mode 100644 packages/docs/utils/storage/providers.md delete mode 100644 packages/docs/utils/string/camelCase.md delete mode 100644 packages/docs/utils/string/dashCase.md delete mode 100644 packages/docs/utils/string/endsWith.md delete mode 100644 packages/docs/utils/string/index.md delete mode 100644 packages/docs/utils/string/lowerCase.md delete mode 100644 packages/docs/utils/string/pascalCase.md delete mode 100644 packages/docs/utils/string/snakeCase.md delete mode 100644 packages/docs/utils/string/startsWith.md delete mode 100644 packages/docs/utils/string/upperCase.md delete mode 100644 packages/docs/utils/string/withLeadingCharacters.md delete mode 100644 packages/docs/utils/string/withLeadingSlash.md delete mode 100644 packages/docs/utils/string/withTrailingCharacters.md delete mode 100644 packages/docs/utils/string/withTrailingSlash.md delete mode 100644 packages/docs/utils/string/withoutLeadingCharacters.md delete mode 100644 packages/docs/utils/string/withoutLeadingCharactersRecursive.md delete mode 100644 packages/docs/utils/string/withoutLeadingSlash.md delete mode 100644 packages/docs/utils/string/withoutTrailingCharacters.md delete mode 100644 packages/docs/utils/string/withoutTrailingCharactersRecursive.md delete mode 100644 packages/docs/utils/string/withoutTrailingSlash.md delete mode 100644 packages/docs/utils/throttle.md delete mode 100644 packages/docs/utils/trapFocus.md delete mode 100644 packages/docs/utils/tween.md delete mode 100644 packages/docs/utils/useScheduler.md delete mode 100644 packages/docs/vite.config.ts rename packages/{v4 => js-toolkit}/DESIGN.md (98%) rename packages/{v4 => js-toolkit}/RATIONALE.md (99%) rename packages/{v4 => js-toolkit}/demo/components/Accordion.ts (100%) rename packages/{v4 => js-toolkit}/demo/components/Reveal.ts (100%) rename packages/{v4 => js-toolkit}/demo/components/Slider.ts (100%) rename packages/{v4 => js-toolkit}/demo/components/TodoList.ts (100%) rename packages/{v4 => js-toolkit}/demo/index.html (100%) rename packages/{v4 => js-toolkit}/demo/main.ts (100%) rename packages/{v4 => js-toolkit}/demo/style.css (100%) rename packages/{v4 => js-toolkit}/demo/vite.config.js (100%) rename packages/{v4 => js-toolkit}/docs/.vitepress/config.ts (99%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/components/Loader.vue (100%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/components/PreviewIframe.vue (100%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/composables/useAllLinks.ts (100%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/composables/useObserver.ts (100%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/index.ts (100%) rename packages/{ => js-toolkit}/docs/.vitepress/theme/styles.css (100%) create mode 100644 packages/js-toolkit/docs/api/configuration.md rename packages/{v4 => js-toolkit}/docs/api/context/createContext.md (64%) rename packages/{v4 => js-toolkit}/docs/api/context/createGroup.md (97%) rename packages/{v4 => js-toolkit}/docs/api/context/index.md (97%) rename packages/{v4 => js-toolkit}/docs/api/context/injectContext.md (95%) rename packages/{v4 => js-toolkit}/docs/api/context/injectContextSync.md (92%) rename packages/{v4 => js-toolkit}/docs/api/context/provideContext.md (93%) rename packages/{v4 => js-toolkit}/docs/api/context/provideRootContext.md (94%) rename packages/{v4 => js-toolkit}/docs/api/context/signal.md (79%) rename packages/{v4 => js-toolkit}/docs/api/context/subscribeContext.md (97%) rename packages/{v4 => js-toolkit}/docs/api/decorators/children.md (76%) rename packages/{v4 => js-toolkit}/docs/api/decorators/component.md (50%) rename packages/{v4 => js-toolkit}/docs/api/decorators/index.md (96%) rename packages/{v4 => js-toolkit}/docs/api/decorators/inject.md (95%) rename packages/{v4 => js-toolkit}/docs/api/decorators/on.md (97%) rename packages/{v4 => js-toolkit}/docs/api/decorators/provide.md (93%) rename packages/{v4 => js-toolkit}/docs/api/decorators/read-write.md (57%) rename packages/{v4 => js-toolkit}/docs/api/diagnostics/DIAGNOSTICS.md (82%) rename packages/{v4 => js-toolkit}/docs/api/diagnostics/EVENTS.md (65%) rename packages/{v4 => js-toolkit}/docs/api/diagnostics/index.md (97%) rename packages/{v4 => js-toolkit}/docs/api/diagnostics/reportDiagnostic.md (72%) rename packages/{v4 => js-toolkit}/docs/api/diagnostics/warn.md (84%) rename packages/{v4 => js-toolkit}/docs/api/dom/breakpoints.md (81%) rename packages/{v4 => js-toolkit}/docs/api/dom/domUpdate.md (100%) rename packages/{v4 => js-toolkit}/docs/api/dom/emitExtendable.md (100%) rename packages/{v4 => js-toolkit}/docs/api/dom/index.md (100%) rename packages/{v4 => js-toolkit}/docs/api/dom/swap.md (58%) rename packages/{v4 => js-toolkit}/docs/api/dom/watchAttributeNamespace.md (100%) rename packages/{v4 => js-toolkit}/docs/api/dom/watchAttributes.md (61%) rename packages/{v4 => js-toolkit}/docs/api/dom/whenDOMSettled.md (55%) rename packages/{v4 => js-toolkit}/docs/api/html/data-component.md (94%) rename packages/{v4 => js-toolkit}/docs/api/html/data-mount.md (100%) rename packages/{v4 => js-toolkit}/docs/api/html/data-option.md (100%) rename packages/{v4 => js-toolkit}/docs/api/html/data-ref.md (100%) rename packages/{v4 => js-toolkit}/docs/api/html/index.md (100%) rename packages/{v4 => js-toolkit}/docs/api/index.md (61%) rename packages/{v4 => js-toolkit}/docs/api/instance-events.md (61%) rename packages/{v4 => js-toolkit}/docs/api/instance-methods.md (53%) rename packages/{v4 => js-toolkit}/docs/api/instance-properties.md (100%) create mode 100644 packages/js-toolkit/docs/api/methods-hooks-events.md create mode 100644 packages/js-toolkit/docs/api/methods-hooks-lifecycle.md create mode 100644 packages/js-toolkit/docs/api/methods-hooks-options.md rename packages/{v4 => js-toolkit}/docs/api/methods-hooks-services.md (50%) rename packages/{v4 => js-toolkit}/docs/api/registry/defineManifest.md (100%) rename packages/{v4 => js-toolkit}/docs/api/registry/fromMetaGlob.md (100%) rename packages/{v4 => js-toolkit}/docs/api/registry/fromWebpackContext.md (100%) rename packages/{v4 => js-toolkit}/docs/api/registry/getInstance.md (96%) rename packages/{v4 => js-toolkit}/docs/api/registry/getInstances.md (52%) rename packages/{v4 => js-toolkit}/docs/api/registry/getMountedInstances.md (69%) rename packages/{v4 => js-toolkit}/docs/api/registry/getUnmountedInstances.md (89%) rename packages/{v4 => js-toolkit}/docs/api/registry/index.md (100%) rename packages/{v4 => js-toolkit}/docs/api/registry/registerComponent.md (58%) create mode 100644 packages/js-toolkit/docs/api/registry/registerComponents.md rename packages/{v4 => js-toolkit}/docs/api/registry/registerManifest.md (100%) rename packages/{v4 => js-toolkit}/docs/api/scheduler/defaultScheduler.md (82%) rename packages/{v4 => js-toolkit}/docs/api/scheduler/index.md (100%) create mode 100644 packages/js-toolkit/docs/api/scheduler/nextFrame.md rename packages/{v4 => js-toolkit}/docs/api/scheduler/viewTransition.md (59%) rename packages/{v4 => js-toolkit}/docs/api/services/createService.md (52%) rename packages/{v4 => js-toolkit}/docs/api/services/createServiceMixin.md (97%) rename packages/{v4 => js-toolkit}/docs/api/services/index.md (100%) rename packages/{v4 => js-toolkit}/docs/api/services/mixins.md (56%) create mode 100644 packages/js-toolkit/docs/api/services/perTarget.md create mode 100644 packages/js-toolkit/docs/api/services/toggle.md rename packages/{v4 => js-toolkit}/docs/api/services/until.md (59%) rename packages/{v4 => js-toolkit}/docs/api/services/useBreakpoint.md (64%) create mode 100644 packages/js-toolkit/docs/api/services/useDrag.md create mode 100644 packages/js-toolkit/docs/api/services/useInView.md create mode 100644 packages/js-toolkit/docs/api/services/useKey.md create mode 100644 packages/js-toolkit/docs/api/services/useMediaQuery.md create mode 100644 packages/js-toolkit/docs/api/services/useMutation.md create mode 100644 packages/js-toolkit/docs/api/services/usePointer.md create mode 100644 packages/js-toolkit/docs/api/services/usePrefersReducedMotion.md create mode 100644 packages/js-toolkit/docs/api/services/useRaf.md create mode 100644 packages/js-toolkit/docs/api/services/useResize.md create mode 100644 packages/js-toolkit/docs/api/services/useScroll.md rename packages/{v4 => js-toolkit}/docs/api/services/useScrollProgress.md (55%) create mode 100644 packages/js-toolkit/docs/api/services/useWindowScroll.md create mode 100644 packages/js-toolkit/docs/api/services/useWindowSize.md rename packages/{v4 => js-toolkit}/docs/api/storage/createStorage.md (67%) rename packages/{v4 => js-toolkit}/docs/api/storage/index.md (100%) rename packages/{v4 => js-toolkit}/docs/api/storage/presets.md (66%) rename packages/{v4 => js-toolkit}/docs/api/storage/providers.md (52%) rename packages/{v4 => js-toolkit}/docs/api/test/index.md (100%) rename packages/{v4 => js-toolkit}/docs/guide/concepts/attribute-grammar.md (100%) rename packages/{v4 => js-toolkit}/docs/guide/concepts/mutation-engine.md (100%) rename packages/{v4 => js-toolkit}/docs/guide/concepts/philosophy.md (96%) rename packages/{v4 => js-toolkit}/docs/guide/concepts/the-registry.md (93%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/autoloading.md (100%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/handling-diagnostics.md (74%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/mount-strategies.md (86%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/scheduling-work.md (58%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/sharing-state.md (87%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/swapping-content.md (63%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/testing-components.md (100%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/typing-components.md (50%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/using-decorators.md (64%) rename packages/{v4 => js-toolkit}/docs/guide/going-further/using-storage.md (50%) create mode 100644 packages/js-toolkit/docs/guide/index.md rename packages/{v4 => js-toolkit}/docs/guide/introduction/installation.md (76%) create mode 100644 packages/js-toolkit/docs/guide/introduction/lifecycle-hooks.md create mode 100644 packages/js-toolkit/docs/guide/introduction/managing-components.md create mode 100644 packages/js-toolkit/docs/guide/introduction/managing-options.md create mode 100644 packages/js-toolkit/docs/guide/introduction/managing-refs.md create mode 100644 packages/js-toolkit/docs/guide/introduction/using-services.md create mode 100644 packages/js-toolkit/docs/guide/introduction/working-with-events.md rename packages/{v4 => js-toolkit}/docs/guide/migration/v3-to-v4.md (100%) rename packages/{v4 => js-toolkit}/docs/index.md (100%) rename packages/{ => js-toolkit}/docs/public/logo.png (100%) rename packages/{v4 => js-toolkit}/docs/utils/css.md (56%) rename packages/{v4 => js-toolkit}/docs/utils/dom.md (73%) rename packages/{v4 => js-toolkit}/docs/utils/easings.md (66%) rename packages/{v4 => js-toolkit}/docs/utils/focus.md (50%) create mode 100644 packages/js-toolkit/docs/utils/history.md rename packages/{v4 => js-toolkit}/docs/utils/index.md (91%) rename packages/{v4 => js-toolkit}/docs/utils/is.md (56%) rename packages/{v4 => js-toolkit}/docs/utils/load.md (69%) rename packages/{v4 => js-toolkit}/docs/utils/math.md (67%) rename packages/{v4 => js-toolkit}/docs/utils/motion.md (64%) rename packages/{v4 => js-toolkit}/docs/utils/objects.md (73%) rename packages/{v4 => js-toolkit}/docs/utils/scroll.md (66%) rename packages/{v4 => js-toolkit}/docs/utils/strings.md (72%) rename packages/{v4 => js-toolkit}/docs/utils/timing.md (62%) rename packages/{v4 => js-toolkit}/docs/utils/transitions.md (61%) rename packages/{v4 => js-toolkit}/docs/vite.config.ts (100%) rename packages/{v4 => js-toolkit}/migration/Accordion/Accordion.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Accordion/Accordion.ts (100%) rename packages/{v4 => js-toolkit}/migration/Accordion/AccordionCore.ts (100%) rename packages/{v4 => js-toolkit}/migration/Accordion/AccordionItem.ts (100%) rename packages/{v4 => js-toolkit}/migration/Accordion/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/Action.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/Action.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/ActionEvent.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/Target.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/expression.ts (100%) rename packages/{v4 => js-toolkit}/migration/Action/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNav.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNav.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNavLink.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNavLink.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNavTarget.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/AnchorNavTarget.ts (100%) rename packages/{v4 => js-toolkit}/migration/AnchorNav/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/AbstractCarouselChild.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/AbstractCarouselComponent.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/Carousel.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/Carousel.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/CarouselBtn.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/CarouselDrag.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/CarouselItem.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/CarouselWrapper.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/Indexable.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/context.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Carousel/utils.ts (100%) rename packages/{v4 => js-toolkit}/migration/ClickOutside/ClickOutside.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/ClickOutside/ClickOutside.ts (100%) rename packages/{v4 => js-toolkit}/migration/ClickOutside/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Cursor/Cursor.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Cursor/Cursor.ts (100%) rename packages/{v4 => js-toolkit}/migration/Cursor/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataBind.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataBind.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataComputed.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataDerived.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataEffect.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataModel.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataScope.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/DataScope.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/expression.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/formControl.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Data/registry.ts (100%) rename packages/{v4 => js-toolkit}/migration/Dialog/Dialog.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Dialog/Dialog.ts (100%) rename packages/{v4 => js-toolkit}/migration/Dialog/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Draggable/Draggable.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Draggable/Draggable.ts (100%) rename packages/{v4 => js-toolkit}/migration/Draggable/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/Fetch.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/Fetch.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/FetchShopifyPartial.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/FetchShopifyPartial.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/FetchShopifySection.ts (100%) rename packages/{v4 => js-toolkit}/migration/Fetch/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/AbstractFigure.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/AbstractFigure.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/AbstractFigureDynamic.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/Figure.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/FigureShopify.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/FigureShopify.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/FigureTwicpics.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/FigureTwicpics.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Figure/utils.ts (100%) rename packages/{v4 => js-toolkit}/migration/FigureVideo/FigureVideo.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/FigureVideo/FigureVideo.ts (100%) rename packages/{v4 => js-toolkit}/migration/FigureVideo/FigureVideoTwicpics.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/FigureVideo/FigureVideoTwicpics.ts (100%) rename packages/{v4 => js-toolkit}/migration/FigureVideo/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Hoverable/Hoverable.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Hoverable/Hoverable.ts (100%) rename packages/{v4 => js-toolkit}/migration/Hoverable/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/InView/InView.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/InView/InView.ts (100%) rename packages/{v4 => js-toolkit}/migration/InView/InViewOnce.ts (100%) rename packages/{v4 => js-toolkit}/migration/InView/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/LazyInclude/LazyInclude.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/LazyInclude/LazyInclude.ts (100%) rename packages/{v4 => js-toolkit}/migration/LazyInclude/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/Menu.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/Menu.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/MenuBtn.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/MenuBtn.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/MenuList.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/MenuList.ts (100%) rename packages/{v4 => js-toolkit}/migration/Menu/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Prefetch/AbstractPrefetch.ts (100%) rename packages/{v4 => js-toolkit}/migration/Prefetch/Prefetch.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Prefetch/PrefetchOnInteraction.ts (100%) rename packages/{v4 => js-toolkit}/migration/Prefetch/PrefetchWhenVisible.ts (100%) rename packages/{v4 => js-toolkit}/migration/Prefetch/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/REPORT.md (99%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/AbstractScrollAnimation.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/ScrollAnimation.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/ScrollAnimationTarget.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/ScrollAnimationTimeline.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/bezier.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/keyframes.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/keyframes.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollAnimation/withScrolledInView.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollTo/ScrollTo.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollTo/ScrollTo.ts (100%) rename packages/{v4 => js-toolkit}/migration/ScrollTo/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sentinel/Sentinel.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sentinel/Sentinel.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sentinel/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/Slider.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/Slider.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderBtn.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderCount.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderDots.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderDots.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderDrag.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderDrag.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderItem.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderProgress.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/SliderProgress.ts (100%) rename packages/{v4 => js-toolkit}/migration/Slider/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sticky/Sticky.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sticky/Sticky.ts (100%) rename packages/{v4 => js-toolkit}/migration/Sticky/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Timer/Timer.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Timer/Timer.ts (100%) rename packages/{v4 => js-toolkit}/migration/Timer/TimerProgress.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Timer/TimerProgress.ts (100%) rename packages/{v4 => js-toolkit}/migration/Timer/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Toaster/Toast.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Toaster/Toast.ts (100%) rename packages/{v4 => js-toolkit}/migration/Toaster/Toaster.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Toaster/Toaster.ts (100%) rename packages/{v4 => js-toolkit}/migration/Toaster/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/AbstractTrack.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/Track.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/Track.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/TrackContext.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/TrackEvent.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/TrackEvent.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/TrackShopify.ts (100%) rename packages/{v4 => js-toolkit}/migration/Track/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Transition/Transition.ts (100%) rename packages/{v4 => js-toolkit}/migration/Transition/ViewTransition.ts (100%) rename packages/{v4 => js-toolkit}/migration/Transition/index.ts (100%) rename packages/{v4 => js-toolkit}/migration/Transition/withTransition.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/Transition/withTransition.ts (100%) rename packages/{v4 => js-toolkit}/migration/event-modifiers.ts (100%) rename packages/{v4 => js-toolkit}/migration/expression.spec.ts (100%) rename packages/{v4 => js-toolkit}/migration/expression.ts (100%) rename packages/{v4 => js-toolkit}/migration/index.ts (100%) rename packages/{v4 => js-toolkit}/scripts/build-runtime-fixtures.js (100%) rename packages/{v4 => js-toolkit}/scripts/check-constant-subpaths.js (95%) rename packages/{v4 => js-toolkit}/scripts/check-diagnostics.js (100%) rename packages/{v4 => js-toolkit}/scripts/check-doc-links.js (100%) rename packages/{v4 => js-toolkit}/scripts/check-package.js (93%) delete mode 100644 packages/js-toolkit/scripts/measure-graph.js delete mode 100644 packages/js-toolkit/scripts/utils/set-version.js rename packages/{v4 => js-toolkit}/src/Base.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/Base.ts (100%) delete mode 100644 packages/js-toolkit/src/Base/Base.spec.ts delete mode 100644 packages/js-toolkit/src/Base/Base.ts delete mode 100644 packages/js-toolkit/src/Base/__snapshots__/Base.spec.ts.snap delete mode 100644 packages/js-toolkit/src/Base/features.spec.ts delete mode 100644 packages/js-toolkit/src/Base/features.ts delete mode 100644 packages/js-toolkit/src/Base/index.spec.ts delete mode 100644 packages/js-toolkit/src/Base/index.ts delete mode 100644 packages/js-toolkit/src/Base/managers/AbstractManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ChildrenManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ChildrenManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/EventsManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/EventsManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/OptionsManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/OptionsManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/RefsManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/RefsManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ResponsiveOptionsManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ResponsiveOptionsManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ServicesManager.spec.ts delete mode 100644 packages/js-toolkit/src/Base/managers/ServicesManager.ts delete mode 100644 packages/js-toolkit/src/Base/managers/index.ts delete mode 100644 packages/js-toolkit/src/Base/parent-resolution-residual.spec.ts delete mode 100644 packages/js-toolkit/src/Base/query-closest.spec.ts delete mode 100644 packages/js-toolkit/src/Base/types.ts delete mode 100644 packages/js-toolkit/src/Base/utils.spec.ts delete mode 100644 packages/js-toolkit/src/Base/utils.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/animate.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/base.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/mount-at-scale.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/mount-at-scale.fixtures.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/mount-at-scale.profile.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/parent-resolution.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/query-resolution.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/scheduler.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/services.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/transform.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/tween.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/v3-vs-v4.bench.ts delete mode 100644 packages/js-toolkit/src/__benchmarks__/withScrolledInView.bench.ts delete mode 100644 packages/js-toolkit/src/__utils__/event.ts delete mode 100644 packages/js-toolkit/src/__utils__/faketimers.ts delete mode 100644 packages/js-toolkit/src/__utils__/h.ts delete mode 100644 packages/js-toolkit/src/__utils__/happydom.ts delete mode 100644 packages/js-toolkit/src/__utils__/index.ts delete mode 100644 packages/js-toolkit/src/__utils__/lifecycle.ts delete mode 100644 packages/js-toolkit/src/__utils__/matchMedia.ts delete mode 100644 packages/js-toolkit/src/__utils__/mockFeatures.ts delete mode 100644 packages/js-toolkit/src/__utils__/mockIntersectionObserver.ts delete mode 100644 packages/js-toolkit/src/__utils__/mockLoad.ts delete mode 100644 packages/js-toolkit/src/__utils__/mockRequestIdleCallback.ts delete mode 100644 packages/js-toolkit/src/__utils__/resizeWindow.ts delete mode 100644 packages/js-toolkit/src/__utils__/scroll.ts rename packages/{v4 => js-toolkit}/src/attribute-namespaces.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/attribute-namespaces.ts (100%) rename packages/{v4 => js-toolkit}/src/attributes.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/attributes.ts (100%) rename packages/{v4 => js-toolkit}/src/autoload.spec.ts (100%) delete mode 100644 packages/js-toolkit/src/autoload/autoload.spec.ts delete mode 100644 packages/js-toolkit/src/autoload/autoload.ts delete mode 100644 packages/js-toolkit/src/autoload/define-manifest.spec.ts delete mode 100644 packages/js-toolkit/src/autoload/define-manifest.ts delete mode 100644 packages/js-toolkit/src/autoload/index.ts delete mode 100644 packages/js-toolkit/src/autoload/loader.spec.ts delete mode 100644 packages/js-toolkit/src/autoload/loader.ts delete mode 100644 packages/js-toolkit/src/autoload/modules.ts delete mode 100644 packages/js-toolkit/src/autoload/runtime.spec.ts delete mode 100644 packages/js-toolkit/src/autoload/runtime.ts delete mode 100644 packages/js-toolkit/src/autoload/subpath-exports.spec.ts delete mode 100644 packages/js-toolkit/src/autoload/types.ts rename packages/{v4 => js-toolkit}/src/children-watchers.ts (100%) rename packages/{v4 => js-toolkit}/src/component-brand.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/component-brand.ts (92%) rename packages/{v4 => js-toolkit}/src/component-declarations.ts (100%) rename packages/{v4 => js-toolkit}/src/config-extension.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/context-subscription.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/context-subscription.ts (100%) rename packages/{v4 => js-toolkit}/src/context.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/context.ts (100%) rename packages/{v4 => js-toolkit}/src/decorators.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/decorators.ts (100%) delete mode 100644 packages/js-toolkit/src/decorators/index.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/index.ts delete mode 100644 packages/js-toolkit/src/decorators/withBreakpointManager.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withBreakpointManager.ts delete mode 100644 packages/js-toolkit/src/decorators/withBreakpointObserver.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withBreakpointObserver.ts delete mode 100644 packages/js-toolkit/src/decorators/withDrag.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withDrag.ts delete mode 100644 packages/js-toolkit/src/decorators/withExtraConfig.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withExtraConfig.ts delete mode 100644 packages/js-toolkit/src/decorators/withFreezedOptions.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withFreezedOptions.ts delete mode 100644 packages/js-toolkit/src/decorators/withGroup.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withGroup.ts delete mode 100644 packages/js-toolkit/src/decorators/withIntersectionObserver.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withIntersectionObserver.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountOnMediaQuery.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountOnMediaQuery.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountWhenInView.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountWhenInView.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountWhenPrefersMotion.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withMountWhenPrefersMotion.ts delete mode 100644 packages/js-toolkit/src/decorators/withMutation.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withMutation.ts delete mode 100644 packages/js-toolkit/src/decorators/withName.ts delete mode 100644 packages/js-toolkit/src/decorators/withRelativePointer.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withRelativePointer.ts delete mode 100644 packages/js-toolkit/src/decorators/withResponsiveOptions.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withResponsiveOptions.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/index.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/types.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/utils.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/utils.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/withScrolledInView.spec.ts delete mode 100644 packages/js-toolkit/src/decorators/withScrolledInView/withScrolledInView.ts rename packages/{v4 => js-toolkit}/src/diagnostic-contract.ts (100%) rename packages/{v4 => js-toolkit}/src/diagnostics.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/diagnostics.ts (100%) rename packages/{v4 => js-toolkit}/src/document-order.ts (100%) rename packages/{v4 => js-toolkit}/src/dom-mutations.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/dom-mutations.ts (100%) rename packages/{v4 => js-toolkit}/src/duplicate-runtime.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/events.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/events.ts (100%) rename packages/{v4 => js-toolkit}/src/exports.spec.ts (88%) delete mode 100644 packages/js-toolkit/src/global.d.ts rename packages/{v4 => js-toolkit}/src/group.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/group.ts (100%) delete mode 100644 packages/js-toolkit/src/helpers/createApp.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/createApp.ts delete mode 100644 packages/js-toolkit/src/helpers/defineFeatures.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/defineFeatures.ts delete mode 100644 packages/js-toolkit/src/helpers/getClosestParent.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/getClosestParent.ts delete mode 100644 packages/js-toolkit/src/helpers/getDirectChildren.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/getDirectChildren.ts delete mode 100644 packages/js-toolkit/src/helpers/getInstanceFromElement.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/getInstanceFromElement.ts delete mode 100644 packages/js-toolkit/src/helpers/importOnInteraction.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/importOnInteraction.ts delete mode 100644 packages/js-toolkit/src/helpers/importOnMediaQuery.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/importOnMediaQuery.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenIdle.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenIdle.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenPrefersMotion.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenPrefersMotion.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenVisible.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/importWhenVisible.ts delete mode 100644 packages/js-toolkit/src/helpers/index.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/index.ts delete mode 100644 packages/js-toolkit/src/helpers/logTree.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/logTree.ts delete mode 100644 packages/js-toolkit/src/helpers/queryComponent.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/queryComponent.ts delete mode 100644 packages/js-toolkit/src/helpers/registerComponent.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/registerComponent.ts delete mode 100644 packages/js-toolkit/src/helpers/registerComponents.spec.ts delete mode 100644 packages/js-toolkit/src/helpers/registerComponents.ts delete mode 100644 packages/js-toolkit/src/helpers/utils.ts delete mode 100644 packages/js-toolkit/src/index.spec.ts rename packages/{v4 => js-toolkit}/src/instances.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/instances.ts (100%) rename packages/{v4 => js-toolkit}/src/manifest.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/manifest.ts (100%) rename packages/{v4 => js-toolkit}/src/mount-at-scale.bench.ts (98%) rename packages/{v4 => js-toolkit}/src/mount-at-scale.fixtures.ts (100%) rename packages/{v4 => js-toolkit}/src/mount-at-scale.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/mount-strategies.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/mount-strategies.ts (100%) rename packages/{v4 => js-toolkit}/src/mount-strategies.unit.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/mount.bench.ts (100%) rename packages/{v4 => js-toolkit}/src/negotiated-events.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/negotiated-events.ts (100%) rename packages/{v4 => js-toolkit}/src/props.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/protocol-symbols.spec.ts (83%) rename packages/{v4 => js-toolkit}/src/protocol-symbols.ts (87%) rename packages/{v4 => js-toolkit}/src/registry.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/registry.ts (99%) rename packages/{v4 => js-toolkit}/src/responsive-components.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/responsive-options.bench.ts (100%) rename packages/{v4 => js-toolkit}/src/responsive-options.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/responsive-options.ts (100%) rename packages/{v4 => js-toolkit}/src/scheduler.bench.ts (100%) rename packages/{v4 => js-toolkit}/src/scheduler.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/scheduler.ts (100%) delete mode 100644 packages/js-toolkit/src/services/AbstractService.spec.ts delete mode 100644 packages/js-toolkit/src/services/AbstractService.ts delete mode 100644 packages/js-toolkit/src/services/DragService.spec.ts delete mode 100644 packages/js-toolkit/src/services/DragService.ts delete mode 100644 packages/js-toolkit/src/services/KeyService.spec.ts delete mode 100644 packages/js-toolkit/src/services/KeyService.ts delete mode 100644 packages/js-toolkit/src/services/LoadService.spec.ts delete mode 100644 packages/js-toolkit/src/services/LoadService.ts delete mode 100644 packages/js-toolkit/src/services/MutationService.spec.ts delete mode 100644 packages/js-toolkit/src/services/MutationService.ts delete mode 100644 packages/js-toolkit/src/services/PointerService.spec.ts delete mode 100644 packages/js-toolkit/src/services/PointerService.ts delete mode 100644 packages/js-toolkit/src/services/RafService.spec.ts delete mode 100644 packages/js-toolkit/src/services/RafService.ts delete mode 100644 packages/js-toolkit/src/services/ResizeService.spec.ts delete mode 100644 packages/js-toolkit/src/services/ResizeService.ts delete mode 100644 packages/js-toolkit/src/services/ScrollService.spec.ts delete mode 100644 packages/js-toolkit/src/services/ScrollService.ts rename packages/{v4 => js-toolkit}/src/services/breakpoint.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/breakpoint.ts (100%) rename packages/{v4 => js-toolkit}/src/services/drag.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/drag.ts (100%) rename packages/{v4 => js-toolkit}/src/services/in-view.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/in-view.ts (100%) delete mode 100644 packages/js-toolkit/src/services/index.spec.ts delete mode 100644 packages/js-toolkit/src/services/index.ts rename packages/{v4 => js-toolkit}/src/services/key.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/key.ts (100%) rename packages/{v4 => js-toolkit}/src/services/media.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/media.ts (100%) rename packages/{v4 => js-toolkit}/src/services/mixin.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/mixin.ts (100%) rename packages/{v4 => js-toolkit}/src/services/mutation.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/mutation.ts (100%) rename packages/{v4 => js-toolkit}/src/services/pointer.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/pointer.ts (100%) rename packages/{v4 => js-toolkit}/src/services/raf.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/raf.ts (100%) rename packages/{v4 => js-toolkit}/src/services/resize.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/resize.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll-progress-offset.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll-progress-offset.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll-progress.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll-progress.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/scroll.ts (100%) rename packages/{v4 => js-toolkit}/src/services/service.bench.ts (99%) rename packages/{v4 => js-toolkit}/src/services/service.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/service.ts (100%) rename packages/{v4 => js-toolkit}/src/services/shape.bench.ts (100%) rename packages/{v4 => js-toolkit}/src/services/toggle.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/toggle.ts (100%) rename packages/{v4 => js-toolkit}/src/services/until.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/services/until.ts (100%) delete mode 100644 packages/js-toolkit/src/services/utils.ts rename packages/{v4 => js-toolkit}/src/shared-runtime.spec.ts (94%) rename packages/{v4 => js-toolkit}/src/shared-runtime.ts (90%) rename packages/{v4 => js-toolkit}/src/storage/createStorage.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/createStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/index.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/providers.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/providers.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/serializers.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/sync.ts (100%) rename packages/{v4 => js-toolkit}/src/storage/types.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/AbstractService.ts rename packages/{v4 => js-toolkit}/src/subpaths/BREAKPOINTS.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/ComponentLoader.ts delete mode 100644 packages/js-toolkit/src/subpaths/DEFAULT_DIAGNOSTIC_PREFIX.ts rename packages/{v4 => js-toolkit}/src/subpaths/DIAGNOSTICS.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/DRAG_MODES.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/DragService.ts rename packages/{v4 => js-toolkit}/src/subpaths/EVENTS.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/IDLE_TIMEOUT.ts delete mode 100644 packages/js-toolkit/src/subpaths/KeyService.ts delete mode 100644 packages/js-toolkit/src/subpaths/LoadService.ts rename packages/{v4 => js-toolkit}/src/subpaths/MOUNT_ATTRIBUTE.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/MutationService.ts delete mode 100644 packages/js-toolkit/src/subpaths/PointerService.ts delete mode 100644 packages/js-toolkit/src/subpaths/RafService.ts delete mode 100644 packages/js-toolkit/src/subpaths/ResizeService.ts rename packages/{v4 => js-toolkit}/src/subpaths/SWAP_MODES.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/ScrollService.ts delete mode 100644 packages/js-toolkit/src/subpaths/VISIBLE_ROOT_MARGIN.ts delete mode 100644 packages/js-toolkit/src/subpaths/autoload.ts rename packages/{v4 => js-toolkit}/src/subpaths/children.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/closestComponent.ts rename packages/{v4 => js-toolkit}/src/subpaths/component.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/composeManifests.ts delete mode 100644 packages/js-toolkit/src/subpaths/createApp.ts rename packages/{v4 => js-toolkit}/src/subpaths/createContext.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createFallbackProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createGroup.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createLocalStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createMemoryStorageProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createService.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createServiceMixin.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createSessionStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createUrlSearchParamsInHashProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createUrlSearchParamsInHashStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createUrlSearchParamsProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/createUrlSearchParamsStorage.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/defaultScheduler.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/defineFeatures.ts rename packages/{v4 => js-toolkit}/src/subpaths/domUpdate.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/emitExtendable.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/getBreakpoints.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/getClosestParent.ts delete mode 100644 packages/js-toolkit/src/subpaths/getDirectChildren.ts rename packages/{v4 => js-toolkit}/src/subpaths/getInstance.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/getInstanceFromElement.ts rename packages/{v4 => js-toolkit}/src/subpaths/getMountedInstances.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/getScopedGroups.ts rename packages/{v4 => js-toolkit}/src/subpaths/getUnmountedInstances.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/importOnInteraction.ts delete mode 100644 packages/js-toolkit/src/subpaths/importOnMediaQuery.ts delete mode 100644 packages/js-toolkit/src/subpaths/importWhenIdle.ts delete mode 100644 packages/js-toolkit/src/subpaths/importWhenPrefersMotion.ts delete mode 100644 packages/js-toolkit/src/subpaths/importWhenVisible.ts rename packages/{v4 => js-toolkit}/src/subpaths/inject.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/injectContext.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/injectContextSync.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/isDirectChild.ts rename packages/{v4 => js-toolkit}/src/subpaths/jsonSerializer.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/localStorageProvider.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/logTree.ts rename packages/{v4 => js-toolkit}/src/subpaths/memoryStorageProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/namespaceQualifier.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/nextFrame.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/on.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/perTarget.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/provide.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/provideContext.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/provideRootContext.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/queryComponent.ts delete mode 100644 packages/js-toolkit/src/subpaths/queryComponentAll.ts rename packages/{v4 => js-toolkit}/src/subpaths/read.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/readEagerTokens.ts delete mode 100644 packages/js-toolkit/src/subpaths/registerManifests.ts rename packages/{v4 => js-toolkit}/src/subpaths/reportDiagnostic.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/sessionStorageProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/setBreakpoints.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/signal.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/subscribeContext.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/swap.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/toggle.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/until.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/urlSearchParamsInHashProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/urlSearchParamsProvider.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/useBreakpoint.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/useInView.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/useLoad.ts rename packages/{v4 => js-toolkit}/src/subpaths/useMediaQuery.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/usePrefersReducedMotion.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/useScrollProgress.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/useWindowScroll.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/useWindowSize.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/DEFAULT_DAMP_FACTOR.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/INERTIA_FRAME.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/MAX_SPRING_RATIO.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/Queue.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/SCROLL_ALIGNMENTS.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/SCROLL_AXES.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/SmartQueue.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/TRANSFORM_PROPS.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/TRANSITION_OPTIONS.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/addClass.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/addStyle.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/animate.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/boundingRectToCircle.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/cache.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/capitalize.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/clampDampFactor.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/collideCircleCircle.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/collideCircleRect.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/collidePointCircle.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/collidePointRect.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/collideRectRect.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createLocalStorage.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createLocalStorageProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createMemoryStorageProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createNoopProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createSessionStorage.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createSessionStorageProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createStorage.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createUrlSearchParamsInHashProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createUrlSearchParamsInHashStorage.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createUrlSearchParamsProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/createUrlSearchParamsStorage.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/dashCase.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/decayOver.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/deepmerge.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/domScheduler.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/ease.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/endsWith.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/enterTransition.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/getAncestorWhere.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/getAncestorWhereUntil.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/getComponentResolver.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/hasWindow.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/inertiaDecay.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/inertiaStep.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/inertiaTimeConstant.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/isArray.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/isDev.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/isEmpty.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/isEmptyString.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/kebabCase.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/keyCodes.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/leaveTransition.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/loadElement.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/loadIframe.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/localStorageProvider.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/lockScroll.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/memoize.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/memoryStorageProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/nextFrame.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/nextMicrotask.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/nextTick.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/removeClass.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/removeStyle.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/scrollPosition.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/utils/selectorFor.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/sessionStorageProvider.ts rename packages/{v4 => js-toolkit}/src/subpaths/utils/setClassesOrStyles.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/utils/startsWith.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/toggleClass.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/tween.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/urlSearchParamsInHashProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/urlSearchParamsProvider.ts delete mode 100644 packages/js-toolkit/src/subpaths/utils/useScheduler.ts delete mode 100644 packages/js-toolkit/src/subpaths/version.ts rename packages/{v4 => js-toolkit}/src/subpaths/viewTransition.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/warn.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/watchAttributeNamespace.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/watchAttributes.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/whenDOMSettled.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withBreakpointManager.ts delete mode 100644 packages/js-toolkit/src/subpaths/withBreakpointObserver.ts delete mode 100644 packages/js-toolkit/src/subpaths/withExtraConfig.ts delete mode 100644 packages/js-toolkit/src/subpaths/withFreezedOptions.ts delete mode 100644 packages/js-toolkit/src/subpaths/withGroup.ts rename packages/{v4 => js-toolkit}/src/subpaths/withInView.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withIntersectionObserver.ts rename packages/{v4 => js-toolkit}/src/subpaths/withKey.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withMountOnMediaQuery.ts delete mode 100644 packages/js-toolkit/src/subpaths/withMountWhenInView.ts delete mode 100644 packages/js-toolkit/src/subpaths/withMountWhenPrefersMotion.ts delete mode 100644 packages/js-toolkit/src/subpaths/withName.ts rename packages/{v4 => js-toolkit}/src/subpaths/withPointer.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/withRaf.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withRelativePointer.ts rename packages/{v4 => js-toolkit}/src/subpaths/withResize.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withResponsiveOptions.ts rename packages/{v4 => js-toolkit}/src/subpaths/withScroll.ts (100%) rename packages/{v4 => js-toolkit}/src/subpaths/withScrollProgress.ts (100%) delete mode 100644 packages/js-toolkit/src/subpaths/withScrolledInView.ts rename packages/{v4 => js-toolkit}/src/subpaths/write.ts (100%) rename packages/{v4 => js-toolkit}/src/swap.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/swap.ts (100%) rename packages/{v4 => js-toolkit}/src/test/index.spec.ts (99%) rename packages/{v4 => js-toolkit}/src/test/index.ts (98%) rename packages/{v4 => js-toolkit}/src/todo.fixtures.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/Queue.spec.ts delete mode 100644 packages/js-toolkit/src/utils/Queue.ts delete mode 100644 packages/js-toolkit/src/utils/SmartQueue.spec.ts delete mode 100644 packages/js-toolkit/src/utils/SmartQueue.ts delete mode 100644 packages/js-toolkit/src/utils/cache.spec.ts delete mode 100644 packages/js-toolkit/src/utils/cache.ts delete mode 100644 packages/js-toolkit/src/utils/collide/boundingRectToCircle.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/boundingRectToCircle.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideCircleCircle.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideCircleCircle.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideCircleRect.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideCircleRect.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collidePointCircle.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collidePointCircle.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collidePointRect.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collidePointRect.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideRectRect.spec.ts delete mode 100644 packages/js-toolkit/src/utils/collide/collideRectRect.ts delete mode 100644 packages/js-toolkit/src/utils/collide/index.ts delete mode 100644 packages/js-toolkit/src/utils/css/animate.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/animate.ts delete mode 100644 packages/js-toolkit/src/utils/css/classes.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/classes.ts delete mode 100644 packages/js-toolkit/src/utils/css/getOffsetSizes.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/getOffsetSizes.ts delete mode 100644 packages/js-toolkit/src/utils/css/index.ts delete mode 100644 packages/js-toolkit/src/utils/css/matrix.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/matrix.ts delete mode 100644 packages/js-toolkit/src/utils/css/styles.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/styles.ts delete mode 100644 packages/js-toolkit/src/utils/css/transform.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/transform.ts delete mode 100644 packages/js-toolkit/src/utils/css/transition.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/transition.ts delete mode 100644 packages/js-toolkit/src/utils/css/utils.spec.ts delete mode 100644 packages/js-toolkit/src/utils/css/utils.ts delete mode 100644 packages/js-toolkit/src/utils/debounce.spec.ts delete mode 100644 packages/js-toolkit/src/utils/debounce.ts rename packages/{v4 => js-toolkit}/src/utils/deepmerge.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/deepmerge.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/dom.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/dom.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/dom/ancestors.ts delete mode 100644 packages/js-toolkit/src/utils/dom/createElement.spec.ts delete mode 100644 packages/js-toolkit/src/utils/dom/createElement.ts delete mode 100644 packages/js-toolkit/src/utils/dom/index.ts rename packages/{v4 => js-toolkit}/src/utils/easings.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/easings.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/focus.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/focus.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/getComponentResolver.ts delete mode 100644 packages/js-toolkit/src/utils/has.ts delete mode 100644 packages/js-toolkit/src/utils/history.server.spec.ts delete mode 100644 packages/js-toolkit/src/utils/isDefined.spec.ts delete mode 100644 packages/js-toolkit/src/utils/isFunction.spec.ts delete mode 100644 packages/js-toolkit/src/utils/keyCodes.ts rename packages/{v4 => js-toolkit}/src/utils/load.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/load.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/loadElement.spec.ts delete mode 100644 packages/js-toolkit/src/utils/loadElement.ts delete mode 100644 packages/js-toolkit/src/utils/math/__snapshots__/ease.spec.ts.snap delete mode 100644 packages/js-toolkit/src/utils/math/clamp.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/clamp.ts delete mode 100644 packages/js-toolkit/src/utils/math/clamp01.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/clamp01.ts delete mode 100644 packages/js-toolkit/src/utils/math/createEases.ts delete mode 100644 packages/js-toolkit/src/utils/math/createRange.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/createRange.ts delete mode 100644 packages/js-toolkit/src/utils/math/damp.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/damp.ts delete mode 100644 packages/js-toolkit/src/utils/math/ease.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/ease.ts delete mode 100644 packages/js-toolkit/src/utils/math/fold.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/fold.ts delete mode 100644 packages/js-toolkit/src/utils/math/index.ts delete mode 100644 packages/js-toolkit/src/utils/math/inertiaFinalValue.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/inertiaFinalValue.ts delete mode 100644 packages/js-toolkit/src/utils/math/lerp.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/lerp.ts delete mode 100644 packages/js-toolkit/src/utils/math/map.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/map.ts delete mode 100644 packages/js-toolkit/src/utils/math/mean.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/mean.ts delete mode 100644 packages/js-toolkit/src/utils/math/round.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/round.ts delete mode 100644 packages/js-toolkit/src/utils/math/smoothTo.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/smoothTo.ts delete mode 100644 packages/js-toolkit/src/utils/math/spring.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/spring.ts delete mode 100644 packages/js-toolkit/src/utils/math/wrap.spec.ts delete mode 100644 packages/js-toolkit/src/utils/math/wrap.ts rename packages/{v4 => js-toolkit}/src/utils/maths.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/maths.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/memo.spec.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/memoize.spec.ts delete mode 100644 packages/js-toolkit/src/utils/memoize.ts delete mode 100644 packages/js-toolkit/src/utils/nextFrame.spec.ts delete mode 100644 packages/js-toolkit/src/utils/nextFrame.ts delete mode 100644 packages/js-toolkit/src/utils/nextMicrotask.ts delete mode 100644 packages/js-toolkit/src/utils/nextTick.spec.ts delete mode 100644 packages/js-toolkit/src/utils/nextTick.ts rename packages/{v4 => js-toolkit}/src/utils/noop.spec.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/object/getAllProperties.ts delete mode 100644 packages/js-toolkit/src/utils/scheduler.ts rename packages/{v4 => js-toolkit}/src/utils/scroll-lock.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/scroll-lock.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/selectors.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/selectors.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/smoothTo.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/smoothTo.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/storage.server.spec.ts delete mode 100644 packages/js-toolkit/src/utils/storage.spec.ts delete mode 100644 packages/js-toolkit/src/utils/storage.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createLocalStorageProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createMemoryStorageProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createNoopProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createSessionStorageProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createStorage.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createUrlSearchParamsInHashProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/createUrlSearchParamsProvider.ts delete mode 100644 packages/js-toolkit/src/utils/storage/getBrowserContext.ts delete mode 100644 packages/js-toolkit/src/utils/storage/getGlobalStorage.ts delete mode 100644 packages/js-toolkit/src/utils/storage/getStorageKeys.ts delete mode 100644 packages/js-toolkit/src/utils/storage/index.ts delete mode 100644 packages/js-toolkit/src/utils/storage/providers.ts delete mode 100644 packages/js-toolkit/src/utils/storage/serializers.ts delete mode 100644 packages/js-toolkit/src/utils/storage/types.ts delete mode 100644 packages/js-toolkit/src/utils/string/changeCase.spec.ts delete mode 100644 packages/js-toolkit/src/utils/string/changeCase.ts delete mode 100644 packages/js-toolkit/src/utils/string/endsWith.spec.ts delete mode 100644 packages/js-toolkit/src/utils/string/endsWith.ts delete mode 100644 packages/js-toolkit/src/utils/string/index.spec.ts delete mode 100644 packages/js-toolkit/src/utils/string/index.ts delete mode 100644 packages/js-toolkit/src/utils/string/startsWith.spec.ts delete mode 100644 packages/js-toolkit/src/utils/string/startsWith.ts delete mode 100644 packages/js-toolkit/src/utils/string/withLeadingCharacters.ts delete mode 100644 packages/js-toolkit/src/utils/string/withLeadingSlash.ts delete mode 100644 packages/js-toolkit/src/utils/string/withTrailingCharacters.ts delete mode 100644 packages/js-toolkit/src/utils/string/withTrailingSlash.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutLeadingCharacters.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutLeadingCharactersRecursive.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutLeadingSlash.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutTrailingCharacters.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutTrailingCharactersRecursive.ts delete mode 100644 packages/js-toolkit/src/utils/string/withoutTrailingSlash.ts rename packages/{v4 => js-toolkit}/src/utils/strings.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/strings.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/throttle.spec.ts delete mode 100644 packages/js-toolkit/src/utils/throttle.ts rename packages/{v4 => js-toolkit}/src/utils/timing.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/timing.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/transform.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/transform.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/transition.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/utils/transition.ts (100%) delete mode 100644 packages/js-toolkit/src/utils/trapFocus.spec.ts delete mode 100644 packages/js-toolkit/src/utils/trapFocus.ts delete mode 100644 packages/js-toolkit/src/utils/tween.spec.ts delete mode 100644 packages/js-toolkit/src/utils/tween.ts delete mode 100644 packages/js-toolkit/src/utils/wait.ts delete mode 100644 packages/js-toolkit/src/version.ts rename packages/{v4 => js-toolkit}/src/viewTransition.spec.ts (100%) rename packages/{v4 => js-toolkit}/src/viewTransition.ts (100%) rename packages/{v4 => js-toolkit}/test/package-browser-consumer.js (91%) rename packages/{v4 => js-toolkit}/test/package-node-consumer.js (86%) rename packages/{v4 => js-toolkit}/test/package-typescript-consumer.ts (87%) rename packages/{v4 => js-toolkit}/test/package-typescript-consumer.tsconfig.json (100%) rename packages/{v4 => js-toolkit}/test/runtime-copy-a.ts (57%) rename packages/{v4 => js-toolkit}/test/runtime-copy-b.ts (57%) rename packages/{v4 => js-toolkit}/test/runtime-fixture.html (100%) rename packages/{v4 => js-toolkit}/test/runtime-harness.js (98%) delete mode 100644 packages/js-toolkit/tsconfig.lint.json rename packages/{v4 => js-toolkit}/vite-plugin-decorators.js (69%) rename packages/{v4 => js-toolkit}/vitest.bench.config.js (88%) delete mode 100644 packages/js-toolkit/vitest.bench.config.ts rename packages/{v4 => js-toolkit}/vitest.config.js (77%) delete mode 100644 packages/js-toolkit/vitest.config.ts delete mode 100644 packages/v4/docs/.vitepress/theme/components/Loader.vue delete mode 100644 packages/v4/docs/.vitepress/theme/components/PreviewIframe.vue delete mode 100644 packages/v4/docs/.vitepress/theme/composables/useAllLinks.ts delete mode 100644 packages/v4/docs/.vitepress/theme/composables/useObserver.ts delete mode 100644 packages/v4/docs/.vitepress/theme/index.ts delete mode 100644 packages/v4/docs/.vitepress/theme/styles.css delete mode 100644 packages/v4/docs/api/configuration.md delete mode 100644 packages/v4/docs/api/methods-hooks-events.md delete mode 100644 packages/v4/docs/api/methods-hooks-lifecycle.md delete mode 100644 packages/v4/docs/api/methods-hooks-options.md delete mode 100644 packages/v4/docs/api/registry/registerComponents.md delete mode 100644 packages/v4/docs/api/scheduler/nextFrame.md delete mode 100644 packages/v4/docs/api/services/perTarget.md delete mode 100644 packages/v4/docs/api/services/toggle.md delete mode 100644 packages/v4/docs/api/services/useDrag.md delete mode 100644 packages/v4/docs/api/services/useInView.md delete mode 100644 packages/v4/docs/api/services/useKey.md delete mode 100644 packages/v4/docs/api/services/useMediaQuery.md delete mode 100644 packages/v4/docs/api/services/useMutation.md delete mode 100644 packages/v4/docs/api/services/usePointer.md delete mode 100644 packages/v4/docs/api/services/usePrefersReducedMotion.md delete mode 100644 packages/v4/docs/api/services/useRaf.md delete mode 100644 packages/v4/docs/api/services/useResize.md delete mode 100644 packages/v4/docs/api/services/useScroll.md delete mode 100644 packages/v4/docs/api/services/useWindowScroll.md delete mode 100644 packages/v4/docs/api/services/useWindowSize.md delete mode 100644 packages/v4/docs/guide/index.md delete mode 100644 packages/v4/docs/guide/introduction/lifecycle-hooks.md delete mode 100644 packages/v4/docs/guide/introduction/managing-components.md delete mode 100644 packages/v4/docs/guide/introduction/managing-options.md delete mode 100644 packages/v4/docs/guide/introduction/managing-refs.md delete mode 100644 packages/v4/docs/guide/introduction/using-services.md delete mode 100644 packages/v4/docs/guide/introduction/working-with-events.md delete mode 100644 packages/v4/docs/public/logo.png delete mode 100644 packages/v4/docs/utils/history.md delete mode 100644 packages/v4/package.json delete mode 100644 packages/v4/scripts/build.js delete mode 100644 packages/v4/src/coexistence.spec.ts delete mode 100644 packages/v4/src/index.ts delete mode 100644 packages/v4/src/subpaths/Base.ts delete mode 100644 packages/v4/src/subpaths/defineManifest.ts delete mode 100644 packages/v4/src/subpaths/fromMetaGlob.ts delete mode 100644 packages/v4/src/subpaths/fromWebpackContext.ts delete mode 100644 packages/v4/src/subpaths/getInstances.ts delete mode 100644 packages/v4/src/subpaths/registerComponent.ts delete mode 100644 packages/v4/src/subpaths/registerComponents.ts delete mode 100644 packages/v4/src/subpaths/registerManifest.ts delete mode 100644 packages/v4/src/subpaths/useDrag.ts delete mode 100644 packages/v4/src/subpaths/useKey.ts delete mode 100644 packages/v4/src/subpaths/useMutation.ts delete mode 100644 packages/v4/src/subpaths/usePointer.ts delete mode 100644 packages/v4/src/subpaths/useRaf.ts delete mode 100644 packages/v4/src/subpaths/useResize.ts delete mode 100644 packages/v4/src/subpaths/useScroll.ts delete mode 100644 packages/v4/src/subpaths/utils/camelCase.ts delete mode 100644 packages/v4/src/subpaths/utils/clamp.ts delete mode 100644 packages/v4/src/subpaths/utils/clamp01.ts delete mode 100644 packages/v4/src/subpaths/utils/createEaseInOut.ts delete mode 100644 packages/v4/src/subpaths/utils/createEaseOut.ts delete mode 100644 packages/v4/src/subpaths/utils/createElement.ts delete mode 100644 packages/v4/src/subpaths/utils/createRange.ts delete mode 100644 packages/v4/src/subpaths/utils/damp.ts delete mode 100644 packages/v4/src/subpaths/utils/debounce.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInCirc.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInCubic.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInExpo.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutCirc.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutCubic.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutExpo.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutQuad.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutQuart.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutQuint.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInOutSine.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInQuad.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInQuart.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInQuint.ts delete mode 100644 packages/v4/src/subpaths/utils/easeInSine.ts delete mode 100644 packages/v4/src/subpaths/utils/easeLinear.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutCirc.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutCubic.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutExpo.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutQuad.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutQuart.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutQuint.ts delete mode 100644 packages/v4/src/subpaths/utils/easeOutSine.ts delete mode 100644 packages/v4/src/subpaths/utils/fold.ts delete mode 100644 packages/v4/src/subpaths/utils/getOffsetSizes.ts delete mode 100644 packages/v4/src/subpaths/utils/historyPush.ts delete mode 100644 packages/v4/src/subpaths/utils/historyReplace.ts delete mode 100644 packages/v4/src/subpaths/utils/inertiaFinalValue.ts delete mode 100644 packages/v4/src/subpaths/utils/isBoolean.ts delete mode 100644 packages/v4/src/subpaths/utils/isDefined.ts delete mode 100644 packages/v4/src/subpaths/utils/isFunction.ts delete mode 100644 packages/v4/src/subpaths/utils/isNull.ts delete mode 100644 packages/v4/src/subpaths/utils/isNumber.ts delete mode 100644 packages/v4/src/subpaths/utils/isObject.ts delete mode 100644 packages/v4/src/subpaths/utils/isString.ts delete mode 100644 packages/v4/src/subpaths/utils/lerp.ts delete mode 100644 packages/v4/src/subpaths/utils/loadImage.ts delete mode 100644 packages/v4/src/subpaths/utils/loadLink.ts delete mode 100644 packages/v4/src/subpaths/utils/loadScript.ts delete mode 100644 packages/v4/src/subpaths/utils/lowerCase.ts delete mode 100644 packages/v4/src/subpaths/utils/map.ts delete mode 100644 packages/v4/src/subpaths/utils/matrix.ts delete mode 100644 packages/v4/src/subpaths/utils/mean.ts delete mode 100644 packages/v4/src/subpaths/utils/memo.ts delete mode 100644 packages/v4/src/subpaths/utils/noop.ts delete mode 100644 packages/v4/src/subpaths/utils/noopValue.ts delete mode 100644 packages/v4/src/subpaths/utils/objectToURLSearchParams.ts delete mode 100644 packages/v4/src/subpaths/utils/pascalCase.ts delete mode 100644 packages/v4/src/subpaths/utils/random.ts delete mode 100644 packages/v4/src/subpaths/utils/randomInt.ts delete mode 100644 packages/v4/src/subpaths/utils/randomItem.ts delete mode 100644 packages/v4/src/subpaths/utils/round.ts delete mode 100644 packages/v4/src/subpaths/utils/saveActiveElement.ts delete mode 100644 packages/v4/src/subpaths/utils/scrollTo.ts delete mode 100644 packages/v4/src/subpaths/utils/smoothTo.ts delete mode 100644 packages/v4/src/subpaths/utils/snakeCase.ts delete mode 100644 packages/v4/src/subpaths/utils/spring.ts delete mode 100644 packages/v4/src/subpaths/utils/throttle.ts delete mode 100644 packages/v4/src/subpaths/utils/transform.ts delete mode 100644 packages/v4/src/subpaths/utils/transition.ts delete mode 100644 packages/v4/src/subpaths/utils/trapFocus.ts delete mode 100644 packages/v4/src/subpaths/utils/untrapFocus.ts delete mode 100644 packages/v4/src/subpaths/utils/upperCase.ts delete mode 100644 packages/v4/src/subpaths/utils/wait.ts delete mode 100644 packages/v4/src/subpaths/utils/withLeadingCharacters.ts delete mode 100644 packages/v4/src/subpaths/utils/withLeadingSlash.ts delete mode 100644 packages/v4/src/subpaths/utils/withTrailingCharacters.ts delete mode 100644 packages/v4/src/subpaths/utils/withTrailingSlash.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutLeadingCharacters.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutLeadingCharactersRecursive.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutLeadingSlash.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutTrailingCharacters.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutTrailingCharactersRecursive.ts delete mode 100644 packages/v4/src/subpaths/utils/withoutTrailingSlash.ts delete mode 100644 packages/v4/src/subpaths/utils/wrap.ts delete mode 100644 packages/v4/src/subpaths/withDrag.ts delete mode 100644 packages/v4/src/subpaths/withMutation.ts delete mode 100644 packages/v4/src/utils/history.spec.ts delete mode 100644 packages/v4/src/utils/history.ts delete mode 100644 packages/v4/src/utils/index.spec.ts delete mode 100644 packages/v4/src/utils/index.ts delete mode 100644 packages/v4/src/utils/is.spec.ts delete mode 100644 packages/v4/src/utils/is.ts delete mode 100644 packages/v4/src/utils/memo.ts delete mode 100644 packages/v4/src/utils/noop.ts delete mode 100644 packages/v4/src/utils/random.spec.ts delete mode 100644 packages/v4/src/utils/random.ts delete mode 100644 packages/v4/src/utils/scrollTo.spec.ts delete mode 100644 packages/v4/src/utils/scrollTo.ts delete mode 100644 packages/v4/tsconfig.build.json delete mode 100644 packages/v4/tsconfig.coexistence.json delete mode 100644 packages/v4/tsconfig.json diff --git a/.github/actions/bench-diff/README.md b/.github/actions/bench-diff/README.md index 67aca6f65..e4028a35e 100644 --- a/.github/actions/bench-diff/README.md +++ b/.github/actions/bench-diff/README.md @@ -33,10 +33,10 @@ A browser suite, which needs a browser downloaded first: - uses: actions/checkout@v4 - uses: ./.github/actions/bench-diff with: - id: v4-mount - title: v4 mount benchmarks + id: mount + title: mount benchmarks unit: component - working-directory: packages/v4 + working-directory: packages/js-toolkit prepare: npx playwright install --with-deps chromium bench: npm exec vitest bench -- --config vitest.bench.config.js --run --outputJson "$BENCH_JSON" rounds: '3' @@ -49,9 +49,9 @@ A Node suite, which needs nothing extra — the only difference is the command: ```yaml - uses: ./.github/actions/bench-diff with: - id: v3 - title: v3 benchmarks - working-directory: packages/js-toolkit + id: utils + title: utils benchmarks + working-directory: packages/some-node-package bench: npm exec vitest bench -- --config vitest.bench.config.ts --run --outputJson "$BENCH_JSON" ``` diff --git a/.github/workflows/benchmarks-v3.yml b/.github/workflows/benchmarks-v3.yml deleted file mode 100644 index d65238e38..000000000 --- a/.github/workflows/benchmarks-v3.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: benchmarks-v3 - -# v3's benchmarks used to run under CodSpeed, in Node with happy-dom. Both -# halves of that are gone. -# -# CodSpeed went because it did not work: on the last twelve merged pull -# requests, none of which touched `packages/js-toolkit/`, it failed five times -# and every one merged anyway. On #829 alone it read fail, fail, pass, fail, -# pass while that package's content never changed. A check that fails on an -# unchanged package is not a signal, and a signal everyone has learned to -# ignore is worse than none. -# -# happy-dom went because the numbers were not comparable to anything. v4's -# suite runs in Chromium, and the two must share an environment before a -# v3-against-v4 figure means anything — and the browser is the honest one -# regardless: v3's `SmartQueue` yields through `setTimeout`, whose clamping, -# and the `longtask` accounting that goes with it, exist only in a browser. -# -# A separate file rather than a job in `benchmarks-v4.yml`, for the reason the -# bench-diff README gives: two suites in one job would share a base checkout, -# and only a workflow-level `paths:` filter can keep each one off the pull -# requests that do not concern it. - -on: - pull_request: - branches: - - main - paths: - - 'packages/js-toolkit/**' - # The cross-version benchmark imports v4's sources and reuses its SWC - # decorator plugin, so a v4-only change moves half of what this suite - # measures. Without these, the one comparison that can catch a v4 - # mounting regression against v3 would skip the pull requests most - # likely to cause one. - - 'packages/v4/src/**' - - 'packages/v4/vite-plugin-decorators.js' - - 'package-lock.json' - - '.github/actions/bench-diff/**' - - '.github/workflows/benchmarks-v3.yml' - -permissions: - contents: read - pull-requests: write - -jobs: - bench_diff: - name: Compare against the base commit - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/bench-diff - with: - id: v3-mount - title: v3 mount benchmarks - unit: component - working-directory: packages/js-toolkit - # No build: vitest runs the browser suite straight from TypeScript. - prepare: npx playwright install --with-deps chromium - # The at-scale file only, and one size. - # - # The other ten benchmark files are micro-benchmarks that were - # readable under CodSpeed's instruction counting and are not readable - # on a wall clock: Chromium clamps `performance.now()` to 100 us, so a - # benchmark whose whole body costs a microsecond reports zero. They - # stay in the suite for local use — `npm run bench` — and are not - # tracked here. - # - # The full size matrix is 100/1 000. CI samples 1 000, the size above - # the timer's resolution floor. 5 000 is deliberately not sampled: - # v3's queue drains with `Array#shift`, which V8 turns quadratic past - # ~16 000 entries, so one v3 swap there costs over five seconds. - # - # Set on the command rather than as step `env:`, which a composite - # action's steps do not reliably inherit. - bench: V3_BENCH_SIZES=1000 npm exec vitest bench -- --config vitest.bench.config.ts --run src/__benchmarks__/mount-at-scale.bench.ts --outputJson "$BENCH_JSON" - rounds: '3' - # The action's measured same-commit noise floor: 4.5 % median, 12.5 % - # p90. 25 % leaves room for a shared runner being noisier than a - # developer machine, and `floor` drops anything the clock cannot - # resolve. - threshold: '25' - floor: '5' diff --git a/.github/workflows/benchmarks-v4.yml b/.github/workflows/benchmarks.yml similarity index 57% rename from .github/workflows/benchmarks-v4.yml rename to .github/workflows/benchmarks.yml index ae36b7c8a..0349a0c90 100644 --- a/.github/workflows/benchmarks-v4.yml +++ b/.github/workflows/benchmarks.yml @@ -1,28 +1,23 @@ -name: benchmarks-v4 +name: benchmarks -# v4's benchmarks run in a real Chromium, so they cannot share the v3 job in -# `benchmarks.yml`: CodSpeed's simulation mode instruments the Node process, -# while a browser-mode benchmark body runs in the browser over CDP, so it -# would measure the driver. This job compares the base and the head commit on -# one runner instead, which removes cross-machine noise without an account, a -# token or a stored baseline. +# The benchmarks run in a real Chromium, which rules out CodSpeed: its +# simulation mode instruments the Node process, while a browser-mode benchmark +# body runs in the browser over CDP, so it would measure the driver. This job +# compares the base and the head commit on one runner instead, which removes +# cross-machine noise without an account, a token or a stored baseline. # # It comments; it never blocks. The hard gate is `src/mount-at-scale.spec.ts` # in the normal test job, whose thresholds do not depend on runner speed. -# -# Separate file rather than a job in `benchmarks.yml` because only a -# workflow-level `paths:` filter can keep it off pull requests that do not -# touch v4, and `benchmarks.yml` must keep running for v3. on: pull_request: branches: - main paths: - - 'packages/v4/**' + - 'packages/js-toolkit/**' - 'package-lock.json' - '.github/actions/bench-diff/**' - - '.github/workflows/benchmarks-v4.yml' + - '.github/workflows/benchmarks.yml' permissions: contents: read @@ -38,16 +33,15 @@ jobs: - uses: ./.github/actions/bench-diff with: # Identity, not configuration: the action knows nothing about - # browsers or about v4. A second suite — v3's Node and happy-dom - # benchmarks, say — is another step with another `id`, not a branch - # inside the action. - id: v4-mount - title: v4 mount benchmarks + # browsers or about this package. A second suite is another step with + # another `id`, not a branch inside the action. + id: mount + title: mount benchmarks unit: component - working-directory: packages/v4 + working-directory: packages/js-toolkit # No build: vitest runs the browser suite straight from TypeScript. prepare: npx playwright install --with-deps chromium - # The at-scale file only. Adding the other three v4 benchmark files + # The at-scale file only. Adding the other three benchmark files # costs ~55 s per run, so ~5.5 min across six runs, for micro- # benchmarks a wall-clock diff can barely resolve. # @@ -56,7 +50,7 @@ jobs: # near 1 ms, where Chromium's 100 us clamp makes a percentage # meaningless. It is set on the command rather than as step `env:`, # which a composite action's steps do not reliably inherit. - bench: V4_BENCH_SIZES=1000,5000 npm exec vitest bench -- --config vitest.bench.config.js --run src/mount-at-scale.bench.ts --outputJson "$BENCH_JSON" + bench: BENCH_SIZES=1000,5000 npm exec vitest bench -- --config vitest.bench.config.js --run src/mount-at-scale.bench.ts --outputJson "$BENCH_JSON" rounds: '3' # Same-commit noise floor, three interleaved rounds per side: 4.5 % # median, 12.5 % p90, 33 % worst — and every case above 13 % is a diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d59bd91bb..0a94f0083 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,5 +1,13 @@ name: docs +# The 4.x documentation, served at js-toolkit-v4.studiometa.dev. +# +# It keeps that domain for as long as 4.x is a prerelease: `latest` on npm is +# still 3.x, so js-toolkit.studiometa.dev must keep answering with the 3.x +# pages. Those are built and deployed from the `3.x` branch, which is also the +# production branch of the `js-toolkit` Cloudflare Pages project. The two +# domains swap when 4.0.0 ships. + on: push: branches: [main] @@ -8,7 +16,7 @@ on: - main jobs: - deploy-v3: + deploy: runs-on: ubuntu-latest permissions: contents: read @@ -23,37 +31,11 @@ jobs: - run: npm ci - - name: Build docs - run: npm run docs:build - - - name: Deploy to Cloudflare Pages - uses: cloudflare/wrangler-action@v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - gitHubToken: ${{ secrets.GITHUB_TOKEN }} - command: pages deploy packages/docs/.vitepress/dist --project-name=js-toolkit - - deploy-v4: - runs-on: ubuntu-latest - permissions: - contents: read - deployments: write - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: 24 - cache: 'npm' - - - run: npm ci - - # Twoslash resolves the package types out of `dist`, since the v4 exports + # Twoslash resolves the package types out of `dist`, since the exports # map has no `typescript` condition. The docs build below ignores the # committed caches, so this is what it reads. - - name: Build the v4 package - run: npm run build:v4 + - name: Build the package + run: npm run build:js-toolkit # Regenerate every twoslash hover instead of trusting the committed caches. # @@ -63,11 +45,11 @@ jobs: # cache was first written. That is invisible: the build passes and the page # renders, only the tooltip is out of date. # - # The committed caches stay useful — they keep a local `docs:v4:dev` fast. + # The committed caches stay useful — they keep a local `docs:dev` fast. # What is published is regenerated, so it cannot drift from the source. # Costs about 50s: a 32s build becomes 83s for ~200 samples. - - name: Build v4 docs - run: npm run docs:v4:build + - name: Build the docs + run: npm run docs:build env: TWOSLASH_INLINE_CACHE_IGNORE: '1' @@ -77,4 +59,4 @@ jobs: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} gitHubToken: ${{ secrets.GITHUB_TOKEN }} - command: pages deploy packages/v4/docs/.vitepress/dist --project-name=js-toolkit-v4 + command: pages deploy packages/js-toolkit/docs/.vitepress/dist --project-name=js-toolkit-v4 diff --git a/.github/workflows/export-size.yml b/.github/workflows/export-size.yml index 514cc4a91..aab374579 100644 --- a/.github/workflows/export-size.yml +++ b/.github/workflows/export-size.yml @@ -6,7 +6,6 @@ on: - main paths: - 'packages/js-toolkit/**' - - 'packages/v4/**' - 'package-lock.json' - '.github/workflows/export-size.yml' @@ -22,10 +21,8 @@ jobs: - uses: weareikko/export-size@1 with: # `packages/js-toolkit/` is the folder npm publishes, so the report - # measures exactly what a consumer installs. Both packages resolve to - # their own `dist/`, which `npm run build` produces, so both appear in - # the same report and can be compared export by export. + # measures exactly what a consumer installs. It resolves to its own + # `dist/`, which `npm run build` produces below. packages: | @studiometa/js-toolkit:packages/js-toolkit - @studiometa/js-toolkit-v4:packages/v4 - build: npm run build && npm run check:constant-subpaths -w @studiometa/js-toolkit-v4 + build: npm run build && npm run check:constant-subpaths -w @studiometa/js-toolkit diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 96d6411b8..f33159d35 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -41,12 +41,12 @@ jobs: - name: Run types tests run: npm run lint:types - v4: - name: unit (v4) + js-toolkit: + name: unit (js-toolkit) runs-on: ubuntu-latest defaults: run: - working-directory: packages/v4 + working-directory: packages/js-toolkit steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -56,9 +56,9 @@ jobs: - name: Install dependencies run: npm ci --no-audit --no-progress --no-fund working-directory: . - # The v4 specs run in a real browser: they cover native view - # transitions, frame-aligned scheduling and DOM lifecycle, none of - # which a DOM emulation can answer for. + # The specs run in a real browser: they cover native view transitions, + # frame-aligned scheduling and DOM lifecycle, none of which a DOM + # emulation can answer for. - name: Install Playwright Chromium run: npx playwright install --with-deps chromium - name: Run tests @@ -68,23 +68,12 @@ jobs: - name: Check the packed package run: npm run check:package - unit: + eslint-plugin: + name: unit (eslint-plugin-js-toolkit) runs-on: macos-latest - strategy: - matrix: - include: - - package: js-toolkit - working-directory: packages/js-toolkit - test-command: npm test -- --retry=3 --coverage.enabled - coverage-file: packages/js-toolkit/coverage/clover.xml - - package: eslint-plugin-js-toolkit - working-directory: packages/eslint-plugin - test-command: npm test -- --retry=3 --coverage.enabled - coverage-file: packages/eslint-plugin/coverage/clover.xml - name: unit (${{ matrix.package }}) defaults: run: - working-directory: ${{ matrix.working-directory }} + working-directory: packages/eslint-plugin steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -95,12 +84,12 @@ jobs: run: npm ci --no-audit --no-progress --no-fund working-directory: . - name: Run tests - run: ${{ matrix.test-command }} + run: npm test -- --retry=3 --coverage.enabled - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: - files: ${{ matrix.coverage-file }} - flags: ${{ matrix.package }} + files: packages/eslint-plugin/coverage/clover.xml + flags: eslint-plugin-js-toolkit fail_ci_if_error: false verbose: true env: diff --git a/.gitignore b/.gitignore index f02dfddd8..34d8359a6 100644 --- a/.gitignore +++ b/.gitignore @@ -26,18 +26,16 @@ yarn-error.log* # Build files packages/*/dist/ -packages/demo/dist/ -/packages/v4/test/.runtime/ +/packages/js-toolkit/demo/dist/ +/packages/js-toolkit/test/.runtime/ # Module graph reports written by `npm run measure -- --json ` .measure-*.json -# Benchmark output written by `npm run bench:v4` +# Benchmark output written by `npm run bench` .bench-report.json -/packages/docs/.vitepress/cache -/packages/docs/.vitepress/dist -/packages/v4/docs/.vitepress/cache -/packages/v4/docs/.vitepress/dist +/packages/js-toolkit/docs/.vitepress/cache +/packages/js-toolkit/docs/.vitepress/dist coverage/ /full.d.ts /index.d.ts diff --git a/.oxfmtrc.json b/.oxfmtrc.json index bb5940202..d36845398 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -16,18 +16,7 @@ "packages/*/dist/", "packages/js-toolkit/README.md", "packages/js-toolkit/src/subpaths/", - "packages/docs/guide/recipes/counter-component/Counter.html", - "packages/docs/guide/recipes/scroll-linked-animation/ScrollLinkedAnimation.html", - "packages/docs/.vitepress/cache", - "packages/docs/.vitepress/dist", - "packages/v4/src/subpaths/" - ], - "overrides": [ - { - "files": ["packages/docs/**/*.md"], - "options": { - "printWidth": 78 - } - } + "packages/js-toolkit/docs/.vitepress/cache", + "packages/js-toolkit/docs/.vitepress/dist" ] } diff --git a/.oxlintrc.json b/.oxlintrc.json index 539e01f2e..fb60a5821 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -1,5 +1,5 @@ { - "ignorePatterns": ["packages/js-toolkit/src/subpaths/", "packages/v4/src/subpaths/"], + "ignorePatterns": ["packages/js-toolkit/src/subpaths/"], "jsPlugins": [ { "name": "js-toolkit", @@ -28,7 +28,7 @@ } }, { - "files": ["packages/v4/**/*.ts"], + "files": ["packages/js-toolkit/**/*.ts"], "plugins": ["import"], "rules": { "import/extensions": [ @@ -91,21 +91,23 @@ } }, { - "files": ["packages/js-toolkit/src/**/*.ts", "packages/demo/**/*.{ts,js}"], + // The component-authoring rules, on the two places this repository + // writes components rather than framework: the ported `@studiometa/ui` + // families and the demo application. + // + // `require-config` and `async-lifecycle-methods` are deliberately absent. + // Both encode a v3 shape: v4 lets an abstract base declare no config, and + // `mounted()` returns its cleanup function, so making it `async` is the + // mistake rather than the rule. + "files": ["packages/js-toolkit/migration/**/*.ts", "packages/js-toolkit/demo/**/*.{ts,js}"], "rules": { - "js-toolkit/require-config": "error", "js-toolkit/require-config-name-pascal-case": "error", "js-toolkit/refs-camel-case": "error", "js-toolkit/refs-plural-multiple": "error", "js-toolkit/options-camel-case": "error", - "js-toolkit/async-lifecycle-methods": "error", "js-toolkit/on-handler-naming": "error", "js-toolkit/on-global-handler-prefix": "warn", - "js-toolkit/no-deprecated-properties": "error", - "js-toolkit/no-dispatch-event": "warn", - "js-toolkit/no-shadow-dom": "error", - "js-toolkit/no-create-app": "warn", - "js-toolkit/no-event-listener-methods": "error" + "js-toolkit/no-create-app": "warn" } }, { @@ -113,9 +115,9 @@ "**/*.spec.ts", "**/*.bench.ts", "**/__benchmarks__/**", - "packages/v4/test/**", - "packages/v4/scripts/**", - "packages/v4/docs/**" + "packages/js-toolkit/test/**", + "packages/js-toolkit/scripts/**", + "packages/js-toolkit/docs/**" ], "rules": { "complexity": "off", diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dafcf946..cb8d5620a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ All notable changes to this project will be documented in this file. The format ### Removed - Drop the dedicated subpaths of the 89 type-only symbols, such as `@studiometa/js-toolkit/BaseConfig`. Import types from `@studiometa/js-toolkit` or `@studiometa/js-toolkit/utils` instead ([#777](https://github.com/studiometa/js-toolkit/pull/777)) -- **Breaking:** drop `createLocalStorageProvider` and `createSessionStorageProvider` from the published surface of `@studiometa/js-toolkit-v4`, root entry and subpaths alike. Both returned an adapter behaving exactly like the `localStorageProvider` and `sessionStorageProvider` instances the package already exports — the adapter holds no state — so use those instances instead ([#841](https://github.com/studiometa/js-toolkit/pull/841)) +- **Breaking:** drop `createLocalStorageProvider` and `createSessionStorageProvider` from the published surface of `@studiometa/js-toolkit`, root entry and subpaths alike. Both returned an adapter behaving exactly like the `localStorageProvider` and `sessionStorageProvider` instances the package already exports — the adapter holds no state — so use those instances instead ([#841](https://github.com/studiometa/js-toolkit/pull/841)) ### Changed diff --git a/README.md b/README.md index 55f1c1ce2..ad723995b 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,16 @@ Its main objectives are: - Initializing components in the right place at the right time - Defining dependencies between components -Visit [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev) to learn more, jump to [ui.studiometa.dev](https://ui.studiometa.dev) to discover existing components, or open [the playground](https://ui.studiometa.dev/-/play/) to test it live. +Visit [js-toolkit-v4.studiometa.dev](https://js-toolkit-v4.studiometa.dev) to learn more, jump to [ui.studiometa.dev](https://ui.studiometa.dev) to discover existing components, or open [the playground](https://ui.studiometa.dev/-/play/) to test it live. + +## Branches + +| Branch | Line | npm | Documentation | +| ---------------------------------------------------------- | ------------------- | -------- | -------------------------------------------------------------------- | +| `main` | 4.x | `next` | [js-toolkit-v4.studiometa.dev](https://js-toolkit-v4.studiometa.dev) | +| [`3.x`](https://github.com/studiometa/js-toolkit/tree/3.x) | 3.x, in maintenance | `latest` | [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev) | + +4.0 is a breaking major and is currently an alpha, so `latest` still installs 3.x. The two domains swap when 4.0.0 ships. Open a fix for the 3.x line against the `3.x` branch, and anything about 4.x against `main`. ## Packages @@ -57,18 +66,17 @@ Visit [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev) to learn mo | ------------------------------------------------------------------- | -------------------------------------------------------------------------------- | | [`@studiometa/js-toolkit`](./packages/js-toolkit/) | The framework and its utility functions. | | [`@studiometa/eslint-plugin-js-toolkit`](./packages/eslint-plugin/) | Oxlint/ESLint rules enforcing the framework's best practices. | -| [`packages/v4`](./packages/v4/) | The v4 prototype, private and not published. | -| [`packages/docs`](./packages/docs/) | Sources of [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev). | -| [`packages/v4/docs`](./packages/v4/docs/) | Sources of [js-toolkit-v4.studiometa.dev](https://js-toolkit-v4.studiometa.dev). | -| [`packages/demo`](./packages/demo/) | A playground application used during development. | +| [`packages/js-toolkit/docs`](./packages/js-toolkit/docs/) | Sources of [js-toolkit-v4.studiometa.dev](https://js-toolkit-v4.studiometa.dev). | +| [`packages/js-toolkit/demo`](./packages/js-toolkit/demo/) | A playground application used during development. | +| [`packages/js-toolkit/migration`](./packages/js-toolkit/migration/) | `@studiometa/ui` families ported onto v4 to measure what a migration costs. | ## Installation ```bash -npm install @studiometa/js-toolkit +npm install @studiometa/js-toolkit@next ``` -See the [package README](./packages/js-toolkit/README.md) for a longer introduction, or the [Getting Started guide](https://js-toolkit.studiometa.dev/guide/). +See the [package README](./packages/js-toolkit/README.md) for a longer introduction, or the [Getting Started guide](https://js-toolkit-v4.studiometa.dev/guide/). ## Contributing diff --git a/package-lock.json b/package-lock.json index af72a70c6..c4e664ce1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,18 @@ { "name": "@studiometa/js-toolkit-workspace", - "version": "3.9.0", + "version": "4.0.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@studiometa/js-toolkit-workspace", - "version": "3.9.0", + "version": "4.0.0-alpha.0", "hasInstallScript": true, "workspaces": [ "packages/*" ], "devDependencies": { "@types/node": "22.19.0", - "focus-trap": "^7.8.0", "oxfmt": "0.62.0", "oxlint": "1.77.0", "oxlint-tsgolint": "7.0.2001", @@ -22,21 +21,6 @@ "vite": "8.2.1" } }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", @@ -73,31 +57,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", - "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.29.8", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", @@ -129,1530 +88,919 @@ "dev": true, "license": "MIT" }, - "node_modules/@bufbuild/protobuf": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.13.0.tgz", - "integrity": "sha512-acq7c49vxfm1ggJ95P70TX7ABDM0vxr1SYD3BB0o0jnBLB4OAqeHyKuN+cD3w80gXEDQ2zxHpR6CUeA+O/aU9g==", + "node_modules/@docsearch/css": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.7.0.tgz", + "integrity": "sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-4.7.0.tgz", + "integrity": "sha512-x5lCqu1tetgsJFkjQ6VSocbHldsRkGEgwg5N98Vx21sq/V5wcmj4u226PY9k+TEpIgQ772zlYbPLTPicWyGnpA==", "dev": true, - "license": "(Apache-2.0 AND BSD-3-Clause)" + "license": "MIT" }, - "node_modules/@cacheable/memory": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", - "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", + "node_modules/@docsearch/sidepanel-js": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@docsearch/sidepanel-js/-/sidepanel-js-4.7.0.tgz", + "integrity": "sha512-A8r34jCU8kcIk2viECEn2msA28ojUF1BLi/3v5OWWc5G2N3jOuuumBXoeYjfr8dA0UxgFSy5R2bt12dnFJQSyA==", "dev": true, - "license": "MIT", - "dependencies": { - "@cacheable/utils": "^2.5.0", - "@keyv/bigmap": "^1.3.1", - "hookified": "^1.15.1", - "keyv": "^5.6.0" - } + "license": "MIT" }, - "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", - "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", "dev": true, "license": "MIT", "dependencies": { - "hashery": "^1.4.0", - "hookified": "^1.15.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">= 18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" }, "peerDependencies": { - "keyv": "^5.6.0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@cacheable/memory/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@cacheable/utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", - "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", - "dependencies": { - "hashery": "^1.5.1", - "keyv": "^5.6.0" + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@cacheable/utils/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@keyv/serialize": "^1.1.1" + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@colordx/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.5.0.tgz", - "integrity": "sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==", + "node_modules/@eslint/config-array/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", - "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=18" + "node": ">=6.0" }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", - "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=18" + "node": "*" } }, - "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "node_modules/@eslint/config-array/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", + "license": "MIT" + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", - "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "node_modules/@eslint/eslintrc": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.3.0", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", - "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peerDependencies": { - "css-tree": "^3.2.1" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "peerDependenciesMeta": { - "css-tree": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "node_modules/@eslint/eslintrc/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", - "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=18" + "node": ">=6.0" }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@csstools/postcss-alpha-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", - "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, + "license": "MIT", "engines": { "node": ">=18" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", - "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "*" } }, - "node_modules/@csstools/postcss-color-function": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", - "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, + "license": "MIT" + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@csstools/postcss-color-function-display-p3-linear": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", - "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "Apache-2.0", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", - "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@floating-ui/utils": "^0.2.12" } }, - "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", - "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", + "node_modules/@floating-ui/dom": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz", + "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@floating-ui/core": "^1.1.0" } }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", - "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" + "@humanfs/types": "^0.15.0" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=18.18.0" } }, - "node_modules/@csstools/postcss-contrast-color-function": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", - "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "Apache-2.0", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=18.18.0" } }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", - "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, + "license": "Apache-2.0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=18.18.0" } }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=12.22" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", - "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", - "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.93", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.93.tgz", + "integrity": "sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "CC0-1.0", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@iconify/types": "*" } }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", - "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", - "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@csstools/postcss-initial": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", - "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=6.0.0" } }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", - "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", - "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">= 8" } }, - "node_modules/@csstools/postcss-logical-float-and-clear": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", - "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">= 8" } }, - "node_modules/@csstools/postcss-logical-overflow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", - "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "postcss": "^8.4" + "engines": { + "node": ">= 8" } }, - "node_modules/@csstools/postcss-logical-overscroll-behavior": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", - "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "node_modules/@oxc-project/types": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", + "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxfmt/binding-android-arm-eabi": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.62.0.tgz", + "integrity": "sha512-pdsv0C4gPjJ8H1+sd8u0BDx+yLACTL+rgeMIOL1ln4ihSnhw8CWXtYWgvcSkyTfgGBIzFKab+d8rx9Xl4en/Kw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-logical-resize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", - "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "node_modules/@oxfmt/binding-android-arm64": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.62.0.tgz", + "integrity": "sha512-WC3YQ7uS/KtDrjmqwBviwFKe9qeoi+eXx8aX1z/ffG23Md75myjrJaQqTuJvdOLPoa4EYTjDWH0dHXfwulCVog==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "android" ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", - "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@oxfmt/binding-darwin-arm64": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.62.0.tgz", + "integrity": "sha512-GM8Yf3LjjaR1I8PD0SfeoIlwhsh9GvSF+cQ8sf624Yxnjsyumn95aFzYfKJVefblfDIiOAnZ7QVm2sa21Er/0Q==", + "cpu": [ + "arm64" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", - "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", - "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "node_modules/@oxfmt/binding-darwin-x64": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.62.0.tgz", + "integrity": "sha512-d5THp7F8bCxLqNogEXDORRsQD6dosf3EyFtnXfBer6v+8tGdcWIjoDX9WaXrrF/26zOmL8qHpPTKCEvpBDmZkQ==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", - "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "node_modules/@oxfmt/binding-freebsd-x64": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.62.0.tgz", + "integrity": "sha512-1DnrtXGZooOZ0fHgAXZUaDQzBVh1CM2MNW4oBXyQ2aWKvCHjyljvT9fgBkOM0fEOb96X5eqtcfJ0YUVt9jj66g==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", - "integrity": "sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==", + "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.62.0.tgz", + "integrity": "sha512-4pQDHOYRH+Huqe0StIaWyvk2CVl/aTaqSrbZpA3/pLS2xH24ME7lBgYprhQF2fRkHBzhGGGKliwxFsDdHwx59g==", + "cpu": [ + "arm" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", - "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", + "node_modules/@oxfmt/binding-linux-arm-musleabihf": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.62.0.tgz", + "integrity": "sha512-X0jAaZJFMCVKhB6YyWVTQ/wN2DLsBcZKSMqTS76bF6riT+XZdtg2FPEdjDvdVbunO9cG+tWiVaEs4Zs38lxYog==", + "cpu": [ + "arm" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-position-area-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz", - "integrity": "sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==", + "node_modules/@oxfmt/binding-linux-arm64-gnu": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.62.0.tgz", + "integrity": "sha512-682Z8T5s8T5ATArYtsejKvbIfd8LEAXyyDkKkoZVq8HND7Vx8TYLlrDjDSeYfodMeVwHOgkj13lJYR8cj6vUSg==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", - "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", + "node_modules/@oxfmt/binding-linux-arm64-musl": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.62.0.tgz", + "integrity": "sha512-lk25fAl7KWaLWVJcW0CHEXB7QlQZtx5eDkjpaGMK0hzXTjUe0Wmlu8IKuFHoviSOcEJedRTs4VE/506VqGxGew==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-property-rule-prelude-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz", - "integrity": "sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==", + "node_modules/@oxfmt/binding-linux-ppc64-gnu": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.62.0.tgz", + "integrity": "sha512-SFyNqHQLwySceWNLhiSldx7wPXRAzP0L0WcW9GegP3uWrpZGJiZlQO85NbHAFPEfxR9PhZ9qSnZryEh7+v+4Gw==", + "cpu": [ + "ppc64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-random-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", - "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "node_modules/@oxfmt/binding-linux-riscv64-gnu": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.62.0.tgz", + "integrity": "sha512-KYj55C1ywJfHo6+aKDuEmUtVEdJALsC5GwayDGsI6FGz2GxFqNr/mA8nxVsNbJzm7sE5MRqTQ9ziImSzhYXysA==", + "cpu": [ + "riscv64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", - "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", + "node_modules/@oxfmt/binding-linux-riscv64-musl": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.62.0.tgz", + "integrity": "sha512-BhZDNo5GOU5nC378RhD0/XpvaEBHsH3HLgJp8YZX3A0InC7oivzA63HsRmiXFLtLSHAstEVrDf6fbC7Rs8Jh/A==", + "cpu": [ + "riscv64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "musl" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", - "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", - "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@oxfmt/binding-linux-s390x-gnu": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.62.0.tgz", + "integrity": "sha512-UyAFmyHkgSgUJ/wOM4p3U8AC2yAFvRH5PNBs7TnK0fObTT/XSWcdr/lAzPSWaekHaZFaMeFZyk9n93Joq3J93A==", + "cpu": [ + "s390x" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", - "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-syntax-descriptor-syntax-production": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz", - "integrity": "sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.4" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-system-ui-font-family": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz", - "integrity": "sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@oxfmt/binding-linux-x64-gnu": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.62.0.tgz", + "integrity": "sha512-1iYMP0leytWazFubD/WnINJuIrzRPuoL1aWEJdlGezEzDbTxcd29R4r8IUzP2oWeKst5V02uMJgR2NILlPlG6w==", + "cpu": [ + "x64" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", - "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", - "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "node_modules/@oxfmt/binding-linux-x64-musl": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.62.0.tgz", + "integrity": "sha512-4rA/URtJSTVNVAQz6Q8wf7SaRvOXVy+TizriT9hs/Y1XhLR/R+92uWKRQG8yFWRAIEBbFHJ6WevQcl/G9SXEfw==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/postcss-unset-value": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", - "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "node_modules/@oxfmt/binding-openharmony-arm64": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.62.0.tgz", + "integrity": "sha512-mSZuFHU2ar1KLUjXpI2QBQcJ1VsOB3mOCgQXuXCpKs19dgh4u+OaovNfrWDfiJb+ihJ2+f7YFcaO9bS2dlTCXA==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "openharmony" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/selector-resolve-nested": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", - "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "node_modules/@oxfmt/binding-win32-arm64-msvc": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.62.0.tgz", + "integrity": "sha512-OfwuhkcjDlqC4EgDojtiV9mzpLqeB9KqTOWPOjLEYBVdDCVSxqW3qzp/xcIxsbtI0UgGCnKvAqYKyY25kf5JZw==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "node_modules/@oxfmt/binding-win32-ia32-msvc": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.62.0.tgz", + "integrity": "sha512-P9uDDNFRzghO3X8QAzhkjKhK7JvtABsVn8UYtFX7uor12IAnwNt8nNIctvfWj1JkQU/kE+fmLRPiw7XlrIHsZw==", + "cpu": [ + "ia32" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@csstools/utilities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", - "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "node_modules/@oxfmt/binding-win32-x64-msvc": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.62.0.tgz", + "integrity": "sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" ], - "license": "MIT-0", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.7.0.tgz", - "integrity": "sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@docsearch/js": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-4.7.0.tgz", - "integrity": "sha512-x5lCqu1tetgsJFkjQ6VSocbHldsRkGEgwg5N98Vx21sq/V5wcmj4u226PY9k+TEpIgQ772zlYbPLTPicWyGnpA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@docsearch/sidepanel-js": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@docsearch/sidepanel-js/-/sidepanel-js-4.7.0.tgz", - "integrity": "sha512-A8r34jCU8kcIk2viECEn2msA28ojUF1BLi/3v5OWWc5G2N3jOuuumBXoeYjfr8dA0UxgFSy5R2bt12dnFJQSyA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", - "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", + "node_modules/@oxlint-tsgolint/darwin-arm64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-arm64/-/darwin-arm64-7.0.2001.tgz", + "integrity": "sha512-CUJEdbSZ54+Xy9OXqOhWLTKZKV0BBiV7C2i/ygyVmXtkUNXx5YCzN8DpSSshTAKktoL7S+tnQ/ftFG/i7X896w==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/JounQin" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@es-joy/jsdoccomment": { - "version": "0.52.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.52.0.tgz", - "integrity": "sha512-BXuN7BII+8AyNtn57euU2Yxo9yA/KUDNzrpXyi3pfqKmBhhysR6ZWOebFh3vyPoqA3/j1SOvGgucElMGwlXing==", + "node_modules/@oxlint-tsgolint/darwin-x64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-x64/-/darwin-x64-7.0.2001.tgz", + "integrity": "sha512-pXfBb5BqONCcgrXQNUZWXgiYmRSWJzd97S8i41VVOh6ut0tyo+cJ5FKFpczDHxiVNfj/3e7c9B4MtztNdpIVCw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.8", - "@typescript-eslint/types": "^8.34.1", - "comment-parser": "1.4.1", - "esquery": "^1.6.0", - "jsdoc-type-pratt-parser": "~4.1.0" - }, - "engines": { - "node": ">=20.11.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz", - "integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==", + "node_modules/@oxlint-tsgolint/linux-arm64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-arm64/-/linux-arm64-7.0.2001.tgz", + "integrity": "sha512-roP7zujb/QDPzDwEKsFFpzNHHy91/Y7oX9vQXk78ekyZtcQj1QXDIMH33gjDdHBfRl4K9pZ36xhRgrP4Zr+R8A==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/android-arm": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz", - "integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==", + "node_modules/@oxlint-tsgolint/linux-x64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-x64/-/linux-x64-7.0.2001.tgz", + "integrity": "sha512-UDezNqdECVmngu2TPnjaS1YoAmcTaBoI5lV9vk3VahBxoi+I5r9k3iJTT7qZoYWOXTD/7T7bNcwRgrocR6BscQ==", "cpu": [ - "arm" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/android-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz", - "integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==", + "node_modules/@oxlint-tsgolint/win32-arm64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/win32-arm64/-/win32-arm64-7.0.2001.tgz", + "integrity": "sha512-uJZhqB6pdXLuN+AD1F5082byyQti/NPmJA77GtcFlmT2HzRelqbNls3SaIqxpjdFgvSBF9g0yOKGBkGFg7kX8Q==", "cpu": [ "arm64" ], @@ -1660,33 +1008,44 @@ "license": "MIT", "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=18" - } + "win32" + ] }, - "node_modules/@esbuild/android-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz", - "integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==", + "node_modules/@oxlint-tsgolint/win32-x64": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/win32-x64/-/win32-x64-7.0.2001.tgz", + "integrity": "sha512-FkDRm8hx9OwzGQqyWG1tO5QrTLRApff9DzSgpz9QZau37BR8d1VYKOxMLGf6shPZntJFoTwIIJYT68VndYDCog==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.77.0.tgz", + "integrity": "sha512-E06sKWS6PiI6HRxS1wyQg22HvApt01hI7fV+T3wUk3OSbaaP4a3hYGY/MIQDmASqCiRjBdpRQYkgMkqH82cWmQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, "os": [ "android" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz", - "integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==", + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.77.0.tgz", + "integrity": "sha512-NvsKz0KZxTp9cYWPLf+FXaSZwB3oO3peAjtukpOMBgse2vhQSoIIVqeO1yR0lEo/UcdZIDL18uq+kL0LzQ0ytA==", "cpu": [ "arm64" ], @@ -1694,18 +1053,18 @@ "license": "MIT", "optional": true, "os": [ - "darwin" + "android" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz", - "integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==", + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.77.0.tgz", + "integrity": "sha512-bgjTn6nW4bQCFBvSvuHCpDD+sONvmpo4lGI4PxzMt1quBA+xYxhczk6RiCn3GZ9gY8uhaBbwhj9MdKGfu6T9DA==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", @@ -1714,30 +1073,30 @@ "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz", - "integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==", + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.77.0.tgz", + "integrity": "sha512-aotaIttH1R6j1Rwhx0M0htgeZyGtVQqYNTVEYMN/UcgHPquGA6kmk9OyuDc3a2GKUQBC+3C3GVQCcrRPMYqAFA==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "freebsd" + "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz", - "integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==", + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.77.0.tgz", + "integrity": "sha512-nNx/wta7ksRAdYvq+l4AWjXkLxEXHALhENxjj2cYbQAIR4ybaA5L+hCbE63HOmft5czQ6ks+hb8vmEAnn7YGPg==", "cpu": [ "x64" ], @@ -1748,13 +1107,13 @@ "freebsd" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz", - "integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==", + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.77.0.tgz", + "integrity": "sha512-tMLLjM7xXtzXisVCzkOTXNCy9bZVId2wteNwjohlFDR/jY6WagpEDA1c1wu4xRc20Hojaxj+V6DSR7gbKxijWA==", "cpu": [ "arm" ], @@ -1765,15 +1124,15 @@ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz", - "integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==", + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.77.0.tgz", + "integrity": "sha512-MiAFDFaqR0tmHTAyo0YDcZ5hyLREdYw/RQhc2R3cbT+8O3tB+zqPM2th9TTQ+Uo3jn/embS+DO+HyX9ztCPkOQ==", "cpu": [ - "arm64" + "arm" ], "dev": true, "license": "MIT", @@ -1782,166 +1141,190 @@ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz", - "integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==", + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.77.0.tgz", + "integrity": "sha512-/xqQ3B16i1T4cyt/9Mn+4CpzhUXoBXp7kVpIwzOXNFLj5JmK1bIjsbSnX296Gg8A/o7oDtKWikFgBx0SLwztkw==", "cpu": [ - "ia32" + "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz", - "integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==", + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.77.0.tgz", + "integrity": "sha512-LSbwuRKiNCenPDcbARqAZ5RfBy7gmj7vOvfJRLeCDU3gFtSxWbhv/+VTlaUqzUhNj1gFLHB8h7ALnxa/Az6z6g==", "cpu": [ - "loong64" + "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz", - "integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==", + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.77.0.tgz", + "integrity": "sha512-QWdcH31mXEUe5Nq1s0CfCpceaKjIo9uZtwDjAuL681g1axf+5x8xrg/eXWaw//4NCxYZ4V4e5Hu5tvdR+pTBlg==", "cpu": [ - "mips64el" + "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz", - "integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==", + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.77.0.tgz", + "integrity": "sha512-GnOfYgJxbcElOiPZaDFDl406ONddwvOWk2jvAAAEjwAl4GofNoHF+/HHUIBYa6bFCArlcGPi0XjC4cU1pkgF/Q==", "cpu": [ - "ppc64" + "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz", - "integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==", + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.77.0.tgz", + "integrity": "sha512-AyEMTUCf0xY+hHF+IxqXFQIX0yQOIR8ykpY0lJNOw9xYqOzUX8dyZfRvlG0RfXwuQn2eonf/8NrMmDSZJjdqsA==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz", - "integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==", + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.77.0.tgz", + "integrity": "sha512-sPLzEcNvxd/oyVQ5oZo92CiHkFkpBeRop13E/P3TPY+hZfXHKCOWKI70TE2RYwMKFJDc20EMjH16L7NZICtKTw==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz", - "integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==", + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.77.0.tgz", + "integrity": "sha512-1Oh2ssH2L7lwyvkdSqaMUfsGfwU2Wfvew+obBUYjRVqhpBcUpwnsPSEr1IzVi9XqkuY10geiLsNKecqaZC34Dw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz", - "integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==", + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.77.0.tgz", + "integrity": "sha512-0j/2wRgNGO+Qj/M1uu/p57h/hFTTWWcfie0ufkbabeus2s5+/QqkCflnMOwLLN5m2GsNeWp4xdl4cPa4n7QCOQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ - "netbsd" + "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz", - "integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==", + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.77.0.tgz", + "integrity": "sha512-BJ/j54qS0usEnyDkLYURMj2iiD9h5Cyy+ppzeMSXBGRXaGRNWnj1Mw14NqWMR5E/PzdgB30OOCCzLzbRoduafw==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "netbsd" + "openharmony" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz", - "integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==", + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.77.0.tgz", + "integrity": "sha512-Yh8w+g2Lpx7StrvtYkoz9JJvXjB9wxgFChFNb85nrXm/wj/XTwGWS1hve9+900HL7llrntYB3YP+y32E3tRqzA==", "cpu": [ "arm64" ], @@ -1949,67 +1332,99 @@ "license": "MIT", "optional": true, "os": [ - "openbsd" + "win32" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz", - "integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==", + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.77.0.tgz", + "integrity": "sha512-zja5b7+6a7UsRFgAQSrnax5vrzliEyNPLCjfXONu/vTWswaIVZGFajJZptaeRvPE4LghtFdAzVFlexTm7MVTGA==", "cpu": [ - "x64" + "ia32" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "openbsd" + "win32" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz", - "integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==", + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.77.0.tgz", + "integrity": "sha512-+teyvPDZ2RjUvo+SuCqS/UhaJl1QtdW5fWT5NJTV61V5MIuIS90Db9LixmtEGvXixyttiK62P96MSu3UlpviBw==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "openharmony" + "win32" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/plugins": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@oxlint/plugins/-/plugins-1.77.0.tgz", + "integrity": "sha512-6KtPXskPgpt+0Kyl2nNSxNnYXt7lbkxW1C7vi2L7xwtq/AisZlsmV+hnzOTEyM5tU1TxPv1GpTqpUBbZfPzBLg==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@quansync/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quansync": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz", - "integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz", + "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "sunos" + "android" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz", - "integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz", + "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==", "cpu": [ "arm64" ], @@ -2017,33 +1432,33 @@ "license": "MIT", "optional": true, "os": [ - "win32" + "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz", - "integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz", + "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==", "cpu": [ - "ia32" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" + "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz", - "integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz", + "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==", "cpu": [ "x64" ], @@ -2051,1334 +1466,1238 @@ "license": "MIT", "optional": true, "os": [ - "win32" + "freebsd" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", - "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz", + "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz", + "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz", + "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/config-array": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", - "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz", + "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.5" - }, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/config-array/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz", + "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==", + "cpu": [ + "s390x" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/config-array/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz", + "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/config-array/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz", + "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz", + "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", - "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz", + "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^6.14.0", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.3.0", - "minimatch": "^3.1.5", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz", + "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@eslint/eslintrc/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "node_modules/@rollup/plugin-swc": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-swc/-/plugin-swc-0.4.1.tgz", + "integrity": "sha512-widfnT1TbDc4hsV37PQ61ZoLGPJ7STZE4lQzA3gWKbcMfzjOgiGsoTYfSsq21H4J2UY1y3MKwejXTMkwN2tEtQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@rollup/pluginutils": "^5.0.1", + "smob": "^1.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@swc/core": "^1.3.0", + "rollup": "^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=6.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "supports-color": { + "rollup": { "optional": true } } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "node_modules/@shikijs/core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.0.2.tgz", + "integrity": "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "@shikijs/primitive": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=20" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/@shikijs/engine-javascript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.0.2.tgz", + "integrity": "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" }, "engines": { - "node": "*" + "node": ">=20" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/js": { - "version": "9.39.5", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", - "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.0.2.tgz", + "integrity": "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==", "dev": true, "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2" }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=20" } }, - "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "node_modules/@shikijs/langs": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.0.2.tgz", + "integrity": "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@eslint/core": "^0.15.2", - "levn": "^0.4.1" + "@shikijs/types": "4.0.2" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=20" } }, - "node_modules/@floating-ui/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", - "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.12" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz", - "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==", + "node_modules/@shikijs/primitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.0.2.tgz", + "integrity": "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==", "dev": true, "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.1.0" + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", - "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", - "dev": true, - "license": "MIT" - }, - "node_modules/@happy-dom/global-registrator": { - "version": "20.8.8", - "resolved": "https://registry.npmjs.org/@happy-dom/global-registrator/-/global-registrator-20.8.8.tgz", - "integrity": "sha512-2NE+gfUX092su6oZYw6yOfgPYAfx9NBLFdMLNdZZtkupCP9oZfz6qFRYf1o8la2Le7Tyb94O5TONzcozENx2xg==", + "node_modules/@shikijs/themes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.0.2.tgz", + "integrity": "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": ">=20.0.0", - "happy-dom": "^20.8.8" + "@shikijs/types": "4.0.2" }, "engines": { - "node": ">=20.0.0" + "node": ">=20" } }, - "node_modules/@humanfs/core": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", - "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "node_modules/@shikijs/transformers": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-4.4.2.tgz", + "integrity": "sha512-d81PJ9KkR1tVP95FH/9296HTtDo0mh76wv10u9T1YmsZq/UcXgt0OLdBszfUQ1i+umkRMCjDnFbFZU7/tCODTQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@humanfs/types": "^0.15.0" + "@shikijs/core": "4.4.2", + "@shikijs/types": "4.4.2" }, "engines": { - "node": ">=18.18.0" + "node": ">=20" } }, - "node_modules/@humanfs/node": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", - "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "node_modules/@shikijs/transformers/node_modules/@shikijs/core": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.2.tgz", + "integrity": "sha512-StyzbAyxg2/tBGf78gwbBkGyeQ73lf8UiJArFaQhTQIDqQOCKPCQFanvrs4/Yv3Yfyc+ONInJM6K+FMIf+P+kA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@humanfs/core": "^0.19.2", - "@humanfs/types": "^0.15.0", - "@humanwhocodes/retry": "^0.4.0" + "@shikijs/primitive": "4.4.2", + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" }, "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/types": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", - "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" + "node": ">=20" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@shikijs/transformers/node_modules/@shikijs/primitive": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.2.tgz", + "integrity": "sha512-l6fQQKsOMlz72n38fztmSgZ76MO6KSWuw8o+GJ+FhmqrpC9pIOJNQNXGgbb5yX2AwpzlEHwsaLPnk/8o4Fm+rA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=20" } }, - "node_modules/@iconify-json/simple-icons": { - "version": "1.2.93", - "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.93.tgz", - "integrity": "sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==", + "node_modules/@shikijs/transformers/node_modules/@shikijs/types": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.2.tgz", + "integrity": "sha512-PFYitV4vpDr/iPCIhnHp+Q4ftic5N5VeNJ3KQ1O8gn3h2ar8qgwMAXF7tq4m1CWaMS60fV4VqF6vfnWH4F7vqQ==", "dev": true, - "license": "CC0-1.0", + "license": "MIT", "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "dev": true, - "license": "BlueOak-1.0.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, "engines": { - "node": ">=18" + "node": ">=20" } }, - "node_modules/@jest/diff-sequences": { - "version": "30.4.0", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.4.0.tgz", - "integrity": "sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==", + "node_modules/@shikijs/twoslash": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-4.0.2.tgz", + "integrity": "sha512-yHRudhirlMxOwDO6Q4OFU9hJMvUqNkY8hwtUfbaSEoG7A2cYicdO4c8fdDaDtyJ50HK7I8vTokrkIHTK3DCkLQ==", "dev": true, "license": "MIT", + "dependencies": { + "@shikijs/core": "4.0.2", + "@shikijs/types": "4.0.2", + "twoslash": "^0.3.6" + }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" + }, + "peerDependencies": { + "typescript": ">=5.5.0" } }, - "node_modules/@jest/get-type": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", - "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "node_modules/@shikijs/twoslash/node_modules/twoslash": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.9.tgz", + "integrity": "sha512-rDclk+OtzuTX+tnea7DYLCkqGQ3eP0IyfD+kzUJ7t46X/NzlaxwrhecmEBNuSCuEn3V+n1PhcjUUQQ7gUJzX5Q==", "dev": true, "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "dependencies": { + "@typescript/vfs": "^1.6.4", + "twoslash-protocol": "0.3.9" + }, + "peerDependencies": { + "typescript": "^5.5.0 || ^6.0.0" } }, - "node_modules/@jest/pattern": { - "version": "30.4.0", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.4.0.tgz", - "integrity": "sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==", + "node_modules/@shikijs/types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.0.2.tgz", + "integrity": "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-regex-util": "30.4.0" + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" } }, - "node_modules/@jest/schemas": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.4.1.tgz", - "integrity": "sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==", + "node_modules/@shikijs/vitepress-twoslash": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-4.0.2.tgz", + "integrity": "sha512-Bk01fAYDDiTffRPLHNJdNlYwzExXIVcrHUVNciD931SMlKZArvteKib6mM3mWAUhcy78RW1llT3fczjKIgQHBA==", "dev": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.34.0" + "@shikijs/twoslash": "4.0.2", + "floating-vue": "^5.2.2", + "lz-string": "^1.5.0", + "magic-string": "^0.30.21", + "markdown-it": "^14.1.1", + "mdast-util-from-markdown": "^2.0.3", + "mdast-util-gfm": "^3.1.0", + "mdast-util-to-hast": "^13.2.1", + "ohash": "^2.0.11", + "shiki": "4.0.2", + "twoslash": "^0.3.6", + "twoslash-vue": "^0.3.6", + "vue": "^3.5.29" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" } }, - "node_modules/@jest/types": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.4.1.tgz", - "integrity": "sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==", + "node_modules/@shikijs/vitepress-twoslash/node_modules/twoslash": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.9.tgz", + "integrity": "sha512-rDclk+OtzuTX+tnea7DYLCkqGQ3eP0IyfD+kzUJ7t46X/NzlaxwrhecmEBNuSCuEn3V+n1PhcjUUQQ7gUJzX5Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/pattern": "30.4.0", - "@jest/schemas": "30.4.1", - "@types/istanbul-lib-coverage": "^2.0.6", - "@types/istanbul-reports": "^3.0.4", - "@types/node": "*", - "@types/yargs": "^17.0.33", - "chalk": "^4.1.2" + "@typescript/vfs": "^1.6.4", + "twoslash-protocol": "0.3.9" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "peerDependencies": { + "typescript": "^5.5.0 || ^6.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@shikijs/vitepress-twoslash/node_modules/twoslash-vue": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/twoslash-vue/-/twoslash-vue-0.3.9.tgz", + "integrity": "sha512-2zO1u4iPhZz9k7ysuDaJL1FUn4SHzm78ZF6/0Q4yFR2VP3NW0JwRpw/4cWqEM6ye3pDf8Zr9lVPBvsX4uK315A==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@vue/language-core": "^3.2.6", + "twoslash": "0.3.9", + "twoslash-protocol": "0.3.9" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "typescript": "^5.5.0 || ^6.0.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@shikijs/vitepress-twoslash/node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=14.17" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } + "license": "MIT" }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } + "license": "MIT" }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } + "node_modules/@studiometa/eslint-plugin-js-toolkit": { + "resolved": "packages/eslint-plugin", + "link": true }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" + "node_modules/@studiometa/js-toolkit": { + "resolved": "packages/js-toolkit", + "link": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "node_modules/@studiometa/tailwind-config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@studiometa/tailwind-config/-/tailwind-config-3.0.0.tgz", + "integrity": "sha512-SauwUlgEcptxMMyy1TGL7Xod22654RncBT6whdefvUbgYw/46tnnXLDKVJ9vDb1QylWVkSxBUAUHzTov2AM9KQ==", "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "node": ">=20.0.0" }, "peerDependencies": { - "tslib": "2" + "postcss": "^8.5.6", + "tailwindcss": "^4.1.16" } }, - "node_modules/@jsonjoy.com/buffers": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", - "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "node_modules/@swc/core": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.47.tgz", + "integrity": "sha512-FbsO5JcfOjfH38W/rohBRBweJeERsAuIP4f377lmkmxTcq9exjtx4SkRuZY5CdfhR2CBVwDIJegBpJDffwNsOg==", "dev": true, + "hasInstallScript": true, "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.27" }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/codegen": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", - "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.0" + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.47", + "@swc/core-darwin-x64": "1.15.47", + "@swc/core-linux-arm-gnueabihf": "1.15.47", + "@swc/core-linux-arm64-gnu": "1.15.47", + "@swc/core-linux-arm64-musl": "1.15.47", + "@swc/core-linux-ppc64-gnu": "1.15.47", + "@swc/core-linux-s390x-gnu": "1.15.47", + "@swc/core-linux-x64-gnu": "1.15.47", + "@swc/core-linux-x64-musl": "1.15.47", + "@swc/core-win32-arm64-msvc": "1.15.47", + "@swc/core-win32-ia32-msvc": "1.15.47", + "@swc/core-win32-x64-msvc": "1.15.47" }, "peerDependencies": { - "tslib": "2" + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "node_modules/@jsonjoy.com/fs-core": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.68.0.tgz", - "integrity": "sha512-OAioDU3UGV34ECVTB4pt641OfUzuyDuyUmgrlVM+Fp9g4YyavZrB4xxWuupYrU66+81+um9D0DAzYhjXto5ysQ==", + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.47.tgz", + "integrity": "sha512-GsoMtan3ojGGMGFbl31mmRu5ctZ56re8grGE8mO/OHJ8O+JRkzod02fe7X6ZQ8JvamA3imkEkx/h3u+vsOgPgA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "@jsonjoy.com/fs-node-utils": "4.68.0", - "thingies": "^2.5.0" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.68.0.tgz", - "integrity": "sha512-dC6VeW8uqXMF9Hkqb7qYST/t165XCHG+bNwwMzRetoNZRxJC8anr5XCJSAk5B+YLHGn6SP+noNltU6OFg/oa7A==", + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.47.tgz", + "integrity": "sha512-leTi7Rx3KF4zcC637iqWgk9SoV8VXAD8ppQYXsep63px5A/UftOcxLN1pmr8Z1si/YvX90ompP/rHgpYkgwXWg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.68.0", - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "@jsonjoy.com/fs-node-utils": "4.68.0", - "thingies": "^2.5.0" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-node": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.68.0.tgz", - "integrity": "sha512-xYDlpSk3UDHjcI0kiz6kNJ/oVTEzlS7kUzAoAsgJh2/+yOtYV/eZW7M8O9Fj+ED3BDONYKt7+8OiPlWl6xpFeA==", + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.47.tgz", + "integrity": "sha512-hBqHuoWKKIsKmDBn9qVeWqj5GWZhtlcczVaqQmNRXsDfq+voR5CxKRfamA367QjJXtceYuliLFfEL8QsskRM2g==", + "cpu": [ + "arm" + ], "dev": true, "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.68.0", - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "@jsonjoy.com/fs-node-utils": "4.68.0", - "@jsonjoy.com/fs-print": "4.68.0", - "@jsonjoy.com/fs-snapshot": "4.68.0", - "glob-to-regex.js": "^1.0.0", - "thingies": "^2.5.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.68.0.tgz", - "integrity": "sha512-j3bb+k4NuqpqXQzinCLeagS7LGLCUvPqA6TnpaBkBqhnPjbzETYiQFpD7pWaV8cGOhhZcAv9dmpzk5mxNb1qsg==", + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.47.tgz", + "integrity": "sha512-TBxvRz+B4K205TWHHZxWVxkC2RFNP/Mz3PNcECBos5PsKwxjg3QSJzdoebr0VCf0Bfh8HOPldKxAP/8XkFe9gA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.68.0.tgz", - "integrity": "sha512-dtLpmLQxw3IBcGxoK9tVvftwmQLl9qmQyivt8DZpeEwDUcQkxk2CLMZERXtmOlF1mWXfT9CqtjjMiswkb03rKw==", + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.47.tgz", + "integrity": "sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-fsa": "4.68.0", - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "@jsonjoy.com/fs-node-utils": "4.68.0" - }, + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.68.0.tgz", - "integrity": "sha512-Q84pogSfRaz0WNrBBy+HzBmhNu4m6tWoM0po8bLwW4pKvrwrSadOgFpm1sku08sfg0QAtUubkWuZEBDpNI3toQ==", + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.47.tgz", + "integrity": "sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "glob-to-regex.js": "^1.0.1" - }, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-print": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.68.0.tgz", - "integrity": "sha512-sdy9F6N9QEcyAcU8OxEQmB91mlgiyuMphTFeijQ+qFgigCOeT16lW3X1dCWNzD7wwKLOKXnnYqsFyeq4LWSlYQ==", + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.47.tgz", + "integrity": "sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.68.0", - "tree-dump": "^1.1.0" - }, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.68.0.tgz", - "integrity": "sha512-eV44t9KY9LH47aPR1a4Nv4xYxM1vQ+OKEw9Mx/3zkuxGOILwmtFddlh5HakdMFpFHwuFNPw1s+NGq2eVYFpQRA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.68.0", - "@jsonjoy.com/json-pack": "^17.65.0", - "@jsonjoy.com/util": "^17.65.0" - }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.47.tgz", + "integrity": "sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", - "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.47.tgz", + "integrity": "sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", - "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.47.tgz", + "integrity": "sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", - "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.47.tgz", + "integrity": "sha512-ZIp49d2Z4/ka2jO9otOg4hDvTdPmp86kVOgS2M5FCPI7eKKZ1W0boxWn+8XeZrfERtFGW0AlMRm4JhlJa7l3NA==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "17.67.0", - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0", - "@jsonjoy.com/json-pointer": "17.67.0", - "@jsonjoy.com/util": "17.67.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", - "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.47", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.47.tgz", + "integrity": "sha512-2h8Iek95vnixkBRCo+H8p09+Q5ll2NgSMFrWTy0iKt7+/t+8/T5mBpiT6c0ZxSS7wcWjwZ9sGZkK70tTSYHdDw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/util": "17.67.0" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=10" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", - "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.28", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.28.tgz", + "integrity": "sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.2" } }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", - "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "node_modules/@tailwindcss/node/node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "dev": true, - "license": "Apache-2.0", + "license": "MPL-2.0", "dependencies": { - "@jsonjoy.com/base64": "^1.1.2", - "@jsonjoy.com/buffers": "^1.2.0", - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/json-pointer": "^1.0.2", - "@jsonjoy.com/util": "^1.9.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" + "detect-libc": "^2.0.3" }, "engines": { - "node": ">=10.0" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, - "peerDependencies": { - "tslib": "2" + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" } }, - "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.0" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jsonjoy.com/json-pointer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", - "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/util": "^1.9.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.0" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jsonjoy.com/util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", - "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^1.0.0", - "@jsonjoy.com/codegen": "^1.0.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10.0" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.0" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@keyv/serialize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", - "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@motionone/easing": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", - "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", - "license": "MIT", - "dependencies": { - "@motionone/utils": "^10.18.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@motionone/types": { - "version": "10.17.1", - "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", - "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", - "license": "MIT" - }, - "node_modules/@motionone/utils": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", - "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", - "license": "MIT", - "dependencies": { - "@motionone/types": "^10.17.1", - "hey-listen": "^1.0.8", - "tslib": "^2.3.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", - "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@oxfmt/binding-android-arm-eabi": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.62.0.tgz", - "integrity": "sha512-pdsv0C4gPjJ8H1+sd8u0BDx+yLACTL+rgeMIOL1ln4ihSnhw8CWXtYWgvcSkyTfgGBIzFKab+d8rx9Xl4en/Kw==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "android" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-android-arm64": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.62.0.tgz", - "integrity": "sha512-WC3YQ7uS/KtDrjmqwBviwFKe9qeoi+eXx8aX1z/ffG23Md75myjrJaQqTuJvdOLPoa4EYTjDWH0dHXfwulCVog==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "MPL-2.0", "optional": true, "os": [ - "android" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-darwin-arm64": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.62.0.tgz", - "integrity": "sha512-GM8Yf3LjjaR1I8PD0SfeoIlwhsh9GvSF+cQ8sf624Yxnjsyumn95aFzYfKJVefblfDIiOAnZ7QVm2sa21Er/0Q==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "libc": [ + "musl" + ], + "license": "MPL-2.0", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-darwin-x64": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.62.0.tgz", - "integrity": "sha512-d5THp7F8bCxLqNogEXDORRsQD6dosf3EyFtnXfBer6v+8tGdcWIjoDX9WaXrrF/26zOmL8qHpPTKCEvpBDmZkQ==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "MPL-2.0", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-freebsd-x64": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.62.0.tgz", - "integrity": "sha512-1DnrtXGZooOZ0fHgAXZUaDQzBVh1CM2MNW4oBXyQ2aWKvCHjyljvT9fgBkOM0fEOb96X5eqtcfJ0YUVt9jj66g==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", + "libc": [ + "musl" + ], + "license": "MPL-2.0", "optional": true, "os": [ - "freebsd" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.62.0.tgz", - "integrity": "sha512-4pQDHOYRH+Huqe0StIaWyvk2CVl/aTaqSrbZpA3/pLS2xH24ME7lBgYprhQF2fRkHBzhGGGKliwxFsDdHwx59g==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", "cpu": [ - "arm" + "arm64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "linux" + "win32" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-linux-arm-musleabihf": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.62.0.tgz", - "integrity": "sha512-X0jAaZJFMCVKhB6YyWVTQ/wN2DLsBcZKSMqTS76bF6riT+XZdtg2FPEdjDvdVbunO9cG+tWiVaEs4Zs38lxYog==", + "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", "cpu": [ - "arm" + "x64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "linux" + "win32" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@oxfmt/binding-linux-arm64-gnu": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.62.0.tgz", - "integrity": "sha512-682Z8T5s8T5ATArYtsejKvbIfd8LEAXyyDkKkoZVq8HND7Vx8TYLlrDjDSeYfodMeVwHOgkj13lJYR8cj6vUSg==", + "node_modules/@tailwindcss/oxide": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-x64": "4.2.2", + "@tailwindcss/oxide-freebsd-x64": "4.2.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ - "linux" + "android" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-arm64-musl": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.62.0.tgz", - "integrity": "sha512-lk25fAl7KWaLWVJcW0CHEXB7QlQZtx5eDkjpaGMK0hzXTjUe0Wmlu8IKuFHoviSOcEJedRTs4VE/506VqGxGew==", + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ - "linux" + "darwin" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-ppc64-gnu": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.62.0.tgz", - "integrity": "sha512-SFyNqHQLwySceWNLhiSldx7wPXRAzP0L0WcW9GegP3uWrpZGJiZlQO85NbHAFPEfxR9PhZ9qSnZryEh7+v+4Gw==", - "cpu": [ - "ppc64" + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "cpu": [ + "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ - "linux" + "darwin" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-riscv64-gnu": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.62.0.tgz", - "integrity": "sha512-KYj55C1ywJfHo6+aKDuEmUtVEdJALsC5GwayDGsI6FGz2GxFqNr/mA8nxVsNbJzm7sE5MRqTQ9ziImSzhYXysA==", + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", "cpu": [ - "riscv64" + "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ - "linux" + "freebsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-riscv64-musl": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.62.0.tgz", - "integrity": "sha512-BhZDNo5GOU5nC378RhD0/XpvaEBHsH3HLgJp8YZX3A0InC7oivzA63HsRmiXFLtLSHAstEVrDf6fbC7Rs8Jh/A==", + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", "cpu": [ - "riscv64" + "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-s390x-gnu": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.62.0.tgz", - "integrity": "sha512-UyAFmyHkgSgUJ/wOM4p3U8AC2yAFvRH5PNBs7TnK0fObTT/XSWcdr/lAzPSWaekHaZFaMeFZyk9n93Joq3J93A==", + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", "cpu": [ - "s390x" + "arm64" ], "dev": true, "libc": [ @@ -3390,19 +2709,19 @@ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-x64-gnu": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.62.0.tgz", - "integrity": "sha512-1iYMP0leytWazFubD/WnINJuIrzRPuoL1aWEJdlGezEzDbTxcd29R4r8IUzP2oWeKst5V02uMJgR2NILlPlG6w==", + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", "cpu": [ - "x64" + "arm64" ], "dev": true, "libc": [ - "glibc" + "musl" ], "license": "MIT", "optional": true, @@ -3410,19 +2729,19 @@ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-linux-x64-musl": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.62.0.tgz", - "integrity": "sha512-4rA/URtJSTVNVAQz6Q8wf7SaRvOXVy+TizriT9hs/Y1XhLR/R+92uWKRQG8yFWRAIEBbFHJ6WevQcl/G9SXEfw==", + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", "cpu": [ "x64" ], "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, @@ -3430,49 +2749,65 @@ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-openharmony-arm64": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.62.0.tgz", - "integrity": "sha512-mSZuFHU2ar1KLUjXpI2QBQcJ1VsOB3mOCgQXuXCpKs19dgh4u+OaovNfrWDfiJb+ihJ2+f7YFcaO9bS2dlTCXA==", + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ - "openharmony" + "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-win32-arm64-msvc": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.62.0.tgz", - "integrity": "sha512-OfwuhkcjDlqC4EgDojtiV9mzpLqeB9KqTOWPOjLEYBVdDCVSxqW3qzp/xcIxsbtI0UgGCnKvAqYKyY25kf5JZw==", + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], "cpu": [ - "arm64" + "wasm32" ], "dev": true, "license": "MIT", "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=14.0.0" } }, - "node_modules/@oxfmt/binding-win32-ia32-msvc": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.62.0.tgz", - "integrity": "sha512-P9uDDNFRzghO3X8QAzhkjKhK7JvtABsVn8UYtFX7uor12IAnwNt8nNIctvfWj1JkQU/kE+fmLRPiw7XlrIHsZw==", + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", @@ -3481,13 +2816,13 @@ "win32" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxfmt/binding-win32-x64-msvc": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.62.0.tgz", - "integrity": "sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ==", + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", "cpu": [ "x64" ], @@ -3498,15314 +2833,1735 @@ "win32" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">= 20" } }, - "node_modules/@oxlint-tsgolint/darwin-arm64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-arm64/-/darwin-arm64-7.0.2001.tgz", - "integrity": "sha512-CUJEdbSZ54+Xy9OXqOhWLTKZKV0BBiV7C2i/ygyVmXtkUNXx5YCzN8DpSSshTAKktoL7S+tnQ/ftFG/i7X896w==", - "cpu": [ - "arm64" - ], + "node_modules/@tailwindcss/vite": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", + "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@tailwindcss/node": "4.2.2", + "@tailwindcss/oxide": "4.2.2", + "tailwindcss": "4.2.2" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } }, - "node_modules/@oxlint-tsgolint/darwin-x64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-x64/-/darwin-x64-7.0.2001.tgz", - "integrity": "sha512-pXfBb5BqONCcgrXQNUZWXgiYmRSWJzd97S8i41VVOh6ut0tyo+cJ5FKFpczDHxiVNfj/3e7c9B4MtztNdpIVCw==", - "cpu": [ - "x64" - ], + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } }, - "node_modules/@oxlint-tsgolint/linux-arm64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-arm64/-/linux-arm64-7.0.2001.tgz", - "integrity": "sha512-roP7zujb/QDPzDwEKsFFpzNHHy91/Y7oX9vQXk78ekyZtcQj1QXDIMH33gjDdHBfRl4K9pZ36xhRgrP4Zr+R8A==", - "cpu": [ - "arm64" - ], + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@types/ms": "*" + } }, - "node_modules/@oxlint-tsgolint/linux-x64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-x64/-/linux-x64-7.0.2001.tgz", - "integrity": "sha512-UDezNqdECVmngu2TPnjaS1YoAmcTaBoI5lV9vk3VahBxoi+I5r9k3iJTT7qZoYWOXTD/7T7bNcwRgrocR6BscQ==", - "cpu": [ - "x64" - ], + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@oxlint-tsgolint/win32-arm64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/win32-arm64/-/win32-arm64-7.0.2001.tgz", - "integrity": "sha512-uJZhqB6pdXLuN+AD1F5082byyQti/NPmJA77GtcFlmT2HzRelqbNls3SaIqxpjdFgvSBF9g0yOKGBkGFg7kX8Q==", - "cpu": [ - "arm64" - ], + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@types/unist": "*" + } }, - "node_modules/@oxlint-tsgolint/win32-x64": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/win32-x64/-/win32-x64-7.0.2001.tgz", - "integrity": "sha512-FkDRm8hx9OwzGQqyWG1tO5QrTLRApff9DzSgpz9QZau37BR8d1VYKOxMLGf6shPZntJFoTwIIJYT68VndYDCog==", - "cpu": [ - "x64" - ], + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } }, - "node_modules/@oxlint/binding-android-arm-eabi": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.77.0.tgz", - "integrity": "sha512-E06sKWS6PiI6HRxS1wyQg22HvApt01hI7fV+T3wUk3OSbaaP4a3hYGY/MIQDmASqCiRjBdpRQYkgMkqH82cWmQ==", - "cpu": [ - "arm" - ], + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@types/unist": "*" } }, - "node_modules/@oxlint/binding-android-arm64": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.77.0.tgz", - "integrity": "sha512-NvsKz0KZxTp9cYWPLf+FXaSZwB3oO3peAjtukpOMBgse2vhQSoIIVqeO1yR0lEo/UcdZIDL18uq+kL0LzQ0ytA==", + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.0.tgz", + "integrity": "sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", "cpu": [ - "arm64" + "ppc64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "android" + "aix" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-darwin-arm64": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.77.0.tgz", - "integrity": "sha512-bgjTn6nW4bQCFBvSvuHCpDD+sONvmpo4lGI4PxzMt1quBA+xYxhczk6RiCn3GZ9gY8uhaBbwhj9MdKGfu6T9DA==", + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-darwin-x64": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.77.0.tgz", - "integrity": "sha512-aotaIttH1R6j1Rwhx0M0htgeZyGtVQqYNTVEYMN/UcgHPquGA6kmk9OyuDc3a2GKUQBC+3C3GVQCcrRPMYqAFA==", + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-freebsd-x64": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.77.0.tgz", - "integrity": "sha512-nNx/wta7ksRAdYvq+l4AWjXkLxEXHALhENxjj2cYbQAIR4ybaA5L+hCbE63HOmft5czQ6ks+hb8vmEAnn7YGPg==", + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "freebsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-arm-gnueabihf": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.77.0.tgz", - "integrity": "sha512-tMLLjM7xXtzXisVCzkOTXNCy9bZVId2wteNwjohlFDR/jY6WagpEDA1c1wu4xRc20Hojaxj+V6DSR7gbKxijWA==", + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", "cpu": [ - "arm" + "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "linux" + "freebsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-arm-musleabihf": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.77.0.tgz", - "integrity": "sha512-MiAFDFaqR0tmHTAyo0YDcZ5hyLREdYw/RQhc2R3cbT+8O3tB+zqPM2th9TTQ+Uo3jn/embS+DO+HyX9ztCPkOQ==", + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-arm64-gnu": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.77.0.tgz", - "integrity": "sha512-/xqQ3B16i1T4cyt/9Mn+4CpzhUXoBXp7kVpIwzOXNFLj5JmK1bIjsbSnX296Gg8A/o7oDtKWikFgBx0SLwztkw==", + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-arm64-musl": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.77.0.tgz", - "integrity": "sha512-LSbwuRKiNCenPDcbARqAZ5RfBy7gmj7vOvfJRLeCDU3gFtSxWbhv/+VTlaUqzUhNj1gFLHB8h7ALnxa/Az6z6g==", + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", "cpu": [ - "arm64" + "loong64" ], "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-ppc64-gnu": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.77.0.tgz", - "integrity": "sha512-QWdcH31mXEUe5Nq1s0CfCpceaKjIo9uZtwDjAuL681g1axf+5x8xrg/eXWaw//4NCxYZ4V4e5Hu5tvdR+pTBlg==", + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", "cpu": [ - "ppc64" + "mips64el" ], "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-riscv64-gnu": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.77.0.tgz", - "integrity": "sha512-GnOfYgJxbcElOiPZaDFDl406ONddwvOWk2jvAAAEjwAl4GofNoHF+/HHUIBYa6bFCArlcGPi0XjC4cU1pkgF/Q==", + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", "cpu": [ - "riscv64" + "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-riscv64-musl": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.77.0.tgz", - "integrity": "sha512-AyEMTUCf0xY+hHF+IxqXFQIX0yQOIR8ykpY0lJNOw9xYqOzUX8dyZfRvlG0RfXwuQn2eonf/8NrMmDSZJjdqsA==", + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", "cpu": [ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-s390x-gnu": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.77.0.tgz", - "integrity": "sha512-sPLzEcNvxd/oyVQ5oZo92CiHkFkpBeRop13E/P3TPY+hZfXHKCOWKI70TE2RYwMKFJDc20EMjH16L7NZICtKTw==", + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", "cpu": [ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-x64-gnu": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.77.0.tgz", - "integrity": "sha512-1Oh2ssH2L7lwyvkdSqaMUfsGfwU2Wfvew+obBUYjRVqhpBcUpwnsPSEr1IzVi9XqkuY10geiLsNKecqaZC34Dw==", + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", "cpu": [ "x64" ], "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-linux-x64-musl": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.77.0.tgz", - "integrity": "sha512-0j/2wRgNGO+Qj/M1uu/p57h/hFTTWWcfie0ufkbabeus2s5+/QqkCflnMOwLLN5m2GsNeWp4xdl4cPa4n7QCOQ==", + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "linux" + "netbsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-openharmony-arm64": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.77.0.tgz", - "integrity": "sha512-BJ/j54qS0usEnyDkLYURMj2iiD9h5Cyy+ppzeMSXBGRXaGRNWnj1Mw14NqWMR5E/PzdgB30OOCCzLzbRoduafw==", + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", "cpu": [ - "arm64" + "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "openharmony" + "netbsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-win32-arm64-msvc": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.77.0.tgz", - "integrity": "sha512-Yh8w+g2Lpx7StrvtYkoz9JJvXjB9wxgFChFNb85nrXm/wj/XTwGWS1hve9+900HL7llrntYB3YP+y32E3tRqzA==", + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "win32" + "openbsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-win32-ia32-msvc": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.77.0.tgz", - "integrity": "sha512-zja5b7+6a7UsRFgAQSrnax5vrzliEyNPLCjfXONu/vTWswaIVZGFajJZptaeRvPE4LghtFdAzVFlexTm7MVTGA==", + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", "cpu": [ - "ia32" + "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "win32" + "openbsd" ], "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=16.20.0" } }, - "node_modules/@oxlint/binding-win32-x64-msvc": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.77.0.tgz", - "integrity": "sha512-+teyvPDZ2RjUvo+SuCqS/UhaJl1QtdW5fWT5NJTV61V5MIuIS90Db9LixmtEGvXixyttiK62P96MSu3UlpviBw==", + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "win32" + "sunos" ], "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/plugins": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/@oxlint/plugins/-/plugins-1.77.0.tgz", - "integrity": "sha512-6KtPXskPgpt+0Kyl2nNSxNnYXt7lbkxW1C7vi2L7xwtq/AisZlsmV+hnzOTEyM5tU1TxPv1GpTqpUBbZfPzBLg==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/Boshen" + "node": ">=16.20.0" } }, - "node_modules/@parcel/watcher": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", - "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.3", - "is-glob": "^4.0.3", - "node-addon-api": "^7.0.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.6.0", - "@parcel/watcher-darwin-arm64": "2.6.0", - "@parcel/watcher-darwin-x64": "2.6.0", - "@parcel/watcher-freebsd-x64": "2.6.0", - "@parcel/watcher-linux-arm-glibc": "2.6.0", - "@parcel/watcher-linux-arm-musl": "2.6.0", - "@parcel/watcher-linux-arm64-glibc": "2.6.0", - "@parcel/watcher-linux-arm64-musl": "2.6.0", - "@parcel/watcher-linux-x64-glibc": "2.6.0", - "@parcel/watcher-linux-x64-musl": "2.6.0", - "@parcel/watcher-win32-arm64": "2.6.0", - "@parcel/watcher-win32-x64": "2.6.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", - "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "android" + "win32" ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=16.20.0" } }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", - "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", "cpu": [ - "arm64" + "x64" ], "dev": true, - "license": "MIT", + "license": "Apache-2.0", "optional": true, "os": [ - "darwin" + "win32" ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=16.20.0" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", - "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", - "cpu": [ - "x64" - ], + "node_modules/@typescript/vfs": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.4.tgz", + "integrity": "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "debug": "^4.4.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "typescript": "*" } }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", - "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", - "cpu": [ - "x64" - ], + "node_modules/@typescript/vfs/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", - "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", - "cpu": [ - "arm" - ], + "node_modules/@typescript/vfs/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.8.tgz", + "integrity": "sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, "engines": { - "node": ">= 10.0.0" + "node": "^20.19.0 || >=22.12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" } }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", - "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", - "cpu": [ - "arm" - ], + "node_modules/@vitest/browser": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.10.tgz", + "integrity": "sha512-UDwuWGwXj646CBx/bQHOaJSX7np0I8JL/UKQYa1e4QrVHH8VdWtx8eaOuf8sy0ShwDgR6NjJAsp5eF6vjF6qng==", "dev": true, - "libc": [ - "musl" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@blazediff/core": "1.9.1", + "@vitest/mocker": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.1.0", + "ws": "^8.19.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.1.10" } }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", - "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", - "cpu": [ - "arm64" - ], + "node_modules/@vitest/browser-playwright": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.10.tgz", + "integrity": "sha512-nMoXGEiRpT7m3W7NsbvrM2aKNwiNHZf+zEpUCvMteGjZFvfT96Q9fh7QyB98dvDWXiKvrLxA7bJ1mCOOv+JQPw==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@vitest/browser": "4.1.10", + "@vitest/mocker": "4.1.10", + "tinyrainbow": "^3.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.1.10" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } } }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", - "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", - "cpu": [ - "arm64" - ], + "node_modules/@vitest/coverage-v8": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", + "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==", "dev": true, - "libc": [ - "musl" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.10", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.1.10", + "vitest": "4.1.10" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", - "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", - "cpu": [ - "x64" - ], + "node_modules/@vitest/expect": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", - "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", - "cpu": [ - "x64" - ], + "node_modules/@vitest/mocker": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", "dev": true, - "libc": [ - "musl" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@vitest/spy": "4.1.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", - "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", - "cpu": [ - "arm64" - ], + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", - "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", - "cpu": [ - "x64" - ], + "node_modules/@vitest/runner": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@vitest/utils": "4.1.10", + "pathe": "^2.0.3" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@pkgr/core": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", - "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "node_modules/@vitest/snapshot": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", "dev": true, "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.0.0" + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" }, "funding": { - "url": "https://opencollective.com/pkgr" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "node_modules/@vitest/spy": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", "dev": true, - "license": "MIT" + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } }, - "node_modules/@quansync/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==", + "node_modules/@vitest/utils": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", "dev": true, "license": "MIT", "dependencies": { - "quansync": "^1.0.0" + "@vitest/pretty-format": "4.1.10", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://github.com/sponsors/sxzz" + "url": "https://opencollective.com/vitest" } }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz", - "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==", - "cpu": [ - "arm64" - ], + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@volar/source-map": "2.4.28" } }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz", - "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==", - "cpu": [ - "arm64" - ], + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.41.tgz", + "integrity": "sha512-q0Xtv/F9w2YO/7htQhtiL+Ev2WCJbe5N2hc+XfgyKkEKqWpSxknmT8QOuGdEKNdjPq0c3F7rNpFkTo3Kfrm7pg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@babel/parser": "^7.29.8", + "@vue/shared": "3.5.41", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" } }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz", - "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==", - "cpu": [ - "x64" - ], + "node_modules/@vue/compiler-dom": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.41.tgz", + "integrity": "sha512-oKacVfNglLvGjnS6BXOlGL7EyG2h8X03pqXCjzotRZUaXGjbrTJUnVAQjrCqUnS+lyu31nwQjZY/d817GmCnfw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/compiler-core": "3.5.41", + "@vue/shared": "3.5.41" } }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz", - "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==", - "cpu": [ - "x64" - ], + "node_modules/@vue/compiler-sfc": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.41.tgz", + "integrity": "sha512-XJhip7R2wy6vX3knCxdZN4KracFaZUef58s1KYewqluedHIJaPIVfXoYT7MF1F8nCvv6k8bWWxDC8opMkg1VTQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@babel/parser": "^7.29.8", + "@vue/compiler-core": "3.5.41", + "@vue/compiler-dom": "3.5.41", + "@vue/compiler-ssr": "3.5.41", + "@vue/shared": "3.5.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.19", + "source-map-js": "^1.2.1" } }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz", - "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==", - "cpu": [ - "arm" - ], + "node_modules/@vue/compiler-ssr": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.41.tgz", + "integrity": "sha512-U3v5OejKEGqOI0Wy0+Sz7hGuIFZHA4LSXzrNM3IMIeDyJEBBfTpX26n3SDgToRpP2bLc9FfI2j/kSgcJ8Emq5A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/compiler-dom": "3.5.41", + "@vue/shared": "3.5.41" } }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz", - "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==", - "cpu": [ - "arm64" - ], + "node_modules/@vue/devtools-api": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.2.1.tgz", + "integrity": "sha512-6u4vXBlIBAC1wMplIZgpyPn7uh/s4Bf6F5bMzvLv+EdJ0aHs/+4B7Ygv864EStQSjRbsRzTko/kUG1A1IejQ3A==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/devtools-kit": "^8.2.1" } }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz", - "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==", - "cpu": [ - "arm64" - ], + "node_modules/@vue/devtools-kit": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.2.1.tgz", + "integrity": "sha512-FIGIuq3AWReEpbAHY/cRGeHDfI0qOb8OCQ3YjbEAX04uaxIDbGc9rhkbVcG7rnfHPXE3RsU5KrWOu9V/okd8AQ==", "dev": true, - "libc": [ - "musl" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/devtools-shared": "^8.2.1", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" } }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz", - "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==", - "cpu": [ - "ppc64" - ], + "node_modules/@vue/devtools-kit/node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/devtools-shared": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.2.1.tgz", + "integrity": "sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.9.tgz", + "integrity": "sha512-in/68oAa4BCtVY6n/nkuhLIkV8DHYd2UivedJ6cMZ6UYtlq9jaoaSNUBHYCVO44z3nKg7MdE5OBoHKt5SxeBKQ==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@volar/language-core": "2.4.28", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.2.1", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.4" } }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz", - "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==", - "cpu": [ - "s390x" - ], + "node_modules/@vue/reactivity": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.41.tgz", + "integrity": "sha512-rznsqKM0np0x18EjzF8x88MpEhdNsffbvFbckLL5+oUKz1BxAImEmO7J1ArRYSyo6aQaVoBDp7jEkT91OOxydA==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/shared": "3.5.41" } }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz", - "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==", - "cpu": [ - "x64" - ], + "node_modules/@vue/runtime-core": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.41.tgz", + "integrity": "sha512-Vcry58hiAKwGen9Z1jUZE0feFsNArPCMOImYI8el48A9Idf6DuQYD0U05zZIF2Iad1hGhPSvcbBbAOhNr55fhg==", "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/reactivity": "3.5.41", + "@vue/shared": "3.5.41" } }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz", - "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==", - "cpu": [ - "x64" - ], + "node_modules/@vue/runtime-dom": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.41.tgz", + "integrity": "sha512-3vVBahVBS9+U6cmXBLyb8nE6/yYo4J/CGI9eVFs3KiMc0YHuudwKyShTD65jtJy/L9PUUxNAFu4cj4LiJ0UFbw==", "dev": true, - "libc": [ - "musl" - ], "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/reactivity": "3.5.41", + "@vue/runtime-core": "3.5.41", + "@vue/shared": "3.5.41", + "csstype": "^3.2.3" } }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz", - "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz", - "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz", - "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==", - "cpu": [ - "x64" - ], + "node_modules/@vue/server-renderer": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.41.tgz", + "integrity": "sha512-n6hx/pNFfbD6SuyeuMVkvqox8bwf/ET9JlA/kAz/imw8sw++wkqKe2mHX5KutjPpbKE4Z56yTHszoOjGMI9igQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" + "dependencies": { + "@vue/compiler-ssr": "3.5.41", + "@vue/runtime-dom": "3.5.41", + "@vue/shared": "3.5.41" } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "node_modules/@vue/shared": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.41.tgz", + "integrity": "sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==", "dev": true, "license": "MIT" }, - "node_modules/@rollup/plugin-swc": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-swc/-/plugin-swc-0.4.1.tgz", - "integrity": "sha512-widfnT1TbDc4hsV37PQ61ZoLGPJ7STZE4lQzA3gWKbcMfzjOgiGsoTYfSsq21H4J2UY1y3MKwejXTMkwN2tEtQ==", + "node_modules/@vueuse/core": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.4.0.tgz", + "integrity": "sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "smob": "^1.4.0" + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.4.0", + "@vueuse/shared": "14.4.0" }, - "engines": { - "node": ">=14.0.0" + "funding": { + "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "@swc/core": "^1.3.0", - "rollup": "^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "vue": "^3.5.0" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", - "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "node_modules/@vueuse/integrations": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-14.4.0.tgz", + "integrity": "sha512-oJz9qTgczvA7L1nXQFRU7h8tQbOCoiceqvMMhT9XYMyOGTqLJ2rEa09PON+nD2t48sZUfeOmg4eaWJXV4sZb/w==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "@vueuse/core": "14.4.0", + "@vueuse/shared": "14.4.0" }, - "engines": { - "node": ">=14.0.0" + "funding": { + "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7 || ^8", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7 || ^8", + "vue": "^3.5.0" }, "peerDependenciesMeta": { - "rollup": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { "optional": true } } }, - "node_modules/@shikijs/core": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.0.2.tgz", - "integrity": "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==", + "node_modules/@vueuse/metadata": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.4.0.tgz", + "integrity": "sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==", "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/primitive": "4.0.2", - "@shikijs/types": "4.0.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.5" - }, - "engines": { - "node": ">=20" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@shikijs/engine-javascript": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.0.2.tgz", - "integrity": "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==", + "node_modules/@vueuse/shared": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.4.0.tgz", + "integrity": "sha512-JRgY90Sz8DDtPMsaDflvPMp9xYk69JZAmbuDvAquUVXKr2gEjqtzGNTTthLfckH0BzBqvnu31gb4a8TGLRe79g==", "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "4.0.2", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.4" + "funding": { + "url": "https://github.com/sponsors/antfu" }, - "engines": { - "node": ">=20" + "peerDependencies": { + "vue": "^3.5.0" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.0.2.tgz", - "integrity": "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==", + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "4.0.2", - "@shikijs/vscode-textmate": "^10.0.2" - }, - "engines": { - "node": ">=20" - } + "license": "BSD-2-Clause" }, - "node_modules/@shikijs/langs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.0.2.tgz", - "integrity": "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==", + "node_modules/@yuku-codegen/binding-android-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-android-arm64/-/binding-android-arm64-0.8.4.tgz", + "integrity": "sha512-rsYkGl2kOkDRsh1mxriYnk1qBS78vjlBJ3+T2XwtwKwqOliy2n+2Ae0EDxJ/uX1DZLm3KkBZarGO5isEnmHchA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "4.0.2" - }, - "engines": { - "node": ">=20" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@shikijs/primitive": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.0.2.tgz", - "integrity": "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==", + "node_modules/@yuku-codegen/binding-darwin-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-darwin-arm64/-/binding-darwin-arm64-0.8.4.tgz", + "integrity": "sha512-tNLKzPF3FYmEcHSYvWp/LEpjHHAtDR13hwo6/gdCkYMi9x59CWn2obczKzWNe7kDor4/1AMZuJDEVRpFkTSefw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "4.0.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - }, - "engines": { - "node": ">=20" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@shikijs/themes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.0.2.tgz", - "integrity": "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "4.0.2" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/transformers": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-4.4.2.tgz", - "integrity": "sha512-d81PJ9KkR1tVP95FH/9296HTtDo0mh76wv10u9T1YmsZq/UcXgt0OLdBszfUQ1i+umkRMCjDnFbFZU7/tCODTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "4.4.2", - "@shikijs/types": "4.4.2" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/transformers/node_modules/@shikijs/core": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.2.tgz", - "integrity": "sha512-StyzbAyxg2/tBGf78gwbBkGyeQ73lf8UiJArFaQhTQIDqQOCKPCQFanvrs4/Yv3Yfyc+ONInJM6K+FMIf+P+kA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/primitive": "4.4.2", - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5", - "hast-util-to-html": "^9.0.5" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/transformers/node_modules/@shikijs/primitive": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.2.tgz", - "integrity": "sha512-l6fQQKsOMlz72n38fztmSgZ76MO6KSWuw8o+GJ+FhmqrpC9pIOJNQNXGgbb5yX2AwpzlEHwsaLPnk/8o4Fm+rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/transformers/node_modules/@shikijs/types": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.2.tgz", - "integrity": "sha512-PFYitV4vpDr/iPCIhnHp+Q4ftic5N5VeNJ3KQ1O8gn3h2ar8qgwMAXF7tq4m1CWaMS60fV4VqF6vfnWH4F7vqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/twoslash": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-4.0.2.tgz", - "integrity": "sha512-yHRudhirlMxOwDO6Q4OFU9hJMvUqNkY8hwtUfbaSEoG7A2cYicdO4c8fdDaDtyJ50HK7I8vTokrkIHTK3DCkLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "4.0.2", - "@shikijs/types": "4.0.2", - "twoslash": "^0.3.6" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "typescript": ">=5.5.0" - } - }, - "node_modules/@shikijs/twoslash/node_modules/twoslash": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.9.tgz", - "integrity": "sha512-rDclk+OtzuTX+tnea7DYLCkqGQ3eP0IyfD+kzUJ7t46X/NzlaxwrhecmEBNuSCuEn3V+n1PhcjUUQQ7gUJzX5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript/vfs": "^1.6.4", - "twoslash-protocol": "0.3.9" - }, - "peerDependencies": { - "typescript": "^5.5.0 || ^6.0.0" - } - }, - "node_modules/@shikijs/types": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.0.2.tgz", - "integrity": "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/vitepress-twoslash": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-4.0.2.tgz", - "integrity": "sha512-Bk01fAYDDiTffRPLHNJdNlYwzExXIVcrHUVNciD931SMlKZArvteKib6mM3mWAUhcy78RW1llT3fczjKIgQHBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/twoslash": "4.0.2", - "floating-vue": "^5.2.2", - "lz-string": "^1.5.0", - "magic-string": "^0.30.21", - "markdown-it": "^14.1.1", - "mdast-util-from-markdown": "^2.0.3", - "mdast-util-gfm": "^3.1.0", - "mdast-util-to-hast": "^13.2.1", - "ohash": "^2.0.11", - "shiki": "4.0.2", - "twoslash": "^0.3.6", - "twoslash-vue": "^0.3.6", - "vue": "^3.5.29" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@shikijs/vitepress-twoslash/node_modules/twoslash": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.9.tgz", - "integrity": "sha512-rDclk+OtzuTX+tnea7DYLCkqGQ3eP0IyfD+kzUJ7t46X/NzlaxwrhecmEBNuSCuEn3V+n1PhcjUUQQ7gUJzX5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript/vfs": "^1.6.4", - "twoslash-protocol": "0.3.9" - }, - "peerDependencies": { - "typescript": "^5.5.0 || ^6.0.0" - } - }, - "node_modules/@shikijs/vitepress-twoslash/node_modules/twoslash-vue": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/twoslash-vue/-/twoslash-vue-0.3.9.tgz", - "integrity": "sha512-2zO1u4iPhZz9k7ysuDaJL1FUn4SHzm78ZF6/0Q4yFR2VP3NW0JwRpw/4cWqEM6ye3pDf8Zr9lVPBvsX4uK315A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/language-core": "^3.2.6", - "twoslash": "0.3.9", - "twoslash-protocol": "0.3.9" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "typescript": "^5.5.0 || ^6.0.0" - } - }, - "node_modules/@shikijs/vitepress-twoslash/node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@shopify/liquid-html-parser": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@shopify/liquid-html-parser/-/liquid-html-parser-2.10.0.tgz", - "integrity": "sha512-fdfKqVOoGCvLWgXUiqPjw99wM64wZV/3RpSQZb59P1K8pT7l1cyJZV+QAyHgvVV1jcglUCtFmr+8ioY7rGVdKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "line-column": "^1.0.2" - } - }, - "node_modules/@shopify/prettier-plugin-liquid": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@shopify/prettier-plugin-liquid/-/prettier-plugin-liquid-1.10.0.tgz", - "integrity": "sha512-csHYjwuT34o8ja6EY0dUBYQS5UVwsKwRYxGiuG816Ov0B8lVd8FUjOwWUk2SnrNx3cGgL0no7z+Byapp7sC1Uw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shopify/liquid-html-parser": "^2.9.0", - "html-styles": "^1.0.0" - }, - "peerDependencies": { - "prettier": "^2.0.0 || ^3.0.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.34.52", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz", - "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@soda/friendly-errors-webpack-plugin": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", - "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "error-stack-parser": "^2.0.6", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@studiometa/eslint-config": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@studiometa/eslint-config/-/eslint-config-4.3.1.tgz", - "integrity": "sha512-biLt0B6JD+WzWAuBmVkIy6ZjNvdPloKRUUF9NJIbn15WddXGg+h32D45tGgq3m/4X9+NIMw1nr4Ee3r4qBzYWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint/js": "^9.29.0", - "eslint": "^9.29.0", - "eslint-config-prettier": "^10.1.5", - "eslint-formatter-gitlab": "^6.0.1", - "eslint-plugin-jsdoc": "^51.0.1", - "eslint-plugin-prettier": "^5.4.1", - "eslint-plugin-unicorn": "^59.0.1", - "eslint-plugin-vue": "^10.2.0", - "globals": "^16.2.0", - "typescript-eslint": "^8.34.0" - }, - "peerDependencies": { - "prettier": ">=3.0.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/@typescript-eslint/project-service": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", - "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.66.0", - "@typescript-eslint/types": "^8.66.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", - "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", - "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.66.0", - "@typescript-eslint/tsconfig-utils": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@studiometa/eslint-config/node_modules/eslint-plugin-vue": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.10.0.tgz", - "integrity": "sha512-dL9x9rBHqqNcByWiLOHK6L0SB97V82/NC0cZRn9cXPjM7pCuWlpQQP9bFH4vjBv80ej1ZpzAkuD8zWH1o9bZbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "natural-compare": "^1.4.0", - "nth-check": "^2.1.1", - "postcss-selector-parser": "^7.1.4", - "semver": "^7.8.5", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "@stylistic/eslint-plugin": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", - "@typescript-eslint/parser": "^7.0.0 || ^8.0.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "vue-eslint-parser": "^10.3.0" - }, - "peerDependenciesMeta": { - "@stylistic/eslint-plugin": { - "optional": true - }, - "@typescript-eslint/parser": { - "optional": true - } - } - }, - "node_modules/@studiometa/eslint-config/node_modules/ignore": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", - "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript-eslint": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", - "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.66.0", - "@typescript-eslint/parser": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", - "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/type-utils": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.66.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", - "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", - "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-config/node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", - "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@studiometa/eslint-plugin-js-toolkit": { - "resolved": "packages/eslint-plugin", - "link": true - }, - "node_modules/@studiometa/js-toolkit": { - "resolved": "packages/js-toolkit", - "link": true - }, - "node_modules/@studiometa/js-toolkit-demo": { - "resolved": "packages/demo", - "link": true - }, - "node_modules/@studiometa/js-toolkit-docs": { - "resolved": "packages/docs", - "link": true - }, - "node_modules/@studiometa/js-toolkit-v4": { - "resolved": "packages/v4", - "link": true - }, - "node_modules/@studiometa/prettier-config": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@studiometa/prettier-config/-/prettier-config-4.4.0.tgz", - "integrity": "sha512-n65PF9qzeIoO50RzAiTvodmgp8i26eYdDljjeu3K/yxVe9haEIv91ZCDNgUnOZK1yeH4JBzsRHz1DWuGhWMRxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shopify/prettier-plugin-liquid": "1.10.0", - "@studiometa/prettier-formatter-gitlab": "^2.1.1", - "@zackad/prettier-plugin-twig": "^0.16.0", - "prettier": "^3.6.2" - } - }, - "node_modules/@studiometa/prettier-formatter-gitlab": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@studiometa/prettier-formatter-gitlab/-/prettier-formatter-gitlab-2.1.2.tgz", - "integrity": "sha512-wvG3gHRqWIvCVa6FL0lRC+8vFnrvCR94uePN2VUp+IiCeBKgxhAmZfL8l5rYxtEVkJ4Ac/eLHq8TY/tKNYX10A==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.6.2", - "jest-diff": "^30.2.0", - "prettier-linter-helpers": "^1.0.0", - "strip-ansi": "7.1.2", - "yaml": "2.8.1" - }, - "bin": { - "prettier-formatter-gitlab": "bin/cli.js" - }, - "peerDependencies": { - "prettier": "^3.0" - } - }, - "node_modules/@studiometa/stylelint-config": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@studiometa/stylelint-config/-/stylelint-config-4.1.1.tgz", - "integrity": "sha512-lDUIqdypqA+1jL+MYDMi+7ApTlfJl6cSXP/JtNozEKSUV1d5BRPUfj8AcGhDyX8Whkz5vP+Ol1a0BJ+2dU0J2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@studiometa/stylelint-formatter-gitlab": "^1.0.2", - "postcss": "^8.5.6", - "postcss-html": "^1.8.0", - "postcss-scss": "^4.0.9", - "stylelint": "^16.20.0", - "stylelint-config-recommended": "^16.0.0", - "stylelint-config-recommended-scss": "^15.0.1", - "stylelint-formatter-pretty": "^4.0.1", - "stylelint-high-performance-animation": "^1.11.0", - "stylelint-order": "^7.0.0", - "stylelint-prettier": "^5.0.3", - "stylelint-scss": "^6.12.1" - }, - "peerDependencies": { - "prettier": ">=3.0.0" - } - }, - "node_modules/@studiometa/stylelint-formatter-gitlab": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@studiometa/stylelint-formatter-gitlab/-/stylelint-formatter-gitlab-1.1.1.tgz", - "integrity": "sha512-ztgzYTrvfaHsfSs+7uLzNR2NuM2e3haUqXPkIL7K//mfkQ2VC58pDG3c934f1KmZswvjR4rGe3Q3D4wkGqhj2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-diff": "^30.3.0", - "yaml": "^2.8.3" - }, - "peerDependencies": { - "stylelint": "^16.0 || ^17.0" - } - }, - "node_modules/@studiometa/stylelint-formatter-gitlab/node_modules/yaml": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, - "node_modules/@studiometa/tailwind-config": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@studiometa/tailwind-config/-/tailwind-config-3.0.0.tgz", - "integrity": "sha512-SauwUlgEcptxMMyy1TGL7Xod22654RncBT6whdefvUbgYw/46tnnXLDKVJ9vDb1QylWVkSxBUAUHzTov2AM9KQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "postcss": "^8.5.6", - "tailwindcss": "^4.1.16" - } - }, - "node_modules/@studiometa/ui": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@studiometa/ui/-/ui-1.7.0.tgz", - "integrity": "sha512-PpXc32qBAg0cN6oh73hR8gnSdcnEmaByOUacyY/08NgzUE4AZv2a/9rGFmWmqMNFAc62Nblpfmyg8QE4Y4nbkw==", - "license": "MIT", - "dependencies": { - "deepmerge": "^4.3.1", - "morphdom": "^2.7.5" - }, - "peerDependencies": { - "@studiometa/js-toolkit": "^3.4.0" - } - }, - "node_modules/@studiometa/webpack-config": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/@studiometa/webpack-config/-/webpack-config-6.3.6.tgz", - "integrity": "sha512-yekX8GMfMGUvEjn7RNOioQXTAoWFMRveSGd+dctlbvI938nfBRfvDCCm535zwqUQ1zIQsHiR4duBSHKb3w1Ang==", - "dev": true, - "license": "MIT", - "dependencies": { - "@soda/friendly-errors-webpack-plugin": "^1.8.1", - "ajv": "8.17.1", - "autoprefixer": "^10.4.21", - "browser-sync": "^3.0.4", - "cac": "^6.7.14", - "chalk": "^5.4.1", - "common-dir": "^3.0.1", - "css-minimizer-webpack-plugin": "^7.0.2", - "dotenv": "^16.5.0", - "dotenv-expand": "^12.0.2", - "esbuild": "^0.25.5", - "esbuild-loader": "^4.3.0", - "find-up": "^7.0.0", - "get-port": "^7.1.0", - "glob": "^11.0.2", - "hot-accept-webpack-plugin": "^4.0.2", - "js-yaml-loader": "^1.2.2", - "lodash.merge": "^4.6.2", - "postcss": "^8.5.4", - "postcss-loader": "^8.1.1", - "postcss-preset-env": "^10.2.0", - "resolve-url-loader": "^5.0.0", - "sass-embedded": "^1.89.1", - "sass-loader": "^16.0.5", - "terser-webpack-plugin": "^5.3.14", - "webpack": "^5.99.9", - "webpack-assets-manifest": "^6.1.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-middleware": "^7.4.2", - "webpack-hot-middleware": "^2.26.1", - "webpack-merge": "^6.0.1", - "webpack-module-hot-accept": "^1.0.5", - "webpack-remove-empty-scripts": "^1.1.1", - "webpackbar": "^7.0.0" - }, - "bin": { - "meta": "bin/cli.js" - }, - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@studiometa/webpack-config-preset-markdown": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/@studiometa/webpack-config-preset-markdown/-/webpack-config-preset-markdown-6.3.6.tgz", - "integrity": "sha512-kMhfhXths4VDx/uT1UZuWLIe7YpdXgN3xCTmqwdkEL7b0+NTayQq92mLaY4flzqxb1KhgF14YQESv6xhrOanUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "front-matter-loader": "^2.0.0", - "remark": "^14.0.3", - "remark-html": "^16.0.1", - "remark-loader": "^6.0.0" - }, - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@studiometa/webpack-config-preset-prototyping": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/@studiometa/webpack-config-preset-prototyping/-/webpack-config-preset-prototyping-6.3.6.tgz", - "integrity": "sha512-R62Am4gg70gFcvG+9V889xgXsSNPpvX6wJ4UU+5+psJPp0LtQOme/1id4Bv6WNhUSPNbWuu4LTxbJ3S/ESChOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@studiometa/webpack-config-preset-markdown": "6.3.6", - "change-case": "5.4.4", - "collect.js": "^4.36.1", - "filemanager-webpack-plugin": "^8.0.0", - "glob": "^11.0.1", - "html-escaper": "^3.0.3", - "html-loader": "5.1.0", - "html-webpack-harddisk-plugin": "^2.0.0", - "html-webpack-plugin": "^5.6.3", - "lodash.merge": "^4.6.2", - "minimatch": "^10.0.1", - "twig": "^1.17.1" - }, - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@studiometa/webpack-config/node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/@swc/core": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.47.tgz", - "integrity": "sha512-FbsO5JcfOjfH38W/rohBRBweJeERsAuIP4f377lmkmxTcq9exjtx4SkRuZY5CdfhR2CBVwDIJegBpJDffwNsOg==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.27" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.47", - "@swc/core-darwin-x64": "1.15.47", - "@swc/core-linux-arm-gnueabihf": "1.15.47", - "@swc/core-linux-arm64-gnu": "1.15.47", - "@swc/core-linux-arm64-musl": "1.15.47", - "@swc/core-linux-ppc64-gnu": "1.15.47", - "@swc/core-linux-s390x-gnu": "1.15.47", - "@swc/core-linux-x64-gnu": "1.15.47", - "@swc/core-linux-x64-musl": "1.15.47", - "@swc/core-win32-arm64-msvc": "1.15.47", - "@swc/core-win32-ia32-msvc": "1.15.47", - "@swc/core-win32-x64-msvc": "1.15.47" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.17" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.47.tgz", - "integrity": "sha512-GsoMtan3ojGGMGFbl31mmRu5ctZ56re8grGE8mO/OHJ8O+JRkzod02fe7X6ZQ8JvamA3imkEkx/h3u+vsOgPgA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.47.tgz", - "integrity": "sha512-leTi7Rx3KF4zcC637iqWgk9SoV8VXAD8ppQYXsep63px5A/UftOcxLN1pmr8Z1si/YvX90ompP/rHgpYkgwXWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.47.tgz", - "integrity": "sha512-hBqHuoWKKIsKmDBn9qVeWqj5GWZhtlcczVaqQmNRXsDfq+voR5CxKRfamA367QjJXtceYuliLFfEL8QsskRM2g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.47.tgz", - "integrity": "sha512-TBxvRz+B4K205TWHHZxWVxkC2RFNP/Mz3PNcECBos5PsKwxjg3QSJzdoebr0VCf0Bfh8HOPldKxAP/8XkFe9gA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.47.tgz", - "integrity": "sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-ppc64-gnu": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.47.tgz", - "integrity": "sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-s390x-gnu": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.47.tgz", - "integrity": "sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.47.tgz", - "integrity": "sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.47.tgz", - "integrity": "sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.47.tgz", - "integrity": "sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.47.tgz", - "integrity": "sha512-ZIp49d2Z4/ka2jO9otOg4hDvTdPmp86kVOgS2M5FCPI7eKKZ1W0boxWn+8XeZrfERtFGW0AlMRm4JhlJa7l3NA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.47", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.47.tgz", - "integrity": "sha512-2h8Iek95vnixkBRCo+H8p09+Q5ll2NgSMFrWTy0iKt7+/t+8/T5mBpiT6c0ZxSS7wcWjwZ9sGZkK70tTSYHdDw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.28", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.28.tgz", - "integrity": "sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", - "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.19.0", - "jiti": "^2.6.1", - "lightningcss": "1.32.0", - "magic-string": "^0.30.21", - "source-map-js": "^1.2.1", - "tailwindcss": "4.2.2" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/node/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", - "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-x64": "4.2.2", - "@tailwindcss/oxide-freebsd-x64": "4.2.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-x64-musl": "4.2.2", - "@tailwindcss/oxide-wasm32-wasi": "4.2.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", - "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", - "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", - "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", - "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", - "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", - "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", - "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", - "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", - "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", - "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.8.1", - "@emnapi/runtime": "^1.8.1", - "@emnapi/wasi-threads": "^1.1.0", - "@napi-rs/wasm-runtime": "^1.1.1", - "@tybys/wasm-util": "^0.10.1", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", - "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", - "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", - "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.2.2", - "@tailwindcss/oxide": "4.2.2", - "tailwindcss": "4.2.2" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6 || ^7 || ^8" - } - }, - "node_modules/@types/archiver": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz", - "integrity": "sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/readdir-glob": "*" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/cors": { - "version": "2.8.19", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", - "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", - "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", - "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.19.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.0.tgz", - "integrity": "sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/readdir-glob": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.5.tgz", - "integrity": "sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", - "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/whatwg-mimetype": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz", - "integrity": "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", - "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", - "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", - "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript/typescript-aix-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", - "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", - "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", - "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", - "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", - "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", - "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", - "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-loong64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", - "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-mips64el": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", - "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", - "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-riscv64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", - "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-s390x": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", - "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", - "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", - "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", - "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", - "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", - "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-sunos-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", - "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", - "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", - "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/vfs": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.4.tgz", - "integrity": "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.3" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/@typescript/vfs/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@typescript/vfs/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", - "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.8.tgz", - "integrity": "sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@vitest/browser": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.10.tgz", - "integrity": "sha512-UDwuWGwXj646CBx/bQHOaJSX7np0I8JL/UKQYa1e4QrVHH8VdWtx8eaOuf8sy0ShwDgR6NjJAsp5eF6vjF6qng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@blazediff/core": "1.9.1", - "@vitest/mocker": "4.1.10", - "@vitest/utils": "4.1.10", - "magic-string": "^0.30.21", - "pngjs": "^7.0.0", - "sirv": "^3.0.2", - "tinyrainbow": "^3.1.0", - "ws": "^8.19.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "4.1.10" - } - }, - "node_modules/@vitest/browser-playwright": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.10.tgz", - "integrity": "sha512-nMoXGEiRpT7m3W7NsbvrM2aKNwiNHZf+zEpUCvMteGjZFvfT96Q9fh7QyB98dvDWXiKvrLxA7bJ1mCOOv+JQPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/browser": "4.1.10", - "@vitest/mocker": "4.1.10", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "playwright": "*", - "vitest": "4.1.10" - }, - "peerDependenciesMeta": { - "playwright": { - "optional": false - } - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", - "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.10", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", - "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "4.1.10", - "vitest": "4.1.10" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/expect": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", - "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", - "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.10", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/mocker/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", - "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", - "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.10", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", - "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "@vitest/utils": "4.1.10", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", - "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", - "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", - "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/source-map": "2.4.28" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", - "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.41.tgz", - "integrity": "sha512-q0Xtv/F9w2YO/7htQhtiL+Ev2WCJbe5N2hc+XfgyKkEKqWpSxknmT8QOuGdEKNdjPq0c3F7rNpFkTo3Kfrm7pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/shared": "3.5.41", - "entities": "^7.0.1", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.41.tgz", - "integrity": "sha512-oKacVfNglLvGjnS6BXOlGL7EyG2h8X03pqXCjzotRZUaXGjbrTJUnVAQjrCqUnS+lyu31nwQjZY/d817GmCnfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.41", - "@vue/shared": "3.5.41" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.41.tgz", - "integrity": "sha512-XJhip7R2wy6vX3knCxdZN4KracFaZUef58s1KYewqluedHIJaPIVfXoYT7MF1F8nCvv6k8bWWxDC8opMkg1VTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/compiler-core": "3.5.41", - "@vue/compiler-dom": "3.5.41", - "@vue/compiler-ssr": "3.5.41", - "@vue/shared": "3.5.41", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.21", - "postcss": "^8.5.19", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.41.tgz", - "integrity": "sha512-U3v5OejKEGqOI0Wy0+Sz7hGuIFZHA4LSXzrNM3IMIeDyJEBBfTpX26n3SDgToRpP2bLc9FfI2j/kSgcJ8Emq5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.41", - "@vue/shared": "3.5.41" - } - }, - "node_modules/@vue/devtools-api": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.2.1.tgz", - "integrity": "sha512-6u4vXBlIBAC1wMplIZgpyPn7uh/s4Bf6F5bMzvLv+EdJ0aHs/+4B7Ygv864EStQSjRbsRzTko/kUG1A1IejQ3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/devtools-kit": "^8.2.1" - } - }, - "node_modules/@vue/devtools-kit": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.2.1.tgz", - "integrity": "sha512-FIGIuq3AWReEpbAHY/cRGeHDfI0qOb8OCQ3YjbEAX04uaxIDbGc9rhkbVcG7rnfHPXE3RsU5KrWOu9V/okd8AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/devtools-shared": "^8.2.1", - "birpc": "^2.6.1", - "hookable": "^5.5.3", - "perfect-debounce": "^2.0.0" - } - }, - "node_modules/@vue/devtools-kit/node_modules/hookable": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vue/devtools-shared": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.2.1.tgz", - "integrity": "sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vue/language-core": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.9.tgz", - "integrity": "sha512-in/68oAa4BCtVY6n/nkuhLIkV8DHYd2UivedJ6cMZ6UYtlq9jaoaSNUBHYCVO44z3nKg7MdE5OBoHKt5SxeBKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.28", - "@vue/compiler-dom": "^3.5.0", - "@vue/shared": "^3.5.0", - "alien-signals": "^3.2.1", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "picomatch": "^4.0.4" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.41.tgz", - "integrity": "sha512-rznsqKM0np0x18EjzF8x88MpEhdNsffbvFbckLL5+oUKz1BxAImEmO7J1ArRYSyo6aQaVoBDp7jEkT91OOxydA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.41" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.41.tgz", - "integrity": "sha512-Vcry58hiAKwGen9Z1jUZE0feFsNArPCMOImYI8el48A9Idf6DuQYD0U05zZIF2Iad1hGhPSvcbBbAOhNr55fhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.41", - "@vue/shared": "3.5.41" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.41.tgz", - "integrity": "sha512-3vVBahVBS9+U6cmXBLyb8nE6/yYo4J/CGI9eVFs3KiMc0YHuudwKyShTD65jtJy/L9PUUxNAFu4cj4LiJ0UFbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.41", - "@vue/runtime-core": "3.5.41", - "@vue/shared": "3.5.41", - "csstype": "^3.2.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.41.tgz", - "integrity": "sha512-n6hx/pNFfbD6SuyeuMVkvqox8bwf/ET9JlA/kAz/imw8sw++wkqKe2mHX5KutjPpbKE4Z56yTHszoOjGMI9igQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.41", - "@vue/runtime-dom": "3.5.41", - "@vue/shared": "3.5.41" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.41.tgz", - "integrity": "sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vueuse/core": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.4.0.tgz", - "integrity": "sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/web-bluetooth": "^0.0.21", - "@vueuse/metadata": "14.4.0", - "@vueuse/shared": "14.4.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@vueuse/integrations": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-14.4.0.tgz", - "integrity": "sha512-oJz9qTgczvA7L1nXQFRU7h8tQbOCoiceqvMMhT9XYMyOGTqLJ2rEa09PON+nD2t48sZUfeOmg4eaWJXV4sZb/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vueuse/core": "14.4.0", - "@vueuse/shared": "14.4.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "async-validator": "^4", - "axios": "^1", - "change-case": "^5", - "drauu": "^0.4", - "focus-trap": "^7 || ^8", - "fuse.js": "^7", - "idb-keyval": "^6", - "jwt-decode": "^4", - "nprogress": "^0.2", - "qrcode": "^1.5", - "sortablejs": "^1", - "universal-cookie": "^7 || ^8", - "vue": "^3.5.0" - }, - "peerDependenciesMeta": { - "async-validator": { - "optional": true - }, - "axios": { - "optional": true - }, - "change-case": { - "optional": true - }, - "drauu": { - "optional": true - }, - "focus-trap": { - "optional": true - }, - "fuse.js": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "jwt-decode": { - "optional": true - }, - "nprogress": { - "optional": true - }, - "qrcode": { - "optional": true - }, - "sortablejs": { - "optional": true - }, - "universal-cookie": { - "optional": true - } - } - }, - "node_modules/@vueuse/metadata": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.4.0.tgz", - "integrity": "sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.4.0.tgz", - "integrity": "sha512-JRgY90Sz8DDtPMsaDflvPMp9xYk69JZAmbuDvAquUVXKr2gEjqtzGNTTthLfckH0BzBqvnu31gb4a8TGLRe79g==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/@yuku-codegen/binding-android-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-android-arm64/-/binding-android-arm64-0.8.4.tgz", - "integrity": "sha512-rsYkGl2kOkDRsh1mxriYnk1qBS78vjlBJ3+T2XwtwKwqOliy2n+2Ae0EDxJ/uX1DZLm3KkBZarGO5isEnmHchA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@yuku-codegen/binding-darwin-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-darwin-arm64/-/binding-darwin-arm64-0.8.4.tgz", - "integrity": "sha512-tNLKzPF3FYmEcHSYvWp/LEpjHHAtDR13hwo6/gdCkYMi9x59CWn2obczKzWNe7kDor4/1AMZuJDEVRpFkTSefw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@yuku-codegen/binding-darwin-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-darwin-x64/-/binding-darwin-x64-0.8.4.tgz", - "integrity": "sha512-tK7LWzXNb5JbZpnoCNHB0nEhPFss/LwwehM6m/f0oYDan+iZgFZXzdoy80JdE7dVxjTZDIhUNPx8X8xbIdaoxA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@yuku-codegen/binding-freebsd-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-freebsd-x64/-/binding-freebsd-x64-0.8.4.tgz", - "integrity": "sha512-5MUV4d7g2p5Hd8GiXW6ynTRgYjm4Dw4eM2gaWRZ4crkGetzNx+HlPxcEfGtVNPqH5Qaa4Z2REtzdsdgvaE6/Ng==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@yuku-codegen/binding-linux-arm-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm-gnu/-/binding-linux-arm-gnu-0.8.4.tgz", - "integrity": "sha512-g6LnHrR0Rfqq5cXs7olwR2+LlVDc876pw7Hh7YXbukVSiBxQkaxqsEO/trO25z2g99zWzgXwoYvQZ1TnwA2wEw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-linux-arm-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm-musl/-/binding-linux-arm-musl-0.8.4.tgz", - "integrity": "sha512-7XAPHrROPEFuJWXEGZeLZQN4xR8ENQ65+HSCtCHjSzCwGgnX53GUjM9ExVcHopV0a5g4vu57v2wwtyWIM5iNOQ==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-linux-arm64-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.8.4.tgz", - "integrity": "sha512-fnBm7NLuuwFXy7F1vRIuyOc+RW9ADUjuCKVGY87Dj8jtr9XgESNrwb+B9VLSFY7nZ0rCdK/Sm1fBqJpI7eLdKQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-linux-arm64-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.8.4.tgz", - "integrity": "sha512-6vTw4ZHO9nm4SUkw36uG+UE6/qifZ0E8HIef7Mx/U/c2Zxu3JLBfXtU7U/NN2GMkDmcJkgwjXfpQoYw4Ch5Y1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-linux-x64-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.8.4.tgz", - "integrity": "sha512-+vuC3V3Lw+DB4oJgHV9pVDfQZlsZJnxmbdods7HzxgEALU3P5+czwdAcw3wfh7Ebabt0Ny8eLUb1k9RV5OB/+w==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-linux-x64-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-x64-musl/-/binding-linux-x64-musl-0.8.4.tgz", - "integrity": "sha512-QH60PE4eZecmgNGa1/T1cKPhrfxt6ANtu4lrQ1FZ50F9b0GS9WjGmIjrfdSUeQa+f2Iqk3oEFSJdgVHBg1KPNg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-codegen/binding-win32-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-win32-arm64/-/binding-win32-arm64-0.8.4.tgz", - "integrity": "sha512-6r68c0nKZPIBRXZIBiD7zjlEukBR+xRxpTOVj4n1Fsjcdh4YbbJfjFfmIzdbo9jXR1xL+dPueDVdsRGOUH5MoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@yuku-codegen/binding-win32-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-win32-x64/-/binding-win32-x64-0.8.4.tgz", - "integrity": "sha512-i+BW77LPjNqe7Apq50J3OeEaVfga3G+eT2bKjb6bj4yO99fil/jnKb4ZDH4JLvby/Q7hRa6VicL2EZ7iS+ifzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@yuku-parser/binding-android-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-android-arm64/-/binding-android-arm64-0.8.4.tgz", - "integrity": "sha512-+HIMmv08Zrh9ugIAEMnKBMMePOl7CDxrjc8Vui1+GG2TJHM1yI1+3wo1pnXB6Nj2IiHugDkQw8ycUI6SA2EUkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@yuku-parser/binding-darwin-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.8.4.tgz", - "integrity": "sha512-Elf/B/2m3OsyvxoQnBk8Dtu+9csHkzBNs5Yv9GbHjT3x0kVKNWjFusyZgm41VwxcPDqdpRi8tWxNX7OqXkmf/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@yuku-parser/binding-darwin-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-darwin-x64/-/binding-darwin-x64-0.8.4.tgz", - "integrity": "sha512-CjZuMoXnL5XUkVpDqh4WDPwpAw8CwmtHHnTerGkS45So/sNuwkXdyIAEqqIZfaLopi5W/V9NApAT2md9XizjsQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@yuku-parser/binding-freebsd-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.8.4.tgz", - "integrity": "sha512-ibLKORdz71iI4Vs+fyFgvwQ51P5XcxJIyQLa8cSEWqwptRdo+BTcZHIQEcZnFDPUuvmJ19RRH9CoiJdfhr7pZw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@yuku-parser/binding-linux-arm-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm-gnu/-/binding-linux-arm-gnu-0.8.4.tgz", - "integrity": "sha512-Fo3r5fYhGDcFnl+KN+L9PgtiQPS4AIE1n1mG1o5jZ11p7g5yZ/1EjLFmSHAUsoXreun8KjTsFjEL7P1Sb93PZQ==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-linux-arm-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm-musl/-/binding-linux-arm-musl-0.8.4.tgz", - "integrity": "sha512-BEB31vUEgXPWf7WkoMPSzzJhpC/wWCBXyysRCCPsw47BJ/OtbQsvJbxX9fFDuSRLy3kbyIV/WbdUTgbQ9COxiw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-linux-arm64-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.8.4.tgz", - "integrity": "sha512-xGLCRcHn9xVz7JVNyyKtiNJSf503qtUmih9XVSsghgzOmiKUMnHObs69OMMwXN3788tg1jsl11fNjjQlB8idMA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-linux-arm64-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.8.4.tgz", - "integrity": "sha512-3kNRi8NJT2q6FQRVCUFHIQ99+kXdi8cVJEEUi6+xtFqpMgNrZNnbgAj28ILsDC7zmclaU+v47eUCeJoKLSCbww==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-linux-x64-gnu": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.8.4.tgz", - "integrity": "sha512-isi62oMy94Z3OXwGs2l2rkqRiRyqLmfHeTRHpA/uWZbsNhnm7IdVvkF7e7wHNKAtd5jwGzOqYSroxKv2fOm7Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-linux-x64-musl": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.8.4.tgz", - "integrity": "sha512-9RsEw2xYHqU/pjSRBTOupWN3sF8uz9stjJdARfz6o0llvF+yfrj5QHmTiocGGBeAI80fvKmDtr2RIQClUzAPcA==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@yuku-parser/binding-win32-arm64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-win32-arm64/-/binding-win32-arm64-0.8.4.tgz", - "integrity": "sha512-VEZHo9rEGOBKR20sA3vCO00aQvwWND5aLu7YxeX+YupMZJh9hd1f17AbClJN37Q2iL1PCHht+wDTOKX6tZYqXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@yuku-parser/binding-win32-x64": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-parser/binding-win32-x64/-/binding-win32-x64-0.8.4.tgz", - "integrity": "sha512-PeH3VzN1feGjPtDpVEAqf000fPT+nxtw/696LKp/5Z9RJi/MaXpB636QC+5QtrAPSoEnIkyEe+c+mq2QLZPWBA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@yuku-toolchain/types": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@yuku-toolchain/types/-/types-0.8.4.tgz", - "integrity": "sha512-p7JE8flrj7ijZ/qLjHi4UwKqMarMD6zumbKXhrjp2I2iLJOuTYiQyci2U36VlXcUlNyzsY7E/mLnKCHotbzJVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zackad/prettier-plugin-twig": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@zackad/prettier-plugin-twig/-/prettier-plugin-twig-0.16.3.tgz", - "integrity": "sha512-CMacuv9pgdgfxVxWa2VX3TmOvXERgPsD8LWuBo9xKeVzRsVQzNCoxsH/7eELGogiYz2E44ete4vLL2tQy6DhIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.9", - "he": "^1.2.0", - "lodash": "^4.17.21", - "prettier": "^3.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/zackad/prettier-plugin-twig?sponsor=1" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", - "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/alien-signals": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz", - "integrity": "sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==", - "dev": true, - "license": "MIT" - }, - "node_modules/ansi-escapes": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", - "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansis": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.3.1.tgz", - "integrity": "sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/ast-v8-to-istanbul": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.5.tgz", - "integrity": "sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "estree-walker": "^3.0.3", - "js-tokens": "^10.0.0" - } - }, - "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", - "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.4.tgz", - "integrity": "sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.6", - "caniuse-lite": "^1.0.30001806", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/baseline-browser-mapping": { - "version": "2.11.13", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz", - "integrity": "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/birpc": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", - "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", - "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.4.tgz", - "integrity": "sha512-mcYOIy4BW6sWSEnTSBjQwWsnbx2btZX78ajTTjdNfyC/EqQVcIe0nQR6894RNAMtvlfAnLaH9L2ka97zpvgenA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "browser-sync-client": "^3.0.4", - "browser-sync-ui": "^3.0.4", - "bs-recipes": "1.3.4", - "chalk": "4.1.2", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "^4.1.0", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "micromatch": "^4.0.8", - "opn": "5.3.0", - "portscanner": "2.2.0", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "^0.19.0", - "serve-index": "^1.9.1", - "serve-static": "^1.16.2", - "server-destroy": "1.0.1", - "socket.io": "^4.4.1", - "ua-parser-js": "^1.0.33", - "yargs": "^17.3.1" - }, - "bin": { - "browser-sync": "dist/bin.js" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/browser-sync-client": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.4.tgz", - "integrity": "sha512-+ew5ubXzGRKVjquBL3u6najS40TG7GxCdyBll0qSRc/n+JRV9gb/yDdRL1IAgRHqjnJTdqeBKKIQabjvjRSYRQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/browser-sync-ui": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.4.tgz", - "integrity": "sha512-5Po3YARCZ/8yQHFzvrSjn8+hBUF7ZWac39SHsy8Tls+7tE62iq6pYWxpVU6aOOMAGD21RwFQhQeqmJPf70kHEQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" - } - }, - "node_modules/browser-sync-ui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/browser-sync-ui/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/browser-sync/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/browser-sync/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/browserslist": { - "version": "4.28.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", - "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.11.12", - "caniuse-lite": "^1.0.30001809", - "electron-to-chromium": "^1.5.402", - "node-releases": "^2.0.53", - "update-browserslist-db": "^1.3.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-recipes": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", - "dev": true, - "license": "ISC" - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.3.0.tgz", - "integrity": "sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", - "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cacheable/memory": "^2.2.0", - "@cacheable/utils": "^2.5.0", - "hookified": "^1.15.0", - "keyv": "^5.6.0", - "qified": "^0.10.1" - } - }, - "node_modules/cacheable/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/call-bind": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", - "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "get-intrinsic": "^1.3.0", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001809", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", - "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", - "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", - "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-deep/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codeclimate-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/codeclimate-types/-/codeclimate-types-0.3.1.tgz", - "integrity": "sha512-JCAaPG3tAYlVQQE9NP5kgsXBxPfSmflUI7manmbllUd9TN+1p/SXZkOsMAlPXCp3gcqNVL0itxMjcgKF0nBmJg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/collect.js": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.36.1.tgz", - "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorjs.io": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", - "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", - "dev": true, - "license": "MIT" - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/comment-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", - "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/common-dir": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/common-dir/-/common-dir-3.0.1.tgz", - "integrity": "sha512-yEhqFGiuBGkV2vsaEtGAv/CkP3Ff1FF8X69nm5P35Sv+carPQG5Nw9KteaHcMrHsxxF5tED5URg958U3lPF5Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "common-sequence": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/common-sequence": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", - "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-js-compat": { - "version": "3.50.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz", - "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.7" - }, - "engines": { - "node": ">=6.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", - "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", - "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", - "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", - "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-functions-list": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", - "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/css-has-pseudo": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", - "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz", - "integrity": "sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "cssnano": "^7.0.4", - "jest-worker": "^30.0.5", - "postcss": "^8.4.40", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", - "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/css-select/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/css-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.9.0.tgz", - "integrity": "sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "MIT-0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.9.tgz", - "integrity": "sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^7.0.17", - "lilconfig": "^3.1.3" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/cssnano-preset-default": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.17.tgz", - "integrity": "sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^5.0.3", - "postcss-calc": "^10.1.1", - "postcss-colormin": "^7.0.10", - "postcss-convert-values": "^7.0.12", - "postcss-discard-comments": "^7.0.8", - "postcss-discard-duplicates": "^7.0.4", - "postcss-discard-empty": "^7.0.3", - "postcss-discard-overridden": "^7.0.3", - "postcss-merge-longhand": "^7.0.7", - "postcss-merge-rules": "^7.0.11", - "postcss-minify-font-values": "^7.0.3", - "postcss-minify-gradients": "^7.0.5", - "postcss-minify-params": "^7.0.9", - "postcss-minify-selectors": "^7.1.2", - "postcss-normalize-charset": "^7.0.3", - "postcss-normalize-display-values": "^7.0.3", - "postcss-normalize-positions": "^7.0.4", - "postcss-normalize-repeat-style": "^7.0.4", - "postcss-normalize-string": "^7.0.3", - "postcss-normalize-timing-functions": "^7.0.3", - "postcss-normalize-unicode": "^7.0.9", - "postcss-normalize-url": "^7.0.3", - "postcss-normalize-whitespace": "^7.0.3", - "postcss-ordered-values": "^7.0.4", - "postcss-reduce-initial": "^7.0.9", - "postcss-reduce-transforms": "^7.0.3", - "postcss-svgo": "^7.1.3", - "postcss-unique-selectors": "^7.0.7" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/cssnano-utils": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.3.tgz", - "integrity": "sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", - "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defu": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", - "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/dev-ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", - "dev": true, - "bin": { - "dev-ip": "lib/dev-ip.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/diff": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", - "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", - "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dotenv": "^16.4.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dts-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dts-resolver/-/dts-resolver-3.0.0.tgz", - "integrity": "sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^22.18.0 || >=24.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "oxc-resolver": ">=11.0.0" - }, - "peerDependenciesMeta": { - "oxc-resolver": { - "optional": true - } - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true, - "license": "MIT" - }, - "node_modules/easy-extender": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", - "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/eazy-logger": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.1.0.tgz", - "integrity": "sha512-+mn7lRm+Zf1UT/YaH8WXtpU6PIV2iOjzP6jgKoiaq/VNrjYKp+OHZGe2znaLgDeFkw8cL9ffuaUm+nNnzcYyGw==", - "dev": true, - "dependencies": { - "chalk": "4.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eazy-logger/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eazy-logger/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.403", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.403.tgz", - "integrity": "sha512-MQsYmdaLzvaCX5j+ZZBr5Fm6uCCnPQcRtlvmvRlWqrXy+BH2O4ffXIAScF+JQznQWB9brWp4lSD9Z4yNmaf2BA==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/empathic": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", - "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "6.6.9", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.9.tgz", - "integrity": "sha512-clKkw4C7nJ22mGgoVcCg6V/W/TxdNyIOTr89k2ONZu81qqkddPFDF0LXcbAwhzPD8DjkiRCjzuiO6Y+fkpD4vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "@types/ws": "^8.5.12", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.7.2", - "cors": "~2.8.5", - "debug": "~4.4.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.21.0" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.6.tgz", - "integrity": "sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.4.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.21.0", - "xmlhttprequest-ssl": "~2.1.1" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/enhanced-resolve": { - "version": "5.24.5", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", - "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", - "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz", - "integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.0", - "@esbuild/android-arm": "0.27.0", - "@esbuild/android-arm64": "0.27.0", - "@esbuild/android-x64": "0.27.0", - "@esbuild/darwin-arm64": "0.27.0", - "@esbuild/darwin-x64": "0.27.0", - "@esbuild/freebsd-arm64": "0.27.0", - "@esbuild/freebsd-x64": "0.27.0", - "@esbuild/linux-arm": "0.27.0", - "@esbuild/linux-arm64": "0.27.0", - "@esbuild/linux-ia32": "0.27.0", - "@esbuild/linux-loong64": "0.27.0", - "@esbuild/linux-mips64el": "0.27.0", - "@esbuild/linux-ppc64": "0.27.0", - "@esbuild/linux-riscv64": "0.27.0", - "@esbuild/linux-s390x": "0.27.0", - "@esbuild/linux-x64": "0.27.0", - "@esbuild/netbsd-arm64": "0.27.0", - "@esbuild/netbsd-x64": "0.27.0", - "@esbuild/openbsd-arm64": "0.27.0", - "@esbuild/openbsd-x64": "0.27.0", - "@esbuild/openharmony-arm64": "0.27.0", - "@esbuild/sunos-x64": "0.27.0", - "@esbuild/win32-arm64": "0.27.0", - "@esbuild/win32-ia32": "0.27.0", - "@esbuild/win32-x64": "0.27.0" - } - }, - "node_modules/esbuild-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/esbuild-loader/-/esbuild-loader-4.5.0.tgz", - "integrity": "sha512-rVYe97IN1+VoealVHQ3STEPbfTm+vvPk7AZPrL53Pt6JUGBhHTnIqyaow7EveMFlmQ2A1bLp7q19sP4PppaCDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.28.1", - "get-tsconfig": "^4.10.1", - "loader-utils": "^2.0.4", - "webpack-sources": "^3.3.4" - }, - "funding": { - "url": "https://github.com/privatenumber/esbuild-loader?sponsor=1" - }, - "peerDependencies": { - "webpack": "^4.40.0 || ^5.0.0" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/aix-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/android-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/android-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/android-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/darwin-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/darwin-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/freebsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-loong64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-mips64el": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-riscv64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-s390x": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/linux-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/netbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/openbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/sunos-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/win32-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/win32-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/@esbuild/win32-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild-loader/node_modules/esbuild": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.2", - "@esbuild/android-arm": "0.28.2", - "@esbuild/android-arm64": "0.28.2", - "@esbuild/android-x64": "0.28.2", - "@esbuild/darwin-arm64": "0.28.2", - "@esbuild/darwin-x64": "0.28.2", - "@esbuild/freebsd-arm64": "0.28.2", - "@esbuild/freebsd-x64": "0.28.2", - "@esbuild/linux-arm": "0.28.2", - "@esbuild/linux-arm64": "0.28.2", - "@esbuild/linux-ia32": "0.28.2", - "@esbuild/linux-loong64": "0.28.2", - "@esbuild/linux-mips64el": "0.28.2", - "@esbuild/linux-ppc64": "0.28.2", - "@esbuild/linux-riscv64": "0.28.2", - "@esbuild/linux-s390x": "0.28.2", - "@esbuild/linux-x64": "0.28.2", - "@esbuild/netbsd-arm64": "0.28.2", - "@esbuild/netbsd-x64": "0.28.2", - "@esbuild/openbsd-arm64": "0.28.2", - "@esbuild/openbsd-x64": "0.28.2", - "@esbuild/openharmony-arm64": "0.28.2", - "@esbuild/sunos-x64": "0.28.2", - "@esbuild/win32-arm64": "0.28.2", - "@esbuild/win32-ia32": "0.28.2", - "@esbuild/win32-x64": "0.28.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", - "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.34.0", - "@eslint/plugin-kit": "^0.3.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", - "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "funding": { - "url": "https://opencollective.com/eslint-config-prettier" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-formatter-codeclimate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/eslint-formatter-codeclimate/-/eslint-formatter-codeclimate-1.0.2.tgz", - "integrity": "sha512-9ygAJag38O/oITwzPnvNXz8vuke6JuX1qeSbch+2m5ZQT/1exCyHkrymfJZpR5GZuYd17Khb1SOAsehSMV/W0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "codeclimate-types": "^0.3.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - }, - "peerDependencies": { - "eslint": "^9.0.0" - } - }, - "node_modules/eslint-formatter-gitlab": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-formatter-gitlab/-/eslint-formatter-gitlab-6.0.1.tgz", - "integrity": "sha512-GjAdu74EPUQMQjldx4wu/P0CgTY7nk9uJ4q2ZW6TkXH+rK9LR2q3dV+cWTaQKMaCcosn+XU8nJOE8QQe8czHZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-formatter-codeclimate": "^1.0.0", - "yaml": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - }, - "peerDependencies": { - "eslint": ">=9" - } - }, - "node_modules/eslint-plugin-jsdoc": { - "version": "51.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-51.4.1.tgz", - "integrity": "sha512-y4CA9OkachG8v5nAtrwvcvjIbdcKgSyS6U//IfQr4FZFFyeBFwZFf/tfSsMr46mWDJgidZjBTqoCRlXywfFBMg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@es-joy/jsdoccomment": "~0.52.0", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.1", - "debug": "^4.4.1", - "escape-string-regexp": "^4.0.0", - "espree": "^10.4.0", - "esquery": "^1.6.0", - "parse-imports-exports": "^0.2.4", - "semver": "^7.7.2", - "spdx-expression-parse": "^4.0.0" - }, - "engines": { - "node": ">=20.11.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz", - "integrity": "sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.1", - "synckit": "^0.11.13" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-unicorn": { - "version": "59.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-59.0.1.tgz", - "integrity": "sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "@eslint-community/eslint-utils": "^4.5.1", - "@eslint/plugin-kit": "^0.2.7", - "ci-info": "^4.2.0", - "clean-regexp": "^1.0.0", - "core-js-compat": "^3.41.0", - "esquery": "^1.6.0", - "find-up-simple": "^1.0.1", - "globals": "^16.0.0", - "indent-string": "^5.0.0", - "is-builtin-module": "^5.0.0", - "jsesc": "^3.1.0", - "pluralize": "^8.0.0", - "regexp-tree": "^0.1.27", - "regjsparser": "^0.12.0", - "semver": "^7.7.1", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": "^18.20.0 || ^20.10.0 || >=21.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" - }, - "peerDependencies": { - "eslint": ">=9.22.0" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint-plugin-unicorn/node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.13.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", - "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/expect-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", - "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/filemanager-webpack-plugin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/filemanager-webpack-plugin/-/filemanager-webpack-plugin-8.0.0.tgz", - "integrity": "sha512-TYwu62wgq2O2c3K80Sfj8vEys/tP5wdgYoySHgUwWoc2hPbQY3Mq3ahcAW634JvHCTcSV7IAfRxMI3wTXRt2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/archiver": "^5.3.1", - "archiver": "^5.3.1", - "del": "^6.1.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/filemanager-webpack-plugin/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/filemanager-webpack-plugin/node_modules/jsonfile": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", - "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/filemanager-webpack-plugin/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up-simple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", - "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", - "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", - "dev": true, - "license": "ISC" - }, - "node_modules/floating-vue": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", - "integrity": "sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "~1.1.1", - "vue-resize": "^2.0.0-alpha.1" - }, - "peerDependencies": { - "@nuxt/kit": "^3.2.0", - "vue": "^3.2.0" - }, - "peerDependenciesMeta": { - "@nuxt/kit": { - "optional": true - } - } - }, - "node_modules/focus-trap": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", - "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tabbable": "^6.4.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", - "dev": true, - "license": "Apache2" - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1" - } - }, - "node_modules/front-matter-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/front-matter-loader/-/front-matter-loader-2.0.0.tgz", - "integrity": "sha512-zoiZa80a7xfaRJP0AvLBPpVL7P+wYXoEoqoQhmhZoOGjOlx01EkvyULhG/qFJ5aB08V7EDq19vcGlzreHC/i1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "front-matter": "^4.0.0" - } - }, - "node_modules/front-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/front-matter/node_modules/js-yaml": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", - "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", - "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.2.0.tgz", - "integrity": "sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-tsconfig": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", - "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regex.js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", - "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true, - "license": "MIT" - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", - "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/happy-dom": { - "version": "20.8.8", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.8.8.tgz", - "integrity": "sha512-5/F8wxkNxYtsN0bXfMwIyNLZ9WYsoOYPbmoluqVJqv8KBUbcyKZawJ7uYK4WTX8IHBLYv+VXIwfeNDPy1oKMwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": ">=20.0.0", - "@types/whatwg-mimetype": "^3.0.2", - "@types/ws": "^8.18.1", - "entities": "^7.0.1", - "whatwg-mimetype": "^3.0.0", - "ws": "^8.18.3" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hashery": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", - "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hookified": "^1.15.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-sanitize": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", - "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "unist-util-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", - "license": "MIT" - }, - "node_modules/hookable": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", - "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/hookified": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", - "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/hot-accept-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hot-accept-webpack-plugin/-/hot-accept-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-j3Nbd7zGt8Az9cy+g9cIqCEIxlrd+v1Vjrhe3uoRTZt9/LMGbgtmeNjRbXQzvibUljIGbYS5lALIes0sIBJRvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "modify-source-webpack-plugin": "4.0.1" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", - "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-loader": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-5.1.0.tgz", - "integrity": "sha512-Jb3xwDbsm0W3qlXrCZwcYqYGnYz55hb6aoKQTlzyZPXsPpi6tHXzAfqalecglMQgNvtEfxrCQPaKT90Irt5XDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "html-minifier-terser": "^7.2.0", - "parse5": "^7.1.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/html-minifier-terser/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/html-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/html-styles/-/html-styles-1.0.0.tgz", - "integrity": "sha512-cDl5dcj73oI4Hy0DSUNh54CAwslNLJRCCoO+RNkVo+sBrjA/0+7E/xzvj3zH/GxbbBLGJhE0hBe1eg+0FINC6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-harddisk-plugin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-webpack-harddisk-plugin/-/html-webpack-harddisk-plugin-2.0.0.tgz", - "integrity": "sha512-fWKH72FyaQ5K/j+kYy6LnQsQucSDnsEkghmB6g29TtpJ4sxHYFduEeUV1hfDqyDpCRW+bP7yacjQ+1ikeIDqeg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13" - }, - "peerDependencies": { - "html-webpack-plugin": "^5.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.8.tgz", - "integrity": "sha512-MZmKQcTnhEh1SPSyMiEytIeDZDUoBZVorNHivQGXMASHf/BSGGOrKa2xQ5bGx3TCe1n109ecCt+cpww7wwWhKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x || 2.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/http-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.3.tgz", - "integrity": "sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-without-cache": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/import-without-cache/-/import-without-cache-0.4.0.tgz", - "integrity": "sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^22.18.0 || >=24.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/irregular-plurals": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", - "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-builtin-module": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-5.0.0.tgz", - "integrity": "sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^5.0.0" - }, - "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lodash.isfinite": "^3.3.2" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports/node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^9.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-diff": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz", - "integrity": "sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.4.0", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-regex-util": { - "version": "30.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.4.0.tgz", - "integrity": "sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-util": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.4.1.tgz", - "integrity": "sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-worker": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.4.1.tgz", - "integrity": "sha512-SHynN/q/QD++iNyvMdy+WMmbCGk8jIsNcRxycXbWubSOhvo6T+j2afcfUSl+3hYsiBebOTo0cT7c2H7CXugu1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.4.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.1.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", - "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js-yaml-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/js-yaml-loader/-/js-yaml-loader-1.2.2.tgz", - "integrity": "sha512-H+NeuNrG6uOs/WMjna2SjkaCw13rMWiT/D7l9+9x5n8aq88BDsh2sRmdfxckWPIHtViYHWRG6XiCKYvS1dfyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "loader-utils": "^1.2.3", - "un-eval": "^1.2.0" - } - }, - "node_modules/js-yaml-loader/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/js-yaml-loader/node_modules/js-yaml": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", - "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js-yaml-loader/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/js-yaml-loader/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", - "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", - "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "isarray": "^2.0.5", - "jsonify": "^0.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, - "license": "Public Domain", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/known-css-properties": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", - "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", - "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.33.0", - "lightningcss-darwin-arm64": "1.33.0", - "lightningcss-darwin-x64": "1.33.0", - "lightningcss-freebsd-x64": "1.33.0", - "lightningcss-linux-arm-gnueabihf": "1.33.0", - "lightningcss-linux-arm64-gnu": "1.33.0", - "lightningcss-linux-arm64-musl": "1.33.0", - "lightningcss-linux-x64-gnu": "1.33.0", - "lightningcss-linux-x64-musl": "1.33.0", - "lightningcss-win32-arm64-msvc": "1.33.0", - "lightningcss-win32-x64-msvc": "1.33.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", - "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", - "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", - "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", - "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", - "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", - "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", - "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", - "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", - "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", - "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", - "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", - "dev": true - }, - "node_modules/line-column": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", - "integrity": "sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/linkify-it": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", - "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/markdown-it" - } - ], - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/loader-utils-webpack-v4": { - "name": "loader-utils", - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/locutus": { - "version": "2.0.39", - "resolved": "https://registry.npmjs.org/locutus/-/locutus-2.0.39.tgz", - "integrity": "sha512-v2iub44UtGpbIv+pFkkYhZ+JsbIM0bJsQcQ1+VayUNGVA/YhM8+CkBiRACcpuuE9Q0xI1pgNzGNwzZDCp1MCww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10", - "yarn": ">= 1" - } - }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", - "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", - "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/magicast": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", - "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7", - "source-map-js": "^1.2.1" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/markdown-it": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz", - "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/markdown-it" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.5.0", - "linkify-it": "^5.0.2", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/markdown-title/-/markdown-title-1.0.2.tgz", - "integrity": "sha512-MqIQVVkz+uGEHi3TsHx/czcxxCbRIL7sv5K5DnYw/tI+apY54IbPefV/cmgxp6LoJSEx/TqcHdLs/298afG5QQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", - "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", - "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", - "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/mdurl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz", - "integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==", - "dev": true, - "license": "MIT" - }, - "node_modules/memfs": { - "version": "4.68.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.68.0.tgz", - "integrity": "sha512-qlU8XrIfXUuZcmXk/GODL47KXXnhSbbaWtW5z+L7cLFfIQbgAOWzL5lqUYn39kfJh+BHLaD/siaM94/UTweGow==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.68.0", - "@jsonjoy.com/fs-fsa": "4.68.0", - "@jsonjoy.com/fs-node": "4.68.0", - "@jsonjoy.com/fs-node-builtins": "4.68.0", - "@jsonjoy.com/fs-node-to-fsa": "4.68.0", - "@jsonjoy.com/fs-node-utils": "4.68.0", - "@jsonjoy.com/fs-print": "4.68.0", - "@jsonjoy.com/fs-snapshot": "4.68.0", - "@jsonjoy.com/json-pack": "^1.11.0", - "@jsonjoy.com/util": "^1.9.0", - "glob-to-regex.js": "^1.0.1", - "thingies": "^2.5.0", - "tree-dump": "^1.0.3", - "tslib": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - } - }, - "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/micromark/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/millify": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/millify/-/millify-6.1.0.tgz", - "integrity": "sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "yargs": "^17.0.1" - }, - "bin": { - "millify": "bin/millify" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimizer-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/minimizer-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/minimizer-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minisearch": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", - "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==", - "dev": true, - "license": "MIT" - }, - "node_modules/mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", - "dev": true, - "license": "MIT" - }, - "node_modules/modify-source-webpack-plugin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/modify-source-webpack-plugin/-/modify-source-webpack-plugin-4.0.1.tgz", - "integrity": "sha512-PhNUlSXYra6s1mCyVZsLif3YVlEzVeCeJLPtWAlZ6qQ49gRxsBNYEYjx/0J4O3YvDfNoxj8Z08LQqSHXbrHbXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils-webpack-v4": "npm:loader-utils@^2.0.4", - "schema-utils": "^4.0.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - } - }, - "node_modules/morphdom": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", - "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", - "license": "MIT" - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.18", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", - "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-releases": { - "version": "2.0.53", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", - "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/obug": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", - "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/oniguruma-parser": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", - "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", - "dev": true, - "license": "MIT" - }, - "node_modules/oniguruma-to-es": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", - "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "oniguruma-parser": "^0.12.2", - "regex": "^6.1.0", - "regex-recursion": "^6.0.2" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/oxfmt": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.62.0.tgz", - "integrity": "sha512-vxgGHTmnDU9j4CX7dDBLzxgmHxfda/yPcgJkGCMUSCwRmz+euo/V08xXLNgXTeqAB9Fhf3Pe2nO1RNKLCVgphQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinypool": "2.1.0" - }, - "bin": { - "oxfmt": "bin/oxfmt" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/sponsors/Boshen" - }, - "optionalDependencies": { - "@oxfmt/binding-android-arm-eabi": "0.62.0", - "@oxfmt/binding-android-arm64": "0.62.0", - "@oxfmt/binding-darwin-arm64": "0.62.0", - "@oxfmt/binding-darwin-x64": "0.62.0", - "@oxfmt/binding-freebsd-x64": "0.62.0", - "@oxfmt/binding-linux-arm-gnueabihf": "0.62.0", - "@oxfmt/binding-linux-arm-musleabihf": "0.62.0", - "@oxfmt/binding-linux-arm64-gnu": "0.62.0", - "@oxfmt/binding-linux-arm64-musl": "0.62.0", - "@oxfmt/binding-linux-ppc64-gnu": "0.62.0", - "@oxfmt/binding-linux-riscv64-gnu": "0.62.0", - "@oxfmt/binding-linux-riscv64-musl": "0.62.0", - "@oxfmt/binding-linux-s390x-gnu": "0.62.0", - "@oxfmt/binding-linux-x64-gnu": "0.62.0", - "@oxfmt/binding-linux-x64-musl": "0.62.0", - "@oxfmt/binding-openharmony-arm64": "0.62.0", - "@oxfmt/binding-win32-arm64-msvc": "0.62.0", - "@oxfmt/binding-win32-ia32-msvc": "0.62.0", - "@oxfmt/binding-win32-x64-msvc": "0.62.0" - }, - "peerDependencies": { - "svelte": "^5.0.0", - "vite-plus": "*" - }, - "peerDependenciesMeta": { - "svelte": { - "optional": true - }, - "vite-plus": { - "optional": true - } - } - }, - "node_modules/oxlint": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.77.0.tgz", - "integrity": "sha512-qnGh8XJHaQ0dprrDXNQZgS0FgjI6v+V3+X8DwmaV++5Aamy6jGKfDdQ1TUvhUxtmKFAbEf4/WeO5QZX+5WSngg==", - "dev": true, - "license": "MIT", - "bin": { - "oxlint": "bin/oxlint" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/sponsors/Boshen" - }, - "optionalDependencies": { - "@oxlint/binding-android-arm-eabi": "1.77.0", - "@oxlint/binding-android-arm64": "1.77.0", - "@oxlint/binding-darwin-arm64": "1.77.0", - "@oxlint/binding-darwin-x64": "1.77.0", - "@oxlint/binding-freebsd-x64": "1.77.0", - "@oxlint/binding-linux-arm-gnueabihf": "1.77.0", - "@oxlint/binding-linux-arm-musleabihf": "1.77.0", - "@oxlint/binding-linux-arm64-gnu": "1.77.0", - "@oxlint/binding-linux-arm64-musl": "1.77.0", - "@oxlint/binding-linux-ppc64-gnu": "1.77.0", - "@oxlint/binding-linux-riscv64-gnu": "1.77.0", - "@oxlint/binding-linux-riscv64-musl": "1.77.0", - "@oxlint/binding-linux-s390x-gnu": "1.77.0", - "@oxlint/binding-linux-x64-gnu": "1.77.0", - "@oxlint/binding-linux-x64-musl": "1.77.0", - "@oxlint/binding-openharmony-arm64": "1.77.0", - "@oxlint/binding-win32-arm64-msvc": "1.77.0", - "@oxlint/binding-win32-ia32-msvc": "1.77.0", - "@oxlint/binding-win32-x64-msvc": "1.77.0" - }, - "peerDependencies": { - "oxlint-tsgolint": ">=7.0.2001", - "vite-plus": "*" - }, - "peerDependenciesMeta": { - "oxlint-tsgolint": { - "optional": true - }, - "vite-plus": { - "optional": true - } - } - }, - "node_modules/oxlint-tsgolint": { - "version": "7.0.2001", - "resolved": "https://registry.npmjs.org/oxlint-tsgolint/-/oxlint-tsgolint-7.0.2001.tgz", - "integrity": "sha512-KjK/XLcXr1DSyonKhsuFqJRiuKqcyG9j3LJ8nkOsrLzGvodBPqzHOKauy10asLMDI0sUpvb+1sxlzff3udZvfg==", - "dev": true, - "license": "MIT", - "bin": { - "tsgolint": "bin/tsgolint.js" - }, - "optionalDependencies": { - "@oxlint-tsgolint/darwin-arm64": "7.0.2001", - "@oxlint-tsgolint/darwin-x64": "7.0.2001", - "@oxlint-tsgolint/linux-arm64": "7.0.2001", - "@oxlint-tsgolint/linux-x64": "7.0.2001", - "@oxlint-tsgolint/win32-arm64": "7.0.2001", - "@oxlint-tsgolint/win32-x64": "7.0.2001" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-imports-exports": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", - "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-statements": "1.0.11" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-statements": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", - "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", - "dev": true, - "license": "MIT" - }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/patch-package": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz", - "integrity": "sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "ci-info": "^3.7.0", - "cross-spawn": "^7.0.3", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^10.0.0", - "json-stable-stringify": "^1.0.2", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "semver": "^7.5.3", - "slash": "^2.0.0", - "tmp": "^0.2.4", - "yaml": "^2.2.2" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=14", - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/patch-package/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/patch-package/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/patch-package/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/patch-package/node_modules/jsonfile": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", - "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/patch-package/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/perfect-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", - "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/playwright": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", - "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.62.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=20" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", - "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/plur": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", - "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "irregular-plurals": "^3.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pngjs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.19.0" - } - }, - "node_modules/portfinder": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", - "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^3.2.6", - "debug": "^4.3.6" - }, - "engines": { - "node": ">= 10.12" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/portfinder/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - }, - "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" - } - }, - "node_modules/portscanner/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/postcss": { - "version": "8.5.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", - "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.17", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", - "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-calc": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", - "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12 || ^20.9 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.38" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", - "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", - "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", - "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-colormin": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.10.tgz", - "integrity": "sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@colordx/core": "^5.4.3", - "browserslist": "^4.28.2", - "caniuse-api": "^3.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/postcss-convert-values": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.12.tgz", - "integrity": "sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/postcss-custom-media": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", - "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", - "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", - "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", - "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@yuku-codegen/binding-darwin-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-darwin-x64/-/binding-darwin-x64-0.8.4.tgz", + "integrity": "sha512-tK7LWzXNb5JbZpnoCNHB0nEhPFss/LwwehM6m/f0oYDan+iZgFZXzdoy80JdE7dVxjTZDIhUNPx8X8xbIdaoxA==", + "cpu": [ + "x64" ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.8.tgz", - "integrity": "sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==", "dev": true, "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.1.1" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/postcss-discard-duplicates": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.4.tgz", - "integrity": "sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==", + "node_modules/@yuku-codegen/binding-freebsd-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-freebsd-x64/-/binding-freebsd-x64-0.8.4.tgz", + "integrity": "sha512-5MUV4d7g2p5Hd8GiXW6ynTRgYjm4Dw4eM2gaWRZ4crkGetzNx+HlPxcEfGtVNPqH5Qaa4Z2REtzdsdgvaE6/Ng==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/postcss-discard-empty": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.3.tgz", - "integrity": "sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==", + "node_modules/@yuku-codegen/binding-linux-arm-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm-gnu/-/binding-linux-arm-gnu-0.8.4.tgz", + "integrity": "sha512-g6LnHrR0Rfqq5cXs7olwR2+LlVDc876pw7Hh7YXbukVSiBxQkaxqsEO/trO25z2g99zWzgXwoYvQZ1TnwA2wEw==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-discard-overridden": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.3.tgz", - "integrity": "sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==", + "node_modules/@yuku-codegen/binding-linux-arm-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm-musl/-/binding-linux-arm-musl-0.8.4.tgz", + "integrity": "sha512-7XAPHrROPEFuJWXEGZeLZQN4xR8ENQ65+HSCtCHjSzCwGgnX53GUjM9ExVcHopV0a5g4vu57v2wwtyWIM5iNOQ==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-double-position-gradients": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", - "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@yuku-codegen/binding-linux-arm64-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.8.4.tgz", + "integrity": "sha512-fnBm7NLuuwFXy7F1vRIuyOc+RW9ADUjuCKVGY87Dj8jtr9XgESNrwb+B9VLSFY7nZ0rCdK/Sm1fBqJpI7eLdKQ==", + "cpu": [ + "arm64" ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", - "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "glibc" ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-focus-within": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", - "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@yuku-codegen/binding-linux-arm64-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.8.4.tgz", + "integrity": "sha512-6vTw4ZHO9nm4SUkw36uG+UE6/qifZ0E8HIef7Mx/U/c2Zxu3JLBfXtU7U/NN2GMkDmcJkgwjXfpQoYw4Ch5Y1w==", + "cpu": [ + "arm64" ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-gap-properties": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", - "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@yuku-codegen/binding-linux-x64-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.8.4.tgz", + "integrity": "sha512-+vuC3V3Lw+DB4oJgHV9pVDfQZlsZJnxmbdods7HzxgEALU3P5+czwdAcw3wfh7Ebabt0Ny8eLUb1k9RV5OB/+w==", + "cpu": [ + "x64" ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-html": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.8.1.tgz", - "integrity": "sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==", "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "htmlparser2": "^8.0.0", - "js-tokens": "^9.0.0", - "postcss": "^8.5.0", - "postcss-safe-parser": "^6.0.0" - }, - "engines": { - "node": "^12 || >=14" - } - }, - "node_modules/postcss-html/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-image-set-function": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", - "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "node_modules/@yuku-codegen/binding-linux-x64-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-linux-x64-musl/-/binding-linux-x64-musl-0.8.4.tgz", + "integrity": "sha512-QH60PE4eZecmgNGa1/T1cKPhrfxt6ANtu4lrQ1FZ50F9b0GS9WjGmIjrfdSUeQa+f2Iqk3oEFSJdgVHBg1KPNg==", + "cpu": [ + "x64" ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-lab-function": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", - "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "musl" ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.1.tgz", - "integrity": "sha512-k98jtRzthjj3f76MYTs9JTpRqV1RaaMhEU0Lpw9OTmQZQdppg4B30VZ74BojuBHt3F4KyubHJoXCMUeM8Bqeow==", - "dev": true, "license": "MIT", - "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^2.5.1", - "semver": "^7.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-logical": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", - "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "node_modules/@yuku-codegen/binding-win32-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-win32-arm64/-/binding-win32-arm64-0.8.4.tgz", + "integrity": "sha512-6r68c0nKZPIBRXZIBiD7zjlEukBR+xRxpTOVj4n1Fsjcdh4YbbJfjFfmIzdbo9jXR1xL+dPueDVdsRGOUH5MoQ==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@yuku-codegen/binding-win32-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-codegen/binding-win32-x64/-/binding-win32-x64-0.8.4.tgz", + "integrity": "sha512-i+BW77LPjNqe7Apq50J3OeEaVfga3G+eT2bKjb6bj4yO99fil/jnKb4ZDH4JLvby/Q7hRa6VicL2EZ7iS+ifzA==", + "cpu": [ + "x64" ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "node_modules/@yuku-parser/binding-android-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-android-arm64/-/binding-android-arm64-0.8.4.tgz", + "integrity": "sha512-+HIMmv08Zrh9ugIAEMnKBMMePOl7CDxrjc8Vui1+GG2TJHM1yI1+3wo1pnXB6Nj2IiHugDkQw8ycUI6SA2EUkQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/postcss-merge-longhand": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.7.tgz", - "integrity": "sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==", + "node_modules/@yuku-parser/binding-darwin-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.8.4.tgz", + "integrity": "sha512-Elf/B/2m3OsyvxoQnBk8Dtu+9csHkzBNs5Yv9GbHjT3x0kVKNWjFusyZgm41VwxcPDqdpRi8tWxNX7OqXkmf/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^7.0.11" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/postcss-merge-rules": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.11.tgz", - "integrity": "sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==", + "node_modules/@yuku-parser/binding-darwin-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-darwin-x64/-/binding-darwin-x64-0.8.4.tgz", + "integrity": "sha512-CjZuMoXnL5XUkVpDqh4WDPwpAw8CwmtHHnTerGkS45So/sNuwkXdyIAEqqIZfaLopi5W/V9NApAT2md9XizjsQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^5.0.3", - "postcss-selector-parser": "^7.1.1" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/postcss-minify-font-values": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.3.tgz", - "integrity": "sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==", + "node_modules/@yuku-parser/binding-freebsd-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.8.4.tgz", + "integrity": "sha512-ibLKORdz71iI4Vs+fyFgvwQ51P5XcxJIyQLa8cSEWqwptRdo+BTcZHIQEcZnFDPUuvmJ19RRH9CoiJdfhr7pZw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/postcss-minify-gradients": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.5.tgz", - "integrity": "sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==", + "node_modules/@yuku-parser/binding-linux-arm-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm-gnu/-/binding-linux-arm-gnu-0.8.4.tgz", + "integrity": "sha512-Fo3r5fYhGDcFnl+KN+L9PgtiQPS4AIE1n1mG1o5jZ11p7g5yZ/1EjLFmSHAUsoXreun8KjTsFjEL7P1Sb93PZQ==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@colordx/core": "^5.4.3", - "cssnano-utils": "^5.0.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-minify-params": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.9.tgz", - "integrity": "sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==", + "node_modules/@yuku-parser/binding-linux-arm-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm-musl/-/binding-linux-arm-musl-0.8.4.tgz", + "integrity": "sha512-BEB31vUEgXPWf7WkoMPSzzJhpC/wWCBXyysRCCPsw47BJ/OtbQsvJbxX9fFDuSRLy3kbyIV/WbdUTgbQ9COxiw==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "cssnano-utils": "^5.0.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-minify-selectors": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.1.2.tgz", - "integrity": "sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==", + "node_modules/@yuku-parser/binding-linux-arm64-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.8.4.tgz", + "integrity": "sha512-xGLCRcHn9xVz7JVNyyKtiNJSf503qtUmih9XVSsghgzOmiKUMnHObs69OMMwXN3788tg1jsl11fNjjQlB8idMA==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0", - "cssesc": "^3.0.0", - "postcss-selector-parser": "^7.1.1" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-nesting": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", - "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "node_modules/@yuku-parser/binding-linux-arm64-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.8.4.tgz", + "integrity": "sha512-3kNRi8NJT2q6FQRVCUFHIQ99+kXdi8cVJEEUi6+xtFqpMgNrZNnbgAj28ILsDC7zmclaU+v47eUCeJoKLSCbww==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } + "libc": [ + "musl" ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-resolve-nested": "^3.1.0", - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-normalize-charset": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.3.tgz", - "integrity": "sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==", + "node_modules/@yuku-parser/binding-linux-x64-gnu": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.8.4.tgz", + "integrity": "sha512-isi62oMy94Z3OXwGs2l2rkqRiRyqLmfHeTRHpA/uWZbsNhnm7IdVvkF7e7wHNKAtd5jwGzOqYSroxKv2fOm7Cw==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-normalize-display-values": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.3.tgz", - "integrity": "sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==", + "node_modules/@yuku-parser/binding-linux-x64-musl": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.8.4.tgz", + "integrity": "sha512-9RsEw2xYHqU/pjSRBTOupWN3sF8uz9stjJdARfz6o0llvF+yfrj5QHmTiocGGBeAI80fvKmDtr2RIQClUzAPcA==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/postcss-normalize-positions": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.4.tgz", - "integrity": "sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==", + "node_modules/@yuku-parser/binding-win32-arm64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-win32-arm64/-/binding-win32-arm64-0.8.4.tgz", + "integrity": "sha512-VEZHo9rEGOBKR20sA3vCO00aQvwWND5aLu7YxeX+YupMZJh9hd1f17AbClJN37Q2iL1PCHht+wDTOKX6tZYqXg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/postcss-normalize-repeat-style": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.4.tgz", - "integrity": "sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==", + "node_modules/@yuku-parser/binding-win32-x64": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-parser/binding-win32-x64/-/binding-win32-x64-0.8.4.tgz", + "integrity": "sha512-PeH3VzN1feGjPtDpVEAqf000fPT+nxtw/696LKp/5Z9RJi/MaXpB636QC+5QtrAPSoEnIkyEe+c+mq2QLZPWBA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/postcss-normalize-string": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.3.tgz", - "integrity": "sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==", + "node_modules/@yuku-toolchain/types": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@yuku-toolchain/types/-/types-0.8.4.tgz", + "integrity": "sha512-p7JE8flrj7ijZ/qLjHi4UwKqMarMD6zumbKXhrjp2I2iLJOuTYiQyci2U36VlXcUlNyzsY7E/mLnKCHotbzJVw==", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "license": "MIT" }, - "node_modules/postcss-normalize-timing-functions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.3.tgz", - "integrity": "sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==", + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "node": ">=0.4.0" } }, - "node_modules/postcss-normalize-unicode": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.9.tgz", - "integrity": "sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, "peerDependencies": { - "postcss": "^8.5.13" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/postcss-normalize-url": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.3.tgz", - "integrity": "sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==", + "node_modules/alien-signals": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz", + "integrity": "sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } + "license": "MIT" }, - "node_modules/postcss-normalize-whitespace": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.3.tgz", - "integrity": "sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==", + "node_modules/ansis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.3.1.tgz", + "integrity": "sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, + "license": "ISC", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "node": ">=14" } }, - "node_modules/postcss-opacity-percentage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", - "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } + "license": "Python-2.0" }, - "node_modules/postcss-ordered-values": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.4.tgz", - "integrity": "sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", - "dependencies": { - "cssnano-utils": "^5.0.3", - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "node": ">=12" } }, - "node_modules/postcss-overflow-shorthand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", - "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "node_modules/ast-v8-to-istanbul": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.5.tgz", + "integrity": "sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" } }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", - "peerDependencies": { - "postcss": "^8" + "dependencies": { + "@types/estree": "^1.0.0" } }, - "node_modules/postcss-place": { + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", - "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } + "license": "MIT" }, - "node_modules/postcss-preset-env": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz", - "integrity": "sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==", + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-alpha-function": "^1.0.1", - "@csstools/postcss-cascade-layers": "^5.0.2", - "@csstools/postcss-color-function": "^4.0.12", - "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", - "@csstools/postcss-color-mix-function": "^3.0.12", - "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", - "@csstools/postcss-content-alt-text": "^2.0.8", - "@csstools/postcss-contrast-color-function": "^2.0.12", - "@csstools/postcss-exponential-functions": "^2.0.9", - "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.11", - "@csstools/postcss-gradients-interpolation-method": "^5.0.12", - "@csstools/postcss-hwb-function": "^4.0.12", - "@csstools/postcss-ic-unit": "^4.0.4", - "@csstools/postcss-initial": "^2.0.1", - "@csstools/postcss-is-pseudo-class": "^5.0.3", - "@csstools/postcss-light-dark-function": "^2.0.11", - "@csstools/postcss-logical-float-and-clear": "^3.0.0", - "@csstools/postcss-logical-overflow": "^2.0.0", - "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", - "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.4", - "@csstools/postcss-media-minmax": "^2.0.9", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", - "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.1", - "@csstools/postcss-oklab-function": "^4.0.12", - "@csstools/postcss-position-area-property": "^1.0.0", - "@csstools/postcss-progressive-custom-properties": "^4.2.1", - "@csstools/postcss-property-rule-prelude-list": "^1.0.0", - "@csstools/postcss-random-function": "^2.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.12", - "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.4", - "@csstools/postcss-stepped-value-functions": "^4.0.9", - "@csstools/postcss-syntax-descriptor-syntax-production": "^1.0.1", - "@csstools/postcss-system-ui-font-family": "^1.0.0", - "@csstools/postcss-text-decoration-shorthand": "^4.0.3", - "@csstools/postcss-trigonometric-functions": "^4.0.9", - "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.23", - "browserslist": "^4.28.1", - "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.3", - "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.6.0", - "postcss-attribute-case-insensitive": "^7.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.12", - "postcss-color-hex-alpha": "^10.0.0", - "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.6", - "postcss-custom-properties": "^14.0.6", - "postcss-custom-selectors": "^8.0.5", - "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.4", - "postcss-focus-visible": "^10.0.1", - "postcss-focus-within": "^9.0.1", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^6.0.0", - "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.12", - "postcss-logical": "^8.1.0", - "postcss-nesting": "^13.0.2", - "postcss-opacity-percentage": "^3.0.0", - "postcss-overflow-shorthand": "^6.0.0", - "postcss-page-break": "^3.0.4", - "postcss-place": "^10.0.0", - "postcss-pseudo-class-any-link": "^10.0.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^8.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", - "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, + "license": "MIT", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": "18 || 20 || >=22" } }, - "node_modules/postcss-reduce-initial": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.9.tgz", - "integrity": "sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==", + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", "dev": true, "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/postcss-reduce-transforms": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.3.tgz", - "integrity": "sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==", + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" + "node": "20 || >=22" } }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", - "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "dependencies": { + "fill-range": "^7.1.1" }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", - "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-scss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.4.29" + "node": ">=8" } }, - "node_modules/postcss-selector-not": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", - "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.0.0" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-selector-parser": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz", - "integrity": "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "license": "MIT", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sorting": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-9.1.0.tgz", - "integrity": "sha512-Mn8KJ45HNNG6JBpBizXcyf6LqY/qyqetGcou/nprDnFwBFBLGj0j/sNKV2lj2KMOVOwdXu14aEzqJv8CIV6e8g==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.4.20" + "node": ">= 0.4" } }, - "node_modules/postcss-svgo": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.3.tgz", - "integrity": "sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^4.0.1" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >= 18" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.5.13" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-unique-selectors": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.7.tgz", - "integrity": "sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.1.1" - }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "node": ">=6" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, - "license": "MIT" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=18" } }, - "node_modules/prettier": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", - "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "dev": true, "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/pretty-bytes": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.1.tgz", - "integrity": "sha512-X+vn9z8nOFZQlxOLmfJ0iKDdMD7jYTsTW12OAlCpdoE3Igik6L37pugIZi+N3usuyp5McfgKPWi12q3zvHLeGQ==", + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=20" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/pretty-format": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.4.1.tgz", - "integrity": "sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", - "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=8" } }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/process-nextick-args": { + "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/proper-lockfile/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/property-information": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", - "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", "dev": true, "license": "MIT", "funding": { @@ -18813,461 +4569,438 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/qified": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", - "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^2.1.1" + "character-entities": "^2.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/qified/node_modules/hookified": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", - "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, - "node_modules/qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.1", - "side-channel": "^1.1.1" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/quansync": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", - "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/antfu" - }, - { - "type": "individual", - "url": "https://github.com/sponsors/sxzz" - } - ], - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" + "engines": { + "node": ">=6" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" + "dequal": "^2.0.0" }, - "engines": { - "node": ">= 0.8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/react-is-18": { - "name": "react-is", - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-is-19": { - "name": "react-is", - "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.8.tgz", - "integrity": "sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/dts-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dts-resolver/-/dts-resolver-3.0.0.tgz", + "integrity": "sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==", "dev": true, "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "oxc-resolver": ">=11.0.0" + }, + "peerDependenciesMeta": { + "oxc-resolver": { + "optional": true + } } }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "minimatch": "^5.1.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/readdir-glob/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", - "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "node_modules/empathic": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", + "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", "dev": true, "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" }, "engines": { - "node": ">=8.10.0" + "node": ">=10.13.0" } }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "engines": { - "node": ">=8.6" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", - "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/regex-recursion": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", - "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/regex-utilities": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "node_modules/es-module-lexer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", "dev": true, "license": "MIT" }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, "license": "MIT", - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "es-errors": "^1.3.0" }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": ">= 0.4" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { "node": ">=6" } }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.3.tgz", - "integrity": "sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==", + "node_modules/eslint": { + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", + "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "remark-parse": "^10.0.0", - "remark-stringify": "^10.0.0", - "unified": "^10.0.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.34.0", + "@eslint/plugin-kit": "^0.3.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/eslint" } }, - "node_modules/remark-frontmatter/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/eslint" } }, - "node_modules/remark-html": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-16.0.1.tgz", - "integrity": "sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==", + "node_modules/eslint/node_modules/@eslint/js": { + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", + "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", "dev": true, "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "hast-util-sanitize": "^5.0.0", - "hast-util-to-html": "^9.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://eslint.org/donate" } }, - "node_modules/remark-html/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/eslint/node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/remark-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-loader/-/remark-loader-6.0.0.tgz", - "integrity": "sha512-3Z4WLyVYbI1F6TQNnA9/iuHsoRcu8ruH2ABixLpgSWiSiYdNgURgLdpbdze8jTm2+VWWcAq9xIH7maWSpi2sSw==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "front-matter": "^4.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 18.12.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "remark": "^14.0.0", - "webpack": "^5.0.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "node_modules/eslint/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/remark-parse/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/remark-parse/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/remark-parse/node_modules/debug": { + "node_modules/eslint/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", @@ -19285,3529 +5018,3083 @@ } } }, - "node_modules/remark-parse/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark-parse/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/mdast": "^3.0.0" + "is-glob": "^4.0.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/remark-parse/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/remark-parse/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/remark-parse/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "license": "MIT" + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark-parse/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "license": "ISC", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/remark-parse/node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "node_modules/eslint/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } + "license": "MIT" }, - "node_modules/remark-parse/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark-parse/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark-parse/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/remark-parse/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/remark-parse/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/remark-parse/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/remark-parse/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/remark-parse/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "node_modules/remark-parse/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/remark-parse/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT" }, - "node_modules/remark-parse/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/remark-parse/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" } }, - "node_modules/remark-parse/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/remark-parse/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "node_modules/remark-parse/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT" }, - "node_modules/remark-parse/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT" }, - "node_modules/remark-parse/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } }, - "node_modules/remark-parse/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0" + "format": "^0.2.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-stringify": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz", - "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" + "engines": { + "node": ">=12.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/remark-stringify/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2" + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/remark-stringify/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/remark-stringify/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "to-regex-range": "^5.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/remark-stringify/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromatch": "^4.0.2" } }, - "node_modules/remark-stringify/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=16" } }, - "node_modules/remark-stringify/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/floating-vue": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", + "integrity": "sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "@floating-ui/dom": "~1.1.1", + "vue-resize": "^2.0.0-alpha.1" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.0", + "vue": "^3.2.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } } }, - "node_modules/remark-stringify/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "node_modules/focus-trap": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", + "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], "license": "MIT", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "tabbable": "^6.4.0" } }, - "node_modules/remark-stringify/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "engines": { + "node": ">=0.4.x" } }, - "node_modules/remark-stringify/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" ], - "license": "MIT" + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "node_modules/remark-stringify/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "node_modules/remark-stringify/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/remark-stringify/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.4" } }, - "node_modules/remark-stringify/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "is-glob": "^4.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 6" } }, - "node_modules/remark/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^2" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/remark/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", "dev": true, "license": "MIT", "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" } }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", + "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", "dev": true, "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, + "license": "MIT", "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=8" } }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "es-define-property": "^1.0.0" }, "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", "dev": true, "license": "MIT" }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + "engines": { + "node": ">= 4" } }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/resp-modifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "node_modules/import-without-cache": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/import-without-cache/-/import-without-cache-0.4.0.tgz", + "integrity": "sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==", "dev": true, - "dependencies": { - "debug": "^2.2.0", - "minimatch": "^3.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/resp-modifier/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/resp-modifier/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=0.8.19" } }, - "node_modules/resp-modifier/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" + "license": "MIT", + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { - "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/rolldown": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz", - "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@oxc-project/types": "=0.143.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.2.3", - "@rolldown/binding-darwin-arm64": "1.2.3", - "@rolldown/binding-darwin-x64": "1.2.3", - "@rolldown/binding-freebsd-x64": "1.2.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", - "@rolldown/binding-linux-arm64-gnu": "1.2.3", - "@rolldown/binding-linux-arm64-musl": "1.2.3", - "@rolldown/binding-linux-ppc64-gnu": "1.2.3", - "@rolldown/binding-linux-s390x-gnu": "1.2.3", - "@rolldown/binding-linux-x64-gnu": "1.2.3", - "@rolldown/binding-linux-x64-musl": "1.2.3", - "@rolldown/binding-openharmony-arm64": "1.2.3", - "@rolldown/binding-win32-arm64-msvc": "1.2.3", - "@rolldown/binding-win32-x64-msvc": "1.2.3" + "node": ">=10" } }, - "node_modules/rolldown-plugin-dts": { - "version": "0.27.14", - "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.27.14.tgz", - "integrity": "sha512-ZvuDDwoIpRK9RPxDXratCpklFO9QZZWndf/sd0VBFb4LEj0jj07UcHK9OCh7V4XiFz2Z89ziyBC2K6tJiDjrbw==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "dts-resolver": "^3.0.0", - "get-tsconfig": "5.0.0-beta.5", - "obug": "^2.1.4", - "yuku-ast": "^0.8.0", - "yuku-codegen": "^0.8.0", - "yuku-parser": "^0.8.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": "^22.18.0 || >=24.11.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "@typescript/native-preview": "*", - "@volar/typescript": "~2.4.0", - "rolldown": "^1.0.0", - "typescript": "^5.0.0 || ^6.0.0 || ~7.0.0", - "vue-tsc": "~3.2.0 || ~3.3.0" - }, - "peerDependenciesMeta": { - "@typescript/native-preview": { - "optional": true - }, - "@volar/typescript": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } + "node": ">=8" } }, - "node_modules/rolldown-plugin-dts/node_modules/get-tsconfig": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.5.tgz", - "integrity": "sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==", + "node_modules/istanbul-reports/node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "engines": { - "node": ">=20.20.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "bin": { + "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "url": "https://github.com/sponsors/puzrin" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/nodeca" } ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } + "license": "MIT" }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "node_modules/json-stable-stringify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", + "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", "dev": true, "license": "MIT", "dependencies": { - "mri": "^1.1.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/json-stable-stringify/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, - "node_modules/sass": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz", - "integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==", + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^5.0.0", - "immutable": "^5.1.5", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=20.19.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sass-embedded": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.100.0.tgz", - "integrity": "sha512-Ut8wlQSk19tm7jMK6mz6cF1+e+E7tUnW2tM02zQDPnOTcVbV8qCQG8UWxZkkNlY50+hV3hqP24OOkUlMz8xBpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bufbuild/protobuf": "^2.5.0", - "colorjs.io": "^0.5.0", - "immutable": "^5.1.5", - "rxjs": "^7.4.0", - "supports-color": "^8.1.1", - "sync-child-process": "^1.0.2", - "varint": "^6.0.0" - }, - "bin": { - "sass": "dist/bin/sass.js" - }, - "engines": { - "node": ">=16.0.0" - }, - "optionalDependencies": { - "sass-embedded-all-unknown": "1.100.0", - "sass-embedded-android-arm": "1.100.0", - "sass-embedded-android-arm64": "1.100.0", - "sass-embedded-android-riscv64": "1.100.0", - "sass-embedded-android-x64": "1.100.0", - "sass-embedded-darwin-arm64": "1.100.0", - "sass-embedded-darwin-x64": "1.100.0", - "sass-embedded-linux-arm": "1.100.0", - "sass-embedded-linux-arm64": "1.100.0", - "sass-embedded-linux-musl-arm": "1.100.0", - "sass-embedded-linux-musl-arm64": "1.100.0", - "sass-embedded-linux-musl-riscv64": "1.100.0", - "sass-embedded-linux-musl-x64": "1.100.0", - "sass-embedded-linux-riscv64": "1.100.0", - "sass-embedded-linux-x64": "1.100.0", - "sass-embedded-unknown-all": "1.100.0", - "sass-embedded-win32-arm64": "1.100.0", - "sass-embedded-win32-x64": "1.100.0" - } - }, - "node_modules/sass-embedded-all-unknown": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.100.0.tgz", - "integrity": "sha512-auFtXY/kwYILmSVjtBDwyj0axcLbYYiffOKWoaXHnI5bsYwiRbBh3EneR1rpbX2ZIZCrwX93i5pxKLTZF/662Q==", - "cpu": [ - "!arm", - "!arm64", - "!riscv64", - "!x64" - ], + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "sass": "1.100.0" + "json-buffer": "3.0.1" } }, - "node_modules/sass-embedded-android-arm": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.100.0.tgz", - "integrity": "sha512-70f3HgX2pFNmzpGQ86n5e6QfWn2fP4QUQGfFQK0P1XH73ZLIzLo2YqygrGKGKeeqtc5eU2Wl1/xQzhzuKnO4kw==", - "cpu": [ - "arm" - ], + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=14.0.0" + "node": ">=0.10.0" } }, - "node_modules/sass-embedded-android-arm64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.100.0.tgz", - "integrity": "sha512-W+Ru9JwTnfU0UX3jSZcbqFdtKFMcYdfFwytc57h2DgnqCOIiAqI2E06mABZBZC+r3LwXCBuS5GbXAGeVgvVDkA==", - "cpu": [ - "arm64" - ], + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" + "dependencies": { + "graceful-fs": "^4.1.11" } }, - "node_modules/sass-embedded-android-riscv64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.100.0.tgz", - "integrity": "sha512-icU3o0V/uCSytSpf+tX5Lf51BvyQEbLzDUJfUi9etSauYBGHpPKkdtdZH0si4v98phq11Kl8rSV1SggksxF1Hg==", - "cpu": [ - "riscv64" - ], + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, "engines": { - "node": ">=14.0.0" + "node": ">= 0.8.0" } }, - "node_modules/sass-embedded-android-x64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.100.0.tgz", - "integrity": "sha512-mevF9VQk6gEYByy8+jusaHGmd7Usb2ytX/DsEOd0JtOGCtcf1kh575xJ6OUBDIcJ15uLnbau/0iy1eP6WVBvWA==", - "cpu": [ - "x64" - ], + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, - "node_modules/sass-embedded-darwin-arm64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.100.0.tgz", - "integrity": "sha512-1PVlYi61POo93IT/FfrG1mc1tAHxeSTyUALF2aOFmXGWjVXr3bQzEQiBGCOvQbj/ix+5hNyXFXcEMEyKvtUJJA==", + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "darwin" + "android" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-darwin-x64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.100.0.tgz", - "integrity": "sha512-x97o3JnGyImZNCIVs9wQHJUE5QCvmVIKaH1cwrz/5dK7OT1FpeNiW+u9TUomP9hG6Ekjd8EL8NBHpxTfIhdjmg==", + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-arm": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.100.0.tgz", - "integrity": "sha512-9Ul7O1eKrc5YlhwWjkp8tZPSe3UEwSZ1uwUZOQom1HL0pRlBA6F/IlGZYFTLwnHMIP1fc77MMNaBRfc05mKMpw==", + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ - "arm" + "x64" ], "dev": true, - "libc": "glibc", - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "linux" + "darwin" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-arm64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.100.0.tgz", - "integrity": "sha512-Dwjmj8Z6VRy7rAi53JAdEwIyUjpfl7PhpSc2/LpQPQx+aO5Dp7Spaipkax0ufJl1SoDUdchCsM4y/88YaluorQ==", + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ - "arm64" + "x64" ], "dev": true, - "libc": "glibc", - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ - "linux" + "freebsd" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.100.0.tgz", - "integrity": "sha512-sl0JgbGloPyJg66XXx5UDSDScZ0oU85DpMQU4JU/sCUCFj1Z8zZ69SJWKTCNE4/jwnce7WI2zPCV5AG+RHOZJw==", + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], "dev": true, - "libc": "musl", - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.100.0.tgz", - "integrity": "sha512-XpACJB2KjSLjf2e9uuvGVdOURsoNrFqgRiihhXyUHK9W0t3LIHb7z5MA/7XGPIT9bWSOO2zyw+rH/FHtDV/Yrg==", + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], "dev": true, - "libc": "musl", - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-riscv64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.100.0.tgz", - "integrity": "sha512-ShvI0Kx04mwoCARwZ0UjiT97isQvzO80tAt91zmFyHLN9kelc/IrQi940farSm2xQVPCKdeVyeG0ekBsokSpYQ==", - "cpu": [ - "riscv64" + "libc": [ + "glibc" ], - "dev": true, - "libc": "musl", - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.100.0.tgz", - "integrity": "sha512-TDBCRWNuS4RDLQXvRc1gjZlWiWTWaWGp0Bwu/IKwJxov81lsvrCs3TihTyNXtW7V5aoN4Ky3r0QOkNb3mwmBnA==", + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "libc": "musl", - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-riscv64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.100.0.tgz", - "integrity": "sha512-j4ENJGOheO+fm3j/yorLxCjBP6/XskrZx7dTLlT+lXYwN/qqCqoA/gsNLI0McS3DFM6GBwPiffzWsdWS8t6sEQ==", - "cpu": [ - "riscv64" + "libc": [ + "musl" ], - "dev": true, - "libc": "glibc", - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-linux-x64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.100.0.tgz", - "integrity": "sha512-0vUSN8j0WGtCJIOPh//EmUvYGHW0QOe5iul8qyhPk50MAcw49MA0r34AhftjDdx94ILPF6vApFs0gwHPQRlpVA==", + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], "dev": true, - "libc": "glibc", - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-unknown-all": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.100.0.tgz", - "integrity": "sha512-c+naBgWId4MIpToXcI0DgqetjdAkwTTAxFAuOaBz7HUXLdyG1oZRrEvSsbe41nEdQOKH0vgofVFCeSQgoXOG9A==", + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "libc": [ + "musl" + ], + "license": "MPL-2.0", "optional": true, "os": [ - "!android", - "!darwin", - "!linux", - "!win32" + "linux" ], - "dependencies": { - "sass": "1.100.0" + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-win32-arm64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.100.0.tgz", - "integrity": "sha512-iE+yxj+hUXwwbqpHkXxgAWTzeRfcWxJ7SSTQEPMk48lwq3oCrWLlz5sQuWHbuTK/i0GKQfROdP+hOmPi89yjUg==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=14.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-embedded-win32-x64": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.100.0.tgz", - "integrity": "sha512-qI4F8MI7/KYoy9NdjJfhSspG42WPkADSNDvwEV7qWvCSFC83koJssRsKO2/PfY+niZz6BG65Ic/D+A11h959hw==", + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", + "license": "MPL-2.0", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded/node_modules/immutable": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", - "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", - "dev": true, - "license": "MIT" - }, - "node_modules/sass-embedded/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/sass-loader": { - "version": "16.0.8", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.8.tgz", - "integrity": "sha512-hcov4ZwZJIGbEuyNr9EmiTmZueyrxSToE6GOzoZnq5JM7ecRO7ttyvilPn+VmRsqiP16+VYZzVnGZj/hzZgKBA==", + "node_modules/linkify-it": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", "dev": true, - "license": "MIT", - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" }, - "webpack": { - "optional": true + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" } - } - }, - "node_modules/sass/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "dev": true, + ], "license": "MIT", - "optional": true, "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "uc.micro": "^2.0.0" } }, - "node_modules/sass/node_modules/immutable": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", - "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, - "license": "MIT", - "optional": true + "license": "MIT" }, - "node_modules/sass/node_modules/readdirp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", - "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "dev": true, "license": "MIT", - "optional": true, - "engines": { - "node": ">= 20.19.0" - }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/sax": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", - "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=11.0.0" + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "node_modules/magicast": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", + "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", "dev": true, "license": "MIT", "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true, - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "source-map-js": "^1.2.1" } }, - "node_modules/send": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" + "semver": "^7.5.3" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", "dev": true, "license": "MIT" }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/markdown-it": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz", + "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "argparse": "^2.0.1", + "entities": "^4.5.0", + "linkify-it": "^5.0.2", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.8.0", - "mime-types": "~2.1.35", - "parseurl": "~1.3.3" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8.0" + "node": ">=0.12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "node_modules/markdown-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/markdown-title/-/markdown-title-1.0.2.tgz", + "integrity": "sha512-MqIQVVkz+uGEHi3TsHx/czcxxCbRIL7sv5K5DnYw/tI+apY54IbPefV/cmgxp6LoJSEx/TqcHdLs/298afG5QQ==", "dev": true, "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, - "node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" - } - }, - "node_modules/server-destroy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "node": ">=12" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", "dev": true, "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/shiki": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.0.2.tgz", - "integrity": "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==", + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "4.0.2", - "@shikijs/engine-javascript": "4.0.2", - "@shikijs/engine-oniguruma": "4.0.2", - "@shikijs/langs": "4.0.2", - "@shikijs/themes": "4.0.2", - "@shikijs/types": "4.0.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4", - "side-channel-list": "^1.0.1", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel-list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/siginfo": { + "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/sirv": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", - "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dev": true, "license": "MIT", "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, - "engines": { - "node": ">=18" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@types/mdast": "^4.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/smob": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz", - "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==", + "node_modules/mdurl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz", + "integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { - "node": ">=20.0.0" + "node": ">= 8" } }, - "node_modules/socket.io": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz", - "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.4.1", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.2.0" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.8.tgz", - "integrity": "sha512-6Oy52pbg+kvdCVvjcN+FnY7BvxZ7cIHNScbvztT/It5d0vbwoJoVZmF2gjJmnV0/4WlXRfG15zc45ySk9Ah8bw==", + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "debug": "~4.4.1", - "ws": "~8.21.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-adapter/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/socket.io-adapter/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/socket.io-client": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz", - "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.4.1", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/socket.io-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.7.tgz", - "integrity": "sha512-IH/iSeO9T6gz1KkFleGDWkG9N3dl4jXVYUtMhIqH10Md0ttMer8nUNWiP1DKuNrybD2xBrixLJdCC9J6ECoYkg==", + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.4.1" - }, - "engines": { - "node": ">=10.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/space-separated-tokens": { + "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "dev": true, - "license": "BSD-3-Clause" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT" }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } }, - "node_modules/statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "micromark-util-types": "^2.0.0" } }, - "node_modules/std-env": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", - "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", - "dev": true, - "license": "MIT" - }, - "node_modules/stream-throttle": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "dev": true, - "license": "BSD-3-Clause", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - }, - "bin": { - "throttleproxy": "bin/throttleproxy.js" - }, - "engines": { - "node": ">= 0.10.0" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/stream-throttle/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], "license": "MIT" }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/micromark/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ms": "^2.1.3" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/micromark/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" + "engines": { + "node": ">=8.6" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/millify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/millify/-/millify-6.1.0.tgz", + "integrity": "sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" + "yargs": "^17.0.1" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "bin": { + "millify": "bin/millify" } }, - "node_modules/strip-indent": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", - "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, "engines": { - "node": ">=12" + "node": "18 || 20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stylehacks": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.11.tgz", - "integrity": "sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==", + "node_modules/minisearch": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", + "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==", + "dev": true, + "license": "MIT" + }, + "node_modules/morphdom": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", + "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", - "dependencies": { - "browserslist": "^4.28.2", - "postcss-selector-parser": "^7.1.1" - }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.5.13" + "node": ">=10" } }, - "node_modules/stylelint": { - "version": "16.26.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", - "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, { "type": "github", - "url": "https://github.com/sponsors/stylelint" + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-syntax-patches-for-csstree": "^1.0.19", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.4.3", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, "bin": { - "stylelint": "bin/stylelint.mjs" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=18.12.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/stylelint-config-recommended": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-16.0.0.tgz", - "integrity": "sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.16.0" - } + "license": "MIT" }, - "node_modules/stylelint-config-recommended-scss": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-15.0.1.tgz", - "integrity": "sha512-V24bxkNkFGggqPVJlP9iXaBabwSGEG7QTz+PyxrRtjPkcF+/NsWtB3tKYvFYEmczRkWiIEfuFMhGpJFj9Fxe6Q==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", - "dependencies": { - "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^16.0.0", - "stylelint-scss": "^6.12.0" - }, "engines": { - "node": ">=20" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^16.16.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/stylelint-formatter-pretty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/stylelint-formatter-pretty/-/stylelint-formatter-pretty-4.0.1.tgz", - "integrity": "sha512-39nasPN8QNdMBq2eghI/SwpyVKx8kJGtmE/KJ5oFvCg0ZvZ5qjJbQgEulzC0gT70XZ+iRk7p1W5tE9IBQhFjPw==", + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", "dev": true, "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz/" - } + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" ], "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "log-symbols": "^7.0.0", - "picocolors": "^1.0.0", - "plur": "^5.1.0", - "string-width": "^7.0.0", - "supports-hyperlinks": "^3.0.0" - }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": ">=16.0.0" + "node": ">=12.20.0" } }, - "node_modules/stylelint-formatter-pretty/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", "dev": true, "license": "MIT" }, - "node_modules/stylelint-formatter-pretty/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/stylelint-high-performance-animation": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/stylelint-high-performance-animation/-/stylelint-high-performance-animation-1.11.0.tgz", - "integrity": "sha512-bo+VfSH5RmjVmu61BZeN4cBK+PGHpG5jfvaUsw0db+1sAqKuEGjzmxEbf271/Jq3HJHj8wyi/rCg1IcxxnIiiQ==", + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", "dev": true, "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "stylelint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" } }, - "node_modules/stylelint-order": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-7.0.1.tgz", - "integrity": "sha512-GWPei1zBVDDjxM+/BmcSCiOcHNd8rSqW6FUZtqQGlTRpD0Z5nSzspzWD8rtKif5KPdzUG68DApKEV/y/I9VbTw==", + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "license": "MIT", "dependencies": { - "postcss": "^8.5.6", - "postcss-sorting": "^9.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">=20.19.0" + "node": ">=8" }, - "peerDependencies": { - "stylelint": "^16.18.0 || ^17.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint-prettier": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-5.0.3.tgz", - "integrity": "sha512-B6V0oa35ekRrKZlf+6+jA+i50C4GXJ7X1PPmoCqSUoXN6BrNF6NhqqhanvkLjqw2qgvrS0wjdpeC+Tn06KN3jw==", + "node_modules/open/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "is-docker": "^2.0.0" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "prettier": ">=3.0.0", - "stylelint": ">=16.0.0" + "node": ">=8" } }, - "node_modules/stylelint-scss": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz", - "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mdn-data": "^2.25.0", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.1", - "postcss-value-parser": "^4.2.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.8.2" + "node": ">= 0.8.0" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/oxfmt": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.62.0.tgz", + "integrity": "sha512-vxgGHTmnDU9j4CX7dDBLzxgmHxfda/yPcgJkGCMUSCwRmz+euo/V08xXLNgXTeqAB9Fhf3Pe2nO1RNKLCVgphQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "tinypool": "2.1.0" + }, + "bin": { + "oxfmt": "bin/oxfmt" }, "engines": { - "node": ">=6.0" + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxfmt/binding-android-arm-eabi": "0.62.0", + "@oxfmt/binding-android-arm64": "0.62.0", + "@oxfmt/binding-darwin-arm64": "0.62.0", + "@oxfmt/binding-darwin-x64": "0.62.0", + "@oxfmt/binding-freebsd-x64": "0.62.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.62.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.62.0", + "@oxfmt/binding-linux-arm64-gnu": "0.62.0", + "@oxfmt/binding-linux-arm64-musl": "0.62.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.62.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.62.0", + "@oxfmt/binding-linux-riscv64-musl": "0.62.0", + "@oxfmt/binding-linux-s390x-gnu": "0.62.0", + "@oxfmt/binding-linux-x64-gnu": "0.62.0", + "@oxfmt/binding-linux-x64-musl": "0.62.0", + "@oxfmt/binding-openharmony-arm64": "0.62.0", + "@oxfmt/binding-win32-arm64-msvc": "0.62.0", + "@oxfmt/binding-win32-ia32-msvc": "0.62.0", + "@oxfmt/binding-win32-x64-msvc": "0.62.0" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite-plus": "*" }, "peerDependenciesMeta": { - "supports-color": { + "svelte": { + "optional": true + }, + "vite-plus": { "optional": true } } }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", - "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^6.1.23" - } - }, - "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.23", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", - "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cacheable": "^2.5.0", - "flatted": "^3.4.2", - "hookified": "^1.15.0" - } - }, - "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", - "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "node_modules/oxlint": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.77.0.tgz", + "integrity": "sha512-qnGh8XJHaQ0dprrDXNQZgS0FgjI6v+V3+X8DwmaV++5Aamy6jGKfDdQ1TUvhUxtmKFAbEf4/WeO5QZX+5WSngg==", "dev": true, "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, "engines": { - "node": ">= 4" + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.77.0", + "@oxlint/binding-android-arm64": "1.77.0", + "@oxlint/binding-darwin-arm64": "1.77.0", + "@oxlint/binding-darwin-x64": "1.77.0", + "@oxlint/binding-freebsd-x64": "1.77.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.77.0", + "@oxlint/binding-linux-arm-musleabihf": "1.77.0", + "@oxlint/binding-linux-arm64-gnu": "1.77.0", + "@oxlint/binding-linux-arm64-musl": "1.77.0", + "@oxlint/binding-linux-ppc64-gnu": "1.77.0", + "@oxlint/binding-linux-riscv64-gnu": "1.77.0", + "@oxlint/binding-linux-riscv64-musl": "1.77.0", + "@oxlint/binding-linux-s390x-gnu": "1.77.0", + "@oxlint/binding-linux-x64-gnu": "1.77.0", + "@oxlint/binding-linux-x64-musl": "1.77.0", + "@oxlint/binding-openharmony-arm64": "1.77.0", + "@oxlint/binding-win32-arm64-msvc": "1.77.0", + "@oxlint/binding-win32-ia32-msvc": "1.77.0", + "@oxlint/binding-win32-x64-msvc": "1.77.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=7.0.2001", + "vite-plus": "*" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + }, + "vite-plus": { + "optional": true + } } }, - "node_modules/stylelint/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/postcss-safe-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", - "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "node_modules/oxlint-tsgolint": { + "version": "7.0.2001", + "resolved": "https://registry.npmjs.org/oxlint-tsgolint/-/oxlint-tsgolint-7.0.2001.tgz", + "integrity": "sha512-KjK/XLcXr1DSyonKhsuFqJRiuKqcyG9j3LJ8nkOsrLzGvodBPqzHOKauy10asLMDI0sUpvb+1sxlzff3udZvfg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", - "engines": { - "node": ">=18.0" + "bin": { + "tsgolint": "bin/tsgolint.js" }, - "peerDependencies": { - "postcss": "^8.4.31" + "optionalDependencies": { + "@oxlint-tsgolint/darwin-arm64": "7.0.2001", + "@oxlint-tsgolint/darwin-x64": "7.0.2001", + "@oxlint-tsgolint/linux-arm64": "7.0.2001", + "@oxlint-tsgolint/linux-x64": "7.0.2001", + "@oxlint-tsgolint/win32-arm64": "7.0.2001", + "@oxlint-tsgolint/win32-x64": "7.0.2001" } }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/patch-package": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz", + "integrity": "sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^10.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.2.4", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" }, "engines": { - "node": ">=8" + "node": ">=14", + "npm": ">5" } }, - "node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "node_modules/patch-package/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.2.tgz", - "integrity": "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==", + "node_modules/patch-package/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { - "commander": "^11.1.0", - "css-select": "^5.1.0", - "css-tree": "^3.0.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.1.1", - "sax": "^1.5.0" - }, - "bin": { - "svgo": "bin/svgo.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/svgo/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "node_modules/patch-package/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "license": "MIT", "engines": { - "node": ">=16" + "node": ">=8" } }, - "node_modules/svgo/node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "node_modules/patch-package/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">=12" } }, - "node_modules/sync-child-process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", - "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "node_modules/patch-package/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", "dev": true, "license": "MIT", "dependencies": { - "sync-message-port": "^1.0.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=16.0.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/sync-message-port": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.2.0.tgz", - "integrity": "sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==", + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, "license": "MIT", "engines": { - "node": ">=16.0.0" + "node": ">=6" } }, - "node_modules/synckit": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.13.tgz", - "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", + "node_modules/patch-package/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.3.6" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/synckit" + "node": ">= 10.0.0" } }, - "node_modules/tabbable": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", - "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true, "license": "MIT" }, - "node_modules/table": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", - "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/tailwindcss": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", - "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/playwright": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "playwright-core": "1.62.1" + }, + "bin": { + "playwright": "cli.js" }, "engines": { - "node": ">=6" + "node": ">=20" + }, + "optionalDependencies": { + "fsevents": "2.3.2" } }, - "node_modules/terser": { - "version": "5.49.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.2.tgz", - "integrity": "sha512-rGbJiKeQ4WDe3EXlDAIaQcwftVfv2Q8o1awFNfvXolJYKkb1AuZY1RTOmqx4LJXZENbWZA7eIsYGHuEzHsi1nQ==", + "node_modules/playwright-core": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, + "license": "Apache-2.0", "bin": { - "terser": "bin/terser" + "playwright-core": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=20" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" } }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 10.13.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 0.8.0" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/thingies": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.1.tgz", - "integrity": "sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==", + "node_modules/pretty-bytes": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.1.tgz", + "integrity": "sha512-X+vn9z8nOFZQlxOLmfJ0iKDdMD7jYTsTW12OAlCpdoE3Igik6L37pugIZi+N3usuyp5McfgKPWi12q3zvHLeGQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.18" + "node": ">=20" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "^2" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", - "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "node_modules/property-information": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" + "node": ">=6" } }, - "node_modules/tinypool": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-2.1.0.tgz", - "integrity": "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, "license": "MIT", "engines": { - "node": "^20.0.0 || >=22.0.0" + "node": ">=6" } }, - "node_modules/tinyrainbow": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", - "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "node_modules/quansync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", + "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" }, - "node_modules/tmp": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", - "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.14" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "regex-utilities": "^2.3.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.6" + "dependencies": { + "regex-utilities": "^2.3.0" } }, - "node_modules/tokenx": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tokenx/-/tokenx-1.6.0.tgz", - "integrity": "sha512-CKTjk345ajvBAUp5xUI9a5KKN0zU0lBueVHQbCskH1Hp6WkUKsPW2qGCYNs0pxNyfzxfo+IIjdt2W4sMbw/qBw==", + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", "dev": true, "license": "MIT" }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tree-dump": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", - "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "node_modules/remark-frontmatter/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "license": "MIT", - "bin": { - "tree-kill": "cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=4" } }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, "license": "MIT", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/ts-api-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", - "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "node_modules/rolldown": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz", + "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==", "dev": true, "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.143.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, "engines": { - "node": ">=18.12" + "node": "^20.19.0 || >=22.12.0" }, - "peerDependencies": { - "typescript": ">=4.8.4" + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.3", + "@rolldown/binding-darwin-arm64": "1.2.3", + "@rolldown/binding-darwin-x64": "1.2.3", + "@rolldown/binding-freebsd-x64": "1.2.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", + "@rolldown/binding-linux-arm64-gnu": "1.2.3", + "@rolldown/binding-linux-arm64-musl": "1.2.3", + "@rolldown/binding-linux-ppc64-gnu": "1.2.3", + "@rolldown/binding-linux-s390x-gnu": "1.2.3", + "@rolldown/binding-linux-x64-gnu": "1.2.3", + "@rolldown/binding-linux-x64-musl": "1.2.3", + "@rolldown/binding-openharmony-arm64": "1.2.3", + "@rolldown/binding-win32-arm64-msvc": "1.2.3", + "@rolldown/binding-win32-x64-msvc": "1.2.3" } }, - "node_modules/tsdown": { - "version": "0.22.14", - "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.22.14.tgz", - "integrity": "sha512-ule7Y+fsAN2iZbLDoo7C4KYljFJNJJ+fLshyn+9gozeTspVersWHxwdGB+Dm2hzA38s6muFnUTl0jK3vJm9ifQ==", + "node_modules/rolldown-plugin-dts": { + "version": "0.27.14", + "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.27.14.tgz", + "integrity": "sha512-ZvuDDwoIpRK9RPxDXratCpklFO9QZZWndf/sd0VBFb4LEj0jj07UcHK9OCh7V4XiFz2Z89ziyBC2K6tJiDjrbw==", "dev": true, "license": "MIT", "dependencies": { - "ansis": "^4.3.1", - "cac": "^7.0.0", - "defu": "^6.1.7", - "empathic": "^2.0.1", - "hookable": "^6.1.1", - "import-without-cache": "^0.4.0", + "dts-resolver": "^3.0.0", + "get-tsconfig": "5.0.0-beta.5", "obug": "^2.1.4", - "picomatch": "^4.0.5", - "rolldown": "~1.2.0", - "rolldown-plugin-dts": "^0.27.13", - "tinyexec": "^1.2.4", - "tinyglobby": "^0.2.17", - "tree-kill": "^1.2.2", - "unconfig-core": "^7.5.0", - "verkit": "^0.3.0" - }, - "bin": { - "tsdown": "dist/run.mjs" + "yuku-ast": "^0.8.0", + "yuku-codegen": "^0.8.0", + "yuku-parser": "^0.8.0" }, "engines": { "node": "^22.18.0 || >=24.11.0" @@ -22816,1560 +8103,1259 @@ "url": "https://github.com/sponsors/sxzz" }, "peerDependencies": { - "@arethetypeswrong/core": "^0.18.1", - "@tsdown/css": "0.22.14", - "@tsdown/exe": "0.22.14", - "@vitejs/devtools": "*", - "publint": "^0.3.8", - "tsx": "*", - "typescript": "^5.0.0 || ^6.0.0 || ^7.0.0", - "unplugin-unused": "^0.5.0", - "unrun": "*" + "@typescript/native-preview": "*", + "@volar/typescript": "~2.4.0", + "rolldown": "^1.0.0", + "typescript": "^5.0.0 || ^6.0.0 || ~7.0.0", + "vue-tsc": "~3.2.0 || ~3.3.0" }, "peerDependenciesMeta": { - "@arethetypeswrong/core": { - "optional": true - }, - "@tsdown/css": { - "optional": true - }, - "@tsdown/exe": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "publint": { + "@typescript/native-preview": { "optional": true }, - "tsx": { + "@volar/typescript": { "optional": true }, "typescript": { "optional": true }, - "unplugin-unused": { - "optional": true - }, - "unrun": { + "vue-tsc": { "optional": true } } }, - "node_modules/tsdown/node_modules/cac": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", - "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "node_modules/rolldown-plugin-dts/node_modules/get-tsconfig": { + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.5.tgz", + "integrity": "sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/twig": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/twig/-/twig-1.17.1.tgz", - "integrity": "sha512-atxccyr/BHtb1gPMA7Lvki0OuU17XBqHsNH9lzDHt9Rr1293EVZOosSZabEXz/DPVikIW8ZDqSkEddwyJnQN2w==", - "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@babel/runtime": "^7.8.4", - "locutus": "^2.0.11", - "minimatch": "3.0.x", - "walk": "2.3.x" - }, - "bin": { - "twigjs": "bin/twigjs" + "resolve-pkg-maps": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/twig/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "node_modules/twig/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/twig/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/twoslash-protocol": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.9.tgz", - "integrity": "sha512-9/iwp+CXOnjFMPQuPL5PkuRbZnDoNpBvtJCLs9t8kDYkL3YHujbvnHfZA1i5fApDftVEdBw+T/4F+dH5kIzpYQ==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/typescript": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", - "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc" - }, + "license": "MIT", "engines": { - "node": ">=16.20.0" - }, - "optionalDependencies": { - "@typescript/typescript-aix-ppc64": "7.0.2", - "@typescript/typescript-darwin-arm64": "7.0.2", - "@typescript/typescript-darwin-x64": "7.0.2", - "@typescript/typescript-freebsd-arm64": "7.0.2", - "@typescript/typescript-freebsd-x64": "7.0.2", - "@typescript/typescript-linux-arm": "7.0.2", - "@typescript/typescript-linux-arm64": "7.0.2", - "@typescript/typescript-linux-loong64": "7.0.2", - "@typescript/typescript-linux-mips64el": "7.0.2", - "@typescript/typescript-linux-ppc64": "7.0.2", - "@typescript/typescript-linux-riscv64": "7.0.2", - "@typescript/typescript-linux-s390x": "7.0.2", - "@typescript/typescript-linux-x64": "7.0.2", - "@typescript/typescript-netbsd-arm64": "7.0.2", - "@typescript/typescript-netbsd-x64": "7.0.2", - "@typescript/typescript-openbsd-arm64": "7.0.2", - "@typescript/typescript-openbsd-x64": "7.0.2", - "@typescript/typescript-sunos-x64": "7.0.2", - "@typescript/typescript-win32-arm64": "7.0.2", - "@typescript/typescript-win32-x64": "7.0.2" + "node": ">=8" } }, - "node_modules/ua-parser-js": { - "version": "1.0.41", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", - "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", + "node_modules/shiki": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.0.2.tgz", + "integrity": "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], "license": "MIT", - "bin": { - "ua-parser-js": "script/cli.js" + "dependencies": { + "@shikijs/core": "4.0.2", + "@shikijs/engine-javascript": "4.0.2", + "@shikijs/engine-oniguruma": "4.0.2", + "@shikijs/langs": "4.0.2", + "@shikijs/themes": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" }, "engines": { - "node": "*" + "node": ">=20" } }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/un-eval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/un-eval/-/un-eval-1.2.0.tgz", - "integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==", + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/unconfig-core": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/unconfig-core/-/unconfig-core-7.5.0.tgz", - "integrity": "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==", + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, "license": "MIT", "dependencies": { - "@quansync/fs": "^1.0.0", - "quansync": "^1.0.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "engines": { + "node": ">=18" } }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "node_modules/smob": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz", + "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/unified/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, - "node_modules/unified/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "license": "MIT" }, - "node_modules/unified/node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "license": "MIT" }, - "node_modules/unified/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "qs": "^6.4.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/unist-util-is": { + "node_modules/string-width/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" + "ansi-regex": "^5.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/unist-util-remove": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz", - "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==", + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "has-flag": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "node_modules/tabbable": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", + "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "engines": { + "node": ">=6" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/webpack" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } + "license": "MIT" }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/update-browserslist-db": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.0.tgz", - "integrity": "sha512-x/M6q3w4Ybp91CNaS4S69UnliqR3BzRpOT6LWbksjth0S/+jhfaPJsWjt/TewpT8j9eLIojUf5jr29WextHroA==", + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, - "bin": { - "update-browserslist-db": "cli.js" + "engines": { + "node": ">=12.0.0" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/tinypool": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-2.1.0.tgz", + "integrity": "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "license": "MIT", + "engines": { + "node": "^20.0.0 || >=22.0.0" } }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true, - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "node_modules/tinyrainbow": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=14.14" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" + "is-number": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.0" } }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "node_modules/tokenx": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tokenx/-/tokenx-1.6.0.tgz", + "integrity": "sha512-CKTjk345ajvBAUp5xUI9a5KKN0zU0lBueVHQbCskH1Hp6WkUKsPW2qGCYNs0pxNyfzxfo+IIjdt2W4sMbw/qBw==", "dev": true, "license": "MIT" }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/verkit": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.3.2.tgz", - "integrity": "sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==", + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" + "bin": { + "tree-kill": "cli.js" } }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vfile-message": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vite": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", - "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", + "node_modules/tsdown": { + "version": "0.22.14", + "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.22.14.tgz", + "integrity": "sha512-ule7Y+fsAN2iZbLDoo7C4KYljFJNJJ+fLshyn+9gozeTspVersWHxwdGB+Dm2hzA38s6muFnUTl0jK3vJm9ifQ==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.33.0", + "ansis": "^4.3.1", + "cac": "^7.0.0", + "defu": "^6.1.7", + "empathic": "^2.0.1", + "hookable": "^6.1.1", + "import-without-cache": "^0.4.0", + "obug": "^2.1.4", "picomatch": "^4.0.5", - "postcss": "^8.5.25", - "rolldown": "~1.2.1", - "tinyglobby": "^0.2.17" + "rolldown": "~1.2.0", + "rolldown-plugin-dts": "^0.27.13", + "tinyexec": "^1.2.4", + "tinyglobby": "^0.2.17", + "tree-kill": "^1.2.2", + "unconfig-core": "^7.5.0", + "verkit": "^0.3.0" }, "bin": { - "vite": "bin/vite.js" + "tsdown": "dist/run.mjs" }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": "^22.18.0 || >=24.11.0" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "url": "https://github.com/sponsors/sxzz" }, "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.4.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" + "@arethetypeswrong/core": "^0.18.1", + "@tsdown/css": "0.22.14", + "@tsdown/exe": "0.22.14", + "@vitejs/devtools": "*", + "publint": "^0.3.8", + "tsx": "*", + "typescript": "^5.0.0 || ^6.0.0 || ^7.0.0", + "unplugin-unused": "^0.5.0", + "unrun": "*" }, "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { + "@arethetypeswrong/core": { "optional": true }, - "less": { + "@tsdown/css": { "optional": true }, - "sass": { + "@tsdown/exe": { "optional": true }, - "sass-embedded": { + "@vitejs/devtools": { "optional": true }, - "stylus": { + "publint": { "optional": true }, - "sugarss": { + "tsx": { "optional": true }, - "terser": { + "typescript": { "optional": true }, - "tsx": { + "unplugin-unused": { "optional": true }, - "yaml": { + "unrun": { "optional": true } } }, - "node_modules/vitepress": { - "version": "2.0.0-alpha.19", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-2.0.0-alpha.19.tgz", - "integrity": "sha512-WnBsb0Bwr43kXKyiis+lld/7ri3hnMbthS8N3hpFtjjwsdLO4IRmiAE08D7aud4q6oMDf9uwRowxzNqRFe/amw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@docsearch/css": "^4.7.0", - "@docsearch/js": "^4.7.0", - "@docsearch/sidepanel-js": "^4.7.0", - "@iconify-json/simple-icons": "^1.2.92", - "@shikijs/core": "^4.4.1", - "@shikijs/transformers": "^4.4.1", - "@shikijs/types": "^4.4.1", - "@types/markdown-it": "^14.1.2", - "@vitejs/plugin-vue": "^6.0.8", - "@vue/devtools-api": "^8.2.1", - "@vue/shared": "^3.5.40", - "@vueuse/core": "^14.4.0", - "@vueuse/integrations": "^14.4.0", - "focus-trap": "^8.2.2", - "mark.js": "8.11.1", - "minisearch": "^7.2.0", - "shiki": "^4.4.1", - "vite": "^8.2.0", - "vue": "^3.5.40" - }, - "bin": { - "vitepress": "bin/vitepress.js" - }, - "peerDependencies": { - "markdown-it-mathjax3": "^4", - "postcss": "^8" - }, - "peerDependenciesMeta": { - "markdown-it-mathjax3": { - "optional": true - }, - "postcss": { - "optional": true - } + "node_modules/tsdown/node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" } }, - "node_modules/vitepress-plugin-llms": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/vitepress-plugin-llms/-/vitepress-plugin-llms-1.12.0.tgz", - "integrity": "sha512-zuzL7a8UJuGl46le5cAy/QxKMGlpSylcsLjDDn6BYPc1u+eP3nzoQk9ne9XFBqrE7exoJlIYJELVN8HMgYlFKQ==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/twoslash-protocol": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.9.tgz", + "integrity": "sha512-9/iwp+CXOnjFMPQuPL5PkuRbZnDoNpBvtJCLs9t8kDYkL3YHujbvnHfZA1i5fApDftVEdBw+T/4F+dH5kIzpYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { - "gray-matter": "^4.0.3", - "markdown-it": "^14.1.0", - "markdown-title": "^1.0.2", - "mdast-util-from-markdown": "^2.0.3", - "millify": "^6.1.0", - "minimatch": "^10.2.4", - "path-to-regexp": "^6.3.0", - "picocolors": "^1.1.1", - "pretty-bytes": "^7.1.0", - "remark": "^15.0.1", - "remark-frontmatter": "^5.0.0", - "tokenx": "^1.3.0", - "unist-util-remove": "^4.0.0", - "unist-util-visit": "^5.1.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=18.0.0" + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc" }, - "funding": { - "url": "https://github.com/sponsors/okineadev" + "engines": { + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, - "node_modules/vitepress-plugin-llms/node_modules/remark": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", - "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/unconfig-core": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/unconfig-core/-/unconfig-core-7.5.0.tgz", + "integrity": "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" + "@quansync/fs": "^1.0.0", + "quansync": "^1.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/vitepress-plugin-llms/node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress-plugin-llms/node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress-plugin-llms/node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "node_modules/unist-util-remove": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz", + "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==", "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@shikijs/core": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.2.tgz", - "integrity": "sha512-StyzbAyxg2/tBGf78gwbBkGyeQ73lf8UiJArFaQhTQIDqQOCKPCQFanvrs4/Yv3Yfyc+ONInJM6K+FMIf+P+kA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/primitive": "4.4.2", - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5", - "hast-util-to-html": "^9.0.5" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/vitepress/node_modules/@shikijs/engine-javascript": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.2.tgz", - "integrity": "sha512-MnIkeqWdVPUWsxlx8gKLVCJFTsqrQJgpTPBPpQwaFeJ56lOnJxj5aN2LUFnfxUEcvOQuNocmbaMnVrCEln6rkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.6" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/vitepress/node_modules/@shikijs/engine-oniguruma": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.2.tgz", - "integrity": "sha512-GLhowz1+jixjz+wiZ3wMnOn1jTxiFCGl2PkXufivbnwPHKuyw1AYqu5/hbWhZZ2oAb0NP05WUJhYeigY14drnw==", + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2" + "@types/unist": "^3.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@shikijs/langs": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.2.tgz", - "integrity": "sha512-8DfeusD+Zdv/eYIDdXyJTUnSMHt+aAWjAOCXV20HNGAHRlInXpG8wh421v6B91WOm9TFwRLN+b/LG5F2NAIojg==", + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "4.4.2" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@shikijs/primitive": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.2.tgz", - "integrity": "sha512-l6fQQKsOMlz72n38fztmSgZ76MO6KSWuw8o+GJ+FhmqrpC9pIOJNQNXGgbb5yX2AwpzlEHwsaLPnk/8o4Fm+rA==", + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/@shikijs/themes": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.2.tgz", - "integrity": "sha512-H0CFoL07ddDC2Dd6EdrPYNkRhUR6YCkJlnuYFceYYUJJA5TIm2b5B33qqiDYryBExgbKMndFJPb2u1gTuqO37g==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@shikijs/types": "4.4.2" - }, - "engines": { - "node": ">=20" + "punycode": "^2.1.0" } - }, - "node_modules/vitepress/node_modules/@shikijs/types": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.2.tgz", - "integrity": "sha512-PFYitV4vpDr/iPCIhnHp+Q4ftic5N5VeNJ3KQ1O8gn3h2ar8qgwMAXF7tq4m1CWaMS60fV4VqF6vfnWH4F7vqQ==", + }, + "node_modules/verkit": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.3.2.tgz", + "integrity": "sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==", "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5" - }, "engines": { - "node": ">=20" + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/vitepress/node_modules/focus-trap": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-8.2.2.tgz", - "integrity": "sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==", + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "dev": true, "license": "MIT", "dependencies": { - "tabbable": "^6.5.0" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitepress/node_modules/shiki": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.2.tgz", - "integrity": "sha512-P8F/dFhRevaw2uSdeIYlq/5SXZNY85DPtmXQ947gD1Zj2JqO5AkNvVVBar0Me9JkFx3uzVud/qOtP5ek9NEQGA==", + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "4.4.2", - "@shikijs/engine-javascript": "4.4.2", - "@shikijs/engine-oniguruma": "4.4.2", - "@shikijs/langs": "4.4.2", - "@shikijs/themes": "4.4.2", - "@shikijs/types": "4.4.2", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.5" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": ">=20" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vitest": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", - "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", + "node_modules/vite": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.10", - "@vitest/mocker": "4.1.10", - "@vitest/pretty-format": "4.1.10", - "@vitest/runner": "4.1.10", - "@vitest/snapshot": "4.1.10", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", + "tinyglobby": "^0.2.17" }, "bin": { - "vitest": "vitest.mjs" + "vite": "bin/vite.js" }, "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.10", - "@vitest/browser-preview": "4.1.10", - "@vitest/browser-webdriverio": "4.1.10", - "@vitest/coverage-istanbul": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "@vitest/ui": "4.1.10", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "@edge-runtime/vm": { + "@types/node": { "optional": true }, - "@opentelemetry/api": { + "@vitejs/devtools": { "optional": true }, - "@types/node": { + "esbuild": { "optional": true }, - "@vitest/browser-playwright": { + "jiti": { "optional": true }, - "@vitest/browser-preview": { + "less": { "optional": true }, - "@vitest/browser-webdriverio": { + "sass": { "optional": true }, - "@vitest/coverage-istanbul": { + "sass-embedded": { "optional": true }, - "@vitest/coverage-v8": { + "stylus": { "optional": true }, - "@vitest/ui": { + "sugarss": { "optional": true }, - "happy-dom": { + "terser": { "optional": true }, - "jsdom": { + "tsx": { "optional": true }, - "vite": { - "optional": false - } - } - }, - "node_modules/vue": { - "version": "3.5.41", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.41.tgz", - "integrity": "sha512-2laE0p+aK+/AOPG/XL/WepOs/GlK755LJ1XECi9kDUrz1FKNw8rb2Xzlw9JS1rqEV55nb0ttsKxVlTCcd+R5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.41", - "@vue/compiler-sfc": "3.5.41", - "@vue/runtime-dom": "3.5.41", - "@vue/server-renderer": "3.5.41", - "@vue/shared": "3.5.41" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-eslint-parser": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.4.1.tgz", - "integrity": "sha512-Gk6gRDj0n/fkRa3C3l0bBheoBckUq/Rs0F/TvMWIS6nzzx67amAViMe9CkNgsP2tXyQONvGiHQESHwFtZ3aYDA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^4.4.0", - "eslint-scope": "^8.2.0 || ^9.0.0", - "eslint-visitor-keys": "^4.2.0 || ^5.0.0", - "espree": "^10.3.0 || ^11.0.0", - "esquery": "^1.6.0", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { + "yaml": { "optional": true } } }, - "node_modules/vue-eslint-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/vue-resize": { - "version": "2.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", - "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.109.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.109.2.tgz", - "integrity": "sha512-U9/cvLzxObKNEZ9+TtdqrHM5/9z3lgl2c+c4BzbqGxFQvQvBAq87yql5A8pQ+rrMbS496MZJeF5enVBndIy2hw==", + "node_modules/vitepress": { + "version": "2.0.0-alpha.19", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-2.0.0-alpha.19.tgz", + "integrity": "sha512-WnBsb0Bwr43kXKyiis+lld/7ri3hnMbthS8N3hpFtjjwsdLO4IRmiAE08D7aud4q6oMDf9uwRowxzNqRFe/amw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.24.4", - "es-module-lexer": "^2.1.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "graceful-fs": "^4.2.11", - "mime-db": "^1.54.0", - "minimizer-webpack-plugin": "^5.6.1", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "watchpack": "^2.5.2", - "webpack-sources": "^3.5.1" + "@docsearch/css": "^4.7.0", + "@docsearch/js": "^4.7.0", + "@docsearch/sidepanel-js": "^4.7.0", + "@iconify-json/simple-icons": "^1.2.92", + "@shikijs/core": "^4.4.1", + "@shikijs/transformers": "^4.4.1", + "@shikijs/types": "^4.4.1", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^6.0.8", + "@vue/devtools-api": "^8.2.1", + "@vue/shared": "^3.5.40", + "@vueuse/core": "^14.4.0", + "@vueuse/integrations": "^14.4.0", + "focus-trap": "^8.2.2", + "mark.js": "8.11.1", + "minisearch": "^7.2.0", + "shiki": "^4.4.1", + "vite": "^8.2.0", + "vue": "^3.5.40" }, "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" + "vitepress": "bin/vitepress.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" }, "peerDependenciesMeta": { - "webpack-cli": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { "optional": true } } }, - "node_modules/webpack-assets-manifest": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/webpack-assets-manifest/-/webpack-assets-manifest-6.5.2.tgz", - "integrity": "sha512-UNi1LmOJUEsLpAYTV21ftp5HYsxePvhIEvAIij84I3wBCYDOman3tevsglxfC+F+GFWEDhFkwrvIzbvXqTYqrw==", + "node_modules/vitepress-plugin-llms": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/vitepress-plugin-llms/-/vitepress-plugin-llms-1.12.0.tgz", + "integrity": "sha512-zuzL7a8UJuGl46le5cAy/QxKMGlpSylcsLjDDn6BYPc1u+eP3nzoQk9ne9XFBqrE7exoJlIYJELVN8HMgYlFKQ==", "dev": true, "license": "MIT", "dependencies": { - "deepmerge": "^4.3.1", - "proper-lockfile": "^4.1.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.3" + "gray-matter": "^4.0.3", + "markdown-it": "^14.1.0", + "markdown-title": "^1.0.2", + "mdast-util-from-markdown": "^2.0.3", + "millify": "^6.1.0", + "minimatch": "^10.2.4", + "path-to-regexp": "^6.3.0", + "picocolors": "^1.1.1", + "pretty-bytes": "^7.1.0", + "remark": "^15.0.1", + "remark-frontmatter": "^5.0.0", + "tokenx": "^1.3.0", + "unist-util-remove": "^4.0.0", + "unist-util-visit": "^5.1.0" }, "engines": { - "node": ">=20.10.0" + "node": ">=18.0.0" }, - "peerDependencies": { - "webpack": "^5.61.0" + "funding": { + "url": "https://github.com/sponsors/okineadev" } }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", - "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "node_modules/vitepress-plugin-llms/node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", "dev": true, "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "html-escaper": "^2.0.2", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/webpack-bundle-analyzer/node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-bundle-analyzer/node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "node_modules/vitepress-plugin-llms/node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dev": true, "license": "MIT", "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, - "engines": { - "node": ">= 10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.13", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.13.tgz", - "integrity": "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==", + "node_modules/vitepress-plugin-llms/node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/webpack-dev-middleware": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", - "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "node_modules/vitepress-plugin-llms/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "dev": true, "license": "MIT", "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.43.1", - "mime-types": "^3.0.1", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 18.12.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "url": "https://opencollective.com/unified" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "node_modules/vitepress/node_modules/@shikijs/core": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.2.tgz", + "integrity": "sha512-StyzbAyxg2/tBGf78gwbBkGyeQ73lf8UiJArFaQhTQIDqQOCKPCQFanvrs4/Yv3Yfyc+ONInJM6K+FMIf+P+kA==", "dev": true, "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.4.2", + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=20" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/vitepress/node_modules/@shikijs/engine-javascript": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.2.tgz", + "integrity": "sha512-MnIkeqWdVPUWsxlx8gKLVCJFTsqrQJgpTPBPpQwaFeJ56lOnJxj5aN2LUFnfxUEcvOQuNocmbaMnVrCEln6rkw==", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "^1.54.0" + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" }, "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=20" } }, - "node_modules/webpack-dev-middleware/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/vitepress/node_modules/@shikijs/engine-oniguruma": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.2.tgz", + "integrity": "sha512-GLhowz1+jixjz+wiZ3wMnOn1jTxiFCGl2PkXufivbnwPHKuyw1AYqu5/hbWhZZ2oAb0NP05WUJhYeigY14drnw==", "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2" }, "engines": { - "node": ">= 0.8" + "node": ">=20" } }, - "node_modules/webpack-hot-middleware": { - "version": "2.26.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz", - "integrity": "sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==", + "node_modules/vitepress/node_modules/@shikijs/langs": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.2.tgz", + "integrity": "sha512-8DfeusD+Zdv/eYIDdXyJTUnSMHt+aAWjAOCXV20HNGAHRlInXpG8wh421v6B91WOm9TFwRLN+b/LG5F2NAIojg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-html-community": "0.0.8", - "html-entities": "^2.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/webpack-hot-middleware/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", + "@shikijs/types": "4.4.2" + }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/webpack-hot-middleware/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/vitepress/node_modules/@shikijs/primitive": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.2.tgz", + "integrity": "sha512-l6fQQKsOMlz72n38fztmSgZ76MO6KSWuw8o+GJ+FhmqrpC9pIOJNQNXGgbb5yX2AwpzlEHwsaLPnk/8o4Fm+rA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "node_modules/vitepress/node_modules/@shikijs/themes": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.2.tgz", + "integrity": "sha512-H0CFoL07ddDC2Dd6EdrPYNkRhUR6YCkJlnuYFceYYUJJA5TIm2b5B33qqiDYryBExgbKMndFJPb2u1gTuqO37g==", "dev": true, "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" + "@shikijs/types": "4.4.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20" } }, - "node_modules/webpack-module-hot-accept": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/webpack-module-hot-accept/-/webpack-module-hot-accept-1.0.5.tgz", - "integrity": "sha512-Okwki36HfGp17GAhG6RA5rq7dUG/X9qA/NKsvcOOTK8YT9twGjF9HBqYBsk5ZOjA0jbSxbQ/ISWyh777JvinqA==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-remove-empty-scripts": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webpack-remove-empty-scripts/-/webpack-remove-empty-scripts-1.1.1.tgz", - "integrity": "sha512-FqmIy7joxXd0/7jz8UjzMXOKc6B7LR+ynfgaaaH72xUT917h3A94ERxOLvGM8a8XdGIvUsdTLIUt8aBQM2Pdqg==", + "node_modules/vitepress/node_modules/@shikijs/types": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.2.tgz", + "integrity": "sha512-PFYitV4vpDr/iPCIhnHp+Q4ftic5N5VeNJ3KQ1O8gn3h2ar8qgwMAXF7tq4m1CWaMS60fV4VqF6vfnWH4F7vqQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "ansis": "4.0.0-node10" + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" }, "engines": { - "node": ">=12.14" - }, - "funding": { - "type": "patreon", - "url": "https://patreon.com/biodiscus" - }, - "peerDependencies": { - "webpack": ">=5.32.0" + "node": ">=20" } }, - "node_modules/webpack-remove-empty-scripts/node_modules/ansis": { - "version": "4.0.0-node10", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.0.0-node10.tgz", - "integrity": "sha512-BRrU0Bo1X9dFGw6KgGz6hWrqQuOlVEDOzkb0QSLZY9sXHqA7pNj7yHPVJRz7y/rj4EOJ3d/D5uxH+ee9leYgsg==", + "node_modules/vitepress/node_modules/focus-trap": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-8.2.2.tgz", + "integrity": "sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "tabbable": "^6.5.0" } }, - "node_modules/webpack-sources": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz", - "integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==", + "node_modules/vitepress/node_modules/shiki": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.2.tgz", + "integrity": "sha512-P8F/dFhRevaw2uSdeIYlq/5SXZNY85DPtmXQ947gD1Zj2JqO5AkNvVVBar0Me9JkFx3uzVud/qOtP5ek9NEQGA==", "dev": true, "license": "MIT", + "dependencies": { + "@shikijs/core": "4.4.2", + "@shikijs/engine-javascript": "4.4.2", + "@shikijs/engine-oniguruma": "4.4.2", + "@shikijs/langs": "4.4.2", + "@shikijs/themes": "4.4.2", + "@shikijs/types": "4.4.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, "engines": { - "node": ">=10.13.0" + "node": ">=20" } }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/vitest": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpackbar": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz", - "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansis": "^3.2.0", - "consola": "^3.2.3", - "pretty-time": "^1.1.0", - "std-env": "^3.7.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, - "engines": { - "node": ">=14.21.3" + "funding": { + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@rspack/core": "*", - "webpack": "3 || 4 || 5" + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@rspack/core": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { "optional": true }, - "webpack": { + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { "optional": true + }, + "vite": { + "optional": false } } }, - "node_modules/webpackbar/node_modules/ansis": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", - "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - } - }, - "node_modules/webpackbar/node_modules/std-env": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "node_modules/vue": { + "version": "3.5.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.41.tgz", + "integrity": "sha512-2laE0p+aK+/AOPG/XL/WepOs/GlK755LJ1XECi9kDUrz1FKNw8rb2Xzlw9JS1rqEV55nb0ttsKxVlTCcd+R5cg==", "dev": true, "license": "MIT", "dependencies": { - "iconv-lite": "0.6.3" + "@vue/compiler-dom": "3.5.41", + "@vue/compiler-sfc": "3.5.41", + "@vue/runtime-dom": "3.5.41", + "@vue/server-renderer": "3.5.41", + "@vue/shared": "3.5.41" }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "peerDependencies": { + "typescript": "*" }, - "engines": { - "node": ">=0.10.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "node_modules/vue-resize": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", + "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "peerDependencies": { + "vue": "^3.0.0" } }, "node_modules/which": { @@ -24405,13 +9391,6 @@ "node": ">=8" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "license": "MIT" - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -24479,27 +9458,6 @@ "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/ws": { "version": "8.21.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", @@ -24522,25 +9480,6 @@ } } }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -24593,32 +9532,6 @@ "node": ">=12" } }, - "node_modules/yocto-queue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", - "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoctocolors": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", - "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/yuku-ast": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/yuku-ast/-/yuku-ast-0.8.4.tgz", @@ -24678,96 +9591,6 @@ "@yuku-parser/binding-win32-x64": "0.8.4" } }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/zip-stream/node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/zip-stream/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/zip-stream/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", @@ -24779,56 +9602,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "packages/demo": { - "name": "@studiometa/js-toolkit-demo", - "version": "3.9.0", - "dependencies": { - "@studiometa/ui": "1.7.0" - }, - "devDependencies": { - "@studiometa/eslint-config": "4.3.1", - "@studiometa/prettier-config": "4.4.0", - "@studiometa/stylelint-config": "4.1.1", - "@studiometa/tailwind-config": "3.0.0", - "@studiometa/webpack-config": "6.3.6", - "@studiometa/webpack-config-preset-prototyping": "6.3.6", - "@studiometa/webpack-config-preset-tailwindcss-4": "6.4.0", - "http-server": "14.1.1", - "prettier": "3.8.1", - "tailwindcss": "4.2.4" - } - }, - "packages/demo/node_modules/@studiometa/webpack-config-preset-tailwindcss-4": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@tailwindcss/postcss": "^4.0.0" - }, - "engines": { - "node": ">=20.11.0" - }, - "peerDependencies": { - "tailwindcss": "^4.0.0" - } - }, - "packages/demo/node_modules/tailwindcss": { - "version": "4.2.4", - "dev": true, - "license": "MIT" - }, - "packages/docs": { - "name": "@studiometa/js-toolkit-docs", - "version": "3.9.0", - "devDependencies": { - "@shikijs/vitepress-twoslash": "4.0.2", - "@studiometa/tailwind-config": "3.0.0", - "@tailwindcss/vite": "4.2.2", - "tailwindcss": "4.2.2", - "vitepress": "2.0.0-alpha.19", - "vitepress-plugin-llms": "1.12.0" - } - }, "packages/eslint-plugin": { "name": "@studiometa/eslint-plugin-js-toolkit", "version": "3.9.0", @@ -24846,28 +9619,8 @@ }, "packages/js-toolkit": { "name": "@studiometa/js-toolkit", - "version": "3.9.0", + "version": "4.0.0-alpha.0", "license": "MIT", - "dependencies": { - "@motionone/easing": "^10.18.0", - "deepmerge": "^4.3.1" - }, - "devDependencies": { - "@happy-dom/global-registrator": "20.8.8", - "@vitest/browser": "4.1.10", - "@vitest/browser-playwright": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "esbuild": "0.27.0", - "fast-glob": "3.3.3", - "happy-dom": "20.8.8", - "playwright": "^1.50.0", - "tsdown": "0.22.14", - "vitest": "4.1.10" - } - }, - "packages/v4": { - "name": "@studiometa/js-toolkit-v4", - "version": "0.0.0", "dependencies": { "morphdom": "^2.7.8" }, @@ -24880,6 +9633,7 @@ "@vitest/browser": "4.1.10", "@vitest/browser-playwright": "4.1.10", "fast-glob": "3.3.3", + "focus-trap": "^7.8.0", "playwright": "^1.50.0", "tailwindcss": "4.2.2", "tsdown": "0.22.14", diff --git a/package.json b/package.json index a2b33a1d3..b70cc434f 100644 --- a/package.json +++ b/package.json @@ -1,49 +1,40 @@ { "name": "@studiometa/js-toolkit-workspace", - "version": "3.9.0", + "version": "4.0.0-alpha.0", "private": true, "type": "module", "workspaces": [ "packages/*" ], "scripts": { - "demo:dev": "npm run dev --workspace=@studiometa/js-toolkit-demo", - "demo:watch": "npm run watch --workspace=@studiometa/js-toolkit-demo", - "demo:build": "npm run build --workspace=@studiometa/js-toolkit-demo", - "demo:preview": "npm run preview --workspace=@studiometa/js-toolkit-demo", - "docs:dev": "npm run dev --workspace=@studiometa/js-toolkit-docs", - "docs:build": "npm run build --workspace=@studiometa/js-toolkit-docs", - "docs:preview": "npm run preview --workspace=@studiometa/js-toolkit-docs", - "docs:v4:dev": "npm run docs:dev -w @studiometa/js-toolkit-v4", - "docs:v4:build": "npm run docs:build -w @studiometa/js-toolkit-v4", - "docs:v4:preview": "npm run docs:preview -w @studiometa/js-toolkit-v4", - "build": "npm run build:js-toolkit && npm run build:v4 && npm run build:eslint-plugin", + "demo:dev": "npm run demo:dev -w @studiometa/js-toolkit", + "demo:build": "npm run demo:build -w @studiometa/js-toolkit", + "demo:preview": "npm run demo:preview -w @studiometa/js-toolkit", + "docs:dev": "npm run docs:dev -w @studiometa/js-toolkit", + "docs:build": "npm run docs:build -w @studiometa/js-toolkit", + "docs:preview": "npm run docs:preview -w @studiometa/js-toolkit", + "build": "npm run build:js-toolkit && npm run build:eslint-plugin", "build:js-toolkit": "npm run build -w @studiometa/js-toolkit", - "build:v4": "npm run build -w @studiometa/js-toolkit-v4", "build:eslint-plugin": "npm run build -w @studiometa/eslint-plugin-js-toolkit", - "measure": "npm run measure -w @studiometa/js-toolkit", "test": "npm run test -w @studiometa/js-toolkit", "test:watch": "npm run test:watch -w @studiometa/js-toolkit", - "test:v4": "npm run test -w @studiometa/js-toolkit-v4", "test:eslint-plugin": "npm run test -w @studiometa/eslint-plugin-js-toolkit", "bench": "npm run bench -w @studiometa/js-toolkit", - "bench:run": "npm run bench:run -w @studiometa/js-toolkit", - "bench:v4": "npm run bench:report -w @studiometa/js-toolkit-v4", + "bench:report": "npm run bench:report -w @studiometa/js-toolkit", "lint": "npm run subpaths:check && npm run lint:static && npm run lint:fmt && npm run lint:types", - "lint:static": "oxlint --ignore-pattern packages/v4/ . && oxlint --type-aware packages/v4", + "lint:static": "oxlint --ignore-pattern packages/js-toolkit/ . && oxlint --type-aware packages/js-toolkit", "lint:fmt": "oxfmt --check .", "lint:types": "npm run lint:types --workspaces --if-present", "fix": "npm run fix:static && npm run fix:fmt", "fix:static": "npm run lint:static -- --fix", "fix:fmt": "oxfmt .", "postversion": "npm version --workspaces $npm_package_version", - "subpaths": "node scripts/generate-subpaths.js packages/js-toolkit packages/v4", - "subpaths:check": "node scripts/generate-subpaths.js --check packages/js-toolkit packages/v4", + "subpaths": "node scripts/generate-subpaths.js packages/js-toolkit", + "subpaths:check": "node scripts/generate-subpaths.js --check packages/js-toolkit", "postinstall": "patch-package" }, "devDependencies": { "@types/node": "22.19.0", - "focus-trap": "^7.8.0", "oxfmt": "0.62.0", "oxlint": "1.77.0", "oxlint-tsgolint": "7.0.2001", diff --git a/packages/demo/eslint.config.js b/packages/demo/eslint.config.js deleted file mode 100644 index a969d6abf..000000000 --- a/packages/demo/eslint.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig, js, ts, prettier, globals } from '@studiometa/eslint-config'; - -export default defineConfig(js, ts, prettier, { - files: ['src/js/**/*'], - languageOptions: { - globals: globals.browser, - }, -}); diff --git a/packages/demo/meta.config.js b/packages/demo/meta.config.js deleted file mode 100644 index 6d68dd547..000000000 --- a/packages/demo/meta.config.js +++ /dev/null @@ -1,34 +0,0 @@ -import { fileURLToPath } from 'node:url'; -import { resolve, dirname } from 'node:path'; -import { defineConfig } from '@studiometa/webpack-config'; -import { prototyping } from '@studiometa/webpack-config-preset-prototyping'; -import { tailwindcss } from '@studiometa/webpack-config-preset-tailwindcss-4'; - -export default defineConfig({ - presets: [ - prototyping({ - ts: true, - tailwindcss, - twig: { - namespaces: { - ui: dirname(fileURLToPath(import.meta.resolve('@studiometa/ui'))), - }, - }, - }), - ], - webpack(config) { - config.resolve.alias = { - ...config.resolve.alias, - '@studiometa/js-toolkit': resolve('../js-toolkit/src'), - }; - - config.cache = { - ...config.cache, - buildDependencies: { - config: [import.meta.filename], - toolkit: [resolve('../js-toolkit/src')], - }, - }; - config.cache = false; - }, -}); diff --git a/packages/demo/package.json b/packages/demo/package.json deleted file mode 100644 index 1a364d17c..000000000 --- a/packages/demo/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@studiometa/js-toolkit-demo", - "version": "3.9.0", - "private": true, - "type": "module", - "scripts": { - "dev": "meta dev", - "watch": "meta watch", - "build": "meta build", - "prepreview": "meta build", - "preview": "http-server ./dist -o", - "lint": "npm run lint:eslint && npm run lint:stylelint && npm run lint:prettier", - "lint:eslint": "eslint --cache ./src/js", - "lint:stylelint": "stylelint --cache ./src/**/*.{scss,vue}", - "lint:prettier": "prettier -c --cache ./src/**/*.twig", - "fix": "npm run fix:eslint && npm run fix:stylelint && npm run fix:prettier", - "fix:eslint": "npm run lint:eslint -- --fix", - "fix:stylelint": "npm run lint:stylelint -- --fix", - "fix:prettier": "npm run lint:prettier -- --write" - }, - "dependencies": { - "@studiometa/ui": "1.7.0" - }, - "devDependencies": { - "@studiometa/eslint-config": "4.3.1", - "@studiometa/prettier-config": "4.4.0", - "@studiometa/stylelint-config": "4.1.1", - "@studiometa/tailwind-config": "3.0.0", - "@studiometa/webpack-config": "6.3.6", - "@studiometa/webpack-config-preset-prototyping": "6.3.6", - "@studiometa/webpack-config-preset-tailwindcss-4": "6.4.0", - "http-server": "14.1.1", - "prettier": "3.8.1", - "tailwindcss": "4.2.4" - }, - "stylelint": { - "extends": "@studiometa/stylelint-config" - } -} diff --git a/packages/demo/prettier.config.js b/packages/demo/prettier.config.js deleted file mode 100644 index a480c07b3..000000000 --- a/packages/demo/prettier.config.js +++ /dev/null @@ -1,5 +0,0 @@ -/** - * The demo keeps Prettier for its Twig templates, which `oxfmt` — the formatter - * of the rest of the repository — does not cover. - */ -export { default } from '@studiometa/prettier-config'; diff --git a/packages/demo/src/css/styles.css b/packages/demo/src/css/styles.css deleted file mode 100644 index 75e26c551..000000000 --- a/packages/demo/src/css/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -@import 'tailwindcss'; -@import '@studiometa/tailwind-config'; -@source '../../node_modules/@studiometa/ui'; -@source '../../../../node_modules/@studiometa/ui'; diff --git a/packages/demo/src/js/app.ts b/packages/demo/src/js/app.ts deleted file mode 100644 index ef54ae248..000000000 --- a/packages/demo/src/js/app.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { registerComponent } from '@studiometa/js-toolkit'; -import { Figure, Fetch } from '@studiometa/ui'; - -registerComponent(Figure); -registerComponent(Fetch); diff --git a/packages/demo/src/js/components/AnimateScrollTest.js b/packages/demo/src/js/components/AnimateScrollTest.js deleted file mode 100644 index 262236a79..000000000 --- a/packages/demo/src/js/components/AnimateScrollTest.js +++ /dev/null @@ -1,18 +0,0 @@ -import { withScrolledInView } from '@studiometa/js-toolkit'; -import AnimateTest from './AnimateTest.js'; - -/** - * - */ -export default class AnimateScrollTest extends withScrolledInView(AnimateTest) { - static config = { - name: 'AnimateScrollTest', - }; - - /** - * - */ - scrolledInView(props) { - this.animate.progress(props.dampedProgress.y); - } -} diff --git a/packages/demo/src/js/components/AnimateTest.js b/packages/demo/src/js/components/AnimateTest.js deleted file mode 100644 index fc63eb96d..000000000 --- a/packages/demo/src/js/components/AnimateTest.js +++ /dev/null @@ -1,125 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; -import { animate, ease, domScheduler } from '@studiometa/js-toolkit/utils'; - -/** - * AnimateTest class. - * @typedef {{ - * target: HTMLElement, - * start: HTMLButtonElement, - * pause: HTMLButtonElement, - * play: HTMLButtonElement, - * finish: HTMLButtonElement, - * progress: HTMLInputElement, - * }} AnimateTestRefs - * @typedef {{ - * steps: Parameters[1], - * duration: number, - * easing: string, - * }} AnimateTestOptions - * @augments {Base<{ $refs: AnimateTestRefs, $options: AnimateTestOptions }>} - */ -export default class AnimateTest extends Base { - /** - * Config. - */ - static config = { - name: 'AnimateTest', - refs: ['target', 'start', 'pause', 'play', 'finish', 'progress'], - options: { - steps: Array, - smooth: { - type: Number, - default: false, - }, - spring: { - type: Number, - default: false, - }, - duration: { - type: Number, - default: 2, - }, - easing: String, - }, - }; - - /** - * - */ - get $options() { - const { smooth, ...options } = super.$options; - - if (smooth === 0) { - return options; - } - - return super.$options; - } - - /** - * - */ - async mounted() { - this.animate = animate( - this.$refs.target, - this.$options.steps.map((step) => { - if (typeof step.easing === 'string') { - step.easing = ease[step.easing]; - } - - return step; - }), - { - duration: this.$options.duration, - smooth: this.$options.smooth, - spring: this.$options.spring, - easing: ease[this.$options.easing], - onProgress: (progress) => { - domScheduler.write(() => { - this.$refs.progress.value = progress; - }); - }, - }, - ); - - this.$refs.progress.value = 0.5; - this.animate.progress(this.$refs.progress.valueAsNumber); - } - - /** - * - */ - onStartClick() { - console.log(this.animate); - this.animate.start(); - } - - /** - * - */ - onPauseClick() { - this.animate.pause(); - } - - /** - * - */ - onPlayClick() { - this.animate.play(); - } - - /** - * - */ - onFinishClick() { - this.animate.finish(); - } - - /** - * - */ - onProgressInput() { - console.log('onProgressInput'); - this.animate.progress(this.$refs.progress.valueAsNumber); - } -} diff --git a/packages/demo/src/js/components/AnimateTestMultiple.js b/packages/demo/src/js/components/AnimateTestMultiple.js deleted file mode 100644 index ff5c7eb8d..000000000 --- a/packages/demo/src/js/components/AnimateTestMultiple.js +++ /dev/null @@ -1,49 +0,0 @@ -import { animate, ease } from '@studiometa/js-toolkit/utils'; -import AnimateTest from './AnimateTest.js'; - -/** - * AnimateTest class. - */ -export default class AnimateTestMultiple extends AnimateTest { - /** - * Config. - */ - static config = { - ...AnimateTest.config, - name: 'AnimateTestMultiple', - refs: ['targets[]', 'start', 'pause', 'play', 'finish', 'progress'], - options: { - stagger: Number, - }, - }; - - /** - * - */ - mounted() { - const steps = this.$options.steps.map((step) => { - if (typeof step.easing === 'string') { - step.easing = ease[step.easing]; - } - - return step; - }); - - const options = { - smooth: this.$options.smooth, - stagger: this.$options.stagger, - duration: this.$options.duration, - easing: ease[this.$options.easing], - }; - - console.log(options); - - this.animate = animate(this.$refs.targets, steps, { - ...options, - onProgress: (progress) => { - this.$refs.progress.value = progress; - }, - }); - this.animate.progress(this.$refs.progress.valueAsNumber); - } -} diff --git a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoBase.js b/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoBase.js deleted file mode 100644 index 789014f3a..000000000 --- a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoBase.js +++ /dev/null @@ -1,34 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; - -/** - * - */ -export default class BreakpointManagerDemoBase extends Base { - static config = { - name: 'BreakpointManagerDemoBase', - log: false, - refs: ['content'], - }; - - /** - * - */ - async mounted() { - this.$log('mounted'); - this.$refs.content.innerHTML = this.$options.name; - } - - /** - * - */ - async destroyed() { - this.$log('destroyed'); - } - - /** - * - */ - onClick(event) { - this.$log('click', event); - } -} diff --git a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoDesktop.js b/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoDesktop.js deleted file mode 100644 index ef9e79c5d..000000000 --- a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoDesktop.js +++ /dev/null @@ -1,11 +0,0 @@ -import BreakpointManagerDemoBase from './BreakpointManagerDemoBase.js'; - -/** - * - */ -export default class BreakpointManagerDemoDesktop extends BreakpointManagerDemoBase { - static config = { - ...BreakpointManagerDemoBase.config, - name: 'BreakpointManagerDemoDesktop', - }; -} diff --git a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoMobile.js b/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoMobile.js deleted file mode 100644 index f4fad24e5..000000000 --- a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoMobile.js +++ /dev/null @@ -1,11 +0,0 @@ -import BreakpointManagerDemoBase from './BreakpointManagerDemoBase.js'; - -/** - * - */ -export default class BreakpointManagerDemoMobile extends BreakpointManagerDemoBase { - static config = { - ...BreakpointManagerDemoBase.config, - name: 'BreakpointManagerDemoMobile', - }; -} diff --git a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoTablet.js b/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoTablet.js deleted file mode 100644 index 5bbd846b2..000000000 --- a/packages/demo/src/js/components/BreakPointManagerDemo/BreakpointManagerDemoTablet.js +++ /dev/null @@ -1,11 +0,0 @@ -import BreakpointManagerDemoBase from './BreakpointManagerDemoBase.js'; - -/** - * - */ -export default class BreakpointManagerDemoTablet extends BreakpointManagerDemoBase { - static config = { - ...BreakpointManagerDemoBase.config, - name: 'BreakpointManagerDemoTablet', - }; -} diff --git a/packages/demo/src/js/components/BreakPointManagerDemo/index.js b/packages/demo/src/js/components/BreakPointManagerDemo/index.js deleted file mode 100644 index 21c5a9e14..000000000 --- a/packages/demo/src/js/components/BreakPointManagerDemo/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Base, withBreakpointManager } from '@studiometa/js-toolkit'; -import BreakpointManagerDemoMobile from './BreakpointManagerDemoMobile.js'; -import BreakpointManagerDemoTablet from './BreakpointManagerDemoTablet.js'; -import BreakpointManagerDemoDesktop from './BreakpointManagerDemoDesktop.js'; - -/** - * - */ -export default class BreakpointManagerDemo extends withBreakpointManager(Base, [ - ['s', BreakpointManagerDemoMobile], - ['m', BreakpointManagerDemoTablet], - ['l', BreakpointManagerDemoDesktop], -]) { - static config = { - name: 'BreakpointManagerDemo', - log: true, - refs: ['content'], - }; - - /** - * - */ - mounted() { - this.$log('mounted'); - } - - /** - * - */ - resized({ breakpoint }) { - this.$log('breakpoint:', breakpoint); - } -} diff --git a/packages/demo/src/js/components/BreakpointObserverDemo.js b/packages/demo/src/js/components/BreakpointObserverDemo.js deleted file mode 100644 index 0a33d503a..000000000 --- a/packages/demo/src/js/components/BreakpointObserverDemo.js +++ /dev/null @@ -1,54 +0,0 @@ -import { Base, withBreakpointObserver } from '@studiometa/js-toolkit'; - -/** - * - */ -export default class BreakpointObserverDemo extends withBreakpointObserver(Base) { - static config = { - name: 'BreakpointObserverDemo', - log: true, - refs: ['content'], - }; - - /** - * - */ - mounted() { - this.$log('mounted'); - this.status = 'mounted'; - } - - /** - * - */ - destroyed() { - this.$log('destroyed'); - this.status = 'destroyed'; - } - - /** - * - */ - onClick(event) { - this.$log('click', event); - } - - /** - * - */ - set status(value) { - let content = `${this.$options.name}
`; - - const { activeBreakpoints, inactiveBreakpoints } = this.$options; - - if (activeBreakpoints) { - content += `activeBreakpoints: ${activeBreakpoints}
`; - } else if (inactiveBreakpoints) { - content += `inactiveBreakpoints: ${inactiveBreakpoints}
`; - } - - content += `status: ${value}`; - - this.$refs.content.innerHTML = content; - } -} diff --git a/packages/demo/src/js/components/Cursor.js b/packages/demo/src/js/components/Cursor.js deleted file mode 100644 index 104b5f1f0..000000000 --- a/packages/demo/src/js/components/Cursor.js +++ /dev/null @@ -1,43 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; -import { smoothTo, transform } from '@studiometa/js-toolkit/utils'; - -/** - * Cursor class. - */ -export default class Cursor extends Base { - /** - * Config. - * @type {import('@studiometa/js-toolkit').BaseConfig} - */ - static config = { - name: 'Cursor', - }; - - x = smoothTo(window.innerWidth / 2); - - y = smoothTo(window.innerHeight / 2); - - scale = smoothTo(1, { spring: true }); - - /** - * Moved hook. - * Update position and scale based on pointer state. - * @param {import('@studiometa/js-toolkit').PointerServiceProps} props - */ - async moved({ x, y, isDown }) { - this.x(x); - this.y(y); - this.scale(isDown ? 0.75 : 1); - } - - /** - * Ticked hook. - * Update the element's transform on each frame. - * @returns {() => void} A function to be executed on the "write" step of the DOM Scheduler - */ - async ticked() { - return () => { - transform(this.$el, { x: this.x(), y: this.y(), scale: this.scale() }); - }; - } -} diff --git a/packages/demo/src/js/components/Lazyload.js b/packages/demo/src/js/components/Lazyload.js deleted file mode 100644 index f8aff725e..000000000 --- a/packages/demo/src/js/components/Lazyload.js +++ /dev/null @@ -1,77 +0,0 @@ -import { Base, withIntersectionObserver } from '@studiometa/js-toolkit'; -import { transition, isString, isArray, addClass, addStyle } from '@studiometa/js-toolkit/utils'; - -/** - * - */ -function setClassesOrStyles(element, classesOrStyles) { - if (isString(classesOrStyles) || isArray(classesOrStyles)) { - addClass(element, classesOrStyles); - } else { - addStyle(element, classesOrStyles); - } -} - -/** - * - */ -export default class Lazyload extends withIntersectionObserver(Base) { - static config = { - name: 'Lazyload', - log: true, - options: { - styles: { - type: Object, - default: () => ({ - unloaded: { opacity: 0 }, - active: { transition: 'opacity 0.5s' }, - loaded: '', - }), - }, - }, - }; - - /** - * - */ - mounted() { - setClassesOrStyles(this.$el, this.$options.styles.unloaded); - } - - /** - * - */ - intersected([entry]) { - if (entry.isIntersecting) { - this.load(); - } - } - - /** - * - */ - load() { - const { unloaded, active, loaded } = this.$options.styles; - const { src } = this.$el.dataset; - - if (!src || this.isLoaded) { - this.$destroy(); - return; - } - - const img = new Image(); - img.addEventListener('load', () => { - this.$el.setAttribute('src', src); - delete this.$el.dataset.src; - this.isLoaded = true; - transition(this.$el, { - from: unloaded, - active, - to: loaded, - }); - setClassesOrStyles(this.$el, loaded); - this.$terminate(); - }); - img.src = src; - } -} diff --git a/packages/demo/src/js/components/MediaQueryDemo.js b/packages/demo/src/js/components/MediaQueryDemo.js deleted file mode 100644 index 6670bf23d..000000000 --- a/packages/demo/src/js/components/MediaQueryDemo.js +++ /dev/null @@ -1,28 +0,0 @@ -import { Base, withMountOnMediaQuery } from '@studiometa/js-toolkit'; - -/** - * - */ -export default class MediaQueryDemo extends withMountOnMediaQuery( - Base, - 'not (prefers-reduced-motion)', -) { - static config = { - name: 'MediaQueryDemo', - log: true, - }; - - /** - * - */ - mounted() { - this.$log('Mounted! The user accepts motion.'); - } - - /** - * - */ - destroyed() { - this.$log('Destroyed! The user prefers reduced motion.'); - } -} diff --git a/packages/demo/src/js/components/Parallax.js b/packages/demo/src/js/components/Parallax.js deleted file mode 100644 index 0dfbc23ef..000000000 --- a/packages/demo/src/js/components/Parallax.js +++ /dev/null @@ -1,25 +0,0 @@ -import { Base, withScrolledInView, withFreezedOptions } from '@studiometa/js-toolkit'; -import { map, transform } from '@studiometa/js-toolkit/utils'; - -/** - * - */ -export default class Parallax extends withScrolledInView(withFreezedOptions(Base)) { - static config = { - name: 'Parallax', - refs: ['target'], - options: { - speed: Number, - }, - }; - - /** - * - */ - scrolledInView(props) { - const { target } = this.$refs; - const y = map(props.dampedProgress.y, 0, 1, 100, -100) * this.$options.speed; - const scale = map(props.dampedProgress.x, 0, 1, 0.5, 2); - return () => transform(target, { y, scale }); - } -} diff --git a/packages/demo/src/js/components/ParentNativeEvent/Child.js b/packages/demo/src/js/components/ParentNativeEvent/Child.js deleted file mode 100644 index 66cd833ea..000000000 --- a/packages/demo/src/js/components/ParentNativeEvent/Child.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; - -/** - * Child class. - */ -export default class Child extends Base { - /** - * Config. - */ - static config = { - name: 'Child', - }; -} diff --git a/packages/demo/src/js/components/ParentNativeEvent/index.js b/packages/demo/src/js/components/ParentNativeEvent/index.js deleted file mode 100644 index 54f489f23..000000000 --- a/packages/demo/src/js/components/ParentNativeEvent/index.js +++ /dev/null @@ -1,32 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; -import Child from './Child.js'; - -/** - * ParentNativeEvent class. - */ -export default class ParentNativeEvent extends Base { - /** - * Config. - */ - static config = { - name: 'ParentNativeEvent', - log: true, - components: { - Child, - }, - }; - - /** - * - */ - onChildClick(...args) { - this.$log(this.$id, 'onChildClick', ...args); - } - - /** - * - */ - onChildDede(...args) { - this.$log(this.$id, 'onChildDede', ...args); - } -} diff --git a/packages/demo/src/js/components/PointerProps.ts b/packages/demo/src/js/components/PointerProps.ts deleted file mode 100644 index 31bc23374..000000000 --- a/packages/demo/src/js/components/PointerProps.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Base, withRelativePointer } from '@studiometa/js-toolkit'; -import type { BaseConfig, BaseProps, PointerServiceProps } from '@studiometa/js-toolkit'; -import { transform, clamp01 } from '@studiometa/js-toolkit/utils'; - -export interface PointerPropsProps extends BaseProps { - $refs: { - props: HTMLElement; - }; -} - -/** - * PointerProps class. - */ -export default class PointerProps extends withRelativePointer(Base) { - /** - * Config. - */ - static config: BaseConfig = { - name: 'PointerProps', - refs: ['props', 'scaler'], - }; - - movedrelative(props: PointerServiceProps) { - this.$refs.props.textContent = JSON.stringify(props, null, 2); - transform(this.$refs.scaler, { - scaleX: clamp01(props.progress.x) + 0.5, - scaleY: clamp01(props.progress.y) + 0.5, - }); - } -} diff --git a/packages/demo/src/js/components/ResponsiveOptions.js b/packages/demo/src/js/components/ResponsiveOptions.js deleted file mode 100644 index 47d6c05fe..000000000 --- a/packages/demo/src/js/components/ResponsiveOptions.js +++ /dev/null @@ -1,47 +0,0 @@ -import { Base, withResponsiveOptions } from '@studiometa/js-toolkit'; - -/** - * ResponsiveOptions class. - */ -export default class ResponsiveOptions extends withResponsiveOptions(Base) { - /** - * Config. - */ - static config = { - name: 'ResponsiveOptions', - options: { - fooBar: { - type: String, - responsive: true, - }, - }, - }; - - /** - * Mounted hook. - * @returns {void} - */ - mounted() { - this.print(); - } - - /** - * Resized hook. - * @returns {void} - */ - resized() { - this.print(); - } - - /** - * Print data to the DOM. - * @returns {void} - */ - print() { - this.$el.innerHTML = `${this.$services.get('resized').breakpoint}
${JSON.stringify( - this.$options, - null, - 2, - )}`; - } -} diff --git a/packages/demo/src/js/components/ScrollToDemo.js b/packages/demo/src/js/components/ScrollToDemo.js deleted file mode 100644 index 24eeb72dd..000000000 --- a/packages/demo/src/js/components/ScrollToDemo.js +++ /dev/null @@ -1,29 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; -import { scrollTo } from '@studiometa/js-toolkit/utils'; - -/** - * - */ -export default class ScrollToDemo extends Base { - static config = { - name: 'ScrollToDemo', - log: true, - refs: ['text', 'btn'], - }; - - /** - * - */ - async mounted() { - this.$log('mounted'); - } - - /** - * - */ - async onBtnClick() { - this.$log('start scroll'); - await scrollTo(this.$refs.text, { duration: 2, easing: [1, 0, 0, 1] }); - this.$log('end scroll'); - } -} diff --git a/packages/demo/src/js/components/ScrolledInViewOffset.js b/packages/demo/src/js/components/ScrolledInViewOffset.js deleted file mode 100644 index d2b3e13ea..000000000 --- a/packages/demo/src/js/components/ScrolledInViewOffset.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Base, withScrolledInView } from '@studiometa/js-toolkit'; - -/** - * ScrolledInViewOffset class. - */ -export default class ScrolledInViewOffset extends withScrolledInView(Base) { - /** - * Config. - */ - static config = { - name: 'ScrolledInViewOffset', - refs: ['progress'], - }; - - /** - * Scrolled in view. - * @param {import('@studiometa/js-toolkit').ScrolledInViewProps} props - * @returns {void} - */ - scrolledInView(props) { - const { x, y } = props.progress; - this.$refs.progress.textContent = `{ x: ${x.toFixed(3)}, y: ${y.toFixed(3)} }`; - } -} diff --git a/packages/demo/src/js/components/Skew.js b/packages/demo/src/js/components/Skew.js deleted file mode 100644 index aa9a4e1ba..000000000 --- a/packages/demo/src/js/components/Skew.js +++ /dev/null @@ -1,52 +0,0 @@ -import { Base, withMountWhenInView, useScroll, useRaf } from '@studiometa/js-toolkit'; -import { damp, clamp, transform } from '@studiometa/js-toolkit/utils'; - -const scroll = useScroll(); -const raf = useRaf(); - -let skewY = 0; -let dampedSkewY = 0; - -scroll.add('Skew.js', (props) => { - skewY = clamp(props.delta.y * -0.005, -0.1, 0.1) * 40; - - if (!raf.has('Skew.js')) { - raf.add('Skew.js', () => { - dampedSkewY = damp(skewY, dampedSkewY, 0.1); - - if (dampedSkewY === skewY) { - raf.remove('Skew.js'); - } - }); - } -}); - -/** - * - */ -export default class Skew extends withMountWhenInView(Base) { - static config = { - name: 'Skew', - }; - - /** - * - */ - scrolled(props) { - if (props.changed.y && !this.$services.has('ticked')) { - this.$services.enable('ticked'); - } - } - - /** - * - */ - ticked() { - if (dampedSkewY === skewY) { - this.$services.disable('ticked'); - } - - const { $el } = this; - return () => transform($el, { skewY: dampedSkewY }); - } -} diff --git a/packages/demo/src/js/components/Slider.js b/packages/demo/src/js/components/Slider.js deleted file mode 100644 index 13e59114a..000000000 --- a/packages/demo/src/js/components/Slider.js +++ /dev/null @@ -1,12 +0,0 @@ -import { Base } from '@studiometa/js-toolkit'; - -/** - * - */ -export default class Slider extends Base { - static config = { - name: 'Slider', - }; - - // onChange({ previous, index, direction }) {} -} diff --git a/packages/demo/src/js/utils/isObjectFreed.js b/packages/demo/src/js/utils/isObjectFreed.js deleted file mode 100644 index 1f2bf8d6f..000000000 --- a/packages/demo/src/js/utils/isObjectFreed.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Determines if an object is freed - * @param obj is the object of interest - * @param freeFn is a function that frees the object. - * @returns a promise that resolves to {freed: boolean, memoryDiff:number} - * @author Steve Hanov - * @see http://stevehanov.ca/blog/?id=148 - */ -export default function isObjectFreed(obj, freeFn) { - return new Promise((resolve) => { - if (!performance.memory) { - throw new Error('Browser not supported.'); - } - - const initial = performance.memory.usedJSHeapSize; - - // When obj is GC'd, the large array will also be GCd and the impact will - // be noticeable. - const allocSize = 1024 * 1024 * 1024; - // eslint-disable-next-line no-unused-vars - const wm = new WeakMap([[obj, new Uint8Array(allocSize)]]); - - // wait for memory counter to update - setTimeout(() => { - const before = performance.memory.usedJSHeapSize; - - // Free the memory - freeFn(); - - const log = () => { - const diff = before - performance.memory.usedJSHeapSize; - console.log({ - initial, - before, - now: performance.memory.usedJSHeapSize, - diff, - freed: diff >= allocSize, - memoryDiff: diff - allocSize, - }); - }; - - log(); - - const interval = setInterval(log, 1000); - - // wait for GC to run, at least 10 seconds - setTimeout(() => { - clearInterval(interval); - log(); - resolve(); - }, 10000); - }, 100); - }); -} diff --git a/packages/demo/src/package.json b/packages/demo/src/package.json deleted file mode 100644 index 3dbc1ca59..000000000 --- a/packages/demo/src/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/packages/demo/src/templates/layouts/base.twig b/packages/demo/src/templates/layouts/base.twig deleted file mode 100644 index 940166cc6..000000000 --- a/packages/demo/src/templates/layouts/base.twig +++ /dev/null @@ -1,10 +0,0 @@ -{% extends '@pkg-layouts/default.twig' %} - -{% set head = { - title: '@studiometa/js-toolkit demo', - description: 'Demo of the @studiometa/js-toolkit components.' -} %} - -{% set body_attr = { - class: 'p-10' -} %} diff --git a/packages/demo/src/templates/pages/foo.twig b/packages/demo/src/templates/pages/foo.twig deleted file mode 100644 index 86293a000..000000000 --- a/packages/demo/src/templates/pages/foo.twig +++ /dev/null @@ -1,43 +0,0 @@ -{% extends '@layouts/base.twig' %} - -{% block body %} -
- -
-

Foo

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt - ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco - laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in - voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat - cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -

- {% include '@ui/Figure/Figure.twig' with { - src: 'https://picsum.photos/seed/foo/400/400', - width: 400, - height: 400, - attr: { - class: 'max-w-sm', - data_option_debug: true, - data_option_enter_from: 'scale-90 opacity-0', - data_option_enter_active: 'transition delay-100' - }, - img_attr: { - class: 'scale-90 opacity-0' - } - } %} -
-
-{% endblock %} diff --git a/packages/demo/src/templates/pages/index.twig b/packages/demo/src/templates/pages/index.twig deleted file mode 100644 index a59cd9572..000000000 --- a/packages/demo/src/templates/pages/index.twig +++ /dev/null @@ -1,51 +0,0 @@ -{% extends '@layouts/base.twig' %} - -{% block body %} -
- -
-

Home

-

- Praesent et eros quis justo ultrices luctus. Cras egestas ullamcorper quam, eget suscipit - ligula placerat a. Nullam eu erat ligula. Nulla facilisi. In vitae suscipit odio. Mauris - efficitur diam nec iaculis sollicitudin. Maecenas aliquet justo vitae augue tempor - dignissim. Mauris euismod nunc sed neque dignissim, eu interdum leo volutpat. Sed rhoncus eu - leo vitae molestie. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tortor - nunc, mollis nec molestie eget, porttitor eget risus. Proin nec accumsan elit. Aenean vitae - justo laoreet, faucibus risus ac, cursus est. Nunc justo nulla, venenatis cursus luctus - eget, ornare a lacus. -

- {% include '@ui/Figure/Figure.twig' with { - src: 'https://picsum.photos/seed/index/400/400', - width: 400, - height: 400, - attr: { - class: 'max-w-sm', - data_option_debug: true, - data_option_enter_from: 'scale-90 opacity-0', - data_option_enter_active: 'transition delay-100' - }, - img_attr: { - class: 'scale-90 opacity-0' - } - } %} -
-
-{% endblock %} diff --git a/packages/docs/.vitepress/config.ts b/packages/docs/.vitepress/config.ts deleted file mode 100644 index a84b4785b..000000000 --- a/packages/docs/.vitepress/config.ts +++ /dev/null @@ -1,470 +0,0 @@ -import { defineConfig } from 'vitepress'; -import { createTwoslashWithInlineCache } from '@shikijs/vitepress-twoslash/cache-inline'; -import pkg from '../package.json' with { type: 'json' }; - -const withTwoslashInlineCache = createTwoslashWithInlineCache(); - -export default withTwoslashInlineCache( - defineConfig({ - vite: { - build: { - chunkSizeWarningLimit: 600, - }, - }, - lang: 'en-US', - title: '@studiometa/js-toolkit', - description: - 'The JS Toolkit by Studio Meta is a JavaScript data-attributes driven micro-framework shipped with plenty of useful utility functions to boost your project.', - lastUpdated: true, - head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/logo.png' }]], - markdown: { - // Explicitly load these languages for types hightlighting - languages: ['js', 'jsx', 'ts', 'tsx', 'bash'], - }, - themeConfig: { - outline: 'deep', - // @ts-expect-error - version: pkg.version, - repo: 'studiometa/js-toolkit', - docsDir: 'packages/docs', - lastUpdated: { - text: 'Last updated', - }, - editLinks: true, - editLinkText: 'Edit this page on GitHub', - sidebarDepth: 3, - footer: { - message: 'MIT Licensed', - copyright: 'Copyright © 2020–present Studio Meta', - }, - search: { - provider: 'local', - }, - socialLinks: [{ icon: 'github', link: 'https://github.com/studiometa/js-toolkit' }], - nav: [ - { text: 'Guide', link: '/guide/' }, - { text: 'API Reference', link: '/api/' }, - { text: 'Utils Reference', link: '/utils/' }, - { text: 'Examples', link: '/examples/' }, - { text: 'Concepts', link: '/guide/concepts/philosophy.html' }, - { - text: `v${pkg.version}`, - items: [ - { - text: 'Release Notes', - link: 'https://github.com/studiometa/js-toolkit/blob/master/CHANGELOG.md', - }, - { text: 'Demo', link: 'https://studiometa-js-toolkit-demo.netlify.app/' }, - { text: 'v2.x', link: 'https://support-2-x--studiometa-js-toolkit.netlify.app/' }, - ], - }, - ], - sidebar: { - '/guide/': getGuideSidebar(), - '/examples/': getExamplesSidebar(), - '/api/services/': getApiSidebar({ expanded: 'services' }), - '/api/decorators/': getApiSidebar({ expanded: 'decorators' }), - '/api/helpers/': getApiSidebar({ expanded: 'helpers' }), - '/api/autoload/': getApiSidebar({ expanded: 'autoload' }), - '/api/html/': getApiSidebar({ expanded: 'html' }), - '/api/': getApiSidebar({ expanded: 'api' }), - '/utils/': getUtilsSidebar(), - }, - }, - }), -); - -function getGuideSidebar() { - return [ - { text: 'Getting Started', link: '/guide/' }, - { text: 'Installation', link: '/guide/introduction/installation.html' }, - { text: 'Components', link: '/guide/introduction/managing-components.html' }, - { text: 'Refs', link: '/guide/introduction/managing-refs.html' }, - { text: 'Options', link: '/guide/introduction/managing-options.html' }, - { text: 'Lifecycle', link: '/guide/introduction/lifecycle-hooks.html' }, - { text: 'Events', link: '/guide/introduction/working-with-events.html' }, - { text: 'Services', link: '/guide/introduction/using-services.html' }, - { - text: 'Going further', - collapsed: true, - items: [ - { text: 'Lazy imports', link: '/guide/going-further/lazy-imports.html' }, - { text: 'Autoloading', link: '/guide/going-further/autoloading.html' }, - { text: 'Decorators', link: '/guide/going-further/using-decorators.html' }, - { - text: 'TypeScript', - link: '/guide/going-further/typing-components.html', - keywords: ['types', 'typings', 'typescript', 'jsdoc'], - }, - { text: 'Custom Services', link: '/guide/going-further/registering-new-services.html' }, - { text: 'Linting', link: '/guide/going-further/linting.html' }, - ], - }, - { - text: 'Concepts', - collapsed: false, - items: [ - { text: 'Philosophy', link: '/guide/concepts/philosophy.html' }, - { text: 'Component Tree', link: '/guide/concepts/component-tree.html' }, - { text: 'Service Architecture', link: '/guide/concepts/service-architecture.html' }, - ], - }, - { - text: 'Migration', - collapsed: true, - items: [ - { text: 'v1 → v2', link: '/guide/migration/v1-to-v2.html' }, - { text: 'v2 → v3', link: '/guide/migration/v2-to-v3.html' }, - { text: 'v3 → v4', link: '/guide/migration/v3-to-v4.html' }, - ], - }, - ]; -} - -function getExamplesSidebar() { - return [ - { text: 'Overview', link: '/examples/' }, - { - text: 'Basics', - items: [ - { text: 'Counter component', link: '/examples/counter-component/' }, - { text: 'Accordion', link: '/examples/accordion/' }, - ], - }, - { - text: 'Patterns', - items: [ - { text: 'Tabs', link: '/examples/tabs/' }, - { text: 'Modal / Dialog', link: '/examples/modal/' }, - { text: 'Form validation', link: '/examples/form-validation/' }, - ], - }, - { - text: 'Advanced', - items: [ - { text: 'Scroll-linked animation', link: '/examples/scroll-linked-animation/' }, - { text: 'Lazy image', link: '/examples/lazy-image/' }, - { text: 'Teleport refs', link: '/examples/teleport-refs/' }, - ], - }, - ]; -} - -function getApiSidebar({ expanded = 'api' } = {}) { - return [ - { - text: 'Base class', - link: '/api/', - collapsed: expanded !== 'api', - items: getBaseSidebar(), - }, - { - text: 'HTML', - link: '/api/html/', - collapsed: expanded !== 'html', - items: getHtmlSidebar(), - }, - { - text: 'Helpers', - link: '/api/helpers/', - collapsed: expanded !== 'helpers', - items: getHelpersSidebar(), - }, - { - text: 'Services', - link: '/api/services/', - collapsed: expanded !== 'services', - items: getServicesSidebar(), - }, - { - text: 'Decorators', - link: '/api/decorators/', - collapsed: expanded !== 'decorators', - items: getDecoratorsSidebar(), - }, - { - text: 'Autoload', - link: '/api/autoload/', - collapsed: expanded !== 'autoload', - items: getAutoloadSidebar(), - }, - ]; -} - -function getAutoloadSidebar() { - return [ - { text: 'defineManifest', link: '/api/autoload/defineManifest.html' }, - { text: 'registerManifests', link: '/api/autoload/registerManifests.html' }, - ]; -} - -function getBaseSidebar() { - return [ - { - text: 'Configuration', - link: '/api/configuration.html', - }, - { - text: 'Lifecycle hooks', - link: '/api/methods-hooks-lifecycle.html', - }, - { - text: 'Services hooks', - link: '/api/methods-hooks-services.html', - }, - { - text: 'Events hooks', - link: '/api/methods-hooks-events.html', - }, - { - text: 'Instantiation', - link: '/api/instantiation.html', - }, - { - text: 'Instance properties', - link: '/api/instance-properties.html', - }, - { - text: 'Instance methods', - link: '/api/instance-methods.html', - }, - { - text: 'Instance events', - link: '/api/instance-events.html', - }, - { - text: 'Static methods', - link: '/api/static-methods.html', - }, - ]; -} - -function getHtmlSidebar() { - return [ - { text: 'data-component', link: '/api/html/data-component.html' }, - { text: 'data-ref', link: '/api/html/data-ref.html' }, - { text: 'data-option-<​name>', link: '/api/html/data-option.html' }, - ]; -} - -function getServicesSidebar() { - return [ - { text: 'useDrag', link: '/api/services/useDrag.html' }, - { text: 'useKey', link: '/api/services/useKey.html' }, - { text: 'useLoad', link: '/api/services/useLoad.html' }, - { text: 'useMutation', link: '/api/services/useMutation.html' }, - { text: 'usePointer', link: '/api/services/usePointer.html' }, - { text: 'useRaf', link: '/api/services/useRaf.html' }, - { text: 'useResize', link: '/api/services/useResize.html' }, - { text: 'useScroll', link: '/api/services/useScroll.html' }, - ]; -} - -function getDecoratorsSidebar() { - return [ - { text: 'withBreakpointManager', link: '/api/decorators/withBreakpointManager.html' }, - { text: 'withBreakpointObserver', link: '/api/decorators/withBreakpointObserver.html' }, - { text: 'withDrag', link: '/api/decorators/withDrag.html' }, - { text: 'withExtraConfig', link: '/api/decorators/withExtraConfig.html' }, - { text: 'withFreezedOptions', link: '/api/decorators/withFreezedOptions.html' }, - { text: 'withGroup', link: '/api/decorators/withGroup.html' }, - { text: 'withIntersectionObserver', link: '/api/decorators/withIntersectionObserver.html' }, - { text: 'withMountOnMediaQuery', link: '/api/decorators/withMountOnMediaQuery.html' }, - { text: 'withMountWhenInView', link: '/api/decorators/withMountWhenInView.html' }, - { text: 'withMountWhenPrefersMotion', link: '/api/decorators/withMountWhenPrefersMotion.html' }, - { text: 'withMutation', link: '/api/decorators/withMutation.html' }, - { text: 'withRelativePointer', link: '/api/decorators/withRelativePointer.html' }, - { text: 'withResponsiveOptions', link: '/api/decorators/withResponsiveOptions.html' }, - { text: 'withScrolledInView', link: '/api/decorators/withScrolledInView.html' }, - ]; -} - -function getHelpersSidebar() { - return [ - { text: 'closestComponent', link: '/api/helpers/closestComponent.html' }, - { text: 'createApp', link: '/api/helpers/createApp.html' }, - { text: 'defineFeatures', link: '/api/helpers/defineFeatures.html' }, - { text: 'getClosestParent', link: '/api/helpers/getClosestParent.html' }, - { text: 'getDirectChildren', link: '/api/helpers/getDirectChildren.html' }, - { text: 'getInstanceFromElement', link: '/api/helpers/getInstanceFromElement.html' }, - { text: 'getInstances', link: '/api/helpers/getInstances.html' }, - { text: 'importOnInteraction', link: '/api/helpers/importOnInteraction.html' }, - { text: 'importOnMediaQuery', link: '/api/helpers/importOnMediaQuery.html' }, - { text: 'importWhenIdle', link: '/api/helpers/importWhenIdle.html' }, - { text: 'importWhenPrefersMotion', link: '/api/helpers/importWhenPrefersMotion.html' }, - { text: 'importWhenVisible', link: '/api/helpers/importWhenVisible.html' }, - { text: 'isDirectChild', link: '/api/helpers/isDirectChild.html' }, - { text: 'logTree', link: '/api/helpers/logTree.html' }, - { text: 'queryComponent', link: '/api/helpers/queryComponent.html' }, - { text: 'registerComponent', link: '/api/helpers/registerComponent.html' }, - { text: 'registerComponents', link: '/api/helpers/registerComponents.html' }, - ]; -} - -function getUtilsSidebar() { - return [ - { - text: 'Utils', - link: '/utils/', - collapsed: true, - items: [ - { text: 'cache', link: '/utils/cache.html' }, - { text: 'createElement', link: '/utils/createElement.html' }, - { text: 'debounce', link: '/utils/debounce.html' }, - { text: 'domScheduler', link: '/utils/domScheduler.html' }, - { text: 'keyCodes', link: '/utils/keyCodes.html' }, - { text: 'loadElement', link: '/utils/loadElement.html' }, - { text: 'loadIframe', link: '/utils/loadIframe.html' }, - { text: 'loadImage', link: '/utils/loadImage.html' }, - { text: 'loadLink', link: '/utils/loadLink.html' }, - { text: 'loadScript', link: '/utils/loadScript.html' }, - { text: 'memo', link: '/utils/memo.html' }, - { text: 'memoize', link: '/utils/memoize.html' }, - { text: 'nextFrame', link: '/utils/nextFrame.html' }, - { text: 'nextMicrotask', link: '/utils/nextMicrotask.html' }, - { text: 'nextTick', link: '/utils/nextTick.html' }, - { text: 'Queue', link: '/utils/Queue.html' }, - { text: 'random', link: '/utils/random.html' }, - { text: 'randomInt', link: '/utils/randomInt.html' }, - { text: 'randomItem', link: '/utils/randomItem.html' }, - { text: 'scrollTo', link: '/utils/scrollTo.html' }, - { text: 'SmartQueue', link: '/utils/SmartQueue.html' }, - { text: 'throttle', link: '/utils/throttle.html' }, - { text: 'trapFocus', link: '/utils/trapFocus.html' }, - { text: 'tween', link: '/utils/tween.html' }, - { text: 'useScheduler', link: '/utils/useScheduler.html' }, - ], - }, - { - text: 'Value utils', - link: '/utils/is/', - collapsed: true, - items: [ - { text: 'isArray', link: '/utils/is/isArray.html' }, - { text: 'isBoolean', link: '/utils/is/isBoolean.html' }, - { text: 'isDefined', link: '/utils/is/isDefined.html' }, - { text: 'isEmpty', link: '/utils/is/isEmpty.html' }, - { text: 'isEmptyString', link: '/utils/is/isEmptyString.html' }, - { text: 'isNull', link: '/utils/is/isNull.html' }, - { text: 'isDev', link: '/utils/is/isDev.html' }, - { text: 'isFunction', link: '/utils/is/isFunction.html' }, - { text: 'isNumber', link: '/utils/is/isNumber.html' }, - { text: 'isObject', link: '/utils/is/isObject.html' }, - { text: 'isString', link: '/utils/is/isString.html' }, - ], - }, - { - text: 'Collision utils', - link: '/utils/collision/', - collapsed: true, - items: [ - { text: 'boundingRectToCircle', link: '/utils/collision/boundingRectToCircle.html' }, - { text: 'collideCircleCircle', link: '/utils/collision/collideCircleCircle.html' }, - { text: 'collideCircleRect', link: '/utils/collision/collideCircleRect.html' }, - { text: 'collidePointCircle', link: '/utils/collision/collidePointCircle.html' }, - { text: 'collidePointRect', link: '/utils/collision/collidePointRect.html' }, - { text: 'collideRectRect', link: '/utils/collision/collideRectRect.html' }, - ], - }, - { - text: 'CSS utils', - // link: '/utils/css/', - collapsed: true, - items: [ - { text: 'addClass', link: '/utils/css/addClass.html' }, - { text: 'addStyle', link: '/utils/css/addStyle.html' }, - { text: 'animate', link: '/utils/css/animate.html' }, - { text: 'getOffsetSizes', link: '/utils/css/getOffsetSizes.html' }, - { text: 'matrix', link: '/utils/css/matrix.html' }, - { text: 'removeClass', link: '/utils/css/removeClass.html' }, - { text: 'removeStyle', link: '/utils/css/removeStyle.html' }, - { text: 'toggleClass', link: '/utils/css/toggleClass.html' }, - { text: 'transform', link: '/utils/css/transform.html' }, - { text: 'transition', link: '/utils/css/transition.html' }, - ], - }, - { - text: 'Storage utils', - link: '/utils/storage/', - collapsed: true, - items: [ - { text: 'createStorage', link: '/utils/storage/createStorage.html' }, - { text: 'createLocalStorage', link: '/utils/storage/createLocalStorage.html' }, - { text: 'createSessionStorage', link: '/utils/storage/createSessionStorage.html' }, - { - text: 'createUrlSearchParamsStorage', - link: '/utils/storage/createUrlSearchParamsStorage.html', - }, - { - text: 'createUrlSearchParamsInHashStorage', - link: '/utils/storage/createUrlSearchParamsInHashStorage.html', - }, - { text: 'Providers', link: '/utils/storage/providers.html' }, - ], - }, - { - text: 'History utils', - link: '/utils/history/', - collapsed: true, - items: [ - { text: 'historyPush', link: '/utils/history/historyPush.html' }, - { text: 'historyReplace', link: '/utils/history/historyReplace.html' }, - { text: 'objectToURLSearchParams', link: '/utils/history/objectToURLSearchParams.html' }, - ], - }, - { - text: 'Math utils', - // link: '/utils/math/', - collapsed: true, - items: [ - { text: 'clamp', link: '/utils/math/clamp.html' }, - { text: 'clamp01', link: '/utils/math/clamp01.html' }, - { text: 'createEaseInOut', link: '/utils/math/createEaseInOut.html' }, - { text: 'createEaseOut', link: '/utils/math/createEaseOut.html' }, - { text: 'createRange', link: '/utils/math/createRange.html' }, - { text: 'damp', link: '/utils/math/damp.html' }, - { text: 'ease', link: '/utils/math/ease.html' }, - { text: 'fold', link: '/utils/math/fold.html' }, - { text: 'inertiaFinalValue', link: '/utils/math/inertiaFinalValue.html' }, - { text: 'lerp', link: '/utils/math/lerp.html' }, - { text: 'map', link: '/utils/math/map.html' }, - { text: 'mean', link: '/utils/math/mean.html' }, - { text: 'round', link: '/utils/math/round.html' }, - { text: 'smoothTo', link: '/utils/math/smoothTo.html' }, - { text: 'spring', link: '/utils/math/spring.html' }, - { text: 'wrap', link: '/utils/math/wrap.html' }, - ], - }, - { - text: 'String utils', - link: '/utils/string/', - collapsed: true, - items: [ - { text: 'camelCase', link: '/utils/string/camelCase.html' }, - { text: 'dashCase', link: '/utils/string/dashCase.html' }, - { text: 'pascalCase', link: '/utils/string/pascalCase.html' }, - { text: 'snakeCase', link: '/utils/string/snakeCase.html' }, - { text: 'lowerCase', link: '/utils/string/lowerCase.html' }, - { text: 'upperCase', link: '/utils/string/upperCase.html' }, - { text: 'startsWith', link: '/utils/string/startsWith.html' }, - { text: 'endsWith', link: '/utils/string/endsWith.html' }, - { text: 'withLeadingCharacters', link: '/utils/string/withLeadingCharacters.html' }, - { text: 'withLeadingSlash', link: '/utils/string/withLeadingSlash.html' }, - { text: 'withoutLeadingCharacters', link: '/utils/string/withoutLeadingCharacters.html' }, - { - text: 'withoutLeadingCharactersRecursive', - link: '/utils/string/withoutLeadingCharactersRecursive.html', - }, - { text: 'withoutLeadingSlash', link: '/utils/string/withoutLeadingSlash.html' }, - { text: 'withoutTrailingCharacters', link: '/utils/string/withoutTrailingCharacters.html' }, - { - text: 'withoutTrailingCharactersRecursive', - link: '/utils/string/withoutTrailingCharactersRecursive.html', - }, - { text: 'withoutTrailingSlash', link: '/utils/string/withoutTrailingSlash.html' }, - { text: 'withTrailingCharacters', link: '/utils/string/withTrailingCharacters.html' }, - { text: 'withTrailingSlash', link: '/utils/string/withTrailingSlash.html' }, - ], - }, - ]; -} diff --git a/packages/docs/api/autoload/defineManifest.md b/packages/docs/api/autoload/defineManifest.md deleted file mode 100644 index 55d3f65fb..000000000 --- a/packages/docs/api/autoload/defineManifest.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -outline: deep ---- - -# defineManifest - -`defineManifest` builds a [`ComponentManifest`](/api/autoload/#types) from a record of lazy importers, so your own js-toolkit components autoload from `data-component` attributes. It is pure: it never touches the DOM and never registers anything. Pass its result to [`registerManifests`](/api/autoload/registerManifests.html) or [`autoload`](/api/autoload/#autoload) to start discovery. - -This page also documents the two adapters that produce the `modules` record it consumes — [`fromMetaGlob`](#frommetaglob) for Vite and [`fromWebpackContext`](#fromwebpackcontext) for webpack. - -## Signature - -```ts -function defineManifest(options: DefineManifestOptions): ComponentManifest; -``` - -## Parameters - -The single `DefineManifestOptions` argument: - -- `modules` (`ModuleRecord`, required): the lazy importers to build entries from, keyed by module path. Feed a bundler glob through an adapter. -- `packageName` (`string`): the npm package the components belong to. Informational only — the loader never reads it. -- `strategy` (`ComponentLoadStrategy`): the default [load strategy](/api/autoload/#loading-strategies) applied to every component. Defaults to `'eager'`. -- `group` (`string`): the default grouping key applied to every component. Informational only. Defaults to each component's token. -- `components` (`Record`): per-token overrides, keyed by the **derived** token (see [Token derivation](#token-derivation)). - -### ComponentOverride - -Every field is optional; an omitted field keeps the derived or option-level default. - -- `token` (`string`): replace the token derived from the module key (renames the entry). -- `strategy` (`ComponentLoadStrategy`): override the load strategy for this one component. -- `group` (`string`): override the grouping key for this one component. -- `exportName` (`string`): the named export to resolve from the module. Defaults to the token. -- `children` (`readonly string[]`): tokens of the constructor's configured child components, for recursive registration. -- `styles` (`readonly string[]`): stylesheet paths associated with this component. Informational only. -- `integrations` (`readonly string[]`): integration keys associated with this component. Informational only. - -## Return value - -Returns a [`ComponentManifest`](/api/autoload/#types). For every `[key, importer]` in `options.modules`, `defineManifest` produces one entry whose `load()` thunk calls the importer and resolves the export named by `exportName` (defaulting to the token), falling back to the module's `default` export. - -The factory does **not** validate that the resolved value is a `Base` constructor — the loader does that on load and dispatches a [`js-toolkit:error`](/api/autoload/#error-diagnostics) event when it is not. - -## Token derivation - -The `data-component` token comes from each module key: the basename without its extension, or the parent directory name when the basename is `index`. - -| Module key | Derived token | -| ------------------------------- | ------------- | -| `./components/MyComponent.js` | `MyComponent` | -| `./components/Card/Card.js` | `Card` | -| `./components/Gallery/index.js` | `Gallery` | - -Name each file after the token you want in the markup. When a file's exported class name differs from the token, set `exportName`; to expose a different token than the filename, set `token`. - -## Duplicate tokens - -When two module keys derive the same token, a warning is logged under the `[@studiometa/js-toolkit/autoload]` prefix and the later key wins. Keep component filenames unique across the folders you glob, or disambiguate with a `token` override. - -## Examples - -### Vite - -```js -import { defineManifest, fromMetaGlob } from '@studiometa/js-toolkit'; - -const manifest = defineManifest({ - packageName: '@my/app', - strategy: 'visible', - modules: fromMetaGlob(import.meta.glob('./components/*/*.js')), -}); -``` - -### webpack - -```js -import { defineManifest, fromWebpackContext } from '@studiometa/js-toolkit'; - -const manifest = defineManifest({ - packageName: '@my/app', - strategy: 'visible', - modules: fromWebpackContext( - import.meta.webpackContext('./components', { - recursive: true, - regExp: /\.js$/, - mode: 'lazy', - }), - ), -}); -``` - -### Per-token overrides - -```js -const manifest = defineManifest({ - strategy: 'eager', - modules: fromMetaGlob(import.meta.glob('./components/*/*.js')), - components: { - // Load this one lazily and pull in a child it configures. - Gallery: { strategy: 'idle', children: ['GalleryItem'] }, - // The file is Card.js but the exported class is `SpecialCard`. - Card: { exportName: 'SpecialCard' }, - // Rename the token exposed in the markup. - Legacy: { token: 'LegacyComponent' }, - }, -}); -``` - -### Registering the result - -`defineManifest` only builds data. Register it to start discovery: - -```js -import { registerManifests } from '@studiometa/js-toolkit'; - -registerManifests(manifest); -``` - -## Adapters - -`defineManifest` needs a `ModuleRecord` — a map of keys to lazy importers. Vite and webpack each expose a glob primitive, but they return different shapes, so there is one adapter for each. - -### fromMetaGlob - -```ts -function fromMetaGlob(glob: Record): ModuleRecord; -``` - -Normalizes the record returned by Vite's `import.meta.glob('./x/*.js')` into a `ModuleRecord`. The lazy form of `import.meta.glob` already returns `Record Promise>`, so this is an identity pass with a guard. - -**Throws** a `TypeError` when any value is not a function — that means an eager glob (`import.meta.glob('...', { eager: true })`) was passed, which resolves the modules synchronously and defeats on-demand loading. - -```js -import { fromMetaGlob } from '@studiometa/js-toolkit'; - -const modules = fromMetaGlob(import.meta.glob('./components/*/*.js')); -``` - -### fromWebpackContext - -```ts -function fromWebpackContext(context: WebpackContextLike): ModuleRecord; -``` - -Normalizes a webpack context — the value returned by `import.meta.webpackContext(dir, options)` — into a `ModuleRecord`. A webpack context is a callable with a `keys()` method rather than a record of importers, so this wraps each key in `() => Promise.resolve(context(key))`. - -`Promise.resolve` tolerates both a synchronous module (`mode: 'sync'`) and a promise (`mode: 'lazy'`). Pass `mode: 'lazy'` for real code-splitting and on-demand loading; the other modes bundle every match eagerly. - -```js -import { fromWebpackContext } from '@studiometa/js-toolkit'; - -const modules = fromWebpackContext( - import.meta.webpackContext('./components', { - recursive: true, - regExp: /\.js$/, - mode: 'lazy', - }), -); -``` - -## Types - -- `ModuleRecord` — `Record Promise>>`: a map of module keys to lazy importers, the shape the adapters produce and `defineManifest` consumes. -- `DefineManifestOptions` — the options object above. -- `ComponentOverride` — a per-token override. -- `WebpackContextLike` — the structural shape of a webpack context accepted by [`fromWebpackContext`](#fromwebpackcontext). -- `ComponentManifest`, `ComponentManifestEntry`, `ComponentLoadStrategy` — documented in the [autoload API](/api/autoload/#types). - -## See also - -- [`registerManifests`](/api/autoload/registerManifests.html) — register the manifest you build here. -- [Autoload API](/api/autoload/) — every export of the autoload engine. diff --git a/packages/docs/api/autoload/index.md b/packages/docs/api/autoload/index.md deleted file mode 100644 index 84918346b..000000000 --- a/packages/docs/api/autoload/index.md +++ /dev/null @@ -1,135 +0,0 @@ -# Autoload - -The autoload engine discovers `data-component` elements in the DOM and loads and registers their component constructors on demand, driven entirely by a **manifest** you give it. It knows nothing hard-coded about any component: it works purely from the manifest, so it autoloads your own [`Base`](/api/) components as well as any packaged ones. - -The whole API is exported from the package root and from a per-symbol subpath (`@studiometa/js-toolkit/autoload`, `@studiometa/js-toolkit/registerManifests`, …). - -```js -import { - autoload, - defineManifest, - fromMetaGlob, -} from '@studiometa/js-toolkit'; -``` - -Everything here is **pure**: importing a module never touches the DOM. Discovery starts only when you call `autoload()` or `registerManifests()`. - -## Mental model - -A manifest maps each `data-component` token to an entry describing how to load it. The loader scans the DOM for `[data-component]`, reads each token, and schedules the matching entry according to its **load strategy**. When the strategy's signal fires it imports the constructor, validates that it is a `Base` constructor, and registers it with [`registerComponent`](/api/helpers/registerComponent.html). - -```html -
-
-``` - -## Loading strategies - -Each entry has a default strategy, overridable per element with the `data-load` attribute. - -- `eager` — load immediately (the default). -- `visible` — load shortly before the element enters the viewport (via `IntersectionObserver`, root margin `200px 0px`). -- `idle` — load when the main thread is idle (via `requestIdleCallback`, with a `2000ms` timeout fallback). -- `interaction` — load on the first `pointerover`, `pointerdown` or `focusin` on the element. - -When a required browser API is unavailable the loader degrades gracefully (it loads eagerly, or falls back to a timeout) and logs a warning under the `[@studiometa/js-toolkit/autoload]` prefix. - -## autoload - -Start a standalone loader over one or more manifests and get a stoppable handle back. - -```ts -function autoload(options: AutoloadOptions): AutoloadHandle; -``` - -### Parameters - -- `manifests` (`readonly ComponentManifest[]`): the manifests to compose into a single lookup table. On a token collision, the manifest later in the array wins. -- `root` (`Document | Element`): the DOM scope to scan and observe. Defaults to `document`. -- `eager` (`readonly string[]`): tokens to force-load eagerly regardless of their strategy or `data-load` attribute. -- `dependencies` (`Partial`): dependency-injection seams, kept for testability. - -### Return value - -An `AutoloadHandle` with: - -- `loader` (`ComponentLoader`): the underlying loader instance. -- `manifest` (`ComponentManifest`): the composed manifest the loader was started with. -- `stop()`: stop discovery and release every scheduled trigger. - -### Example - -```js -import { - autoload, - defineManifest, - fromMetaGlob, -} from '@studiometa/js-toolkit'; - -const manifest = defineManifest({ - modules: fromMetaGlob(import.meta.glob('./components/*/*.js')), -}); - -const handle = autoload({ manifests: [manifest] }); -// later, to tear everything down: -handle.stop(); -``` - -## composeManifests - -Merge several manifests into one, later entries winning on token collision. - -```ts -function composeManifests( - manifests: readonly ComponentManifest[], -): ComponentManifest; -``` - -This is the pure merge `autoload()` uses internally. It never touches the DOM. - -## ComponentLoader - -The class behind `autoload()`. Instantiate it directly when you need full control over its lifecycle. - -```ts -const loader = new ComponentLoader({ manifest, root, dependencies }); -loader.start({ eagerComponents: ['Header'] }); -loader.stop(); -``` - -Importing the class does nothing; discovery only starts on `start()`. - -## Eager `` - -The shared runtime (see [`registerManifests`](/api/autoload/registerManifests.html)) reads a `` tag to force-load a comma-separated list of tokens, whatever their strategy: - -```html - -``` - -`readEagerTokens(document)` returns the normalized (split, trimmed, de-duplicated) token list. - -## Error diagnostics - -When an import, validation or registration fails for a token, the loader logs an error under the `[@studiometa/js-toolkit/autoload]` prefix and dispatches a bubbling `js-toolkit:error` `CustomEvent` on the document element: - -```js -document.addEventListener('js-toolkit:error', (event) => { - const { token, stage, error } = event.detail; // stage: 'import' | 'registration' -}); -``` - -A failure is isolated to its own token; the other components keep loading. - -## Types - -- `ComponentManifest` — `Record`, a map of tokens to entries. -- `ComponentManifestEntry` — one entry: `token`, `strategy`, a `load()` thunk resolving the `Base` constructor, plus optional informational metadata (`packageName`, `group`, `children`, `styles`, `integrations`). -- `ComponentLoadStrategy` — `'eager' | 'visible' | 'idle' | 'interaction'`. -- `AutoloadOptions`, `AutoloadHandle`, `LoaderDependencies`, `AutoloadRuntime`, `RegisterManifestOptions` — the option and handle shapes documented above and on the related pages. - -## See also - -- [`defineManifest`](/api/autoload/defineManifest.html) — build a manifest from a record of lazy importers. -- [`registerManifests`](/api/autoload/registerManifests.html) — register manifests with the shared cross-copy runtime. -- [`registerComponent`](/api/helpers/registerComponent.html) — the helper the loader registers each constructor with. diff --git a/packages/docs/api/autoload/registerManifests.md b/packages/docs/api/autoload/registerManifests.md deleted file mode 100644 index d9d99985c..000000000 --- a/packages/docs/api/autoload/registerManifests.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -outline: deep ---- - -# registerManifests - -`registerManifests` registers several component manifests with the shared autoload runtime in one call, then lets a single coalesced start flush over the composed set. Use it from an application entry point to activate your components (built with [`defineManifest`](/api/autoload/defineManifest.html)). - -It is the variadic convenience wrapper over [`registerManifest`](#registermanifest): it calls `registerManifest` on each argument in order and returns the runtime from the final call. - -## Signature - -```ts -function registerManifests( - ...manifests: ComponentManifest[] -): AutoloadRuntime | undefined; -``` - -## Parameters - -- `...manifests` (`ComponentManifest[]`): one or more manifests, registered in argument order. Passing none is allowed and is a no-op. - -Each manifest is a `Record` — usually one built with [`defineManifest`](/api/autoload/defineManifest.html). - -## Return value - -Returns the shared [`AutoloadRuntime`](/api/autoload/#types) from the final registration, or `undefined` when a conflicting runtime version already owns `globalThis` (the version guard warns and no-ops) or when no manifest was passed. - -## Behaviour - -- **One coalesced start.** The first registration schedules a single start through a microtask. Because every ES module import in a graph evaluates before microtasks flush, registering several manifests in one call — or across side-effect entries imported at the top of a module — results in exactly one [`autoload`](/api/autoload/#autoload) call over the composed set. Only one loader ever scans the DOM. -- **Last manifest wins.** The runtime composes the accumulated manifests later-wins, and `registerManifests` registers its arguments in order, so the **last** manifest wins on token collisions. Pass your custom manifest last to override a component that shares a token. -- **Shared runtime.** Registration goes through a cross-copy runtime keyed by `Symbol.for('@studiometa/js-toolkit/autoload/runtime')`, so several bundle copies coordinate through a single runtime object and still coalesce into one loader. -- **Version guard.** A manifest registered by a conflicting runtime version is ignored with a console warning, and the call returns `undefined`. - -## Examples - -### Register your components - -```js -import { - registerManifests, - defineManifest, - fromMetaGlob, -} from '@studiometa/js-toolkit'; - -const app = defineManifest({ - packageName: '@my/app', - modules: fromMetaGlob(import.meta.glob('./components/*/*.js')), -}); - -registerManifests(app); -``` - -### Layer a custom manifest over a base one - -```js -import { registerManifests } from '@studiometa/js-toolkit'; -import { manifest as baseManifest } from './base-manifest.js'; -import { manifest as appManifest } from './app-manifest.js'; - -// `appManifest` is last, so it wins on any token it shares with the base manifest. -registerManifests(baseManifest, appManifest); -``` - -## registerManifest - -Register a single manifest with the shared runtime, with injectable options — use it to build your own side-effect entry module. - -```ts -function registerManifest( - manifest: ComponentManifest, - options?: RegisterManifestOptions, -): AutoloadRuntime | undefined; -``` - -### Options - -Every seam is optional and testability-oriented: - -- `document` (`Document`): the document to scan and to read the eager `` from. Defaults to the global `document`. -- `globalObject` (`object`): the object the shared runtime is stored on. Defaults to `globalThis`. -- `version` (`string`): the identity used by the duplicate/conflict guard. Defaults to this package's version. -- `root` (`Document | Element`): the DOM scope handed to the loader. Defaults to the resolved document. -- `dependencies` (`Partial`): loader dependency-injection seams, forwarded to `autoload`. -- `console` (`Pick`): the logger used by the conflict guard. Defaults to the global `console`. -- `scheduleMicrotask` (`(callback: () => void) => void`): schedules the single coalesced start. Defaults to `queueMicrotask`. - -## readEagerTokens - -Read the eager tokens declared by ``. - -```ts -function readEagerTokens(documentObject: Document): string[]; -``` - -The `content` values of every matching meta (in document order) are concatenated, split on commas, trimmed, stripped of empties and de-duplicated. When no such meta exists the list is empty. - -## Types - -- `ComponentManifest` — a `Record`; see the [autoload API](/api/autoload/#types). -- `AutoloadRuntime` — the shared, cross-copy runtime object stored on `globalThis`. -- `RegisterManifestOptions` — the [options](#options) object. - -## See also - -- [`defineManifest`](/api/autoload/defineManifest.html) — build the manifest you pass here from your component files. -- [`autoload`](/api/autoload/#autoload) — start a standalone loader without the shared runtime, e.g. to scope discovery to a `root` element or keep a `stop()` handle. -- [Autoload API](/api/autoload/) — every export of the autoload engine. diff --git a/packages/docs/api/configuration.md b/packages/docs/api/configuration.md deleted file mode 100644 index 3646d8009..000000000 --- a/packages/docs/api/configuration.md +++ /dev/null @@ -1,259 +0,0 @@ -# Configuration - -::: tip See also -For a practical introduction, see the [Components guide](/guide/introduction/managing-components.html). For refs and options, see [Refs](/guide/introduction/managing-refs.html) and [Options](/guide/introduction/managing-options.html). -::: - -The static `config` property is required on each class extending the `Base` class. Use it to configure the class. - -## `config.name` - -- Type: `String` - -The **required** name of the component. - -```js {3} twoslash -// @twoslash-cache: {"v":1,"hash":"29b5c9774086ecf81b53c698327ffd82c582fbc606811b54b79af6a9c7626513","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjAGwEM44ACAYQgFssEMDDAMqcNK1INEANirMRAczT4kATiqTSSmDJC8BQkWJDMAlsKQAGKo3xTWjGuTkBfCumy5EBYmUpqOn0AClYLdgBKThZ2LgAhdhgAHgAVTmCRKASkgAVSCCwuAF5ORLgYfMK4AD4AHTBzI2kypMCoCEYEX3KYGLYOADpAySVu5GQzSwBrQPw0NCLEAHplgCs4AFo0CAhmafM0QYkAVyhzfj1WQdgiZdYsc2WQAF0X8W0ZACYAFgVlVRIP7UKS6fS9QIWKyIWwgeyOZwBRC/DxeHB4QgkchaYJ4EJYAo4aQYaKGQTCUSDRhCABm5iUiE4wAanFZnDArD4MEZElIliUAG4Gm52p1ugZafThlpWGMkBMpmBZlR5os4Ct1lsdnsDkdTudLpIbjA7g8ntSwHSlCdSKw0BcwIN5nxmK93iAJFIZD9YYowCo1HIZTo9ExJUpIZYfABGOwOW2I1zqVHUbwY/zYoL0PEEwpkTDRDlcnloPn+wKe6RIACs1f+/sBiGB2jBeCLuAUUaQXzjCJcQLc7upsCYAy4ZOMogy9CyOQqTJZnE99sYMXDnFKzLAbPZnO5nAA5BOKWgDxRF24hWARVQuZIkKBMmA4A68BsQG43EA="} -import { Base } from '@studiometa/js-toolkit'; -// ---cut--- -class Component extends Base { - static config = { - name: 'Component', - }; -} -``` - -## `config.options` - -- Type: `Object` -- Default: `{}` - -Define values configurable with `data-option-...` attributes for the component. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"0cf5abc3e0b2d431bdddbca6bae779ba5dcc99a1ca06bb519ea8d92f761d6e48","data":"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"} -import { Base } from '@studiometa/js-toolkit'; -// ---cut--- -class Component extends Base { - static config = { - name: 'Component', - options: { - stringOption: String, // default to '' - stringWithDefault: { type: String, default: 'Default value' }, - stringWithDefaultAsAFunction: { - type: String, - default: (component) => component.$el.id, - }, - numberOption: Number, // default to 0 - numberWithDefault: { type: Number, default: 10 }, - numberWithDefaultAsAFunction: { - type: Number, - default: (component) => component.$el.childElementCount, - }, - booleanOption: Boolean, // default to false - // default to true, can be negated with the `data-option-no-boolean-with-default` attribute - booleanWithDefault: { - type: Boolean, - default: true, - }, - booleanWithDefaultAsAFunction: { - type: Boolean, - default: (component) => component.$el.classList.has('bool'), - }, - arrayOption: Array, // default to [] - arrayWithDefault: { type: Array, default: () => [1, 2] }, - objectOption: Object, // default to {} - objectWithDefault: { - type: Object, - default: () => ({ foo: 'foo' }), - merge: true, // Optional, whether to merge values or not - }, - }, - }; - - mounted() { - this.$options.stringOption; // '' - this.$options.stringWithDefault; // 'Default value' - this.$options.numberOption; // 0 - this.$options.numberWithDefault; // 10 - this.$options.booleanOption; // false - this.$options.booleanWithDefault; // true - this.$options.arrayOption; // [] - this.$options.arrayWithDefault; // [1,2] - this.$options.objectOption; // {} - this.$options.objectWithDefault; // { foo: 'foo' } - - this.$el.hasAttribute('data-option-boolean-option'); // false - this.$options.booleanOption = true; - this.$el.hasAttribute('data-option-boolean-option'); // true - } -} -``` - -## `config.components` - -- Type: `Object` -- Default: `{}` - -The children components of the current one, mounted and destroyed automatically according to the state of the current component. Define children components like the following: - -::: code-group - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"fb897260465f5aecae26fd3ccbe085056ae05c161822f893d7232778ee114de3","data":"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"} -import { Base } from '@studiometa/js-toolkit'; -import { Figure, PrefetchWhenOver } from '@studiometa/ui'; - -class App extends Base { - static config = { - name: 'App', - components: { - // Direct reference, Figure instances will be mounted - // on every `[data-component="Figure"]` elements. - Figure, - // Async loading, the Slider component will be loaded only if there - // is one or more `[data-component="Slider"]` element in the DOM. - Slider: () => import('@studiometa/ui').then(({ Slider }) => Slider), - // Custom selector, ComponentThree instances will be mounted - // on every `a[href]` elements. - 'a[href]': PrefetchWhenOver, - // Custom selector with async loading, the Component component will be loaded - // only if there is one or more `.other-custom-selector` element in the DOM. - '.other-custom-selector': () => import('./Component.js'), - }, - }; -} -``` - -```js twoslash [Component.js] -// @twoslash-cache: {"v":1,"hash":"bb4cbb4fc3398dcf8167d6bc92672ea4b5802320374e1ccaaeeb04faa26e05be","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADc5iOgtc7khmezEuooXCkWicSoCSScFSGWyuXyhWKpQqVRqdQaTRaKXTYCzITKGLQVTA/gSllYxs+vW+2LW/tto3tv0d4LuLZCy3dSBPXvRmL9QfxFyJ11J9CYsa0ZEwPgSzLXgKyrJwzUPbELVPIEHXbJ0IWA3A3SRRBpifH0sXQo4TXTWA8F5Wx7GAOleCOXgM00SxeAAcgAAQnLVp2YIcVVHIpaNrMBzDoPl7FgDNmDKVh7BpERkxhd45HoJllFFfMwELHp134AQb3ZPMCyLZDc1oyTYTQWiKG0o5uPrKgWKQUBGTAOANzwTIQCOI4gA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - }; -} -``` - -::: tip -The [lazy import helpers](/api/helpers/#lazy-import-helpers) can be used for more fine-grained imports. -::: - -## `config.refs` - -- Type : `Array` -- Default : `[]` - -Define the refs of the components by specifying their name in the configuration. Multiple refs should be suffixed with `[]`. Refs names can be configured and used in HTML following the `dash-case` pattern, and are available in the `this.$refs` object following the `camelCase` pattern. - -```html -
- -
    -
  • #1
  • -
-
    -
  • #1
  • -
  • #2
  • -
- - -
-``` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"db1d387c6b9c9afd339eb6f75ffe043916779d80eb9689cab828c4f20618a705","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjAGwEM44ACAYQgFssEMDDAMqcNK1INEANirMRAczT4kATiqTSSmDJC8BQkWJDMAlsKQAGKo3xTWjGuTkBfCumy5EBYmUpqOn0AClYLdgBKThZ2LgAhdhgAHgAVTmCRKASkgAVSCCwuAF5ORLgYfMK4AD4AHTBzI2kypMCoCEYEX3KYGLYOADpAySVu5GQzSwBrQPw0NCLEAHplgCs4AFo0CAhmafM0QYkAVyhzfj1WQdgiZdYsc2WQAF0X8W0ZACYAFgVlVRIP7UKS6fS9QIWKyIWwgeyOZwBRC/DxeHB4QgkchaYJ4EJYAo4aQYaKGQTCUSDRhCABm5iUiE4wAanFZnDArD4MEZElIliUAG4WWzSDAaXAeWg+WAlMgXkKwG52p1ugZafThlpWGMkBMpmBZlR5osJasNttdvtDsc0GcLlzJDcYHcHk9qWA6UoTqRWGgLmBBvM+MxXu8QBIpDIfrDFDLAXItTo9Ex1UpIZYfABGOwOH2I1zqVHUbwY/zYoL0PEEwpkTDRDlcyXStMfSNIACs7f+cbUiGB2jBeAbuAUGaQXxzCJcQKLmHRvkxARxld8+MJtZJnFF4qb/LlgQj0iQAHYABzdlS9/ug5O+bcIUfQgDMk7z077s5LC7LI1xq4dhBQKS/DkiYgx8BAJyiDAUAhJEjJEBA5hQAenxIJmXyaGYAK9seiaDr4EFQTQKGPj48hwrmTjvl8n7zn4WK/iuIBrjWxLRL0yS9FURQ1IMAAk96Mr0ABKYoPiAHRdHgYnipqII6igkxQoaBALEsZpbDsewHEcpznJcjq3PcjzLJYEZgIwMCbNWRJ+vAgZoMGADE96hq2R6IJm7YxjhHb4beICCeJ6bQnhlFTkihaeMW9GLuWNDMSEliwLQHFJLJcDILy/IvIyAASqQALIADIAKKKFyoicAAPpwhWlRVMBVWg+4eTI3kUbGl5IC+IJJvoABGaBgKFPjhfCb5It5dE+AxS4VqEtkbulFRcXkhK1AJQmtBUmXKtJviZfJozjMpMxzOpprrFplq6TadqGdcxmumZYAWVZNnrtI5gOUGzCuSFbzteOmbAt18Zdv1BFBW5ZFIOeEVTQWs2loxy6hCldCrTAmXZVKuUFcV5WVSYtX1cTTUtW14ZociXy+T2/nQ4FhzNRJUI+Ijk3UdN7ao9+6OLVW311rtKTcZtfHBTu4v7VQUmqsdIzamd+qqcaGk3RaOnWvp9pXE6LqmeZkiWdZy0/X9TkA25wO022yLHhO2FM4gUMDoFMsc2OiBYTz+YaAL80JX+LFY2lcvifjzZ5RTjWk9VdUNSTzUmDTh7fGeF7xpmsKe/oECqGQACSNB8D70L+1RgdefzYbUrATADFwZLGNVmRgNk4tMsKEZ+owMSppwpTMmAbLspy3KcAA5G3FJoDPFDCqyO3IDPw1gEvs9sxXcrbzPRf4GQmy71lLwz+8wpuAqwpEdBsHRGPE+qOYcDbeJgybwKnCrJwySDROAsIQnAoC+lYJsbcxQ6ggE3jAmo3ALCMGmJwLkyRliAOAWAeo482Sv3ft7QYZ8f5/2QMkCwoDwGQLFNAkAZ85TwOcpmdBFgagvBXpwfBH85JH1LuXOAJDlicDIRQsBkhqE0lobw0gp9+EMJADUJhLDzA1AoP/URVCoEwOkbI9m8jFFfGUWw6+DQlRUAdKwJAoBO5wH9HgDYIA3BuCAA==="} -import { Base } from '@studiometa/js-toolkit'; -// ---cut--- -class Component extends Base { - static config = { - name: 'Component', - refs: ['btn', 'items[]', 'other-items[]'], - }; - - mounted() { - this.$refs.btn; // - this.$refs.items; // [
  • #1
  • ] - this.$refs.otherItems; // [
  • #1
  • ,
  • #2
  • ] - } -} -``` - -## `config.emits` - -- Type: `string[]` -- Default: `undefined` - -Define the events emitted by the component by specifying their name. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"6e424d5df6232e7f352e42a771fd2946c4a755a00ee245d7c416735405abee41","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjAGwEM44ACAYQgFssEMDDAMqcNK1INEANirMRAczT4kATiqTSSmDJC8BQkWJDMAlsKQAGKo3xTWjGuTkBfCumy5EBYmUpqOn0AClYLdgBKThZ2LgAhdhgAHgAVTmCRKASkgAVSCCwuAF5ORLgYfMK4AD4AHTBzI2kypMCoCEYEX3KYGLYOADpAySVu5GQzSwBrQPw0NCLEAHplgCs4AFo0CAhmafM0QYkAVyhzfj1WQdgiZdYsc2WQAF0X8W0ZACYAFgVlVRIP7UKS6fS9QIWKyIWwgeyOZwBRC/DxeHB4QgkchaYJ4EJYAo4aQYaKGQTCUSDRhCABm5iUiE4wAanFZnDArD4MEZElIliUAG4WWyYHxDnAeWg+WAlMgXkKwG52p1ugZafThlpWGMkBMpmBZlR5osJasNttdvtDsc0GcLlzJDcYHcHk9qWA6UoTqRWGgLmBBvM+MxXu8QBIpDIfrDFDLAXItTo9Ex1UpIZYfABGOwOH2I1zqVHUbwY/zYoL0PEEwpkTDRDlcyXStMfSNIACs7f+cbUiGB2jBeAbuAUGaQXxzCJcQKLmHRvkxARxld8+MJtZJGTFaAlnF5/LlgQj0iQAHYABzdlS9rsgpP6UXi9PQgDMk7z077s5LC7LI1xq4OoQUCkvw5ImIMNZgCEkSMkQEDmFAR6fEgmaZhOZgAr2/agsmvhQc+PjyHCuZOJ+XzfvOfhYv+K4gCEQHQNEvTJL0VRFDUgwACSPmgITOiYTb8pwAA+nAAKIkKIFCcIMcmgruJwGpAADuYByrBnDwYhypdHg4nblwrBgBkUlHCM2rjJMWCOHwgQCaInAAHKcn0EA0pwqh9A55nvNZtmBApnCpPgfSgicXKiFwOycA8WDMBgnkQJ5oWcDSSnOP6XAAEYQEpUBJSl5hcD5wx+SApB6N6YCUGAJzMMw5VQoaBALEsZpbDsewHEcpznJcjq3PcjzLJYEZgIwMCbIx2SBmgwYAMS8ZsPmbApoatieiCZi+MZYR2iaDr4PHboRZ7vmRSKFp4xZUYu5Y0HRDF6MBoFGBSRwsBAFQwXBCFIZtMiZu2GGxteB13kdcLMN9I76lmsLwh+SIUTdc4+NRS4VqEM3MUkrF5IStTcbx/FmUJMqiRJZkyXJgwKYySnTKp6kvJp2kAyAHR6b4BnirFJmlRZOooP5Pp2VQPnOa5nDuSl3lmWVFBi5ygU6FwIVhToEUmNFyVxQlhVeWlGV+kIOV5WABUxaoxWmRBrzKxVVWkDVFB1Q1TUzHMbWmusnWWj1Np2gN1xDa6o1gONk3TS90BwHNi3Lat61vIDqGntmmE9hDA54SAJ2HGd21Z0jl0FpRGP3bRONxyBPBgcYlI7EoSiKL9Wn/chbbbeowJg/GxF5/oLdt3DUJZsCZf5uOleljRy616oTGtBUBMVOxxOF3xPkU0oVOSSYtPyerjPKRAakaX9OlUNzqp8zuAv25SwtWSANni/ZZnS1yssecbQtyof1VlQIKmtYra0io/GKBtEo21SulCaZso6cFyvlI2+A7aAKdpVW0rtar1Uak7ZqPsTQrH9habq1o+r2iuE6F0I0xqSAmlNGaCcgzMCWtuFaZk1rqw2uGFCyJMz932ogW8w88Db2LsDC6M9ECFjDNSWATABhcDJE3NAGR6BZByBUJkwoIx+kYDEVMnBSjMhMmyYcjIADkGiPq2IoMKVkvFdzIFsVBJxnBbFfQqLY94wo3AKmFFBGCBirGsltgnbeIRPE4DALYyICpWRuAaMKPxMBwmWLZEVGJpNfEw38ckoJ6SrGj3btEHJbJokk23HEipMAkkCk4KsTgKlzANXZBALR2VvLbhoAVYyBUOldKlPSXQpBYrtKkI0GUpTFSBAdKwJAoBMhR39HgDYIA3BuCAA=="} -import { Base } from '@studiometa/js-toolkit'; -// ---cut--- -class Component extends Base { - static config = { - name: 'Component', - emits: ['open', 'close'], - }; - - open() { - this.$emit('open'); - } - - close() { - this.$emit('close'); - } - - toggle() { - this.$emit('toggle'); // will not be emitted and will trigger a warning - } -} -``` - -## `config.log` - -- Type: `Boolean` -- Default: `false` - -Enable the `this.$log(...args)` method when `true`. - -## `config.debug` - -- Type: `Boolean` -- Default: `false` - -When `true`, js-toolkit logs the lifecycle hooks and services hooks to the console. - -:::tip -The debug logs are conditionally rendered based on a `__DEV__` global variable which defaults to `false`. To enable it in dev mode, use the [`DefinePlugin`](https://webpack.js.org/plugins/define-plugin/) with Webpack or the [`@rollup/plugin-replace`](https://github.com/rollup/plugins/tree/master/packages/replace) with Rollup. - -**Example Vite configuration** - -```js -// vite.config.js -import { defineConfig } from 'vite'; - -export default defineConfig({ - define: { - __DEV__: JSON.stringify(process.env.NODE_ENV !== 'production'), - }, -}); -``` - -**Example Webpack configuration** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"641939dbaa5a0f1601ad2b42babf70a79136e704efdb7a0d33cadc3686128916","data":"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="} -import webpack from 'webpack'; - -export default { - plugins: [ - new webpack.DefinePlugin({ - __DEV__: JSON.stringify(process.env.NODE_ENV === 'development'), - }), - ], -}; -``` - -::: diff --git a/packages/docs/api/decorators/index.md b/packages/docs/api/decorators/index.md deleted file mode 100644 index 009b97d33..000000000 --- a/packages/docs/api/decorators/index.md +++ /dev/null @@ -1,20 +0,0 @@ -# Decorators - -Decorators are used to add extra functionalities to a Base class. For a practical introduction, see the [Decorators guide](/guide/going-further/using-decorators.html). - -The following ones are available: - -- [withBreakpointManager](./withBreakpointManager.html) -- [withBreakpointObserver](./withBreakpointObserver.html) -- [withDrag](./withDrag.html) -- [withExtraConfig](./withExtraConfig.html) -- [withFreezedOptions](./withFreezedOptions.html) -- [withGroup](./withGroup.html) -- [withIntersectionObserver](./withIntersectionObserver.html) -- [withMountOnMediaQuery](./withMountOnMediaQuery.html) -- [withMountWhenInView](./withMountWhenInView.html) -- [withMountWhenPrefersMotion](./withMountWhenPrefersMotion.html) -- [withMutation](./withMutation.html) -- [withRelativePointer](./withRelativePointer.html) -- [withResponsiveOptions](./withResponsiveOptions.html) -- [withScrolledInView](./withScrolledInView.html) diff --git a/packages/docs/api/decorators/withBreakpointManager.md b/packages/docs/api/decorators/withBreakpointManager.md deleted file mode 100644 index b24463bc9..000000000 --- a/packages/docs/api/decorators/withBreakpointManager.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -outline: deep ---- - -# withBreakpointManager - -Switches between different child components based on the active breakpoint. - -## Usage - -```js {5-8} twoslash -// @twoslash-cache: {"v":1,"hash":"002adc63152512737ba35a6b627138bfe344172fc5131b0beb7a465299b0c9fc","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4oqQwZgxGzsMBoACyzDAoTIkgAynJ6CMlA4YMZGF4AMK+OCIXiYHAQJ6oii8ABGAKBILBuN4AEFSKRmBhJMhSqRQSFSViIGB2WU9rZJF5jO1jNw8V4ACIwfi2Zi5UjCiQASTBZCeuxgpLhZgs1ls9h+43+gOBEFBEKhMPIVBcbkWlPNlsh0PmpB8wkCM1C4Ui0TiVASSVxaUyOTyBSKJXKlWqtWY9RgjWarVgcqZirgKWNfyd1KtbrI/gSllYHS6IB6fUQAEYAKxDEZjCaIABMtZ9cwWHlzpqpFrBrpty1Bqw2IC2Oz21zr9ZOZxweEIJFt1FuHisNjsvHBIzK4IgZPYwyc1YYiAA7Jem6NxkhaxPZvMLyA92AD0eT7ghmOH5ttiZGcDkvBdqHOZcrjXGh6DwLdDV3fcZTgGJciwM9ZgvWtawANlvFsH07ahehfPB3zKZDUK0UcwFWNsAOnfYkFA05wKXDwV2uGYN0nHFEI/DDeiwy96KiZt70QaZiO7V9yJo1YpKnICmPbWswIJC5OOgniWA4Lg+D7fNB0LG1lVUMz1E0bRjHRLEcTxDSiRJckjMtWkGSZFk2TQDlRm5CRMV5flBSVEUxQlVEZQzBUhS8NV9k1fhtVRCzDGsvV4J3QyzQLYd3Sce13E8Vyh2td1PT8b1iLCJAIiiUFAwIRJkjDbJcnyQpilKCoqhqOoGiaFoUnTeUsxzX5+2dUqi1IEs0DLCtukwh8AA5GzEu9Ww7LtSN7CaSpM/Lf1oqYGOU2cAGZJnUiCOKgm5YI8XSHj4QRhBS2R5GRZQDCs3RUTSkxzEy+wljtVwiq8CqAiCX1av9Br4ma0MMjayNOpjHr4365NBtaRaq2W9s1hvDaCMknae08CR5NOydAN2FT6xwm72MuVcHtfEH+M/Y9TyWoSkDbC6J2GTaHyfEiqfIw8+Z/eqTsQdalMZ2cG1ZzT7u4x6QG58jKLQwSazbHDRfE1tsMp2SkPgKj0OO1Y8Ppxi1ZYxdNY57XX0YLArLITA+HI/w5TAJ52BCPFgHMXgY94aEajxdlOQAbnMI4jYvNsVpW/CJKd58qZDsOQlpxAc+d86DmOViNMgz31x1n2/bsDA+HjmBE58zkM6QEWLtz1spIL1929LwYK9Vg5rsrOVYDgg0d2AZzsoHF0yrIXgjmeTRLF4AByAABbq4z65hUYjDqij31P9W3ewZa/YZt+qff/BSB+5ev4GF/vm2ULQ5+u895v31rbNCX8wDmDoHfXgsBNRlFYPYN6fgeaIgUCiFeU1DpkAxBIUkyBo68GQHvWgtARBkN4HAPepIP7fi6IQ4hu9WC8FoMw0hrBqE8wNloehYB2h8Cjp8ShwQ0DsH4AIXkxdeB6EEbHOOzAE773ItQwhRwb7pyoKfJAoAvp8g+HgTIIAjhHCAA="} -import { Base, withBreakpointManager } from '@studiometa/js-toolkit'; -import MenuMobile from './MenuMobile'; -import MenuDesktop from './MenuDesktop'; - -export default class Menu extends withBreakpointManager(Base, [ - ['xxs xs s', MenuMobile], - ['m l xl xxl', MenuDesktop], -]) { - static config = { - name: 'Menu', - }; -} -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. -- `options` (`Array<[string, BaseConstructor]>`): Definition for the components to be used for each breakpoints - -### Return value - -- `BaseConstructor`: A child class of the given class which will mount the given components based on the current active breakpoint - -## Examples - -### Switch between component classes - -In the following example, the `MenuMobile` class will be mounted along the `Menu` class on small devices and destroyed on large devices. The `MenuDesktop` class will be mounted on large devices and destroyed on small ones. - -The root element `this.$el` of each class will be the same. - -```js {5-8} twoslash -// @twoslash-cache: {"v":1,"hash":"002adc63152512737ba35a6b627138bfe344172fc5131b0beb7a465299b0c9fc","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4oqQwZgxGzsMBoACyzDAoTIkgAynJ6CMlA4YMZGF4AMK+OCIXiYHAQJ6oii8ABGAKBILBuN4AEFSKRmBhJMhSqRQSFSViIGB2WU9rZJF5jO1jNw8V4ACIwfi2Zi5UjCiQASTBZCeuxgpLhZgs1ls9h+43+gOBEFBEKhMPIVBcbkWlPNlsh0PmpB8wkCM1C4Ui0TiVASSVxaUyOTyBSKJXKlWqtWY9RgjWarVgcqZirgKWNfyd1KtbrI/gSllYHS6IB6fUQAEYAKxDEZjCaIABMtZ9cwWHlzpqpFrBrpty1Bqw2IC2Oz21zr9ZOZxweEIJFt1FuHisNjsvHBIzK4IgZPYwyc1YYiAA7Jem6NxkhaxPZvMLyA92AD0eT7ghmOH5ttiZGcDkvBdqHOZcrjXGh6DwLdDV3fcZTgGJciwM9ZgvWtawANlvFsH07ahehfPB3zKZDUK0UcwFWNsAOnfYkFA05wKXDwV2uGYN0nHFEI/DDeiwy96KiZt70QaZiO7V9yJo1YpKnICmPbWswIJC5OOgniWA4Lg+D7fNB0LG1lVUMz1E0bRjHRLEcTxDSiRJckjMtWkGSZFk2TQDlRm5CRMV5flBSVEUxQlVEZQzBUhS8NV9k1fhtVRCzDGsvV4J3QyzQLYd3Sce13E8Vyh2td1PT8b1iLCJAIiiUFAwIRJkjDbJcnyQpilKCoqhqOoGiaFoUnTeUsxzX5+2dUqi1IEs0DLCtukwh8AA5GzEu9Ww7LtSN7CaSpM/Lf1oqYGOU2cAGZJnUiCOKgm5YI8XSHj4QRhBS2R5GRZQDCs3RUTSkxzEy+wljtVwiq8CqAiCX1av9Br4ma0MMjayNOpjHr4365NBtaRaq2W9s1hvDaCMknae08CR5NOydAN2FT6xwm72MuVcHtfEH+M/Y9TyWoSkDbC6J2GTaHyfEiqfIw8+Z/eqTsQdalMZ2cG1ZzT7u4x6QG58jKLQwSazbHDRfE1tsMp2SkPgKj0OO1Y8Ppxi1ZYxdNY57XX0YLArLITA+HI/w5TAJ52BCPFgHMXgY94aEajxdlOQAbnMI4jYvNsVpW/CJKd58qZDsOQlpxAc+d86DmOViNMgz31x1n2/bsDA+HjmBE58zkM6QEWLtz1spIL1929LwYK9Vg5rsrOVYDgg0d2AZzsoHF0yrIXgjmeTRLF4AByAABbq4z65hUYjDqij31P9W3ewZa/YZt+qff/BSB+5ev4GF/vm2ULQ5+u895v31rbNCX8wDmDoHfXgsBNRlFYPYN6fgeaIgUCiFeU1DpkAxBIUkyBo68GQHvWgtARBkN4HAPepIP7fi6IQ4hu9WC8FoMw0hrBqE8wNloehYB2h8Cjp8ShwQ0DsH4AIXkxdeB6EEbHOOzAE773ItQwhRwb7pyoKfJAoAvp8g+HgTIIAjhHCAA="} -import { Base, withBreakpointManager } from '@studiometa/js-toolkit'; -import MenuMobile from './MenuMobile'; -import MenuDesktop from './MenuDesktop'; - -export default class Menu extends withBreakpointManager(Base, [ - ['xxs xs s', MenuMobile], - ['m l xl xxl', MenuDesktop], -]) { - static config = { - name: 'Menu', - }; -} -``` - -:::tip -See the [`resize` service documentation on breakpoints](/api/services/useResize.html#breakpoint) for a more comprehensive view of the potential values of the `activeBreakpoint` property. -::: diff --git a/packages/docs/api/decorators/withBreakpointObserver.md b/packages/docs/api/decorators/withBreakpointObserver.md deleted file mode 100644 index 42526612e..000000000 --- a/packages/docs/api/decorators/withBreakpointObserver.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -outline: deep ---- - -# withBreakpointObserver - -Mounts or destroys a component when the active breakpoint changes. - -## Usage - -```js {1,3,7-10} twoslash -// @twoslash-cache: {"v":1,"hash":"97148ff2f9540e210922119197af6dbe673bf0528ddadaa3af43c40753721007","data":"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"} -import { Base, withBreakpointObserver } from '@studiometa/js-toolkit'; - -export default class MobileComponent extends withBreakpointObserver(Base) { - static config = { - name: 'MobileComponent', - options: { - activeBreakpoints: { - type: String, - default: 'xxs xs s', - }, - }, - }; -} -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. - -### Return value - -- `BaseConstructor`: A child class of the given class which will be mounted when visible and destroyed when invisible. - -## Examples - -### Enable for the given breakpoints - -In the following example, the `MobileComponent` class will self mount on devices matching any of the breakpoint defined in the `activeBreakpoints` property, and self destroy on all others: - -```js {1,3,7-10} twoslash -// @twoslash-cache: {"v":1,"hash":"97148ff2f9540e210922119197af6dbe673bf0528ddadaa3af43c40753721007","data":"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"} -import { Base, withBreakpointObserver } from '@studiometa/js-toolkit'; - -export default class MobileComponent extends withBreakpointObserver(Base) { - static config = { - name: 'MobileComponent', - options: { - activeBreakpoints: { - type: String, - default: 'xxs xs s', - }, - }, - }; -} -``` - -### Disable for the given breakpoints - -The same behaviour as before can be achieved by specifying all the other breakpoints in the `inactiveBreakpoints` property instead: - -```js {1,3,7-10} twoslash -// @twoslash-cache: {"v":1,"hash":"b5a37f3cf7648b37ab8b30c0f220de3b0cf662e3168c1da59eb1fba3aa527778","data":"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"} -import { Base, withBreakpointObserver } from '@studiometa/js-toolkit'; - -export default class MobileComponent extends withBreakpointObserver(Base) { - static config = { - name: 'MobileComponent', - options: { - inactiveBreakpoints: { - type: String, - default: 'm l xl xxl', - }, - }, - }; -} -``` - -### Extend existing components - -You can add the `BreakpointObserver` behaviour on an existing component by wrapping it with the `withBreakpointObserver` function: - -```js {1,9} twoslash -// @twoslash-cache: {"v":1,"hash":"2075a07e7999e7f58daaeaeb25905274ed608aca53b6dcffbcddb70d04f52010","data":"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"} -import { Base, withBreakpointObserver } from '@studiometa/js-toolkit'; -import { Modal } from '@studiometa/ui'; - -class App extends Base { - static config = { - name: 'App', - components: { - Modal, - ResponsiveModal: withBreakpointObserver(Modal), - }, - }; -} -``` - -The `ResponsiveModal` registered component will have the capacity to use either one of the `activeBreakpoints` and `inactiveBreakpoints` configuration options by setting the `data-option-active-breakpoints` or the `data-option-inactive-breakpoints` attribute. - -:::tip -See the [`resize` service documentation on breakpoints](/api/services/useResize.html#breakpoint) for a more comprehensive view of the potential values of the `activeBreakpoints` property. -::: diff --git a/packages/docs/api/decorators/withDrag.md b/packages/docs/api/decorators/withDrag.md deleted file mode 100644 index fe96ebb5b..000000000 --- a/packages/docs/api/decorators/withDrag.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -outline: deep ---- - -# withDrag - -Adds a `dragged(props)` hook from the [drag](/api/services/useDrag.html) service. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ab5eec626c7736214d920e7364fb4371f350790fee310d8aabb282b8c9ae394a","data":"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"} -import { Base, withDrag } from '@studiometa/js-toolkit'; - -export default class Draggable extends withDrag(Base, { - target: (instance) => instance.$el, - dampFactor: 0.5, -}) { - static config = { - name: 'Draggable', - }; - - /** - * @param {import('@studiometa/js-toolkit').DragServiceProps} props - */ - dragged(props) { - this.$el.style.transform = `translate(${props.x}px, ${props.y}px)`; - } -} -``` - -### Parameters - -- `BaseClass` (`Base`): The class to add draggable capabilities to -- `options?` (`{ target?: (instance:Base) => HTMLElement, dampFactor?: number }`): Options to choose the draggable target element and the drag dampFactor. - -### Return value - -- `Base`: A child of the given class with draggable capabilities - -## API - -### Hooks - -#### `dragged` - -The `dragged` hook runs while the user drags the target element. - -**Arguments** - -- `props` (`DragServiceProps`): the [drag service props](/api/services/useDrag.md#props) - -## Examples - -### Move the root element - -This decorator adds drag capabilities to the root element of a component. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"99cc2b12e80f11ad72f8f342d6cdd1e4b887a2b5d4a3bbeb4978daac55a9576f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ACKkUKSADKcnoIyUDhgxkYXgAwr44IheJgcBAnlCKLxgCjevM0Fj/EStGgPiIjgB+ZEA0J/GD8WzMXKkADyWFJEDAPGRXjpDMBzMkXgAkmB9k9djAscCzBZrLZ7D9xjSQk4XG48ABBKBQXhQQEhELsUYCZrMABG7A4pPgKIgvGYAmqNjAI2KQVC4Ui0TiVASSSRaUyOTyBSKJXKlWqtWY9RgjWarVg/KZtjgKSV/wN/gSllYHS6IB6fUQAEYAKxDEZjCaIAAcMzxCw8mZVy2Nqw2IC2Oz21zL5ZOZxweEIJHIM1uHkEwl4KpCFuGTmLDEQAHZBlFq+MBo25s2QPPF7ghh2kAAmTbbQF9g7n0tD6jnUdXCfUKcgFgcLh8VsGoUSABqiGNoxgwvCiLIqiMDopi2K4vuBK8ES/gkmSvCUtSBp8oyzJshyXLcDyEg4QKthATAoripKWJeBRIEmLKVg2HY3y/G2VDqu4IDarq+qhEaJr8GalrWuwtq5A6Tryq6YqBI2YRIBEUTGr6BCJMkQbZLk+SFMUpQVFUNR1A0TQtCkya4WmGbsdmub5p03SzKu/RrlWow7vWe74ngf6hO2roXlevb7EgADMxynE+I4eGO1yTvQdzfo8M5+FCMhggokJeAxvB6DlmigeYzEKlCaquNxXg+MI8nUJ6Sneqp8QaYGGTaaGekRoZ0YmfGZmtAWTm9KupZrAAbO5NZTN5B5LKegWIJe3bXrsoWIJMdaPtBL7jjciUeIwWCFWQmB8Ee5rDP4DJgE87AhMiwDmLwz28GAzA1MipSkMaIQANzmEcy7OUgpbnmFk2eRNdWIXg123aq82rODy0hf2kXDhccVvjQ+2fkdWgnRgfBvR9vBfT9QPDSDYUNluHm1tM0M+R4JMnipC2Mz2N5rZMW3PrFr57aun7GYQUBnQaC4XTA9SSzAUCHYVSK8CVdiMKYIAAAIGVGxnMG1Ia6UUGvcP4KrAmQRDsPw6hK0RvBEBA7BQB6ikoJEWA7JYTj49og1FsDi2TG5dNTeuM3C/xhrywFqyjcF3P9uefMxZcu0JcLh1e7UZB8L7yvm5b1u20YrteiAnuAt7VD5/7K4XuWlah55TezMzFdK7HINdlzq39qNKeY4LGdML7hN8HRBVGMY/gACQwKwyIABLSAAsgAMgAosMNRirwABk2JPS9AD6J/mhIZ9Urwq/NJI5OjLREi8AAPrwGv7JYxpMvLGvGP9YBAacQqngaQ+BvCaAgPYBeMBd7ugUuXH0zUAypANjpMM+lIxGRjHGBM5ljQ9DeDALIY87DiQCPZAAxAvOugdzxrmRsMem4UI54HnvmRGINSwJz7gcdG0Uh7p3fLjRWBM7BE14NvWBbo4TAmBKKFYwJMCXVKBgYYyJZFyOUTAPkQgBQfHKhqDwyBV5/AAHK8AAEowCeGQEYNt2iMH9JpCy8YF5iP8JYCAAAvK0QhUJzAshVFIAB1GA5oUiajUMKFIK8N5SLgSkVRwxuCUxLPQkOTCw6tybMLZJbMVhcJ4beamg8drxWEZnUhp1eCaKUWokuOAyHwH8GgQEXIni2EsJ9NpFNgFGJAGA7wAAqYZAADNpzAOldLGaM2pcjeDVIwLwYYaARAYAgGUXgmhgg0CxHAYSwx9kxBgF8LEtgUTtLgEIGgDpPgwLgf4Xgwp7BeMqLdCS4CnS2EqG9W5cBPY214LBcY3hNEO3YHAMobBnhdKZKSE0byF7+HMOYEx5irE2LsUQxxzjWoNHcU0zxPi/GxlsCEIJbhQnhJSJolI1jbGkHsTAFIIETrkJSJM6ZpBLCpKGukusjDty1k3G3A8XK4CdJ5V3Ms3CUaJwOKWfh20BZCJxlU7O+w85KywqEC2pArY2wYmXBqFcvY+07o5AOVNEBhTWLTLJLdWEeFrpw2VxSea8yiiqtOFT1Wj2OuIiWeqi5GqVv4WgyIwBlEsOaCpXFQFfP4GUUgTK96EG+t4zkwRWCLIgHAIoHwVafFBRC05LF4HWpLGFUsjNHW1jlWK4WtAZWljlb3EpiByxrDKaqv1H4s5VxzqQbVRhdUhH1YaxpCAEGmsru9C1pcrX11teeJa9akA5Jhi6zubq20ev7OWTa3r+a+uxgOpZwaJ2hunf4DAUaY1xrfAmjwQyBAprTfYccpJDl5oLQRYtKIvlW3LQqWqK6wrngdcKkGzqQAYFbe2lanaxq80LAyWAeBVb2BxF4LEfkQgYWeJoSwvAADk2ssE9X1sGdBekyMAPMHQCteobHMDKKwewqURDnWGJlCEIgCOwgkHwR6nwya7Otk6G6d08pH3E89VmyIyO8ZgGRigx8jiMfEykUZx9eDDN4JredpHgDYcYBRnW2DghoI6kUMjptC4GuLgxI4iylb6eGSkY+Ud5gK3zqJ/TQHIVz2Rfk1pVypWkb0BMq5NyYCMFnsAfOEajhYFoFiJLKWMBpdoNwMZADnpHABk4PWSBQDyBGAWzkeBMggCOEcIAA==="} -import { Base, withDrag } from '@studiometa/js-toolkit'; - -export default class Draggable extends withDrag(Base) { - static config = { - name: 'Draggable', - }; - - /** - * @param {import('@studiometa/js-toolkit').DragServiceProps} props - */ - dragged(props) { - this.$el.style.transform = `translate(${props.x}px, ${props.y}px)`; - } -} -``` - -:::tip -We recommend using the [`domScheduler` utility](/utils/domScheduler.md) to update the root element position, see the [`Draggable`](https://github.com/studiometa/ui/blob/master/packages/ui/Draggable/Draggable.ts) component source for more details. -::: - -### Move a ref element - -```js {4,8,14-16} twoslash -// @twoslash-cache: {"v":1,"hash":"4f56ed367db5e185b238215f398c5d91b27cf48c5274d964579c4b037b20ca0a","data":"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="} -import { Base, withDrag } from '@studiometa/js-toolkit'; - -export default class Draggable extends withDrag(Base, { - target: (instance) => instance.$refs.draggbale, -}) { - static config = { - name: 'Draggable', - refs: ['draggable'], - }; - - /** - * @param {import('@studiometa/js-toolkit').DragServiceProps} props - */ - dragged(props) { - this.$refs.draggable.style.transform = `translate(${props.x}px, ${props.y}px)`; - } -} -``` - -::: tip -You can use the [`transform(element, transforms)` function](/utils/css/transform.md) to apply transform to an element. -::: diff --git a/packages/docs/api/decorators/withExtraConfig.md b/packages/docs/api/decorators/withExtraConfig.md deleted file mode 100644 index 06b9ad808..000000000 --- a/packages/docs/api/decorators/withExtraConfig.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -outline: deep ---- - -# withExtraConfig - -Creates variants of an existing class by merging in extra configuration. - -## Usage - -```js -import { withExtraConfig } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -export default withExtraConfig(Component, { log: true }); -``` - -### Parameters - -- `BaseClass` (`Base`): The class to add extra configuration to. -- `config` (`BaseConfig`): The extra config to merge with the existing one, see [Configuration](/api/configuration.html) for more details - -### Return value - -- `Base`: A child class of the given class with the merge configuration - -## Examples - -### Add new refs - -This decorator adds a new ref to an existing component. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"0c537c1ec299f48ae83db32c2fa19a689da001c6a3ac0c780aea0f66a4a3d3c2","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AstDYAeACq86NMFBEAhLjAAKpCFhEBeXqrgatOgHwAdMOwC2WCKTRiJrSiCgR+CRCHFQ2AoTg4ADpXNGYAcy9kZBAOMABrV3w0NB1EAHoMgFd2YLg0bKh2CGsYcODYIgz+UrswGDA0OAzfNgyQAF1OqgLmByQATipWRoi0fCQAVipw0gjyvDaXEfYGpAAGKn58fuZ+GnJEQYBfCnRsXG9CEnJZ+SY2Th5eADNssAOSsF4Ad3YJgBReikZgAYQgYFe7AikgAynJ6I0lAY1KZGIYYGDAnBELxMDgIK9UUYKAJIdCInj1P00JxWJJMRCoTDTGTtHTIXAAPx42AwLBleYwYIAeSwnLAPDxmIAIjBaqC0PZGWoAJJNMivfYwMlwixWWz2Rz/IEg8EUmGudyePDAhQoiYwcksiLZJXfXhE3jMH50dgFNYRALCUKzSLRWLxJJUFJpXFZABWcAAtMqIKwEgD8oViqVysxKjBqswsOwMrBFcxlaQWqb8PbQczKcEUtYXN1enMGIgpjM4mMJkgAIz9uYLHsgeuNi2u1zxK7D7a7UEHMhDM4XHB4G7r+70R4cLh8afm5sw1VGS/GbRwUzopk4vEEmDezFk2qu6m0+nX88RNkvQlb4eT5GABSFBYxWArluBlNR5SrGtrw1Q5tX4XUSRga9NFve9LBsOwHD+AEGzPS0ImtDwvBAe1kREJ0XUpd1q09b1fURAM6TAYNBFDMIIyQGI4jWGMCFSdIk1TdNM2zAoihKMoKiqDJS3LSt7Grew61Imd/1bNB2y6HoQD6AZEGHAAmLYBx4ocLLHfoJzwU80CbCj5zWK4AGZlz2NcjlHTdqEuHdiD3agHm8FgjxePigicPwGVkeR6Kw3CdF4fRMQyu8CKNYjlio21vGWEMgjDahBJQKNROSCSExyPJ5LzJTCxU2ojQaJoWmWDpO1M7sR28gA2EZB0mXtw2FScitWdZEF8kAdn8w4kG84dgpfMLbjCKKQEYLATDITA+FIGBXlA3gClIINkE6XgAB9eA+WBoQaKBXDMnthwAFn7UY7Mm37puc7xzsuzyFqWlbVzWxBfo2E4TNqWA8EI41eGARL/BON4tGsXgAHIAAEWsUgsmtaZwiYAbnyojHGx1z3NdXg8deAnibJ3MKfCDJkzTCAMyzNA6csSw6EZ3g3uYbJWBNXTyNdRhljJbGIdxXhkCJ5UIgiUYiYek5uFp1w2qQUBUqlb48GTEAThOIA=="} -import { Modal } from '@studiometa/ui/Modal'; -import { withExtraConfig } from '@studiometa/js-toolkit'; - -export default withExtraConfig(Modal, { refs: ['toggle'] }); -``` - -### Change default options - -Components can define default values for their options, this decorator can be used to change them without the hassle of re-writing the whole configuration. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"18422e655d001c5caee1d10d33a8e7d2ab3c9e18a033eb70f8b6441e31e5fd8a","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AstDYAeACq86NMFBEAhLjAAKpCFhEBeXqrgatOgHwAdMOwC2WCKTRiJrSiCgR+CRCHFQ2AoTg4ADpXNGYAcy9kZBAOMABrV3w0NB1EAHoMgFd2YLg0bKh2CGsYcODYIgz+UrswGDA0OAzfNgyQAF1OqgLmByQATipWRoi0fCQAVipw0gjyvDaXEfYGpAAGKn58fuZ+GnJEQYBfCnRsXG9CEnJZ+TwbOwdeAHd2CYBRelJmAGEIGAAGbsCKuPoDRBTGZxMYTJAARhhcwWDG87y+P3+gJBYNW60QCO2u1+BzIQzOFxweBu5Pu9Eetnsjgx+G+aF+AOBoPBczRCIATFtYWBxpNCcj+qi8Kz2ZycTz8VcAMzEvZko5IynUS404h06gPbwsDhcPiCYROPysGRyeiNJQGNSabR6J1GF1mSxPZlWtiudyeJbOALCUKzSLRWLxJJUFJpOCZHJ5ApFEplCpVGp1QGNZqtZwdbq9PmI5UANhGcPFkvmi28y1c8RVatJhyQyoR2sw1Ou+ruhoZxqwJjImD42jQJTAid4wEsvEXvAKGFGs/nYCXW94sCBzGyrDQiF4jD4ulMc5OAG4F0vr5YTrz+vyACwAdirovhiA/1Cl9ZASdpwQJUkBfVt9nbRABW7XU+1uMIjRARgR20McMD4Fc12PDct13fdD2PU9eHPS8bzAR8S2fRFywFT8xSQSs/zrNEQCw+AmzWK4YR2dUoJfWDewIftEKHZDUJwBwMJ3GA9wPI8TzPC9gEotjS0JN8AA56O/X8UQA/D5M4gkmN4ttyUQcsTh6EBalgRlnkcYA/VYXgTl4IEtGsXgAHIAAFU2KUpymYZMC2tHzyJ9F5nNlLEuVxNyPK83yAsKIKM1CgArOAAFo0AgCBWASD5IssSw6EcmS5MPN4PjZeKFQiRhlgoOdbyAwF11vRd2O6zdt0MwjFJIi9GGADIACpeGCWbeEmjITm4CgerclaBrOB9uCvVxMqQUB5EaOBpzwHKQBOE4gA="} -import { Modal } from '@studiometa/ui/Modal'; -import { withExtraConfig } from '@studiometa/js-toolkit'; - -export default withExtraConfig(Modal, { - options: { - styles: { - default: () => ({/* ... */}), - }, - }, -}); -``` - -### Enable debug or logging - -This decorator can be used to quickly enable debug for an external component. - -```js {9} twoslash -// @twoslash-cache: {"v":1,"hash":"7071db68244f07c73aa9eb35e4d093f85934ed73bedbfe2697886860c7f212fd","data":"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"} -import { Base, withExtraConfig } from '@studiometa/js-toolkit'; -import { Modal } from '@studiometa/ui/Modal'; - -class App extends Base { - static config = { - name: 'App', - components: { - Modal: withExtraConfig(Modal, { debug: true }), - }, - }; -} -``` - -### Pass option to the merge function - -This decorator uses [`deepmerge`](https://github.com/TehShrike/deepmerge) to merge the `config` properties, you can pass [options](https://github.com/TehShrike/deepmerge#options) to it with the third parameter: - -```js {7} twoslash -// @twoslash-cache: {"v":1,"hash":"15534f369b7dc0e1e7fe0b0a62147f64373fbc2f23cca699bcb7a8fe30b2fd42","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAO7s0+AKL1SzAMKT+7AOYAeAMq86NMFDi8AQlxgA+RpbgxVrLnES9MOCPwtWKvERrabgAKzKTibDr2joFa1n4QWOKScAD8brAwWAC2ZFowAHQA8kkSYDxu0QAiMAEqaBCkUVYAkmA0pPzMIjB+etYAOmDs2ViNaDJyispqsZQgUBAiCIggSsam7vgw/rGC9WW8XrzMUnTscOJgWv7OcHAF82jMWivIyCAcYADW8/hoaCwrgA9MCAFZwAC0DQgrG+cgKl0EUAkuWeBVgRGBzCw7GBsDqzAapDgwNk8nWKnUYE0WgK/2yrBAAF1mVRLmEGIgAJxUVgwa7yJAARgArFRnqR8lyQOTpmgqXM+ewwLhEAAGKgifBhbodJDcgC+FHQ2DVBGIZCeRiYbE4PFuLl4AFloJEACqGegCzbRYKkRJmAC8Pgc/sDg2Go3GLrdTKoi2WeFdUDYjvujwlLzeHy+vyo/0BIOBgnYiLQyNRMHRmOBAWjqvapJTbGBLLZIA54SQADYAOx8gVaIWIcXUMLS5Nx+ZfNXCrU6lRiK0842mnB4QgkcgSm2rFgcLh8OWU2Y07TNByXmDhoHWWzRJwuNweGDHaJ+ALnrQhTmcVjXtStLxEcpQpOkvCZDkeSFCUyTlNwlRWDUhLEtebQdF0PR+NE163nA95DCMYzhJMFIzEB2jzImKxrN6JhmPIOxfrS+xEocxynF6FxXDcIh3A8TzZkg7yfCq+YEACQKIKCELQhAsLwmg5aVhAaLMBiMBYjieIEo0RKNKSJ4UbE9JoIy7bspKXLCgATJqnxDiOYpZlK1Z4MZCpnrSM4qmqADMC66su5CIGKa7UGam6Wju1B7iAB72nw/FOi2AGekYPpmH6AZArwIY5RGRHRqRaXUUstFpemglZq8Im5uJfxScWpYqSianVhptb1mMjZoM2cZtqyVmciK/m8o5gr4EgY6SpOqxlcqqpIAALEFS76ogtkRa+0Xbta9BMFguVkJgfCkDA/BpG4lykCqWjIMyvAAD68MIsCaKqUDzF2Nmimtk3DtNiAA3N7mrBdV2+ctiA9uteoritO1RasW5Wruh37mihBQHwUG5G5xRgeUBRhCoGDOjBqSMGDaBuKcGCPX4cAQPsPT02AjNsqB8HXZBMBZAT+QFAAgqQ5OU25cFlBUJyc49P3WSKAAcY78lNIoObTeBk8wFMwdDaoTdqwWbUjJqRRuqMxQdMqMFgupomQfC0xzXOK6NYXcnDgMjj72urNrS1G/DIUiqKyNWxa+0Y3bDsqE7pB8CzbMwG7Csjd2W3qgD6tA72rnzZ2rOkD0hsGqHm22f5kfmmjsU0JjCXx8wid8IkvMZAL0GE2LEswdLKQvW9JiXX532Z1ytl2YOGuIAO45uTKHcy+XPKVyu/nCoaHYBLAeDETGwBkfKirfrwhoCAG2S8AA5AAAki7XqeCUIwnCci3wA3MVJETMfVVL78GvnfR+FZn6dRLHiNK38hhDDoH/fmXRBCsAmJ5M+tJGBDF4LGVMrAKDYN4MAQhODIauF4MgW+DQtBaH5LfNkhDjSEOIVIHBJxxZ60lvkGmE5qzMxLthHmMs+AsLYWw4EAAqXgBQZG8AkcCEhF8CGsKYWAbgX95jqSQKATK5Qyh4AhCAQ0hogA==="} -import { withExtraConfig } from '@studiometa/js-toolkit'; -import { Modal } from '@studiometa/ui/Modal'; - -export default withExtraConfig( - Modal, - { - refs: ['toggle'], - }, - { - arrayMerge(target, source, options) { - /* ... */ - }, - }, -); -``` diff --git a/packages/docs/api/decorators/withFreezedOptions.md b/packages/docs/api/decorators/withFreezedOptions.md deleted file mode 100644 index 0eb64a3ae..000000000 --- a/packages/docs/api/decorators/withFreezedOptions.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -outline: deep ---- - -# withFreezedOptions - -Makes the `$options` property read-only. This improves performance when you access options in the [`ticked` service method](/api/methods-hooks-services.html#ticked). - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"d162b66715653d4fd1863bfd8e99b147b29beaabaa02811eddc136182f1fe966","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAO7s0+AGKkYMAF4woAeSzjJcADwBlXnRpgocXgCEuMAHyMbcGAGFWXOIl6YcEftdtuLycYABEYEQhSZjQo/QB1OUVlNQ1tXTA4AEkwGlJ+ZhEYCl5DOwAdMHYAWywotBkkpRV1LR0JTMoQKAgRBEQQZtTvfBheAAMAEgh2vXHeLFIZskxvCF4axeIxnHyo6uZRGAA6LrRmAHN+5GQQDjAAay78NDQsTwB6D4ArOABaWIQVgPOTHOBoQRQCTVGDnY6wIgfZhYdgfWCRaKxUhwD6yeRDVrpDpwY4vaqsEAAXUpVHBzFIDEQAE4qKwYGALvIkABGAAcVHOpAusLweOSLTSs06rPYYFwiAADFQRPh6YU8kgmQBfCjobDygjbcgC0xMNicHi8ETuOCWQwcWCkfQAFRM9HZFgCzgACkt3rwALxemC+mZwCpVWr1UoOshdHp9PD29iOq02klnS7XW73J5UF5vT4fQTsMEQqEQGFwhEfSJRuW5HHJx0fKkUW6xHpdZjc7kYKk0kB0hlIADsSru7M5+CQADYBfThYyQM24zK5TzlaromI48ydXqcHhCCRjdRTQNrR4YymyIl8SlCVKELTBYzuQAmAAsrKnXMQ34LkKIoDKupD3uKqRtBkL53LK8oAMxbmqu7kAB3IHtQ+rHkaZwXiALAcFwfBigSkowfoISUbYobvHYDghG4HheD4MB+MGQTBuEGIxHEEFkdBxI5HkBRFCUVEhLR4YRps0akY+5HEvGvT9IMCkjGMUwzDB8xbLsqyxBstRLCQCxkPw+yHEUpwLlcSA3HBjzPK87yIF8vwAhAQIgmgZaQtCsLMPCMCIsiqLolEvHYriTQKYJeikmg5IDq+9LvgArKOv4cv+fJAUuoqxRK8XSo5iHITuGqIOlX6YaxOGnnh9BmkRlpXraN6Oi6bpmJ6kl+pYQb9WGMlRgynVrt0KlJrGpBph4NnUFm9k5rKeYEC5RYln5FZVkFNZ1nUDZoE2s2tjSHbQBA3a9v21KpSOiDcqOLKTjlM6IPOS3AcuYFdPc8o/iAKooVVH5aoOkSwHgsnjcAjQPsVRJ6LwWoCEs1S8AA5AAAuC/mVoFPz/ICwJyFjADclSww08Ngaj6OVtjePlgF5zFuwlOVJUdB1ONsAFIIrANO1dqzfxcXI5kPUepY8lI8+jCVLwE2kBQlR8MAWpdHtSCgKY7JwB0eC/CAWpakAA="} -import { withFreezedOptions } from '@studiometa/js-toolkit'; -import { Slider } from '@studiometa/ui'; - -export default class SliderWithFreezedOptions extends withFreezedOptions( - Slider, -) {} -``` - -### Parameters - -- `BaseClass` (`Base`): The class to use as parent. - -### Return value - -- `Base`: A child class of the given class with the `$options` property freezed. diff --git a/packages/docs/api/decorators/withGroup.md b/packages/docs/api/decorators/withGroup.md deleted file mode 100644 index b93653c47..000000000 --- a/packages/docs/api/decorators/withGroup.md +++ /dev/null @@ -1,234 +0,0 @@ ---- -outline: deep ---- - -# withGroup - -Groups components together. Use this when a component needs to be aware of its siblings, for example to create a tabs system. - -This decorator adds a `data-option-group=""` option which can be used to group components together from the DOM. An instance of a component will be present in a group, exposed with the `$group` getter, only when it is mounted. - -## Usage - -```js {3,9,15} twoslash -// @twoslash-cache: {"v":1,"hash":"f47e2977d1fd012975ac3b8f75477ec22a97ae743b48547f37f678930b5860c8","data":"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"} -import { Base, withGroup } from '@studiometa/js-toolkit'; - -class Foo extends withGroup(Base) { - static config = { - name: 'Foo', - }; -} - -class Bar extends withGroup(Base) { - static config = { - name: 'Bar', - }; - - mounted() { - console.log(this.$group); // Set [Foo, Bar] - } -} -``` - -### Parameters - -- `BaseClass` (`Base`): The class to add grouping capabilities to -- `namespace` (`string?`): An optional namespace to avoid conflicts between different group decorators, defaults to an empty string -- `options` (`WithGroupOptions?`): An optional configuration object to scope groups to a parent and/or resolve the group name dynamically, defaults to an empty object. It accepts two optional callbacks: - - `getScope` (`(instance) => object | undefined`): Resolves the scope an instance belongs to. Members are then grouped per scope identity instead of globally, so two scopes can reuse the same group name without colliding. Returning `undefined` falls back to the global (unscoped) registry. - - `getGroup` (`(instance, scope) => string`): Resolves the group name of an instance, optionally using its resolved scope. Defaults to `instance.$options.group`. - -### Return value - -- `Base`: A child class of the given class with the `group` option - -## Examples - -### Keeping `` in sync - -The group decorator can be used to keep instances of a same component in sync by dispatching updates on all instances belonging to the same group. - -In the following example, both `input[data-option-group="input"]` element seen in the `index.html` file will have their value kept in sync when it changes. The third input `input[data-option-group="other-group"]` will be left untouched. - -::: code-group - -```js {3,18-21} twoslash [Input.js] -// @twoslash-cache: {"v":1,"hash":"47e0341ce24bd5ab46b671ee78da133d5a873a39be429bb1bc8087ab6ac7816d","data":"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"} -import { Base, withGroup } from '@studiometa/js-toolkit'; - -export class SyncedInput extends withGroup(Base) { - static config = { - name: 'SyncedInput', - }; - - get value() { - return this.$el.value; - } - - set value(value) { - this.$el.value = value; - } - - onInput() { - const { value, $group } = this; - for (const instance of $group) { - if (instance === this) continue; // Skip updating itself - instance.value = value; - } - } -} -``` - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"9ba7228a83c8c8dd966914187aa6d24c186e4cb4d7a8f0719d36bcacf010b22e","data":"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"} -import { Base, createApp } from '@studiometa/js-toolkit'; -import { SyncedInput } from './SyncedInput.js'; - -class App extends Base { - static config = { - name: 'App', - components: { - SyncedInput, - }, - }; -} - -export default createApp(App); -``` - -```html [index.html] - - - - -``` - -::: - -::: tip 💡 Two-way binding with [`DataModel`](https://ui.studiometa.dev/-/components/DataModel/) - -You should use the [`DataModel` component](https://ui.studiometa.dev/-/components/DataModel/) from the [@studometa/ui package](https://ui.studiometa.dev) along its accompanying [`DataBind`](https://ui.studiometa.dev/-/components/DataBind/), [`DataComputed`](https://ui.studiometa.dev/-/components/DataComputed/) and [`DataEffect`](https://ui.studiometa.dev/-/components/DataEffect/) components if you need to add some reactivity to your existing DOM. - -::: - -### Using a namespace to avoid group collision - -When using multiple groups in the same DOM tree, it can be useful to namespace them to avoid collisions. - -In the following example, both `Tabs` and `Accordion` components use a group decorator, but they are namespaced to avoid interference if they share the same `data-option-group` attribute value. - -::: code-group - -```js {3,9,15-18} twoslash [Tabs.js] -// @twoslash-cache: {"v":1,"hash":"366be4bded3f591f0028c3db579a24bc653e5c17423c9686f1a041f7fcc52eeb","data":"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"} -import { Base, withGroup } from '@studiometa/js-toolkit'; - -export class Tabs extends withGroup(Base, 'tabs') { - static config = { - name: 'Tabs', - }; - - mounted() { - console.log('Tabs group:', this.$group); - } -} -``` - -```js {3,9,15-18} twoslash [Accordion.js] -// @twoslash-cache: {"v":1,"hash":"6cbb05e7da5333e0b9a732c45bf26bdbbfbacd91cbb0f5446ba0a976620e2c98","data":"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"} -import { Base, withGroup } from '@studiometa/js-toolkit'; - -export class Accordion extends withGroup(Base, 'accordion') { - static config = { - name: 'Accordion', - }; - - mounted() { - console.log('Accordion group:', this.$group); - } -} -``` - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"cac7484cbea186deefd4723ee6fe483ff0e6ec04a8e5e4ac083bcd94cd9f2270","data":"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"} -import { registerComponents } from '@studiometa/js-toolkit'; -import { Tabs } from './Tabs.js'; -import { Accordion } from './Accordion.js'; - -registerComponents(Tabs, Accordion); -``` - -::: - -### Scoping groups to a parent component - -By default, groups are global: every mounted instance sharing the same `data-option-group` value belongs to the same group, wherever it lives in the DOM. When you have several independent regions on a page that each reuse the same group names, use the `getScope` option to scope membership to a parent component. Two regions can then share the same group name without their members leaking into each other. - -In the following example, each `Field` is scoped to its closest `FieldSet` ancestor, so fields only sync with the other fields of the same `FieldSet`. The `FieldSet` can enumerate its own scoped groups with the `getScopedGroups` helper. - -::: code-group - -```js {3-6} twoslash [Field.js] -// @twoslash-cache: {"v":1,"hash":"ddeef07b1f931ce8074491a827a88e8bdbed2f14fa15e13f58c675540ecde7df","data":"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"} -import { Base, withGroup } from '@studiometa/js-toolkit'; - -export class Field extends withGroup(Base, 'field:', { - // Scope each field to its closest `FieldSet` ancestor. - getScope: (instance) => instance.$closest('FieldSet'), -}) { - static config = { - name: 'Field', - }; - - mounted() { - // Only fields within the same `FieldSet` are grouped together, even if - // they share the same `data-option-group` value. - console.log(this.$group); - } -} -``` - -```js {8-11} twoslash [FieldSet.js] -// @twoslash-cache: {"v":1,"hash":"f3d26f5410a3ac5e75e6e1f1388dfa85bd57ea03c56af7185da99bb600b52002","data":"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"} -import { Base, getScopedGroups } from '@studiometa/js-toolkit'; -import { Field } from './Field.js'; - -export class FieldSet extends Base { - static config = { - name: 'FieldSet', - components: { - Field, - }, - }; - - mounted() { - // Enumerate every group scoped to this `FieldSet`, keyed by - // `${namespace}${group}`. - for (const [key, members] of getScopedGroups(this)) { - console.log(key, members); - } - } -} -``` - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"fc2cad85992b0b8cbb0e1d3449dfa64726b0f0193e9ae6546c5fed9148e96b26","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvUjADm7ODVIBhCAFsskmGDQAeACq86NMFDi8AQlxiqwi0oLERSvALyXrt+47TOAfIxOpIi8hgA+vAAKpOoKMAZ+FLxgzGowAPKkAMowrDBBAPwh9uxgstwh0bFw8QCCAO7M7DRQugCSdmjMojD62PH6fn7IALp+ADpg7BrOaNJyCkqqM2DaDFRQECIIiCAASguKZLyyrBAARmysGLzdULxqEMJzzCfsJFIi6pqrOknOt14WBiaji8zgEFYRFKsl4vkBXxWawAdJRqMxZDtkMgQBwwABrNH4NBoLBwRAAegpACs4ABaXyQ/HNZGKQRQCRpLrI2BECnMLDsCn4XI4UhwCkyeRHFTfLQ6ZHEtSsEAjCg4rDMUipNFBUIi3iIn5rQ2Sbx6gGvYHVGDgyHQspwiC8Fmq9UgTXatRolJpTI5PJ6/QG322gE1QO+FzwwQ1e78AFofAKU1IhVunEyNCCUhgNG1IEgsEyCFQmFO25SLXam4QfgPJ46GD3I3yualRTdETwVEjNUgTukBiIACcVDyZSTSAAjAB2KhdUiyGDDkBSxZkZbGnRovG4RAABioInwWuYYjISBHAF8KOh+nhCCRyAvjHhppoh7wAGLsXJQHJ1gHRdhwANjHXFtFkKdEAADgXLVl1XX9/0A3dSn3adj1PbUL3IUdb3vHBH2IS9X3oJg2E4Hh5mlJY5V+PRugwAIghCZiklDf1cnyKMil4EoygqKIixqXRmNGCYphmL91xlLc2zRTZtjwA46OOU4LiuG47gbZ5AXkD5U23NB/hcK1RNtEt7XLeFXlbRjUQQzEkGxXFSkJKhiVJckqVpBkICZFk2Q5dQV2YHkYD5AUhRFVgxQlOT6LTNBFTQZUMw9M9vWPKN9VtByTS+ToHAtczCxtO0y0deFXTVDVsp9VIMmyHigxDZreHDNq8pjOMBETZNzEK9N6rXFcczzKgC2tUEaiqh1YTsqtSBrLr60eZ5m2MtsXU6Lse1VftB2HacDwAZnHKCYLnBClxXPAks3Bi1nQ1YkEukATzPPCkAPQjqAfXYnzI6g312D9Zh/P9WAAh6qBOmcACYsMgyd8CQeD0Xu5CYbhoC9w+7CfqUGdYOvfsvlgd8ZLmYBaI3WUUt4a8BBBXgAHIAAEQs5cKaXpRlWGZNAOYAbkmSGv3plDYcAlm2fUTnkQpWX8eRWlxcmSYnqZkzGDVwDuDFtEuWYJBQGMbQ4AkPNdlpEBr2vIA"} -import { registerComponent } from '@studiometa/js-toolkit'; -import { FieldSet } from './FieldSet.js'; - -registerComponent(FieldSet); -``` - -::: - -::: tip -When `getScope` returns `undefined` — for example when a `Field` is mounted outside of any `FieldSet` — the instance falls back to the global (unscoped) registry, using the same `${namespace}${group}` key. -::: - -::: warning Membership is resolved once, at mount time -Group membership is resolved a single time when the component is mounted. Changing the `group` option — or the scope returned by `getScope` — while the instance is mounted does **not** move it to another group: `$group` keeps returning the set it joined at mount. The new group is only taken into account after the instance is destroyed and mounted again. -::: diff --git a/packages/docs/api/decorators/withIntersectionObserver.md b/packages/docs/api/decorators/withIntersectionObserver.md deleted file mode 100644 index ef51aca50..000000000 --- a/packages/docs/api/decorators/withIntersectionObserver.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -outline: deep ---- - -# withIntersectionObserver - -Creates a component that runs an `intersected` hook when its root element enters the viewport. - -## Usage - -```js {1,3,11-13} twoslash -// @twoslash-cache: {"v":1,"hash":"106c1ae3d00ae4decf886eff0fa18e3459c11b3a2af04de175add89a8f2a9f47","data":"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"} -import { Base, withIntersectionObserver } from '@studiometa/js-toolkit'; - -class Component extends withIntersectionObserver(Base, { - rootMargin: '100%', -}) { - static config = { - name: 'Component', - }; - - /** - * @param {IntersectionObserverEntry[]} entries - */ - intersected(entries) { - console.log(entries); - } -} -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. -- `options` (`IntersectionObserverInit`): Options for the `IntersectionObserver` instance. - -### Return value - -- `BaseConstructor`: A child class of the given class which will trigger an `intersected` hook when visible. - -## API - -### Hooks - -#### `intersected` - -The `intersected` hook runs as the callback for the `IntersectionObserver` instance. - -**Arguments** - -- `entries` (`Array`): an array of `IntersectionObserverEntry` objects. - -:::tip -Read the [`IntersectionObserver` documentation](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver) for more informations on how to use its API. -::: - -### Instance properties - -#### `$observer` - -The `$observer` instance property holds the instance of `IntersectionObserver`. - -### Events - -#### `intersected` - -Emitted when the [`intersected`](#intersected) hook runs. - -**Parameters** - -- `entries` (`Array`): an array of `IntersectionObserverEntry` objects. - -## Examples - -### Simple usage - -```js {1,3,8-16} twoslash -// @twoslash-cache: {"v":1,"hash":"1675a955df37e03473bb65523bd5cfd7d43eb692a3d11ee72f557b79853d0407","data":"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"} -import { Base, withIntersectionObserver } from '@studiometa/js-toolkit'; - -export default class Component extends withIntersectionObserver(Base) { - static config = { - name: 'Component', - }; - - /** - * Triggered when the root element of the component is intersecting. - * @param {IntersectionObserverEntry[]} entries - */ - intersected(entries) { - if (entries[0].isIntersecting) { - this.isVisible = true; - } - } -} -``` - -### With custom options - -You can pass custom options for the `IntersectionObserver` instance by passing a second parameter to the `withIntersectionObserver` function: - -```js {3-5} twoslash -// @twoslash-cache: {"v":1,"hash":"26d74d1244e14dd649e846924d2a9df6262495b77d7fdcf5d9e590011899b0e5","data":"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"} -import { Base, withIntersectionObserver } from '@studiometa/js-toolkit'; - -export default class Component extends withIntersectionObserver(Base, { - threshold: 0.5, -}) { - static config = { - name: 'Component', - }; - - /** - * @param {IntersectionObserverEntry[]} entries - */ - intersected(entries) { - if (entries[0].isIntersecting) { - this.isVisible = true; - } - } -} -``` - -Or at the instance level in the `data-option-intersection-observer` attribute of the root element: - -```html {3-5} -
    - ... -
    -``` diff --git a/packages/docs/api/decorators/withMountOnMediaQuery.md b/packages/docs/api/decorators/withMountOnMediaQuery.md deleted file mode 100644 index 86539ce4e..000000000 --- a/packages/docs/api/decorators/withMountOnMediaQuery.md +++ /dev/null @@ -1,66 +0,0 @@ -# withMountOnMediaQuery - -Mounts and destroys a component based on a media query. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"192d1f062b9f4213150f7bcc2e527a7d3757dfa08a015c9511667a7e5726ab5b","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ALIQV5oADyYD+MEqzAAimUyBhJABlOT0EZKBzePReSReQzaYzGRheADCvjgiF4mBwECe6IovBqkPJzDAGG45K8ABEYPxbMxcqRJD9xgCgaDwZCYXCAJJgfZPXYwOkIulC/6A2ViiGcSWkDC4kzmKw2OzfX4ijVgrXQ2G6pwuNx4GX7VTvCBgYEAI1UpBIpF4sB5pD5H0CM1C4Ui0TiVASSTJaUyOTyBSKJXKlWqtWY9RgjWarQDvP5cBSqvNIMtEptGH8CUsrA6XRAPT6iAAjABWIYjMYTRAAJjbYbmCw8ZfVFfF2ury3YYFWGxAWx2e2u7Y7JzOODwhF9N3oeCNtnsROqNnnsqcLYYiAA7Lfu6NxgNh/MbyBT9Y3SMGEM56shyXbYg1XA5b03ahzh3K5yBmW4PBYDguD4cdRUrac4WxCQsNUfV8UJCQSWEclKRgalaXpK0mRZNl0S5QM+VsQUzQnTUq2lWUyHlfhFXRHD1E0PEVRYtCp2tOE8MNL8TVQi0xJ1DA7VcdwQCdMgXTQD5PW9X1/W5IsQyCcMkAiKI52jAhEmSBNslyfJCmKUoKiqGo6gaJoWhSQsg2LUsRLkq0FNrNB60bbpZhvNt+wANkfXskEHV9RxAWTJ0Cmc/3nJAAGZNmA3Z9iQTsINI6C9zgg8PCPE1P3PH8rwioqO0A4Ynz7QZqF6N88Fq79L0y1ZpiAldCoHI4mx5WBD2k+xgAo1K2Iw3VeCOZ5NEsXgAHIAAEnIzVzmAyWzkwczaAG4pONE8zz6+wnnWrb/BSXqL2KTJzvMcw6CuvT5TKVh7AW9DxN1RhzF4XgXp/Chwa2yB7EYLBSBgJ51KyZGoDKHioCySwIE0t1uE2mGwG4M6nAOpBQHkEY4A+PBMhAI4jiAA"} -import { Base, withMountOnMediaQuery } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -export default withMountOnMediaQuery( - Component, - 'not (prefers-reduced-motion)', -); -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. -- `media` (`string`): a [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_features) - -### Return value - -- `BaseConstructor`: A child class of the given class which will be mounted when the media query matches. - -## API - -This decorator does not expose a specific API. - -## Examples - -### Simple usage - -```js {1,3-6,13,17} twoslash -// @twoslash-cache: {"v":1,"hash":"acbd1404ac3ffba6e354e71aee4bc60180d0df840af387d01f78df0e25adf04e","data":"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="} -import { Base, withMountOnMediaQuery } from '@studiometa/js-toolkit'; - -export default class Component extends withMountOnMediaQuery( - Base, - 'not (prefers-reduced-motion)', -) { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$log('Accepts motion!'); - } - - destroyed() { - this.$log('User enabled reduced motion after mount.'); - } -} -``` - -### With data option - -```html {3} -
    - ... -
    -``` diff --git a/packages/docs/api/decorators/withMountWhenInView.md b/packages/docs/api/decorators/withMountWhenInView.md deleted file mode 100644 index a114227f7..000000000 --- a/packages/docs/api/decorators/withMountWhenInView.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -outline: deep ---- - -# withMountWhenInView - -Mounts and destroys a component based on its visibility in the viewport. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"fd95cccbe71b0e19e802a193c915e2de76c2b4a2dafe305629c3965c1924fc96","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ALIQV5oADq+BGAEkwAA1dgwL6SADKcnoIyUDm8ei8ki8hm0xmMjC8AGFfHBELxMDgIE90RReLAnswyqw0AB5LBoD5wAD85Mh+1U7wgYFZACNVKQSKRIUVuOSvAARGD8WzMXKkSTA34AoGgiHQ2FfflkRn8GB0hF0rXjHVgEFgsCQmFw3EmcxWGx2b7awF2vWOg1wpwuNx4Y2kQWc4ViiVS+nK1VRsCBGahcKRaJxKgJJJktKZHJ5ApFErlSrVWrMeowRrNVqwFWkNW2OApH42332/XOr7+BKWVgdLogHp9RAARgArEMRmMJhPBtRevMGB52/9O/6nYbluwwKsNiAtjs9tcJ5OTmccHhCFKbvQ8B7bPYidUbPu7U5R6uAOzTqKzuMAypnMCweK+1jCiMDBDHuqzjps2xNqeBw/pe1DnDeVzkDMtweCwHBcHw662l2AY9tiEiUaorr4oSEgksI5KUjA1K0vGjLMmyHJcryvDhpGHwxmQUoymgcrokqjbNhq1obrqDrbnC4amua6LUeomh4laPoKd2hq0e6kFeiRm6KYGXzBq47ggAJypJsJkpkPG0lJimS5hEgERRHuWYEIkyT5tkuT5IUxSlBUVQ1HUDRNC0KQNomLZtrpfrmT2fZoAOQ7dLMq7jgATNMAGjEBC4gSueCmXp5E7rB+5IAAzIhJ77EgU7oSxWF3rhD4eE+XoQe+0Ffnl7WTMVwylfOi6zJV4FvlBn71aszVHkhuxtYgjUXqcGHXh4t7XL1q4gIwWBaWQmB8HZQoiuKIlkGJ/jjKQ8CEKwUB8WAZSWKKzkAD68D9f1kMg7S8EDrwMnBUCjb0+WTj+M7TcBS6gadr3vfkcMrU1LXIVtkwABxHMOKqwI+xn2MA7HVWl+lwrwRzPJoli8AA5AAAhF5bRcwGTBUWYUcwA3EZnovotH72E8bOc/4KRDUtxSZGL5jmHQkscUyLLeh2NVKV8jDKzLdK01jcAfVA5LIBsvDjhDRzcKLTj80goDyCMcAfHgmQgEcRxAA==="} -import { Base, withMountWhenInView } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -export default withMountWhenInView(Component, { threshold: [0, 1] }); -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. -- `options` (`IntersectionObserverInit`): Options for the `IntersectionObserver` instance. - -### Return value - -- `BaseConstructor`: A child class of the given class which will be mounted when visible and destroyed when invisible. - -## API - -This decorator does not expose a specific API. - -## Examples - -### Simple usage - -```js {1,3,10,14} twoslash -// @twoslash-cache: {"v":1,"hash":"aa2a3918495f58186271a078c09b6e498aaab22ceb1f07b8a227d31683a7a6c7","data":"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"} -import { Base, withMountWhenInView } from '@studiometa/js-toolkit'; - -export default class Component extends withMountWhenInView(Base) { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$log('I am visible!'); - } - - destroyed() { - this.$log('I am no longer visible.'); - } -} -``` - -### With custom options - -You can pass custom options for the `IntersectionObserver` instance by passing a second parameter to the `withMountWhenInView` function: - -```js {1,3-5} twoslash -// @twoslash-cache: {"v":1,"hash":"f80c9503790496bfd1d06f3bb2c028acffe6e11143d49afcc2effdd05c94aa52","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ALIQV5oADq+BGAEkwAA1dgwL6SADKcnoIyUDm8ei8ki8hm0xmMjC8AGFfHBELxMDgIE90RReLAnswyqw0AB5LBoD5wAD85Mh+1U7wgYFZACNVKQSKRIUVuOSvAARGD8WzMXKkSTA34AoGgiHQ2FfflkRn8GB0hF0rXjHVgEFgsCQmFw3EmcxWGx2b7awF2vWOg1wpwuNx4Y2kQWc4ViiVS+nK1VRsCBGahcKRaJxKgJJJktKZHJ5ApFErlSrVWrMeowRrNVqwFWkNW2OApH42332/XOr7+BKWVgdLogHp9RAARgArEMRmMJhPBtRevMGB52/9O/6nYbluwwKsNiAtjs9tcJ5OTmccHhCFKbvQ8IJhLwidUbPu7U5R6v+ofhqNxgGVM5gWDxX2sYURgYIY91WAAmTZtibU8Djg8dL2oc4byucgZluDwWA4Lg+HXW0uwDHtsQkKjVFdfFCQkElhHJSkYGpWl40ZZk2Q5LleV4cNIw+GMyClGU0DldElUbZsNWtDddQdbc4XDU1zXRGj1E0PErR9RTu0NOj3Qgr1SM3JTAy+YNXHcEBBOVJMRMlMh4xkpMUyXMIkAiKI9yzAhEmSfNslyfJCmKUoKiqGo6gaJoWhSBtExbNs9L9Cyez7NAByHbpZlXcc1gADhnAD53HRdZhXPAzP0iidxg/ckAQo8kN2fYkAAZmOU5MOvDxb2uPCHwI+5iJ8Z8sVkeRUWUAxtN0dEjIsEz7CWKgQ1srwJr8Dzgi8lAMz8+JArzDIQqLcLSyiitYpreLWlykd8qQcc4JKqJZ0AxBpiXEDV08CRdyaxAWuPZCOsQSceqvC5Btw6h8JARgsG0shMD4eyhRFcVRLIcT/HGUh4EIVgoH4sAyksUUXIAH14SnqbIZB2l4enXgZWCoC/F6J06j7/znIC/uqjwiZJ/Juca1ZOsQk9IbgjDWOwu9hoBlG0bsDA+HA98oP8FUwCedgQnJYBzF4S2GeYGpyVKUg9xCABucwjh53oCoANgFr75094DRaPYVjZCYHVmnVr5bPGG+rhnD73V1GtHR7Xrdt3h7cd92x3HIrZc+sqpgD0DwBt3BpaQf3I4hs9JiVrCBvjtWmBiwgoB1t9ILtfxLE7GAoEYSSiAgdgpecGy8DI/veEICAYj2tNvKO2ITtzVJzsLMKS0i8sYqrOK6xSVvoGyWeYmyDgnmVDBBBgLKBwAYl7oF+6e79msK0qhcQAB2YuAefnaV+FdDhyxrqheu/VLiq0RiNZGSccBaz4FNZECg0Q4gWrwTE80jDGH8AAElYBAU2vBGD+HIcuMkvBXgxEgF8MALM+A6GMLwYeo9rKhg8AiSwbBWAzxgKwRBFIIC8CISEDO5QnhPAXgdHymZV5BQ3qFYsEUyzRUrNWWsCU9w9DeDALIx8lD31YA/MRWRDYKAYJ0PKHtmqdXHF/b6v0qol0IcQsOr1Dzg3atHSBccYE0DgYwQxHcIIfmKLAe2EAMD90HuSNhY9Np4CVFEmJUAZ55HnkEReh1fIr2zKddeBZlFXR3uou6WjWiGNPpki+7Ar78BvsMYxD9IloE0Gkt+vM4KewcQXb+lVlwlzaR04BeTVjjnzt4lCzU/EqyGrAxOmsMYaWmiiRQc1aKYOwVs3BBCxHkjIRQuYVCaF0IYe0JhLCEkcNstw3h/DBEuVyKI4hEiyhSJkemPJ/kcyKOKZdbeajbr73uofHRwQ9EGNqG3AI/YTFmIsVBLptjQZFV+oLJx/88BuNDiA8cv1pmQ2OMOFUsA8AelsPYYAHFarpQMnCXgRxniaEsLwAA5AAATKSCpRgK0DspdmAcwdBPT2AZEyFkO0RC6y7vYGaGzvQdjqspL4DFVB0nNp8Ck+BiZwFJlAckax/DTldnwLVlseicn4AIYOJssG8AtVbMAZdyTstleE9lFALZMqFT6wBNAB7mp9ZbcY7AAi4sYOy8EvAbasPDewUUwwACE7LuBCstkccwPqRnRNicG7Vob8Dhv2cQqNMa42QFeaMFyRAE1JrvmmjNTLXZOD3kgUACq4AfDwJkEARwjhAA"} -import { Base, withMountWhenInView } from '@studiometa/js-toolkit'; - -export default class Component extends withMountWhenInView(Base, { - threshold: 0.5, -}) { - static config = { - name: 'Component', - }; - - mounted() { - this.$log('I am visible!'); - } - - destroyed() { - this.$log('I am no longer visible.'); - } -} -``` - -Or at the instance level in the `data-option-intersection-observer` attribute of the root element: - -```html {3-5} -
    - ... -
    -``` diff --git a/packages/docs/api/decorators/withMountWhenPrefersMotion.md b/packages/docs/api/decorators/withMountWhenPrefersMotion.md deleted file mode 100644 index 37eaa0bb2..000000000 --- a/packages/docs/api/decorators/withMountWhenPrefersMotion.md +++ /dev/null @@ -1,49 +0,0 @@ -# withMountWhenPrefersMotion - -Mounts and destroys a component based on the `(prefers-reduced-motion)` media query. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"03ec61b2e13211f88098ad1a27a061443fe1bb9b39377e3bc91d5b032ca53013","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ALIQV5oADq+BGGhgTzIcABaA+kgAynJ6CMlA5vHovJIvIZtMZjIwvABhXxwRC8TA4CBPdHccleAAiMH4tmYuVI2IkAEkwPsnrsYBReAizBZrLZ7D9xgCgaDwaRIdDYR8gqFwpFonEqAkkmS0pkcnkCkUSuVKtVasx6jBGs1WrAWaQ2bY4Ckpf9Aby5WAIVDSDCIHCIGB/AlLKwOl0QD0+ogAIwAViGIzGE0QACYAGwzXrzBged0yr1gn0Kv0BoNgZbsMCrDYgLY7PbXeMJk5nHB4QgkcgzW4eKw2Oy8InVGy13lOGP5gAc6eTo3GAxzcwWHlH4onDCGNdWcc22ydzYOAHZ29Rzl2rr3qP2QCwOFw+IXPSCS76lYH4VicZo8QTiVJclKRgalaXpCQmUdZ0OS8Hk+QFIUfwMP8TFFQcJW+X4izfeVFX9ZVg1VMIkAiKIay1AhEmSfVslyfJCmKUoKiqGo6gaJoWhSB1WXZV0X1ld8y0/StQzQcNI26WZ8zjABmfcohTJcM2zahczXEABOLPDy0Iqsd1rJBZIPJt9iQRNzxAq8exueg8Aw4cN3HEZt2jaTzITGcF1TZc1NXfMQCc4MXOrQzEGMhtD12MzEEmdMjijFlYHs8Vh2AdEhS03DS3wisPl4I5nk0SxeAAcgAAWY802OYDI6KNRjSoAbnMBz7CCrciuqMr/BSDqXP8TJmvMcw6CHexYH5MpWElbDX29D8CK/YNGH63luCapwaqQUB5BGOAVQ8TIQCOI4gA=="} -import { Base, withMountWhenPrefersMotion } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -export default withMountWhenPrefersMotion(Component); -``` - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. - -### Return value - -- `BaseConstructor`: A child class of the given class which will be mounted when the media query matches. - -## API - -This decorator does not expose a specific API. - -## Examples - -### Simple usage - -```js {1,3,10,14} twoslash -// @twoslash-cache: {"v":1,"hash":"569ecc984c9296862272806ac214e87563b7c51fcf9c49874ff0185dc11a85ad","data":"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="} -import { Base, withMountWhenPrefersMotion } from '@studiometa/js-toolkit'; - -export default class Component extends withMountWhenPrefersMotion(Base) { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$log('Accepts motion!'); - } - - destroyed() { - this.$log('User enabled reduced motion after mount.'); - } -} -``` diff --git a/packages/docs/api/decorators/withMutation.md b/packages/docs/api/decorators/withMutation.md deleted file mode 100644 index 866bc243c..000000000 --- a/packages/docs/api/decorators/withMutation.md +++ /dev/null @@ -1,75 +0,0 @@ -# withMutation - -Adds a `mutated(props)` hook managed by the [mutation](/api/services/useMutation.html) service. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"df67229456110ebce63a37e3713ea7002093c9484259c62322ed2bb2a125b320","data":"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"} -import { Base, withMutation } from '@studiometa/js-toolkit'; - -export default class Component extends withMutation(Base, { - target: (instance) => instance.$el, -}) { - static config = { - name: 'Component', - }; - - /** - * @param {MutationRecord[]} props - */ - mutated(props) { - for (const mutation of props.mutations) { - console.log(mutation); // MutationRecord - } - } -} -``` - -### Parameters - -- `BaseClass` (`Base`): the class to add mutation observation to -- `options?` (`{ target?: (instance:Base) => Node } & MutationObserverInit`): define which element should be observed (defaults to the component's root element) and any options for the mutation observer - -### Return value - -- `Base`: a new class extending the given class with mutation observability enabled - -## API - -### Hooks - -#### `mutated` - -The `mutated` hook runs when a DOM mutation occurs on the target. - -**Arguments** - -- `props` (`MutationServiceProps`): the [mutation service props](/api/services/useMutation.md#props) - -## Examples - -### Update a component when its children have changed - -This decorator can be used to update a component when its inner HTML has changed to rebind refs and child components. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ddc46319b65eabf76758c9cb6744a01364a9fead3a8e6268f9622c2f1a2120e4","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4ALJlYJoD6SADKcnoIyUDhgxkYXgAwr44IheJgcBAnjCKLxgGjevM0Dj/CStMCIGAREcAPyogFAj4AERg/FszFypAA8lhyZTuKivMzWaR2bZJF4AJJgfZPXYwHGgswWay2ew/cb09kfJwuNx4ACCUCgvGYvEsgK1FN4EAARqpSCRSGiICaBNUbGARsUgqFwpFonEqAkkii0pkcnkCkUSuVKtVasx6jBGs1WrBhaLSHAUur/hbef4EpZWB0uiAen1EABGACsQxGYwm1YATDMCQsPLnNbzluxPUgNiAtjs9tdqzWTmccHhCI6bvQ8IJhLwEe6KV6nBWGIgABwAZnro3GAzbcw7IFXKs90t7/cQraH2xFo4Ozark+o5xnV3IM1uHhYDguD4Lt8xBLxxQMTRtGMOFEWRVF0RgTFsVxfEzyJXgSX8MkPipWleG7JkWTZDluV5HgBQkIVSLFSVpTIWV+HlGFINUQwYKVKwbDsb5fiIikdVcdwQENY1TXNBkrVte1HWdV1WSvL1AjbMIkAiKI+0DAhEmSMNslyfJCmKUoKiqGo6gaJoWhSdNaKzHN+LAilCzQYtS26WZtyrNYq0PRskCrB9ZkJPBQKksBb1WB9h2ffYkD3Y5Tk/acPFna4/wXAD7mAnxlwg2R5ChZQoKMXg9C8DiTHMbjVRhIS9Q8Lw8r8FTqF9dT/S0+JdNDDIDMjYyYzM+NLOTazWg88svMCqtpiiBtj0QeaQvPJYhj7aLNifXZ4sQGtmw/JDvznTLtxARgsGgshMD4ASwE5O0yEdKVoy2dhWCgAAZdhSgIm1IxgZhPgAH14V5YCeTaoAakTQVqeS0FIMpvHYLFJMtSlEfbNAAHIRHez7SBGE1ifkm1vBk56YCgNqt0C5t5uGI8m0GdqMMXfAPu+36GA2u8D0fEc9sO5LjrSn953Oy7rrsDA7uch6nodMhXpMsobSRmAYH+wHgd4MGIZgKHPRhqhdThhHcjRZHUfRxWRGtyB7HSMpSnQwkcRtQETVYOAXVWvGRFgOBmMUYG0BEXpvGtinrWVkhac3Gbq0mQXmYCxAAHZT1Cjw4A1rXcH51Z5ti3ax1FqcLnS39qH/C6rq0G75ZXNdr2KVkwChkJUWAcxeEH3gwGYGpUVKUg+xCABucwjmT3pvKzh8M6WgA2XPzy7nuoqQDehbisckurk6MvrrLG9l27h9HmBx6RqeF8rKsdxzhaWamTfzpHmpd+z7bhZjkmEdL8EtTrn2lhZQgUA+CXg9MpDGNAoAyyMHSRWAAlEipAoDIHaPyXgRAIDsDNu1NSKBIhYB2JYJwTdtBTXpveNe6dFpNjfoHPAiCaZ/yrILcuL4kBVxSjXSWZ0mCUJFBZMgfBaEokIhgrBOD2g+jIRpcRo8aHQQQJ0Tyi8BFZz8u/TOdZ2Z5xADI7hvCdr8OrGsEBqVLjgJoBfRgUDoB8AACRlCwFAdkMBGD4MMJYX6Uhxi/WMLDPAABVbxvi0T4FRpSYIbxvCEygMTMAbVggqK6rEHqIZUj9QjEZaMpk4wWUTFZVMKQ+w9GSVkVxShXLFgAMReJ8TQehKdmw7jZqvVhX88CeJiR0kugUy5WL2scMsrJYB4FqrxPEXgcThUxrwI4zxNCWF4LjAAAqU8yCZCmGSjHjWeYBzB0B4vYSGzAyisHsEuPwbclLSghAoaEKzeTwgkDifunwBBc0+j9UoiFbYUAHrwAumtiZ3xtijcFYAjh8D+YPHowJ+Bum7uwEI5VcQQsHj/WFuM4HrmlLjBFg8jhnIhSkAAVLS/FtLeA7LUVs4A91MHCkUesmRjKUgQs4cgmRyL8VxN+v4IZ7S/HcDOZSueThylIFAEVSk2oPCZBAEcI4QA"} -import { Base, withMutation } from '@studiometa/js-toolkit'; - -export default class Component extends withMutation(Base, { - childList: true, - subtree: true, -}) { - static config = { - name: 'Component', - }; - - /** - * @param {MutationRecord[]} props - */ - mutated(props) { - this.$update(); - } -} -``` diff --git a/packages/docs/api/decorators/withRelativePointer.md b/packages/docs/api/decorators/withRelativePointer.md deleted file mode 100644 index 453922c93..000000000 --- a/packages/docs/api/decorators/withRelativePointer.md +++ /dev/null @@ -1,72 +0,0 @@ -# withRelativePointer - -Adds a `movedrelative(props)` hook from the [pointer](/api/services/usePointer.html) service, with props relative to the component's root element `$el`. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"e33d86f5d7db5738f57b0156d446e9cb19a8e108b53d3be99db0814c873b53e9","data":"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="} -import { Base, withRelativePointer } from '@studiometa/js-toolkit'; - -export default class RelativePointer extends withRelativePointer(Base, { - target: (instance) => instance.$el, -}) { - static config = { - name: 'RelativePointer', - refs: ['item'], - }; - - /** - * @param {import('@studiometa/js-toolkit').PointerServiceProps} props - */ - movedrelative(props) { - this.$refs.item.style.transform = `translate(${props.x}px, ${props.y}px)`; - } -} -``` - -### Parameters - -- `BaseClass` (`Base`): The class to add draggable capabilities to -- `options?` (`{ target?: (instance:Base) => HTMLElement }`): Options to choose the target element - -### Return value - -- `Base`: A child of the given class with draggable capabilities - -## API - -### Hooks - -#### `movedrelative` - -The `movedrelative` hook runs when the user moves the pointer. - -**Arguments** - -- `props` (`PointerServiceProps`): the [pointer service props](/api/services/usePointer.md#props), relative to the `target` - -## Examples - -### Move a ref element - -This decorator gives you the pointer position relative to the component's root element. The following example scales a ref based on the pointer position _inside_ the component's root element. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"5e4db010355421fe78b209ba29466d14ad006de6eb0d23b3839f470ba2763a1d","data":"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"} -import { Base, withRelativePointer } from '@studiometa/js-toolkit'; - -export default class RelativePointer extends withRelativePointer(Base) { - static config = { - name: 'RelativePointer', - refs: ['item'], - }; - - /** - * @param {import('@studiometa/js-toolkit').PointerServiceProps} props - */ - movedrelative(props) { - this.$refs.item.style.transform = `scale(${props.progress.x}, ${props.progress.y})`; - } -} -``` diff --git a/packages/docs/api/decorators/withResponsiveOptions.md b/packages/docs/api/decorators/withResponsiveOptions.md deleted file mode 100644 index 33f7233d9..000000000 --- a/packages/docs/api/decorators/withResponsiveOptions.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -outline: deep ---- - -# withResponsiveOptions - -Enables responsive option definitions in your HTML. - -:::warning - -- Responsive options are readonly -- This decorator is not compatible with the [`withFreezedOptions` decorator](/api/decorators/withFreezedOptions.html) -- This decorator does not make options reactive (as in Vue.js or React), the different values are only resolved when the option is accessed -- Breakpoints' names are retrieved from the [`useResize` service](/api/services/useResize.html#breakpoint) - -::: - -## Usage - -```js {1,3,7-10} twoslash -// @twoslash-cache: {"v":1,"hash":"5aeadca9b3692bf315d20b7f9074273cbea3812b862c2e152a8e1a42a955ef63","data":"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"} -import { Base, withResponsiveOptions } from '@studiometa/js-toolkit'; - -export default class Component extends withResponsiveOptions(Base) { - static config = { - name: 'Component', - options: { - label: { - type: String, - responsive: true, - }, - }, - }; -} -``` - -```html {3-4} -
    - ... -
    -``` - -### Parameters - -- `BaseClass` (`Base`): The class to add extra configuration to. - -### Return value - -- `Base`: A child class of the given class with the merge configuration - -## API - -### Configuration - -#### `config.options..responsive` - -This decorator adds support for a new boolean `responsive` property when declaring options in a class configuration. It **must** be set to `true` to enable the responsive evaluation of the option value. - -### HTML - -This decorator adds support for one or more suffix to define breakpoints in which the option should be read from when declaring options via `data-option-` attributes. The format is: - -```html -
    ...]>
    -``` - -## Examples - -### Define option only for a given breakpoint - -Given three breakpoints `s`, `m` and `l`, the following component and its markup: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"8bc2ba70fafe0316ce8705cfbe62de19671dca19ac832aa6077af1168736befb","data":"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"} -import { Base, withResponsiveOptions } from '@studiometa/js-toolkit'; - -export default class Component extends withResponsiveOptions(Base) { - static config = { - name: 'Component', - options: { - label: { - type: String, - responsive: true, - }, - }, - }; - - resized(props) { - console.log(props.breakpoint, this.$options.label); - } -} -``` - -```html -
    - ... -
    -``` - -Resizing the browser's window from the `l` to `m` then `s` breakpoint will log the following to the console: - -``` -'l', 'I am the default label' -'m', 'I am the default label' -'s', 'You are on a small screen' -``` - -### Define different values for different breakpoints - -With the same breakpoins and component as before, but with a different markup, we can define different values for each breakpoints: - -```html -
    - ... -
    -``` - -With these attributes, the console will log: - -``` -'l', 'You are on a large screen' -'m', 'You are on a medium screen' -'s', 'You are on a small screen' -``` - -### Define the same value for different breakpoints - -Breakpoints can be combined to use the same value multiple times: - -```html {3} -
    - ... -
    -``` - -The result in the console would be: - -``` -'l', 'You are on a large screen' -'m', 'You are on a small or medium screen' -'s', 'You are on a small or medium screen' -``` diff --git a/packages/docs/api/decorators/withScrolledInView.md b/packages/docs/api/decorators/withScrolledInView.md deleted file mode 100644 index dcbe50694..000000000 --- a/packages/docs/api/decorators/withScrolledInView.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -outline: deep ---- - -# withScrolledInView - -Adds a `scrolledInView` hook that runs each frame while the component is in view, for scroll-driven animations. - -## Usage - -```js {1,3,11-13} twoslash -// @twoslash-cache: {"v":1,"hash":"65369f09048783f2db1b24fc47055b63c398c784647105a107f4280bee52e4df","data":"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"} -import { Base, withScrolledInView } from '@studiometa/js-toolkit'; - -class Component extends withScrolledInView(Base, { rootMargin: '100%' }) { - static config = { - name: 'Component', - }; - - /** - * @param {import('@studiometa/js-toolkit').ScrollInViewProps} props - */ - scrolledInView(props) { - console.log(props.progress.y); - } -} -``` - -:::tip Info -This decorator uses the [`withMountWhenInView`](./withMountWhenInView.html) decorator under the hood. -::: - -### Parameters - -- `Base` (`BaseConstructor`): The `Base` class or a class extending it. -- `options` (`IntersectionObserverInit & { useOffsetSizes?: boolean }`): - - `options[key:string]`: Options for the `IntersectionObserver` used by the `withMountWhenInView` decorator - - `options.useOffsetSizes` (`boolean`): when `true`, uses the [`getOffsetSizes(el)` function](/utils/css/getOffsetSizes.html) instead of the `el.getBoundingClientRect()` to get the element sizes - -### Return value - -- `BaseConstructor`: A child class of the given class which will be mounted when visible and destroyed when invisible and trigger a `scrolledInView` hook - -## API - -### Options - -Options available through the HTML API with `data-option-*` attributes. - -#### `dampFactor` - -- Type: `number` -- Default: `0.1` - -See the [`dampFactor`](#dampFactor-1) instance property below. - -#### `dampPrecision` - -- Type: `number` -- Default: `0.001` - -See the [`dampPrecision`](#dampPrecision-1) instance property below. - -#### `offset` - -- Type: `string` -- Default: `start end / end start` - -Defines the limits used to calculate the progress of the scroll. The value is a string composed of two parts separated by a slash (`/`). Each part defines the point on which the progress calculation should be based. - -``` - / -``` - -The default value `start end / end start` could be read as : calculate the progress of the target from when the **start** of the target crosses the **end** of the viewport to when the **end** of the target crosses the **start** of the viewport. - -Each point accepts the following values: - -- A **number** between `0` and `1` -- A **named string**, either `start`, `end` or `center` which will be mapped to values between `0` and `1` -- A **string** representing a CSS value with one of the following unit: `%`, `px`, `vw`, `vh`, `vmin`, `vmax` - - - -### Instance properties - -#### `dampFactor` - -- Type `number` -- Default `0.1` - -The factor used by the [`damp` function](/utils/math/damp.md) for the `dampedProgress` values. It can be configured by defining a `dampFactor` property in the class using this decorator: - -```js {8} twoslash -// @twoslash-cache: {"v":1,"hash":"5444eca893699ff6493eeaa052ad320e39fce3776aebcb4c2aaef1887b98be3f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4AMr8TSsYZQACSYAAauwYF9JH85PQRkoHN49F5JF5DNpjMZGF4AMK+OCIXiYHAQJ4oii8LRoD5wAD8JIA6r8AUCQeCoTCAPJYOkQMA8EleAAiMH4tmYuVIklZ43Z+U5kOhX3B+yeuxg1L+1Pl/0BSpgYJVMKxJnMVhsdm+bMNwONXNVThcbjwAEEoFBeHB7SDeOxPkRVQJmswAEbsDh0+CkiC8ZgCao2MAjYpBULhSLROJUBJJYlpTI5PIFIolcqVaq1Zj1GCNZqtWCS0jS2xwFI/BV+x2mr7+BKWVgdLogHp9RAARgArEMRmMJlOABwzXrzBgeLsGjm97lfZaB1YbEBbHZ7a5T6cnM44PCEEjkGa3DyCYS8fHJwVppzjjcAdmmKJ53GAZVzmBYPA/awvzABghkPJAACZNm2VtzwOAA2a9qHOO8rkfahnxAFgOC4Pgt0VB0TT3DEJFo1RzRxPEJEJYQSTJGAKSpGl+XpJleH1SjlT3PkBSFbgRQkcUWzbWVBJ7ajVXVMhNX4bUUXo9RNGxPU7R3RSzW0i0LGgm0KIUp0YRdVx3BAT1vV9fSAyDEN+DDSNo2hERcgTJNoNTWDAlXMIkAiKJA1zAhEmSItslyfJCmKUoKiqGo6gaJoWhSZspRlDtzP0yz+0HYdOm6WYN36ZCgNGEDlzA9c8AKo0DP3eDUyQlCz32JDJmwji8IfG56DuUjHlfPwNNkeQkWUAwjN4NF5qMMwTOtewlioV1bK8HxhCC6hM1C7MIviaLCwyOLS0SisUurdL60y1oR3K3oN0nD651qxdANmRqPE28KOsQarTzQnrEEmABmfrcI8e9rifEaPEYLBtLITA+CglM038SUwCedgQhJYBzF4cneDAZgahJUpSEDEIAG5zCOH8KqQSdEJXGqFyQDCGogk9BUJkID2BqGuvBi9jlOHDb3h/Dho3Yi0a0DGMD4KmaZ9NB6dGNm3o56Gvt5yGBeVrXcHa1ZALB3YIb62WBoVoakeV1H0bsDX30/ALiigamsAAMXt2wSTAMpLHDRGx3Zqc/2PYZvo548/sFgPrBDvZbDF1Y/0l+2L0Qo5R0lWA8CtWx7GAbjmqooreCOZ5NEsXgAHIAAFkqrNLmEuksEqKNvmbAcwJpEbGYPsGbFBEOvhNVZjVD4UnPh16V2H4JMCaJxbeFXinKepmASTbye/bbigycbkfr4z4PQ9IPe1n8ScR9Zqhe6QUAZ7gD48EyCAI4RwgA=="} -import { Base, withScrolledInView } from '@studiometa/js-toolkit'; - -class Component extends withScrolledInView(Base) { - static config = { - name: 'Component', - }; - - dampFactor = 0.1; -} -``` - -#### `dampPrecision` - -- Type `number` -- Default `0.001` - -The precision used by the [`damp` function](/utils/math/damp.md) for the `dampedProgress` values. - -```js {8} twoslash -// @twoslash-cache: {"v":1,"hash":"bd248c2469bedc3a99cade415a6b818b6b17dccbcf148f5cfd8993d9e2261eb9","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwA7kX4AMr8TSsYZQACSYAAauwYF9JH85PQRkoHN49F5JF5DNpjMZGF4AMK+OCIXiYHAQJ4oii8LRoD5wAD8JIA6r8AUCQeCoTCAPJYOkQMA8EleAAiMH4tmYuVIklZ43Z+U5kOhX3B+yeuxg1L+1Pl/0BSpgYJVMKxJnMVhsdm+bMNwONXNVThcbjwAEEoFBeHB7SDeOxPkRVQJmswAEbsDh0+CkiC8ZgCao2MAjYpBULhSLROJUBJJYlpTI5PIFIolcqVaq1Zj1GCNZqtWCS0jS2xwFI/BV+x2mr7+BKWVgdLogHp9RAARgArEMRmMJlOABwzXrzBgeLsGjm97lfZaB1YbEBbHZ7a5T6cnM44PCEEjkGa3DyCYS8fHJwVppzjjcAdmmKJ53GAZVzmBYPA/awvzABghkPJAACZNm2VtzwOAA2a9qHOO8rkfahnxAFgOC4Pgt0VB0TT3DEJFo1RzRxPEJEJYQSTJGAKSpGl+XpJleH1SjlT3PkBSFbgRQkcUWzbWVBJ7ajVXVMhNX4bUUXo9RNGxPU7R3RSzW0i0LGgm0KIUp0YRdVx3BAT1vV9fSAyDEN+DDSNo2hERcgTJNoNTWDAlXMIkAiKJA1zAhEmSItslyfJCmKUoKiqGo6gaJoWhSZspRlDtzP0yz+0HYdOm6WYN36ZCgNGEDlzA9c8AKo0DP3eDUyQlCz32JDJmwji8IfG56DuUjHlfPwNNkeQkWUAwjN4NF5qMMwTOtewlioV1bK8HxhCC6hM1C7MIviaLCwyOLS0SisUurdL60y1oR3K3oN0nD651qxdANmRqPE28KOsQarTzQnrEEmABmfrcI8e9rifEaPEYLBtLITA+CglM038SUwCedgQhJYBzF4cneDAZgahJUpSEDEIAG5zCOH8KqQSdEJXGqFyQDCGogk9BUJkID2BqGuvBi9jlOHDb3h/Dho3Yi0a0DGMD4KmaZ9NB6dGNm3o56Gvt5yGBeVrXcHa1ZALB3YIb62WBoVoakeV1H0bsDX30/ALiigamsA0CV2DgD4STAMpLHDRGx3Zqc/2PYZvo5iXDvA5WA+sYP+FDj4xdWP9Jfti9EKOUdJVgPArVsexgG45qqKK3gjmeTRLF4AByAABZKqzS5hLpLBKik75mwHMCaRGxmD7BmxQREb4TVWY1Q+FJz4deldh+CTAmicW3gN4pynqZgElO5nv3O4oMmW/Hu+s6D0gQ7DwVD7Wfw1jWSdx9ZqgB5IFAPPN+YA8CZBAEcI4QA="} -import { Base, withScrolledInView } from '@studiometa/js-toolkit'; - -class Component extends withScrolledInView(Base) { - static config = { - name: 'Component', - }; - - dampPrecision = 0.001; -} -``` - -### Hooks - -#### `scrolledInView` - -The `scrolledInView` hook runs on each frame while the component is in the viewport. - -**Arguments** - -- `props` (`{ start: Point, end: Point, current: Point, progress: Point }`): Values corresponding to the progress of the component's root element in the viewport. - - `props.start` (`{ x: number, y: number }`): The scroll position were the element starts to be visible. - - `props.end` (`{ x: number, y: number }`): The scroll position were the element is not visible anymore. - - `props.current` (`{ x: number, y: number }`): The current scroll position, clamped in the `props.start` and `props.end` range. - - `props.dampedCurrent` (`{ x: number, y: number }`): The current values smoothed with the [`damp` function](/utils/math/damp.md) - - `props.progress` (`{ x: number, y: number }`): The progress of the element between `props.start` and `props.end` mapped to a `0–1` range. - - `props.dampedProgress` (`{ x: number, y: number }`): The progress values smoothed with the [`damp` function](/utils/math/damp.md). - -## Examples - -### Implement parallax - -```js {16-19} twoslash -// @twoslash-cache: {"v":1,"hash":"550db0f3fc4f3e9fa80973a64c621231eeabe7b192af7820d4c3a1e0e202095e","data":"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"} -import { Base, withScrolledInView } from '@studiometa/js-toolkit'; -import { map, transform } from '@studiometa/js-toolkit/utils'; - -export default class Parallax extends withScrolledInView(Base) { - static config = { - name: 'Component', - options: { - speed: Number, - }, - refs: ['target'], - }; - - /** - * @param {import('@studiometa/js-toolkit').ScrollInViewProps} props - */ - scrolledInView({ progress }) { - const y = map(progress.y, 0, 1, -100, 100) * this.$options.speed; - transform(this.$refs.target, { y }); - } -} -``` - -:::tip Info -Apply transformations to refs instead of the root element. The decorator uses the [`getBoundingClientRect`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) function to calculate the props values and it does not reverse any transform applied. -::: diff --git a/packages/docs/api/decorators/withScrolledInView/demo.md b/packages/docs/api/decorators/withScrolledInView/demo.md deleted file mode 100644 index 1fd35f894..000000000 --- a/packages/docs/api/decorators/withScrolledInView/demo.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -layout: false -title: Demo for the withScrolledInView decorator ---- - - - - - -
    - 0.25 -
    -
    - 0.75 -
    -
    -  0.25 -
    -
    -  0.75 -
    - -
    - Scroll right and/or down. -
    - -
    - Scroll down. -
    -
    -
    - Scroll right. -
    -
    -
    -
    -
    - start end -
    -
    - end start -
    -
    - 0 -
    -
    -
    -
    -
    -
    - end end -
    -
    - start start -
    -
    - 0 -
    -
    -
    -
    -
    -
    - end 0.75 -
    -
    - start 0.25 -
    -
    - 0 -
    -
    -
    -
    -
    -
    - start 0.25 -
    -
    - end 0.75 -
    -
    - 0 -
    -
    -
    -
    -
    -
    - 0.5 0.75 -
    -
    - 0.5 0.25 -
    -
    - 0 -
    -
    -
    -
    -
    - 25px -
    -
    -  25px -
    -
    -
    - 25px 0.75 -
    -
    - 25px 0.25 -
    -
    - 0 -
    -
    -
    -
    -
    - -25px -
    -
    -  -25px -
    -
    -
    - -25px 0.75 -
    -
    - -25px 0.25 -
    -
    - 0 -
    -
    -
    -
    -
    - Scroll left. -
    -
    -
    - Scroll up. -
    diff --git a/packages/docs/api/helpers/closestComponent.md b/packages/docs/api/helpers/closestComponent.md deleted file mode 100644 index 4eb5f8bfe..000000000 --- a/packages/docs/api/helpers/closestComponent.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -outline: deep ---- - -# closestComponent - -Returns the closest ancestor component instance matching a given query. It traverses up the DOM tree from the given element, similar to how `Element.closest()` works for CSS selectors. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"cfc3388d1df41c1b47af505dc7b676e2c17db9f0ba3938e86c1a9077015a8973","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYD4QqqUAwtU2MAjNAyOT0EZKBzePReSReQzaYzGRgARzKZAwiF4pVI7FGFF4WjQHzgAH4scBzLxqc9NJYsQAJaQAWQAMgBRYY1MBoADc5iO3CxsgAPrxXrAnniYFBzFYbHYvj80P9rBAgTynC43HgAOK1XjjbyCb7wez8AHq4G8PE9N7eABGGENpGYJFIcDxIXFWEN+G8ABEAPLMl0wGCBbqzBiIACMAFYhiMxhM4wA2Ga9eYxkAm5WqwHA5bSpAbXPbV17a5x+MnM44PCEd03eh4QTCXi/fDsVhQJw9PqIADsACYk6NxkhE9QswsPF2e32hiXEGPyzsqwc03XqOdG1dyDNbh4WBwuHx234oaD5BDlAZNNpeDCH0YzBY1YqllRte5PBIfGESMZzCJAIiiPE4ioBIkjgVIMmyXJ8kKYpSgqKoajqBomhaNpOijXoYwADgzKJk0nRBphnOY53/RxlyBJA1y2Dd9iYtYd0wBsPCba4j1bE8sEfMhMD4Bde38C0wClEIKSpGkwGYGosRxL1+TAI4tVcP9/mk9gQmA4JQJQSJoigghEmSNJMhyPICiKEpykqapamYeoYEaZpWikmSyldYl1X8BJLFYDouhAAcY1jNY12GCdU1I2ZszbdUZOLRjEAAZk2CtdjYw5OL3HiDxbHNGCErQRIwPhFOU7E0FxUZ+2jJBY1jIdxxTKZMxonNatwBjVioljK3yyZCu4y5m34srMMIKAxO7CTLAgV4aCgRghV4IgIHYJcIpauNJjLOKuuHHrko8Fa1pldLVg69dRurEcJouXjD2oY9c3VUpeCwXpgSxWF4UfExeDFCUYClIF9sipjos6ijEtnHN/tIItBoGHLWOraLXv3abPoEkBTweC9WFNP5LQ1EFgdfRFkTRDEVIar0CSJElyV4SlPhpJ46UZFkOS5YF1MFIGJDhemwYhxQoelWUPwVc0KfzamMecbS9QNI0lTNAR1Z5G0wDtfhHWdBq3TIT1Rh9P1AxDMMI2awj4cGMj4ta5HerbVWzQLK1NUxw5saeg5Y2OU5d0m97SqYCqcDsaraWqQW2U5GBuQYAjBxHSYiMR1MqKS2j+eqO6scevLq3z/HisJmhifK4Sk74OnVAREx/AAEhgVg0+FzPrQAMm5+TqQAfQnh0JCnrnmWaSRVPxKFwd4UxPtISw8WYdaN+MMWtJ1DxpH9XhNAgew+6HnlDNCcJTMg+JLLg6zELslDHPQlysI8nDWltMEe0WQE4iXYPAIKaAQoAGI+5hRzjGEc8Z3anQotlail0QC91CsHd2I1q4HGQXXKafEiY5ikr9NGgNrwgzfGvSG0NboIKYkOacqCEoXVolQoOEEMoIyrpuJAREjjhQtLAPA8pbD2GAFCAkeZ/aG3sEcFOlheAAHIAACaFnKYWYAhWyyEihqPUuYS8IhxJQDBAoSEXgx68x6MSfgBs9Lej0DzGkvB+pYjURYtRFB5JHBMbza6PIZSbTsR4tIvB9T2F1vIyhAMjZqLUIktAajjamxgOPZxCT0ZGz0PElUijGDJNSX47mKisTjHYAEbBvBBTqQ8ewJ4vByqpL4O4jxvAokBggNiH+3ZbYAHcij4Htn9VJGSgFm2yUcAJAonC6KQKAW8JsPh4EyCAI4RwgA"} -import { Base, closestComponent } from '@studiometa/js-toolkit'; - -class Child extends Base { - static config = { - name: 'Child', - }; - - mounted() { - // Get the closest parent 'Parent' instance - const parent = closestComponent('Parent', { from: this.$el }); - if (parent) { - // Do something with the parent instance - } - } -} -``` - -### CSS selector filtering - -You can combine component name with a CSS selector: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"f1fba18f7ef2fc0bb7728a080b2f65864719d51c0ae024a31f9a984bb456d477","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvEawhx4aAMIQAtlkkwwaADwAVXnRpgocXgCEuMXgF5zl7RfkAFUhCxwAfB8YBHQWQxEXjg0UnYwAHMKXjdxSTgAfiDgAB0pXgz+VxUggAldAFkAGQBRVhgVTTQAbjSAX24g/QAfXmFYfnCYKDT2NQhSNGlZeRDlfrAqyhAoCBEERBAAcRghtHwrGTkFaVV1Sa1ecJDmUSsAIwxeUOYSUjhwiLasa43eABEAeQLr0hgYAB00xOgyQAE4qOVIuskABGABsVDQzFIEVWeC2oyUew0WmmHEmSAADFQRPgUcwxGRwXUKOhsLhFoQ7tMaPQMfEhjBWEEyhUqrxWmBBKxWMDkaDELDYSSQFCIjDEAAmJEotEMRbc/FdJAAZlJ5NIlJo5EQ8Np9JweGZ1KRhjwRBRvFmIkElS0QXeczdUyoLoWIAAVIGAAYAd3CszDAJdPq0IeDvD+aEEpDApmYSZg/DImhEVjQEFeVlj7qGIkkyK6UCOUnWVgjxgg0bSaWQBXeADleAAlbO5s4AXUY+DQaHciAA9JPYCRZDhSACVBAAF7sUXMAEDCIzuZwScAdRg50nAEEnABJQ+R5u711l7jilEa6UAVkhmgV+CQAA5Vaj0UWUtfTlHVEH1EAyQpKlTWlC1qAZa1iFtah7UWRhKnWaA+CcFEqk7aBAT8AIAGVuRgMQBm0Pky28eRyko+4ghCMJIkaXgaIFIURVYXhGAAagAFhiO5ZGYExHz9Pc8D7FM01MesBHYe4uXKMtXmYIZ2AzZ14HzYxTiGCB+F4SBYA0oYVE0sl4GCcjGLgAFWzAdsu17fs/iHEcxwnadZ25NwyCXVd11YTdtzvfcjxPc8ry9e8qknYjSAwMiGMLUhJJAEEXyVQSP2hb8pQgiV1TwZLUvsjLtUJcCDWgk0kCVIl4MwK0mWQ8g7XZRYK3TSzmHCXDPLQIJHBgBxLBcNxPEFNpjGzasn0lWFX3fOVP0VGV/zKxYrKGvC8UhMD8sgw1jWpM1WsQjqWW6jUQBYDguD4TEFHGfYqkm+Rvpgab3C8Xx/BS5jQkeaJYgkdMkl4VJ0kybI8kKUo1KqWowAaMb7HG/7ZtadpFsmHowD6dRBmGbYxhxA4GCk+Y8BWNY3jekJdgmAVjmRM5eEuX5bjIB5ImeYsPm+X5/iBKgcrheE/w2wqZZ2wDIJGd7qZAglGVOqCjRguEwWu9qCE61k0MerBXAXTA+CyVQkeKTijuyiUNWa075UVU7SuV22VBqrX6t1xrEDWw3GWNu7UJ6yDOQMHkONRw5uNFZbXe2+WvyapWHq1Y7au1869bNWE6kHUlCLwUmBiGYAKaxD7cSGOoBGyXgAHIAAEQkEKAJEw5hJwAKzgABaQsIFYABrdg0Db9G0mnXhGZFlmhjb4aqjb3gI3WI4axDABifawBDNI+tZ7kbGdb0ywBCq0oojLGDbgEyXXKA2+4dHz4Gg6Rqv1eDcabPw3loRgR9BpgG4G3aItdfZBEvg0ao0x+5IFAIYTQDxJB4GHiAOodQgA"} -import { closestComponent } from '@studiometa/js-toolkit'; - -// Get the closest 'Parent' with id `#main` -const el = document.querySelector('.child'); -const mainParent = closestComponent('Parent(#main)', { from: el }); -``` - -**Parameters** - -- `query` (`string`): a query string in the format `ComponentName(.cssSelector):state` -- `options` (`{ from: HTMLElement }`): the element from which to start traversing up the DOM - -**Return value** - -- `Base | undefined`: the closest matching ancestor instance, or `undefined` if none found diff --git a/packages/docs/api/helpers/createApp.md b/packages/docs/api/helpers/createApp.md deleted file mode 100644 index 2be52ed4a..000000000 --- a/packages/docs/api/helpers/createApp.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -outline: deep ---- - -# createApp - -Instantiates your application on page load and returns a function to access the instance from other files. Use it to configure global features (breakpoints, attributes, blocking) or to access the root app instance from other files. - -:::tip Simpler alternative -For most use cases, [`registerComponent`](./registerComponent.html) combined with [`defineFeatures`](./defineFeatures.html) is simpler and avoids the need for a monolithic App class. See the [registerComponent documentation](./registerComponent.html) for details. -::: - -## Usage - -```js {1,4,6} twoslash -// @twoslash-cache: {"v":1,"hash":"1efdd9f046c86000853ef2b97c2bc4dade45377fda61ced7c6cac4b74068b6ec","data":"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="} -import { createApp } from '@studiometa/js-toolkit'; -import App from './App.js'; - -const useApp = createApp(App); - -useApp().then((app) => console.log(app)); -``` - -**Parameters** - -- `App` (`typeof Base`): the root class for your app - -The second parameter can either be one of the following: - -1. `rootElement` (`HTMLElement`): the root element for your app, defaults to `document.body` -2. `options` (`Object`): an object to configure more advanced options - - `options.root` (`HTMLElement`): the root element for your app, defaults to `document.body` - - `options.breakpoints` (`Record`): a list of breakpoints to configure the [`useResize` service](/api/services/useResize) - - `options.blocking` (`boolean`): whether to enable the queue mechanism for the internals of the framework or not, defaults to `false` - - `options.prefix` (`string`): customize the prefix used to search for components with custom element tag names, defaults to `tk` - - `options.attributes` (`{ component: string, option: string, ref: string }`): the HTML attributes to use for the [HTML API](/api/html/), defaults to `data-component`, `data-option` and `data-ref` - -**Return value** - -- `useApp` (`() => Promise`): a function returning a promise which resolves to the app instance - -## Examples - -### Basic usage - -Use the `createApp` function to export your app: - -```js {1,9} twoslash -// @twoslash-cache: {"v":1,"hash":"6592532a85021f0a574c515a72a634871f291cc1048fd478069a1179b62e7c8f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYAKkMMw0AIJYLCSADKcnoIyUDhgAGEIGBSqQyntbJIvMYKLxZPIIcoDJptLw9F5DNpjIwAVhELxgRitGgPnAAPxUgAS0gAsgAZACiwxqYHsAB9eNDvr8YBSAPJYelwnhUxh8HTGXiGSzsVQg3gAMihMmMZgs1ls9n4Yv+gKcLjceAAkvDggLODReMxFLxLBBXvZxt4QuwSJ9+NUbGARvY4bxfbx/YHeJoIPYYHzw7wAO74EZRzO8LChbzbEQAIxgWdYEGYsCg5jdUHjtTKpE+zGer3ekdyvDKqmz3maWF47Adbv43gzWaKg5EYqgGECM1C4Ui0TiVASSTgqQy2Vy+UKxVKFSqNTqDSaLRSmdYOFIcBSZp+Fqw/gSllYHS6IB6fUQAEYAKxDCMYwTIcC5zAsHgPuKFLLEOqwbCAWw7Hs1x/v+JxnDgeCECQ5AzLcUG+CIsHdLMDCIAAbIBUTAeMSAAMzgfMFEgKRUTwUgABMmzbKQuz7EglGYdQ5w4Vc+HUIRIAsBwXB8IIwh6li4KKLiqgkroUKaYaVg2HYUJWq47ieBIPjCPO1CLkgEQcbE8SJMkaSZDkeQFEUJTlJU1S1Mw9QwI0zStB+ZG9BRADs4VAaM9GINMVkQaxSxDJxiA8UhfECWhv4ABwiZg2EeLh1wEfQTBYPiZCYHwFL+MGYBPOwIRUsA5i8O1vBgMwNRUgiQ4hAA3OYRxGTaHiwg1TWWcEYQ2cuQ6rgQjmbs5O5ufunlHj5p4BeerT1Y1ISNr8Hwvmgb4hV+5EDExtExaBlHMZBSFwodcFhoxvEoYJhz5WJRUSTcZUeIwFVaFVGB8F1PW8H1oxON+FG/msOXRSBUxPax0O4ClH1xV9/GoQckx/YVlx4UDrGyQ8CnmhKgKSAVMAQE8vAUhixL4iY5KAlSTMs2zgK0jKDLMrwbJcryMD8kKIp01KItytwCpKiqaoalI/OsxSOp6pzRgGuYekml8j701go0mfaPROuKrrup63q9jGAZZsGxphgKvAdjmsZZgmSYpl746fNGebzLwha8CWZYVlWNbut85RNq6rZvLKocQF2PbRv2g7Dm8Y6Zp8k4avWlZzkE1koPN9lrstW4ubu7kHl5x6+f5gUXleN53tBT5nRdnShT+v6TPFwz3QMmN4P35vvasqMZd92UYacolk8Vkk0MDSHEYLFsj0j/4T3RoG3bMLF4OxKxIEvyGEz9XEYZ+wawHgxsGcAUIYnPOtHM8TQlheAAHIAACh5vInmYNuVye4iggKGmAcwik/AHzBAoSEXheCtU+LDYI9J+ACFek1QkOC2odWxlSEBFIQEUAoUcJBRxzDmDoPpewsAnjMDKKwU08tAQ8ywNwAaThoFIFANieEHw8CZBAEcI4QA"} -import { Base, createApp } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -export default createApp(App); -``` - -And import it in other files to access your app instance when it is mounted: - -```js {1,4-5} -import useApp from './app.js'; - -(async () => { - const app = await useApp(); - console.log(app.$el); // document.body -})(); -``` - -### Configure breakpoints - -You can configure the breakpoints used by your application by passing an options object as second parameter: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"b75d28bc55af429e2c5dbdf95b22d15eb0a5a8edbb98c5be1dc24bb6504027f3","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvEaRjMaAQSxYAPAGVedGmChxeAIS4wAwpLhpSgsRFIrDcGAD4KvACqb6MHXvswACqQQWHoAvAZGAUFwjoxKWIi8ai5B4mYA/AkAEq4AsgAyAKKsMAC2Xmi8AD68xrLyMHEA8lipYDwJjHwhjryRJewO6rwAZOGDro6OADpg7CVYNhUycorKlCBQECIIiCAAkm1ozGDi9bzHULwlEMIVaPgwvADm7CRSIhDzkuW8krz3jxeb14gQgFRgxTKJ14AHcHlIAbwsMwno98FxeAAjGBeXisCDMWBQGYXEEwNCCUhSZgCYRiCQIiC8QQOf4Pc7KXjsQ7HESPOG49gVAZkwkYAB06yOTx2yGQIA4YAA1ut8Gg0MFEAB6LUAKzgAFo0BAIKwlULxeZBFAJGUjuLYEQtcwsOwtQ9WDhSHAtct6nFxWqSqwQABdUNUczMUgMRAATioxTAT3uSAT1GjqNjID9qyw60VuEQAAYqCJ0aRmGIyGmAL4UdDYIsEYg1qg0eh4OYLGO8OLrKMxpAAVnTSZT+CQAGZ25nyXh+4nuUWAIxlitVmjkRAAdnrjZweEIJHI7a0TDYnB40jqeZUxwwLl8kWCMTiCQfyRaDLgGV42XyIpSh+apahWBplGaVp2l4TpeG6XpAn6QYH2mWYvl7XMIPzKhNm2PADijE5OBoc4dCuG5oURIFcQ+L4wB+P5qNeXFQXBSEfgFBF2WRVFeHRPRsVxfFCRgYkwFJWQKSpc5aVEVp/iZFlHkRF0sC5HlRH5eEuWFPQ6igCUpRRWV5UVFUqDVDU4G1PVDWNU1zTQS0KRtT5yWYB0YCdF03Q9L0fSwgMgxDcNIyOId4wANkTLwJzTWdSCzPAgrWJcGOnddo03GtEBXYd92oJsj1bU9qHPXZu0WPs0pAQdYxXYsYoVOLU0QGcMyS+ddkXBVl0ynMN2rbcACYCobIrD12Y823KztdkYLBAi9TA+ExOolQWbk0F/BIACUYA+UgoBUcxSG5J4XDOi6emqYRYH4ZcoAHCKGvy2Lkzalc1065LdnWuRNogbaEHSosABYssrYakBGwrMCmlsTylCqQEW5ayFW3haFoGzeGu5MXujBqp0hlrPsndrEr+kAcdBvqMsQYcoZy7dwfh4rptKlH5rRpagkxjA+FxhICaeInIvy0tyfixARup7rafpwskGa8tsphxB2YmhHmxmsqO2zdGBZjIX8dFiwLolhqop3D7ZZ+iKaeV/rdxZzXtYPPXubPXnjZWs2Sgt87CfC4mkBXAAODrxy+hXsxKAtXcj92tyQT3Ju95HfaN/mA74Vhg6tsPIpG4tpdjynHbnbMQzBhLBo1tOtY5xH9Z53OMdN4XC/xy3Q7q17YZXO2Zba+XfsV2g64Z1dpfV6Hm4z3WSuzubO5NrGcd7sXrdhqdmbHymOqdqfp6TxnvtT3Ll85pHZsNpg88F4Xt6Lgf6th4cycr9P47wHG59655QngvVm6dawRhzNAZsVVezABvOBOIvBawCCQrwAA5AAAStG5O0zA7JGhNGaIUGCADcMw4EVGQfwdBGDxRagDPqchMwZh0B7BUB6zBBCsCWLebCsRlAuGADMXgWINpbROHjERUgxHYxFpg4sWBaAYIoKIuRCiMHg0jkolRajZFiLxhgncUVI7KNUeosRQdMGNRGuDcx+i5F4gSBglcI0dEOMsdjXurjwbg10RYgx8ifErjjGXTxQTAE+LGlFAJjiUH6NrNwMh6x8FIFAFoLwcAGR4H1CAWstYgA==="} -import { createApp } from '@studiometa/js-toolkit'; -import App from './App.js'; - -export default createApp(App, { - breakpoints: { - xxs: '0px', - xs: '480px', - s: '768px', - m: '1024px', - l: '1280px', - xl: '1440px', - xxl: '1920px', - xxxl: '2560px', - }, -}); -``` - -### Configure the queue mechanism of the app - -By default, the app will be created with a queue mechanism based on the [`SmartQueue` class](/utils/SmartQueue.html). This queue helps reduce JavaScript's blocking time when instantiating the application and all of its children by releasing the current loop every 40 ms. - -If you wish to use a blocking strategy, you can disable the queue by passing the `blocking` option to `true`: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"9d9981a00cd0d3343308cd88fde6ea4b4f6831267b81136dedffda14726c5b5c","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvEaRjMaAQSxYAPAGVedGmChxeAIS4wAwpLhpSgsRFIrDcGAD4KvACqb6MHXvswACqQQWHoAvAZGAUFwjoxKWIi8ai5B4mYA/AkAEq4AsgAyAKKsMAC2Xmi8AD68xrLyMHEA8lipYDwJjHwhjryRJewO6rwAZOGDro6OADpg7CVYNhUycorKlCBQECIIiCAAkm1ozGDi9bzHULwlEMIVaPgwvADm7CRSIhDzkuW8krz3jxeb14gQgFRgxTKJ14AHcHlIAbwsMwno98FxeAAjGBeXisCDMWBQGYXEEwNCCUhSZgCYRiCQIiC8QQOf4Pc7KXjsQ7HESPOG49gVAZkwkYAB06yOTx2yGQIA4YAA1ut8Gg0MFEAB6LUAKzgAFo0BAIKwlULxeZBFAJGUjuLYEQtcwsOwtQ9WDhSHAtct6nFxWqSqwQABdUNUczMUgMRAATioxTAT3uSAT1GjqNjID9qyw60VuEQAAYqCJ0aRmGIyGmAL4UdDYIsEYg1qg0ehMNicHjSOp5lTHDAuXyRYIxOIJIfJFoMuAZXjZfJFUo/aq1FYNZTNVrtXidXjdXqBfqDIfTWZfGN9zdxdabbZ4A5Rk6cGjnHRXG7QxFA3EfL4wB+P5f1eXFQXBSEfgFBF2WRVFeHRPRsVxfFCRgYkwFJWQKSpc5aVEVp/iZFlHkRF0sC5HlRH5eEuWFPQ6igCUpRRWV5UVFUqDVDU4G1PVDWNU1zTQS0KRtT5yWYB0YCdF03Q9L0fVzLcsEDNBgzDCMQCjGMkAANgADkTLwU3wNN20zck8BUu9E25IsACYywrKsaHIRAAEYAFZ60bHA8EIEhyHbLQ8CHdZdNjAB2YyFVM1NEAAZks0gszwOyFQcpBnJzVzqw8xzfIbagm0C1sQuoMLdkYLBAi9TA+ExfERHNZMF0xE1imOKpmR0GB+AcqBIqOPTEEM6KTOTRK4tG9LdmarY2qeAtsuSlzozcmtEEc2ttI+WA8DmBZr2AG9/U5WsBBPXgAHIAAErQku1mAEo0upE26AG4ZhmOgToqWB+GYQRWCWftVNiZQXGAGZeCxFrloSCxBBgCgZlrbgvvWF6kFALQvDgBk8H1EBa1rIA=="} -import { createApp } from '@studiometa/js-toolkit'; - -export default createApp(App, { - blocking: true, -}); -``` - -### Configure the HTML API attributes - -The default attributes used to interact with the DOM are `data-component`, `data-option-...` and `data-ref`. These can be configured by specifying the `attributes` property of the options parameter: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"30bd2911818b01585be3dacc56dd7245a7b3c5dc2c9e7a44a2ef6a32fac68e57","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvEaRjMaAQSxYAPAGVedGmChxeAIS4wAwpLhpSgsRFIrDcGAD4KvACqb6MHXvswACqQQWHoAvAZGAUFwjoxKWIi8ai5B4mYA/AkAEq4AsgAyAKKsMAC2Xmi8AD68xrLyMHEA8lipYDwJjHwhjryRJewO6rwAZOGDro6OADpg7CVYNhUycorKlCBQECIIiCAAkm1ozGDi9bzHULwlEMIVaPgwvADm7CRSIhDzkuW8krz3jxeb14gQgFRgxTKJ14AHcHlIAbwsMwno98FxeAAjGBeXisCDMWBQGYXEEwNCCUhSZgCYRiCQIiC8QQOf4Pc7KXjsQ7HESPOG49gVAZkwkYAB06yOTx2yGQIA4YAA1ut8Gg0MFEAB6LUAKzgAFo0BAIKwlULxeZBFAJGUjuLYEQtcwsOwtQ9WDhSHAtct6nFxWqSqwQABdUNUczMUgMRAATioxTAT3uSAT1GjqNjID9qyw60VuEQAAYqCJ0aRmGIyGmAL4UdDYIsEYg1qg0eh4OYLGO8OLrKMxpAAVnTSZT+CQAGZ25nyXh+4nuUWAIxlitVmjkRAAdnrjZweEIJHI7a0TDYnB40jqeZUxwwLl8kWCMTiCQfyRaDLgGV42XyIpSh+apahWBplGaVp2l4TpeG6XpAn6QYH2mWYvl7XMIPzKhNm2PADijE5OBoc4dCuG5oURIFcQ+L4wB+P5qNeXFQXBSEfgFBF2WRVFeHRPRsVxfFCRgYkwFJWQKSpc5aVEVp/iZFlHkRF0sC5HlRH5eEuWFPQ6igCUpRRWV5UVFUqDVDU4G1PVDWNU1zTQS0KRtT5yWYB0YCdF03Q9L0fSwgMgxDcNIyOId4wANkTLwJzTWdSCzPAgrWJcGOnddo03GtEBXYd92oJsj1bU9qHPXZu0WPs0pAQdYxXYsYoVOLU0QGcMyS+ddkXBVl0ynMN2rbcACYCobIrD12Y823KztdkYLBAi9TA+HkCx2ExQQaBs3hgBmXhDukT4FgYk4EnMUhuSeABuA6jpSBkLo25M7qkI7ZH4Z6rtemZawHCKGvy2LkzaxrEuS3Z1quradoLfrEAAFiyythqQEbCswKaWxPKUKpARblrIVbjvo8pvuugHowaqcOvHNr0wiyGcxO74TnhjLEGHFGcu3RHMeK6bSrx+aCaWoJiYwPhHskCnkypyL8p3EH4sQZqme6kAZbADmi2a8tsrRpGBexmayo7bNCYlmMpbJL7eEuynwuppAVx3MdWsndqIc1z7daQZXBsNrckH5iMWdgLsMIqYAb3AuJeFrAQkN4AByAABK03LtZg7KNE0zSFVO3qq3sE/4FPU/FLUA31YuZhmOgewqWB+GYQRWCWW9sNiZQXH297oc27b4ASAejtJ07ybTtAlQNAZU4oe7Du1hJU9ng0UkX5e7bXjfPu3976z+7gbvWHOkFALQvDgBk8H1EBa1rIA==="} -import { createApp } from '@studiometa/js-toolkit'; -import App from './App.js'; - -export default createApp(App, { - attributes: { - component: 'tk-is', - option: 'tk-opt', - ref: 'tk-ref', - }, -}); -``` - -::: warning W3C validation -Be aware that using other attributes than `data-...` attributes will probably make your HTML fail W3C validation tests. -::: diff --git a/packages/docs/api/helpers/defineFeatures.md b/packages/docs/api/helpers/defineFeatures.md deleted file mode 100644 index 67e87ac3f..000000000 --- a/packages/docs/api/helpers/defineFeatures.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -outline: deep ---- - -# defineFeatures - -Configures global features (breakpoints, attributes, and more) without `createApp`. Use it when mounting components independently with `registerComponent`. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"9700ef5d65e07feecb171854b3905e97c802738b3e97b06fe87fbf101093e4dd","data":"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"} -import { defineFeatures, registerComponent } from '@studiometa/js-toolkit'; -import MyComponent from './MyComponent.js'; - -defineFeatures({ - breakpoints: { - s: '40rem', - m: '80rem', - l: '100rem', - }, -}); - -registerComponent(MyComponent); -``` - -### Available options - -All options are optional. Only the provided options will be updated. - -#### `breakpoints` - -An object mapping breakpoint names to CSS values. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"237ecdc9b622ddf6e2b935ed942e33e78328c698e180360555532e17647b460b","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvWP3ZgYAMRjM0g0vEYQs4yXES8ACs1Li2AHiUq18AHzd9RCOygAdMOwC2WCCekxZ8paq6ghUUBAiCIggAMKSsgDm1rwJrBAARmwCysHwvBCCaHDOMPn8vAAGIuoqMACCWFgVAHRuAKpw/oKsvADu+DBSgsVgCZXqCexwNKRxXpKDaBW8ctPKUGWV1Tn1jS2U1MwJUcjIIBxgANYH+GhoWHoA9I8AVnAAtGgQEKyX7GjNaaCKASDwwNDMZqwIiPZhYdiPAasHCkOCPGRyRQ5axwZq3DysEAAXSJVGmxgYiAAnFRWIMEmh8EgAIwAFioENICXBeAxgWxIQOF1wiAADFQRPhjMwxGQkFSAL4UdDYEUEYhyjl0SkgFgcLh8PlYqwhTTaCRgPSGCmcVgWAW2ey8RzONyeby+I1BHEHcKRPBxMCJZKpDJZfgOuD5QrFWCbKo1GgNJqtMAdLo9fqDXjDORjCoTKYzObeeRgJYrS00ZgbCDlBM7ZP7DlHE5nC7XKi3e5PV4fL4/P4AoEgiBgiFQmAwuEIpEotFeyN4tAE4mkkDkkxIACsAA5afTGSz2YcuTzoouTfAhZikAAmCVS0gymZIUVKlU4PCEEjkLX0JgsFILQyEwPh0hqS5vDkIoAH59AAJRgEQfCgMxplIPMKF4DC8xsXgAB8czAI0oAOTdKQAdkog9RiPRBmWZFszx1CDlCgpxy1Cc5b0QABmR9pVlchEDvD9qFVb8NT/ahtUA4CUTAnD9Fw0ZyM5SkqQANlohkmQY5juR1bjhSQE9JSE19EFZcTMC/aIf01WSAOiRggJAkwMD4DwVLQTC1LJDSWWZB9zkPfSmNPIy8A8G95B3QTn2EszbMkhzpIOGgXN1dzFK83hWF8/yEnUikWTvfcwroiLDPPc44pFHSQAspKrJs9cUNgPB3R8NBeGAPwAmNXIowVARgI8XgAHIAAER1BcFmD7T5vl+f4poAbjcNxLxGxhgDcXheDY5gOJgq0DqkI7lOm1lRXUDwpooQ7rp86bd3umBHueq6jsK6bmVFT7vpepU3AVbgNoOcdmCQUBtUGYpJDwN4QAVBUgA"} -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ - breakpoints: { - s: '40rem', - m: '80rem', - l: '100rem', - }, -}); -``` - -#### `blocking` - -Whether the app should mount immediately (`true`) or wait for `document.readyState === 'complete'` (`false`, default). - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"276fb492240ab9a060fdfef8eae35d5ec73f16e42431b14aca933744f7692d5b","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvWP3ZgYAMRjM0g0vEYQs4yXES8ACs1Li2AHiUq18AHzd9RCOygAdMOwC2WCCekxZ8paq6ghUUBAiCIggAMKSsgDm1rwJrBAARmwCysHwvBCCaHDOMPn8vAAGIuoqMACCWFgVAHRuAKpw/oKsvADu+DBSgsVgCZXqCexwNKRxXpKDaBW8ctPKUGWV1Tn1jS2U1MwJUcjIIBxgANYH+GhoWHoA9I8AVnAAtGgQEKyX7GjNaaCKASDwwNDMZqwIiPZhYdiPAasHCkOCPGRyRQ5axwZq3DysEAAXSJVGmxgYiAAnFRWIMEmh8EgAIwAFioENICXBeAxgWxIQOF1wiAADFQRPhjMwxGQkFSAL4UdDYEUEYhyjl0SkgFgcLh8PlYqwhTTaCRgPSGCmcVgWAW2ey8RzONyeby+I1BHEHcKRPBxMCJZKpDJZfgOuD5QrFWCbKo1GgNJqtMAdLo9fqDXjDORjCoTKYzObeeRgJYrS00ZgbCDlBM7ZP7DlHE5nC7XKi3e5PV4fL4/P4AoEgiBgiFQmAwuEIpEotFeyN4tAE4mkkDkkxIACsAA5afTGSz2YcuTzoouTfAhZikAAmCVS0gymZIUVKlU4PCEEjkLX0JgsFILQyEwPh0jSEQ/lGAB+fR0m+OlmCkAAfHMwCNKADk3SkAHZtwPUYj0QfdT25HUIIiaCEhveR70faVZXIRBmVwhV1xEaA1XdHw0F4YA/ACY1cijBUBGAjxeAAcgAARHUFwWYPtPkQocpIAbjcNxLxExgBMoqC830NBSEEUoFW4dSDnHZgkFAbVBmKSQ8DeEAFQVIA=="} -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ blocking: true }); -``` - -#### `prefix` - -The prefix used for component selectors (default: `'tk'`). - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"943ba61eaab8db3f5142f654d18483048e6cc0880009122a6efd05b508a9d698","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvWP3ZgYAMRjM0g0vEYQs4yXES8ACs1Li2AHiUq18AHzd9RCOygAdMOwC2WCCekxZ8paq6ghUUBAiCIggAMKSsgDm1rwJrBAARmwCysHwvBCCaHDOMPn8vAAGIuoqMACCWFgVAHRuAKpw/oKsvADu+DBSgsVgCZXqCexwNKRxXpKDaBW8ctPKUGWV1Tn1jS2U1MwJUcjIIBxgANYH+GhoWHoA9I8AVnAAtGgQEKyX7GjNaaCKASDwwNDMZqwIiPZhYdiPAasHCkOCPGRyRQ5axwZq3DysEAAXSJVGmxgYiAAnFRWIMEmh8EgAIwAFioENICXBeAxgWxIQOF1wiAADFQRPhjMwxGQkFSAL4UdDYEUEYhyjl0SkgFgcLh8PlYqwhTTaCRgPSGCmcVgWAW2ey8RzONyeby+I1BHEHcKRPBxMCJZKpDJZfgOuD5QrFWCbKo1GgNJqtMAdLo9fqDXjDORjCoTKYzObeeRgJYrS00ZgbCDlBM7ZP7DlHE5nC7XKi3e5PV4fL4/P4AoEgiBgiFQmAwuEIpEotFeyN4tAE4mkkDkkxIACsAA5afTGSz2YcuTzoouTfAhZikAAmCVS0gymZIUVKlU4PCEEjkLX0JgsFILQyEwPggP8dhaAAfn0aZSDzXgAB8czAI0oAOTdKQAdm3A9RiPRAADYWzPHUINkWgb3ke9H2lWVyEQZlsIVdcRGgNV3R8NBeGAPwAmNXIowVARgI8XgAHIAAER1BcFmD7T5vl+f4JIAbjcNxLyExg+IoqD9AkuEsAk3gFW4NSDnHZgkFAbVBmKSQ8DeEAFQVIA"} -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ prefix: 'app' }); -``` - -#### `attributes` - -Custom attribute names for components, options, and refs. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ceb5ec0aed4029d1b302123806adde2c50f56e7ffb67ca88b4510908a1ea64d0","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvWP3ZgYAMRjM0g0vEYQs4yXES8ACs1Li2AHiUq18AHzd9RCOygAdMOwC2WCCekxZ8paq6ghUUBAiCIggAMKSsgDm1rwJrBAARmwCysHwvBCCaHDOMPn8vAAGIuoqMACCWFgVAHRuAKpw/oKsvADu+DBSgsVgCZXqCexwNKRxXpKDaBW8ctPKUGWV1Tn1jS2U1MwJUcjIIBxgANYH+GhoWHoA9I8AVnAAtGgQEKyX7GjNaaCKASDwwNDMZqwIiPZhYdiPAasHCkOCPGRyRQ5axwZq3DysEAAXSJVGmxgYiAAnFRWIMEmh8EgAIwAFioENICXBeAxgWxIQOF1wiAADFQRPhjMwxGQkFSAL4UdDYEUEYhyjl0SkgFgcLh8PlYqwhTTaCRgPSGCmcVgWAW2ey8RzONyeby+I1BHEHcKRPBxMCJZKpDJZfgOuD5QrFWCbKo1GgNJqtMAdLo9fqDXjDORjCoTKYzObeeRgJYrS00ZgbCDlBM7ZP7DlHE5nC7XKi3e5PV4fL4/P4AoEgiBgiFQmAwuEIpEotFeyN4tAE4mkkDkkxIACsAA5afTGSz2YcuTzoouTfAhZikAAmCVS0gymZIUVKlU4PCEEjkLX0JgsFILQyEwPgVDQUh2HSQp4AAfn0YA3F4FDeBEMdS0WfRpig0YAG5kNQrQdDAbDILzAipFQ9R+DI3CEkohVeAAHxzMAjSgA5N0pAB2HiD1GI9EGZcVT25HUIKgmCaFCc5b0QABmR9pVlchEDvD9qFVb8NT/ahtUA4CUTAtCMIWcs6LzLjOUpKltwEhkmWpFszx1dD5jLBhaXkk9JRU19EFZTTMC/aIf01fSAOiRggJAkwMD4YiLUs0ZrIpFk733c5DycgA2FzxLwJLJBveQd2U59VKQILlS00L1V/A4aCi3VYuMhLeBolKEjSrdhO3ezssEpylLE88QBo0qRXykA/MqgKgvXdDYDwd0fDQXhgD8AJjVyKMmP4YCPF4AByAABEdQXBZg+0+b5fn+E7KLcS89sYJCqMk6DYKtD7UNMjysNOqAVGYd53Mw8sTooQiUOK0jgdB954eh2HOv8fQTpBiF3ho1GqKVNwFW4PCDnHZgkFAbVBmKErojeEAFQVIA==="} -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ - attributes: { - component: 'data-component', - option: 'data-option', - ref: 'data-ref', - }, -}); -``` - -## Parameters - -- `options` (`Partial`): an object with any combination of `breakpoints`, `blocking`, `prefix`, and `attributes` diff --git a/packages/docs/api/helpers/getClosestParent.md b/packages/docs/api/helpers/getClosestParent.md deleted file mode 100644 index d4785afa7..000000000 --- a/packages/docs/api/helpers/getClosestParent.md +++ /dev/null @@ -1,39 +0,0 @@ -# getClosestParent - -Returns the closest instance of a given parent component. - -## Usage - -```js {1,9,15} twoslash -// @twoslash-cache: {"v":1,"hash":"d5edf3204967180e2b5555dc3e2c5ba0c1a951434bbd246c0111de68e115fd65","data":"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"} -import { Base, getClosestParent } from '@studiometa/js-toolkit'; -import Child from './Child.js'; - -class Parent extends Base { - static config = { - name: 'Parent', - components: { - Child, - Parent, // Useful for recursive components only - }, - }; - - onChildClick(index, event) { - const childInstance = this.$children.Child[index]; - const parent = getClosestParent(childInstance, Parent); - - if (parent === this) { - event.preventDefault(); - } - } -} -``` - -**Parameters** - -- `childInstance` (`Base`): the instance from which to look up for the parent -- `parentConstructor` (`typeof Base`): the constructor of the parent component - -**Return value** - -- `Base | null`: the instance of the closes parent, `null` if no parent matching the constructor was found diff --git a/packages/docs/api/helpers/getDirectChildren.md b/packages/docs/api/helpers/getDirectChildren.md deleted file mode 100644 index 23740afa2..000000000 --- a/packages/docs/api/helpers/getDirectChildren.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -outline: deep ---- - -# getDirectChildren - -Returns the list of components that are direct descendants of the given parent instance. It helps when working with nested components that declare themselves as children. - -:::tip -If you need to only check if an instance is a direct descendant of another instance, prefer the [`isDirectChild` helper function](/api/helpers/isDirectChild.md) which will return a `boolean` directly. -::: - -## Usage - -```js {1,9,16} twoslash -// @twoslash-cache: {"v":1,"hash":"5cde8acb261d3360e4f8d332ad879dfda434f12f99321868976919b8508c6dc7","data":"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"} -import { Base, getDirectChildren } from '@studiometa/js-toolkit'; -import Child from './Child.js'; - -class Parent extends Base { - static config = { - name: 'Parent', - components: { - Child, - Parent, // Useful for recursive components only - }, - }; - - onChildClick({ target, event }) { - const directChildren = getDirectChildren(this, 'Parent', 'Child'); - - if (directChildren.includes(target)) { - event.preventDefault(); - } - } -} -``` - -**Parameters** - -- `parentInstance` (`Base`): the target element -- `parentName` (`string`): the name of the recursive parent as specified in the `config.components` object. -- `childrenName` (`string`): the name of the children components as specified in the `config.components` object. - -**Return value** - -- `Base[]`: a list of the direct child components corresponding to the given `childrenName` diff --git a/packages/docs/api/helpers/getInstanceFromElement.md b/packages/docs/api/helpers/getInstanceFromElement.md deleted file mode 100644 index e1541ede7..000000000 --- a/packages/docs/api/helpers/getInstanceFromElement.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -outline: deep ---- - -# getInstanceFromElement - -Returns the class instance attached to a DOM element. - -## Usage - -```js {1,4,6} twoslash -// @twoslash-cache: {"v":1,"hash":"0c42f2e0bcc65e67d633e27e4c3625903477dbbb80f71dbecf9f120d00f1fb9d","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAOYw0ASTBw0zUTABipCAFsAoqxjaYYNAB4AKrzo0wUOLwBCXGAGFJy0oLERSAPkYwBkYmiI7O+hS8bkpont6koebcoYrKqiIw5tgwFr68AD68YIKsrAA6YOzaWD5oMnKpKmqaOvqGxgxUUBAiCIggAOJyvMy8Ijo1YB287DHpMAJa2iO8ACIA8gCyVkEdAHSU1MzSfcjIIBxgANaH+GhoWHCIAPTPAFZwALRoEBCsV+w0HtlIIoBIjCo9rAiM9mFh2M98IEcKQ4M9ZAo5s0lm1gkC7tpWCAALrEqhpUgMRAATioBjA0jQ+CQACYWVQVKQMXgMY15i09LsTIdLrhEAAGKgifDMUjMMRkJDUgC+FHQ2TwhBI5A51jwVRqlKiE0kHUOFKpAHZ2RdjIzmTSObLuf03NVTcK6bMxQBGKUyuUK8iIS2q9U4TXERW6+h4cYxMYmqYmPlqUKqDDmzlUn0+m30+1IH2Wp1cuRxpMdVMZEXepAAZn9svlNGDADYw9QNf0tdHqHr+iwOFw+LysRkBbiOqYM/5Au0QmE4DAIsaYnEfgkRmAMMltxgKgbavVMWlsa0hZ0QN1enghnVRuN3cm6rMzxlFjoVhttvO8QcnROJAzguWYbioO4HieV4Pm+X5/kBYE0FBcE5GYKEYBhOEESRVgUTRMd3w0HFLz2AkiVJclsyLet8ztJlWRtTkXRAQimgnEiFyvUUGybQNW1ZDs1S7CMeyjHV+1jfoiFlXgb0EPFQlWHoFLNLoej6EAACotIAAwAd1mbp9KhFS8V0nTeFIORBFIJQVms/gyGMD8fl4JkFnkvFExMZhvSgGYpA83hDNsCATIqCpkE2VYADleAAJRgJzrLUYlGEgx4XmeaFAggFE9m0CAAC92FKdCfGkHKNOeAB1GAACNngAQQABXkOqjPC6qRFUkxuCzWUcwAVmGul6IdAAOUsWK8tTQKmXiQGlZsgyQAAWFVhMwUSCHEw4aCkkBGCwLQUUwPhlN6/8GugDBQgACXMTYABkp09a8NLwcwkV4HTdKuvqgVuqAMAsrTeFO/KyEwKyYFO+AOnsYLTBBjA8h8XhTH4OUjGXNA8kgWBeAgfh3N+3rSFSuo5pMSJMeKUoZjJyBeDgLx8B2LirFodhlDgPZIrAaK4sS5LnLSjL7iy15ctYaHSEKkqytYCquR6tF6qatqOsBvFnjRgaqKGos23W8aGQYxBzaOMsqRANHa0WxBG2WgMW0VRBhsmzsdrFPbtQOgcQCPI03UmeaLSLS1JVtS2HVpW2WPDj1uLrF2+I99t1uVMllugf3Q7qYAT2rYiL255VP2WAByAABEEwR0ND3i+H4/gBNAa4AbkPd0w8rExq94Gu9meFOXz2D4e6F+NlETZ8q3HBYAF5S+XydL0YWngbuyIJ46bhu8OCFmCQUBrGMOAJDAPAPhAZVlSAA==="} -import { getInstanceFromElement } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -const componentInstance = getInstanceFromElement(document.body, Component); -``` - -**Parameters** - -- `element` (`HTMLElement`): the target element -- `BaseConstructor` (`BaseConstructor`): the class (constructor) of the component to look for - -**Return value** - -- `null | InstanceType`: `null` if the element has no instance of the given type attached, an instance of the given type otherwise diff --git a/packages/docs/api/helpers/getInstances.md b/packages/docs/api/helpers/getInstances.md deleted file mode 100644 index c9e384004..000000000 --- a/packages/docs/api/helpers/getInstances.md +++ /dev/null @@ -1,25 +0,0 @@ -# getInstances - -Returns all mounted instances of every component. Pass a component constructor as the first parameter to get instances for a specific component only. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"f303ed5a448d93107e63dc0084907f2a58d66242507e69dce397d18f5669d078","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLzzaACSYD1veCMbiIXgAZVqki8xl4jAA1ABGXhXUisCDMKDccxWGx2L61P4A/jwJwuNx4ADitV4bFYvEsEFeNCgvHY/2CgJEtl4428EDA8GemksNK+7BIn341RsArAxSCoXCkWicSoCSScFSGWyuXyhWKpQqVRqdQaTRaKXwMFYOFIcBS30JHOJAQSllYHS6IB6fUQCIArEMRmMJn6AEwzXrfPCO9nMTnLNmrDYgLY7PbXP3+k5nHB4QgkcgzW4eHG2ewAYWl/JGDG6swYiAAbAAOIOjcYDSNzBYeKvWGtyxMCpAIzbbUi7fZIADsOeo53zKJu9DwUvZrLjnNBELQUIk+9Uhm0xmMTh9jYDgaiwc7h270dLW5dw9W01TE6nmab88weY8BbXMWq4eCwHBcHwsZEkCILgpC0KwoiyKFmiGJYhYA54lBzoklQZLuCAVL2LS9KMnKMAsmy0FcqQPJWsiAoiE8wqiiE4ojAI1ayvKkZhEgERRGyqoEIkyRpJkOR5AURQlOUlTVLUzD1DAjTNK0Vo2mQ9rYfGLr+G6HqdPWvSXk2M7tiGo4RtQUa9iAOkJkMSZTOO6bTn6La/ouAHLsBjYgGBDyQQSz7wJI8YYMYjB7LYoIRbBu7hWAkWIUiKKoZi2KYfYDkvnhrgEURNKsHSDJMhRm7UcitG8gxgrMdUrHsZKXG1oEvFKoJsTxKJmriTqUn6rJRoKaaKnmup1q2tpIXUfpaDup6xm+mG/rXsMHahgi1mzI+9mzThCBOSOiDmR+bmZmsXn/pchYrv5ZZ4v2Mq1ueDZIGGrYWXegw2T2/nPYOdZdasZ1ppOGYHAiADMRxelKsB4I99jAA4MAUPivyhSIRxCo1ADkAAChrySazDapJepFPjADcWW4pWrVynjIr4/4KSA9x/iZLT5jmGkvBFSRZXkZR2PIk8xV0lKA7cXA5jrqUlWHbwei5TBNO8ALiXQnzYAC0LJWkeVYtVRAku1QABpztaW5xsu1uY6twIwNtytwmva5CbtoGeVBk0goDyCMcAfHgmQgEcRxAA==="} -import { Base, getInstances } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -// Get all mounted instances of all components -const instances = getInstances(); // Set - -// Get all mounted instances of the `Component` component -getInstances(Component); // Set -``` - -**Parameters** - -- `ctor` (`undefined | typeof Base`): the class from which the instances should be retrieved - -**Return value** - -- `Set`: all the instances created with the given class diff --git a/packages/docs/api/helpers/importOnInteraction.md b/packages/docs/api/helpers/importOnInteraction.md deleted file mode 100644 index 5de416fea..000000000 --- a/packages/docs/api/helpers/importOnInteraction.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -outline: deep ---- - -# importOnInteraction - -Imports a component when the user interacts with an element. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"1e9e46aefe6ac4a89b98e1461b7405c9fc401edac97dfbe82894574f549128fb","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvdgFssEUmgDyYAJJgapZmIlgAPABVedGmChxeAIS4wAwpLhpSgsQt4BeKzfthHz16QAfIz8YIi8jHzugbwACqQQMuxwMIa8AD68wAA6Urz5sPzMgqxo4QYA3LkAvoEUvGDMMjBKpADKMKwwAa0Aol3NGuF+7GAA5hm8ABIGALIAMv0wg2iTMwtLK8gAuvUwJBpww06jE5kj4zv1WMykMBoA/OHWKdzh8YnJqQaBubLyimkcgUyjUGjI2nEkkoICgEBECEQIFUwMBzF4IkS8jA91Wkl4zCko00kN0ADoYWhmGNEchkNRllhWMwaDDgC87A4nC40ApqrxkAZ3ByfH4eQptiBdvSbloZDDQvleAZ8DAgQDVkJRFCwBTpSBZU0YY1mq0Ol0eqRNrilSq1Sa1W4UhbeaQBG40KqMVjJLi9RQZbcjVR9riLPk7cYDmgLLzeBxHPdeHGU6R2GMxmRk17/iD/YG5TDZTbI8WNN7gTiNPmQHc0IJSGBKGASqx9RwwABrGH4NBoLBHAD0g4AVnAALS8iCsTvsNBkxyCKASZpUsmwIiD5hYdiD1WsHCkOCD3OKFTqEk6SRk3syVhS3YgRy3BiIACcVC6409SAAjB/qFuTNXxAU9QQvCErybT9RlwRAAAYqBEfAgzEMgkDfaoKHQbA4IIYh0KoGh6CYNhOB4dUQXPcEtCgvRCQwYJQnCSIPBiD4khSeiwEY+oHTNTpuldPoBlxY403GNY5kWUTy0ydYZOWXErijMNxNOSYLjGFSyzQJ4vFed4Ek41IGN+MAwMos8wUvHUYThBE8BRDUCQrbEbXxQlpBo0lr0palaXpGg5GZVkqHZbwuX8V1+UFYVIt8bkAklfVDXlKhFQjHNUU1YQoJrNLjSaFp2kEy1rXLLL7WK3gnTK113TdT01UxSs/SlAMDSDdKQFDQ5bS9PqY2TCB42SUwRsmk4MyzZqrPnDqC2DLq7nLUtbhtVr3OrRbaxgetG2bVt21GbsqF7fsh1HCcpxnOcF3rZdEn25h132Lcdz3TpD2PMDqNs8lb3vbZH2fRQkAANgAZk/e4xh/RB/yIoD9rwP6bMguyYJxJAACYkJQ2jNCQeDqkfTFYDRnKsnm/7Md0Xh+X4YzeAAcgAAUXJ7V2Ya7JwgadZzQVmqjAP4crpondEYXJ8lY6J5sYVmyUHLbfUOQd7Da6sx1Z7gKFltmte24WDbyVmRA4ERO1Zs3uAqGEeaQUATHuOBdDwMcQGqaogA=="} -import { importOnInteraction } from '@studiometa/js-toolkit'; - -importOnInteraction( - () => import('./components/Component.js'), - 'Component', - 'click', -); -``` - -**Parameters** - -- `importFn` (`() => Promise`): the function to import components -- `selector` (`string`): the name of the component or a CSS selector, the same logic as [components resolution](/api/#config-components) will be used -- `events` (`string|string[]`): one or many events which should trigger the import -- `parent` (`Base`): the parent Base instance used to query the `selector`, if not specified `selector` will be searched in the whole document. - -**Return value** - -- `Promise`: a promise resolving to the the component's class - -## Examples - -Import the class when clicking on the root element of the component: - -```js {1,7-8} twoslash -// @twoslash-cache: {"v":1,"hash":"f257f54df1d6e16bf2af4cda5056a6a9da1c953464f8b6fc0e702c6ef6a0c946","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLxWNnYA8mAASTA+12aA+Mjk9BGSgcMAAwhAwKVSGU9rZeHovAikWgUWjSMZGE8wIheIw+DpjLxDJZ2KoIQAfXjAcy8Nm8WBPZhlVhoUnSADc5iOxgovDAzBqv1IAGUYMN8dKAKLDGrA0nI9ijXhMgAS0gAsgAZFUwNX2PWGk2qkZoZBdOQkYFwDW4rUhHW8TWje1irC9W0AflJXm4pJpdKk0jMFmstns33j/yBIPeiKcLjceABcbsvGYAmqNjAtt4iPzny1qbBiMCM1C4UiNGsQhoTmAWMRyNRuVIR14yGkOk7OLxvfaHQokX9pElTmJ7Ok+G8ibzLzeNbAgS6052licEqlsvlMEVpFN5sXy/Fku86NUCt7z3R428/CLiNt26nIBnc6oMBOmgIhsku3iAbaIi5LwHClCMvDQYhpDsCE8ykAh16rsUk67rO+5UDOpZgbwhHAoWcYlsC36RKQtRlKQYCUGAPKsDuURanEVAJEkLppJkOR5AURQlOUlTVLUzD1IBTQtCky6sDgpBwCkWHJsCZCgh8/gJJYrAdF0IA9H0iAAIwAKxDCMYwTKZgzUL08wMB4qmAups5poxQxaqsGwgFsOx7NcplmScZw4HghAkOQMy3B4gjCLwACCWBYE4RlOQA7BZURWeMSAAMz1nMCweMlqVeSWSAAEybNs7n7EgABsoXUOcEVXNF1CxSALAcFwfDxX4sIQvI0LKAYmjaBisKGNoMZYbCGauO4ngSD4wh1vZYRIBE7GxPEiTJHx2S5PkhTFKUFRVDUdQNDJrT6d0sxOQAHBllmjHliDTPZxVOatjgVasNV+XVoJBSZL0tZg4UeJF1wxfQTBYJNZCYHwZX+O+YBPChpIsp87KHjArrIaMQqE2y74UZB+OsuyDMIjT6pks0WCkswYAYBSVIRvSnMYMYFMM0cFNHEtWYeNiuMhJtwTbSgkTRJxBCHbxGQnYJ50iVd4m3dJzStNjMv0cwm7aWgumPYZz1ICZayFTln02Y1RWOXgxsocs3kFbVAUNYc0NtXDHU3EjHiMCjWho9zN41KT7ppbbpmQx91lTG7JXgLe3uVd9fv1UFkxB7DlxRWH/2R6jdix9Txa08y9Nskz9csywKUc1zPPUpotL81zQvCknvROSZ+XZcMzt275szu3FH6UcBuerNl/mFwcxenK1pfw51NDhz1UeKejvAt5+bds53seUj31SRpIAvGMPxnmRPuU2XZs9Z2fi/L01BfgwOM1LeMMLi7wrsjPctQyB8EvhWDAz9R6NXek7dOiBHZf3+mzP+iBXag39hDKGIDg5lwRl1A+vUHh8BcimDSHkH4DyJCSMk3c+ZSEfmKYm0o5SPlsMqG0LNvQektMaC8pYRHWjNLaX0joG5CM9EImRpE0DBlhGGW+fd2ED3MAtGhblNLpioJmFaOYfj2ALHXc+9hyycy+PojycsGw7SbGaLArZcBUA7BIbE3Z8T9kHMObxXZcQ9lsBONif58IgAXKBTCuZ7DrgcThX8e4Dy3m4SeM8YiyKxO8MTMs6EHynifE8F815LGL2oikvCTgILOivOBICUEIAwTpAoBCLSkIoTQhhFc8SqmRKcMo3gxFhkVK/Mk2i5QGJMRYmxZWB0eKpA1gJM6wlLpiRupJO6hs5LykUspPR1YtI6T0p0J6I87YvUdpPNBJlP4OSzkcuhm4cEoLXoApARCwpgNDojSukToGkFgR3eBiCCprDsrcr6GDHlYJSjgkyJkAGBQOPbI4Bl3ywDwAtYAsIxTPPqh8Xg/Yni914AAcgAAIbOuhJFZp0hJoApRTcwg0RBlUhAoGEXhG6Ex6GCfghYcYoWmgTBmxNSQUrKhSigTdyKt2AnTSm7If62lJO3LAPN5UM0JQYsAjAdUMxYRiKkWFGAUv8CkcZzoUhqqopkCl3A5UquNZS+1zKXVuoZhSwQ7B+AxFlUahmbMvXeudfKk49NRZDyoFspAoBRpIg+HgTIIAjhHCAA"} -import { Base, importOnInteraction } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: (app) => - importOnInteraction( - () => import('./components/Component.js'), - 'Component', - 'click', - app, - ), - }, - }; -} -``` - -Import the class when clicking on the `#import-component-trigger` element which can be anywhere in the DOM: - -```js {1,7-12} twoslash -// @twoslash-cache: {"v":1,"hash":"0c961469966abe1771c8408f86d532c6e56bf9d0a51fcd7a108e5e0da0f2b2e1","data":"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"} -import { Base, importOnInteraction } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: () => - importOnInteraction( - () => import('./components/Component.js'), - '#import-component-trigger', - 'click', - ), - }, - }; -} -``` - -Import the class when clicking on the app's `btn` ref: - -```js {1,7-8} twoslash -// @twoslash-cache: {"v":1,"hash":"48a28383efea6bf12c462cee14e227981447b2659d45949c623599dcc2729883","data":"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"} -import { Base, importOnInteraction } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: (app) => - importOnInteraction( - () => import('./components/Component.js'), - app.$refs.btn, - 'click', - ), - }, - refs: ['btn'], - }; -} -``` diff --git a/packages/docs/api/helpers/importOnMediaQuery.md b/packages/docs/api/helpers/importOnMediaQuery.md deleted file mode 100644 index 6d8fc853d..000000000 --- a/packages/docs/api/helpers/importOnMediaQuery.md +++ /dev/null @@ -1,45 +0,0 @@ -# importOnMediaQuery - -Imports components according to a specified [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_features). - -## Usage - -```js {6} twoslash -// @twoslash-cache: {"v":1,"hash":"7c63cfc654c6a29339e88f1231bbd0bc527a08a6bea84bbe1c50d8253e5f87ba","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvdgFssEUmgDyYALIwonAIqCyGADwAVXnRpgocXgCEuMAMKS4aUoLELeAXmu2HYJy7dSAD5GfjBEXkY+DyDeAAVSCBl2OBgjXgAfXmAAHSleAth+ZkFWNAjDAG48gF8gil4ZDU4I/3YwAHNuCISklLTDILzZeUVpOQVlNWbmHT1KECgIEQREEABJCbHmXhEk+TAYMDReAHd8I94O9hIpJs0dgEddUgxpS2ddADoFtGYO1bIZDUGByVjMGgLYA2VK+fyuNAKGq8QwgAC6FGBWGYpGYMgWYQKKIu41GJyEonEkh+GKxOLxC3unCJhhJTKeLzeYDxMF4zHMvCIbF0kVSvPwaDQWDgiAA9LLYCRWBAcKQvjIIAAvdiscFfBQdWVHAC0AFUAMoK5ZwWUAdRgACNZXZzZaAALsgDE7IA+vwYBDBKR4Nx0ZiQMG0EGwJQwKVWLSQBwwABrBYSqUy+UAKzgxsREFYKfYaC+TkEmiSMD+X0VsuYWHYsourFVNpGkxU6gec1eXwlMlY6IxICcOIYiAAnFRWEcOmh8EgAIwADiof1IHWreA7ii7M17GAWydwiAADFQRPh6WIyEhJzUKOhsKeCMQ7+vTEw2JweKTO9MPacvo/IYCEYQRFEnixL0ySpCBYBgQ07KtM47RdD0iRwWkoFDGAu4nAR+5AfMVBLCseCbGSfK7PskhHCc5yXNctyNDMvDPHo7y8J8MA/Ou/yAsCNBghCuBUNCPiOJ8gTIqiibYri+JUISBSsryBECMIYgSGANLhopDJUOyLJsuxnGvLw3JNHyApCqwIqMGKvAZtKcoKjASoqmQ6pajqeoGkaYBmpa5E2vaTouu6Xq+v6gbBjwYbApG0axvGibJmmVCuVmsq5vmECFsWpblpWTQ1nWDZNi2baykRgHaJy/ZoIOw5UGOijLkuACsM5zguy5rtQOJbhOID1d2jWkUm7SngAzJe164re5DnjUI57LAO5bCcwD/nuDWzJyvDIvwWG8AA5G6pUSOVzB5XmBZFiWF3VGAeTyrwVGTLwDgTIcxxfLm0j8DxJKKuwIgaZY7S8GSuIll8ww7cRU2vIweQFFBMT7WgjAXV8sp7P9DE2n9BwMUDcAXdwFCY5djAKOwDEQrpETw8wJbcBddNgNwlSMtWzBIKAphHHAul4LmIA1DUQA="} -import { importOnMediaQuery } from '@studiometa/js-toolkit'; - -// Import Component.js if the device is in portrait. -importOnMediaQuery( - () => import('./components/Component.js'), - '(orientation: portrait)', -); -``` - -**Parameters** - -- `importFn` (`() => Promise`): the function to import components -- `media` (`string`): a [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_features) - -**Return value** - -- `Promise`: a promise resolving to the the component's class - -## Example - -```js {1,7-8} twoslash -// @twoslash-cache: {"v":1,"hash":"bece8456e784c1f1becb770eb9e14169a152665fe5e14c0e60ae2b4016894452","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLxWNnYA8mAAWRglWYAEUymQMDI5PQRkoHDAAMIQMClUhlPa2Xh6LzI1FodGY0jGRhPMCIXiMPg6Yy8QyWdiqaEAH14wHMvE5vFgT2YZVYaAp0gA3OYjsYKLwaiCKWj2KNuBT6YypNIzBZrLZ7N8tf8gSDwZCnC43HgAJKauy8ZgCao2MAjewAd3wI14IXYJE+0s4vAAjhDSBgviICRDAjNQuFIjRrEIaE5gLiUWiMblSEdeNIOhRIlgdpYnGSudJXV9LfYXm80B9Al08wWnD6bZzS95m/7A8GwMwatbFLwiGwIZTVN4Ekk4KkUg0YKwtGR/JYIAAvdisIT+WwhFIjLIAVQAyjPXHAUgB1GAAIxSiMPx4AAs2AMTNgD6TxgzHKpHg3BzkS/j+YCUGA/KsPWUTynEVATskaSZDkeQFEUJTlJU1S1Mw9QwI0zStK6rA4KQZ46n8gLApwhpBv4CSWKwHRdCAPR9IgACMACsQwjGMEzsQAHJGcwLB4ZFoHqlFgl2yzyqsGwgFsOx7Nc7EcScZw4HghAkOQMy3B4gjCLwACCWBYE4LEMIgADs0xRDx4xIAAzEJ8xWSApnmUMslIAATJs2ykLs+xIAAbOp1DnFpVy6dQ+kgCwHBcHwhl+Ai0LyHCygGJo2jYgihjaOqYkIsap6LBIPjCBG1BRkgERQbE8SJPBGTZLk+SFMUpQVFUNR1A0TQtG0nTdLMVn8aF3GjI5iB2bMbkVY43kOn5AVKSFAkRZgmkeNp1x6fQTBYLlZCYHwnn+PwKJPOwIQUuynxcj2NSygS8ohKKT2ctdmoOmAaBTmyHJcqDyJ/Y6FJUtitLKkyzBgBgxhfaDRxfUcZWmh4eK3SENXBGE9WRNEMEEC1U4Ie1yFdWhvWYQNuFDa011gLjZRBTWKK0Wg9GMWNvRWWxaz+fZM18VNtXCe5LO4zJq2IC5CmBcFKnHKckW7ZcOk3EdHiMCdC52BgfAvTAb2kB9FnjUgbFsdZ028VMrkieAva4Ctqx2YpQXKQckzbVFe0xTr7n66dRspXaKKOkDj1g1H/2CpS1Kw5oDLw4jyNilbAs205dnDGLNvyQtLu/faMdy6sXFKxtKn++rO0XPtsU0LrCUG8R528ODFcA1DKd0mnKqSAjSM56xnEFw5fGDJLi3YwnjpV2F60+5t4WN4HWsHXF7eJQ8fBiRJBpdqPmekuSycw0P1Qj2PEpSpJ5sfYqt/p1ID/mCVx8UafRpUBNO4EAFofj2BtOXaOANeAujdB6L0T8QSdkhCGXgYYYD4zqigGMMA4zfndiAJMEg8SpiJJmbMkF8xBULFQYsrYywlSrO8LmAEQBUN7E2SSJYywdgDCg02/YoCDmHN4RgY5eBwQpjOXCc5DZLlXOuTc25dxgAPMeIBF5ry3nvCkJ8klXySQ/F+H8f5WFAXZiBCgYENyQRJs1Sc05EIdRQt1dCfUsI4TwsNQixFSIVhPlRLs3NeajWYtbdi1k56F0dgJZ27lf76kCQAxqqx7a13XipfiRwmLXVgHgEqwAESSgSZJaiwZMxPDTrwAA5A+HqGF+rMDakhTqRRqlfXMKlEQnkYQKHhF4YGT0eg1n4LaVmd18px2em7Ck1TPLVIoCDH6S8AaxyWVyXuUCk7QxpOs0GJT/5BkYHs0G18aTljAYwap/gUiQMTmeTZid/CZGqdwRZ31TmcmqYwWw7BHTfg+BSMBQUijcAWSczkbz1knBBmjbOVBGlIFAJlVEHw8CZBAEcI4QA"} -import { Base, importOnMediaQuery } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: () => - importOnMediaQuery( - () => import('./components/Component.js'), - '(orientation: portrait)', - ), - }, - }; -} -``` diff --git a/packages/docs/api/helpers/importWhenIdle.md b/packages/docs/api/helpers/importWhenIdle.md deleted file mode 100644 index d92a20470..000000000 --- a/packages/docs/api/helpers/importWhenIdle.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -outline: deep ---- - -# importWhenIdle - -Imports components when the [`requestIdleCallback`](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback) function runs. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"d18da01146902390cd09353fb7a97429bc977027d1535a5811b8e3774d3f9580","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvdgFssEUmgDq+GGACSUVjAA8AFV50aYKHF4AhLjADCkuGlKCxC3gF4LV22HuPnpAHyM/GCIvIx8rv68AAqkEDLscLoGAD68wAA6Urw5sPzMgqxooXoA3FkAvv4U6bziMjAQgmi8FQD8oepyCsqqGlowAPJY4nbcobHxicn+WbLyitLdiipqmtqUIFAQIgiIIF0LLcy8IvHyYGotAO59vIJJpNJm7AMAdJtozADme8jI1BgclYzBom2AliSXh8TjQCgqvD0IAAuhQAVhmKRmDJNsEcojVEsjgJhGIJGAPqj0ZjsZsICNyWY9IT6jA6hBeNdmOwWgAjGD8BRshzsb7fMjsMDfOqEkRsVi85giADW0n4vEuJCer20lLRIFIMDQglIYEoYEKrCpIA4YGVm3waDQWDgiAA9G6AFZwAC0cIgrGVPLe9kEUAkDS+b1gRDdzCw7DdqlYOFIcDd8x6q36usdMlYKNRIHsmIYiAAnFRtFK0PgkABGAAsVC+pHFZZAmZWfXWuCrktwiAADFQRPgaWIyEhyxUKOhsIOCMQpy2jEw2JweESsz2BjpmGAMIFgqFwm4opMEkl94fqrVWU0Wu1OstemsBsNRt5xjE4lfdAeR5zK+27du+GxUNsux4IcPS8CcZzdJcYA3HcDxkM80jvJ8Px/ACNDAqCfYgBCnh2A4sLwoiKL6hiWI4lQeI5MybJdi0QiiF+erUvRdIMnYBLCrIwoclyPK8PygqGnUpCiuKslSjKbJyqwCpKqq7DqpqGE6jA3EGkaJpmhQFqqdatr2lQjrOq6Hren6EABkGaAhsa4bxEazDRjAsbxomyapumbHZr2bx5gWyJFiWihIAArAAHFWajfLWDbNtQmLtngwW7hBNoDkgABMo7jlik7kMOs7zjgeCEFqnxrvsjBYHEqaYHwD7NB0GqCDI/JPGkwh5AOUCbNFZb1vWiU2slqWIAA7C2mVGngnUMP2lxFSVE40BVABsQ4VEWZywNlIHAKBb45myCL8H+vAAOQAAKhu5kbMF6vr+oGPIPeUYDAUcIUDIwZ6RJdjAPW8bqIRcVzprYSFXG83oPdwNQXWtoT1kOuOtNwpSbO9SCgEYahwOSeDeiAFQVEAA=="} -import { importWhenIdle } from '@studiometa/js-toolkit'; - -importWhenIdle(() => import('./components/Component.js'), { timeout: 1000 }); -``` - -**Parameters** - -- `importFn` (`() => Promise`): the function to import components -- `options` (`{ timeout?: number }`): the time to wait in milliseconds before forcing the import to be made, defaults to `1` - -**Return value** - -- `Promise`: a promise resolving to the the component's class - -## Example - -```js {1,7} twoslash -// @twoslash-cache: {"v":1,"hash":"5703da7b3aab69d4c3c97e155c36d8b75ad16573809e1be471a1ab9d393a698b","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLxWNnYA6vgjACSUGGMjk9BGSgcMAAwhAwKVSGU9rZeHovHCEWgkSjSMZGE8wIheIw+DpjLxDJZ2KowQAfXjAcy8Fm8WBPZhlVhoYnSADc5iOxgojN4aCsMAgZXsRwA/MTAdZbGh/kCQTAAPJYcXwnjEqk0qTSMwWJV2L5mlUAsDA4ZOFxuPCKn72ZgCao2MAjewAd2tvDKqlIXxE7HVgRmoXCkRo1iENCcwAxuuxyNypCOvGkHQokSwO0sTkJrOkAItLuer3e8MCXTzBacWh1CKzZfFNTFEF4PuYRV4ACMYE9bN5sewQvNSOxRmKy/w2Kx+7sYl8nrwvSRg2HhrXcyBSLUyqQwJQwFzWHWotO4lQEkk4KkMtlcvlCsVShUqjU6g0mi0UgCrA4KQcApN8yqqja4YJJYrAdF0IA9H0iAAIwAKxDCMYwTKh0zUL08wMB44F/Natq4EM06rBsIBbDsezXKhaEnGcOB4IQm43PQeCCMIvAAIJYFgThIURADsNHDKM4xIAAzJGcwLB4gnCZRXpIAATJs2ykLs+xIAAbCx1DnOxVzkDMtweCwHBcHwvF+NCYLyJCygGJo2hotChjaCaJH2EsVAOu4ngSD4wgRvhYRIBEV6xPEiTJGkmQ5HkBRFCU5SVNUtTMPUMCNM0rTwd0sxEQAHFpURYTJiB4bMhGLBIyxUZp2n0fpqHlcZmBsR4HHXJZ3HWVgHlkJgfAqf4/Dwk847EkynysmAzA1MSiLTiEApLSyM1Kl6YBoA+jLMqyZ1wvt3rEqSaIUgatLMGAGDGNtZ1HNtRz2q4IWYnNISRcE0UoJE0Q3gQiUPslz5pW+mWfjlP4FX+rQzWAf1Hswzb+DBcGdKVvREf05WYdJOEGQpjUeKjf0tepiDybROl6YxxynCZfWXJxQ1ESAjCjVo40YHwK1rbwG2jCJZVIChKEM1J2FTBTSngKtFFxaseF0bpDEHJMPWmf15lcTzfNjXYQvupdh3HYt50evCV0kmSd2aNSD1PS9gqSwT0uyZJNU4ShNENcre2et6CBqasGGMx1jF62zvUXANFnUFZvP88BE28Bd4eHddzuUq7hqSI9z3e8h6H+6TAxKzzucO4dtOrOTsfa51RmJwbnODWnw28/cdnlhBZHqqXHsEkSTu3UX1Ql2Xwqiu2krSrwcoKpakHkVqzZ6rPbtSAv5j+cPpFqnaQXfU6lq8G6YeN76/qBmQIZfOGQRRjFMYwHGmNq0mEhMSIjTLYTM2ZLz5l0oWKgxYWSlm8CfF4bwsY5nrFAxs2oPgiHgWKCUnZuy9nsIOYcB4xRTgnGQTas5vDzlYIuZcq51wFRftuGAu5IgHnKMeU855LygwSveR8KUXzpXfFlL8uV8qFX/IBYCoF/Jb2gmgWCJVEJS1QmJGO8taooXqgRZWCjR4X3VkgMS7V26MW6ghGasA8An2ANCEUhjz7eEzE8V2vAADkAABD82VvzMCfKlV8RRPHbXMA5EQKlwQKChF4E6S0ejin4O6NG44vK22WqrYkniVKeIoKdXa9sDpHQWoU1kDcSkF1uuUs6zioLDEYDdckp80CME8f4FI98SmgUqd6fwmRPHcG4AUnaa9Rksnel7KgASkCgBcgiD4eBMggCOEcIAA==="} -import { Base, importWhenIdle } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: () => - importWhenIdle(() => import('./components/Component.js')), - }, - }; -} -``` diff --git a/packages/docs/api/helpers/importWhenPrefersMotion.md b/packages/docs/api/helpers/importWhenPrefersMotion.md deleted file mode 100644 index 8c30ac944..000000000 --- a/packages/docs/api/helpers/importWhenPrefersMotion.md +++ /dev/null @@ -1,38 +0,0 @@ -# importWhenPrefersMotion - -Imports components when the user accepts motion. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ec65e2a9bd5d5efde9786b8aab7990655f850aedf1c0ec98b878b85b61b6621f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvdgFssEUmgDq+GGAAKpGPzJwAshHGSAPABVedGmChxeAIS4wAwpLhpSgsQt4Bee45cwNw8vUgA+Rn4wRF5GPh8w3k0IGXY4GDNeAB9eYAAdKV4i2H5mQVY0GNMAbgKAXzDuGOTU9LMwgtl5RWk5BWVVDS0dUn1DCTBKECgIEQREEABJPp7mXhEU+TA1NGl+XkF00l4Z+F5IXa0oTxheGXHJADoptGYAc3nkZGoYOVZmGhTYAOdKBYKeNAKOq8UwgAC6FG+WGYpGYMimUXhiJAWjQglIkwoYHKrAR3w4YAA1lN8Gg0Fg4IgAPRMgBWcAAtJCIKxKew0I83IIoBIZDBXo9YEQmcwsOwmapWDhRkyuv0VGpNNpdAYjGBHrSZKx4QiQG4UQxEABOKisNRvND4JAAJgAzFRXqQ3uK8GrFBqhtrRrqJlMKbhEAAGKgifAo5hiMhIK11CjobARgjEJMeyxMNicHi9boDTXDHUPMDGZhgDARKIxOK+RItNIZGt1ppJUgpNvV2sdMB+3bDgNakZjPVTGZzPDLEu8NYbPrbMAj/aHMgnCBnC68K43O6V54e96fb40P4A3BUYEBVzuCFQmFYpHx9FUTFknHi/GE4msKS2IUtSVC0vSjIsuyXIQDyfICkKIopOKzCSjA0qyvKirKnAqorKWgYTiGTyGsacKmuaihIAAjNRAActr2o6LrutQKLepaICjoM44VlOtrsNsSCsbG8aJuQUZ1KaGywL6+G5MW6o8eWwaVrw0L8D2Mi8AA5AAAohoooWynLcry/I6bUYAFCyvDzv0vAuCuOyPOyey8I6tybscCYiDAWBoLY9x6o8nT4WOKmThMjBNgkimKIwOmPEyy5bDsuFOWla6uXAOncNw1RTGKrxIKAlhqHAoYLOyIB1HUQA="} -import { importWhenPrefersMotion } from '@studiometa/js-toolkit'; - -// Import Component.js if the user accepts motion. -importWhenPrefersMotion(() => import('./components/Component.js')); -``` - -**Parameters** - -- `importFn` (`() => Promise`): the function to import components - -**Return value** - -- `Promise`: a promise resolving to the the component's class - -## Example - -```js {1,7} twoslash -// @twoslash-cache: {"v":1,"hash":"ba92db18092e9f88e161c5e0af0baf221c8b20e80d12a889295440a1094cefb1","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLxWNnYA6vgjDQwJ5kOAAWQgaA+Mjk9BGSgcMAAwhAwKVSGU9rZeHovCi0WgMVjSMZGE8wIheIw+DpjLxDJZ2KoYQAfXjAcy8Lm8WBPZhlVhoSnSADc5iOxm4lIZTKk0jMFmstns32V/0BpGBoIhUNRThcbjwAEklXZeMwBNUbGARiqnrwyqpSDyIPBeJB7JqoJjvJZIR9AjNQuFIjRrEIaE5gHjUejMblSEdeNIOhRIlgdpYnOTU5FNeVSGBKGABawupFonEqAkknBUhlsrl8oViqUKlUanUGk0WikAawcKQ4ClVX8AWAgSChzqAwlLKwOl0QD0+ogAIwAViGIzGE0QACYAMxBuYLDyjtDqieaqfg/16obsG1IDYgLY7PbXdcbk5nHB4QgSHIGZbg8QRhF4ABBLAsCcFcGEQAB2QYoh3cYkGPahenmBCQGg2DH2fA9Nm2Uhdn2JAADZf2oc4AKuYDqFAkAWA4Lg+HAvxERheR4WUAxNG0HFEUMbQFQvRF9VcdxPAkHxhEDLCwiQCIoifKsCESZI0kyHI8gKIoSnKSpqlqZh6hgRpmlaRdulmBD+jXbdRnQxBpiw09cKWQjVn3EiPwo9cAA4aMwf8PEA64QPoJgsEEshMD4fD/H4VEnnYEJKQ5T5uTAZgakpdEnxCMUcq5VKlRtMA0DrdlOW5BqUUq21KWpHE6RlZlmDADBjFKhqjlKo4pMNDx8XSkJFOCZSUArdT4i0usdMbfSWyM9tTK7Sye1aVKwAmsoyN1MB/DnBdOjs3oELXNZEOc3cqJPHC8D2iblifVZMPfMjPwOY5Tlo8LLiAm4Yo8Rg4q0BKMD4PKCt4IrRjg+ykDXfc/NQly93c2Zno8OHcB8qZ/J+wLJlCuiIoY0HcIh+K7Bhy1muq2rssaq1URaqkaQ6zRGS6nq+vFZGrtRw8UOGLHUdfXGzzfDmqpq96iK3N9SPIr9yYBsKLkixiaDBljIcHRLeCa60uba2l6T52VJG63qRdXTcJbQvcUNl3Dzc56rldWSiSY1g5qO1yngaipjDdYh4+AvK9J21e8wHtwWyQpbn2pt6o7YdyVpVtgXevMCS4/HBPpyTkaZJNH57AtCqLeqr57UdMgXTdD1eC9H1eD9Y6puDFTQxgcNmEjKhowkfE42JJMU3LEAMzIrMqBzBf80OosKBLVgyzTNTYgW2t610psDNbYyOzMiyrN7ftB2HUuNS1Cv+7O2zlxR4L3Mlh6D0wz2eAn7XhfneY6fskB3TVgFL8IUlypVgEA009hgCIgoF8ZB8cbyJ2OrwJMTw+a8AAOQAAE2wmU7MwBselmxFCIaVcwnERD4VhAoBEXg6o5R6FCfglp9oZWEmzXK+UYCUiIfhIhFB6rlQVraVm0juTe0Vq1HmCiGrAPLmAj4jArZ0gvIwIh/gUgNx9jVFISjbT+EyEQ7g3ApFlTwfYrkg1hZUEoUgUAvE0QfDwJkEARwjhAA"} -import { Base, importWhenPrefersMotion } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: () => - importWhenPrefersMotion(() => import('./components/Component.js')), - }, - }; -} -``` diff --git a/packages/docs/api/helpers/importWhenVisible.md b/packages/docs/api/helpers/importWhenVisible.md deleted file mode 100644 index f384c97b4..000000000 --- a/packages/docs/api/helpers/importWhenVisible.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -outline: deep ---- - -# importWhenVisible - -Imports a component when an element is visible. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"376982f9dd06ef328b6177f9db87eb9e59d23cd8ab30ad62acb4c83dce361501","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvdgFssEUmgDq+GGABq7OOwBGrGAB4AKrzo0wUOLwBCXGAGFJcNKUFiFvALw27jsM9d3UgA+Rn4wRF5GPk9g3gAFUggZLUMTAB9eYAAdKV582H5mQVY0SKMAblyAX2CKXjBmGRgAeVIAZRh9ILaAUX1msDLeAPYwAHNeTIAJIwBZABl+mEG0Kd5ZxeXV5ABdeqxmUjU0AH5I2zgYeogdK9ISUhascSdz3gBJIbIrsQkwFp3MiPL7sNDcSKJZKpYzBXKyeSKaRyBTKVQaLS6fSUEBQCAiBCIEAfFFI5i8ETJeRgE68ADu6Okay0vCImL0MAAdDi0MxxoTkMhqCssKxmDQccBLg4nC43GgFNVeEYQPshYdSE0ceF8srVMjEWshKJXmBuWqQBqtVRGs02p1ugqnqRtrT8kZ9baYLwPFdHR5+B40PrKSiaUNzRR1UdrZajrSPd6NbTQ9STpHo5qZDjbvdHs9TVYC/8rIHSLxg96AAZfGikX6mwF5shV6T+XmiLmqqMgY5oQSkMCUMAlVgWjhgADWOPwaDQWDgiAA9EuAFZwAC0CogrEnYM5zkEUAkzV5nNgRCXzCw7CXqlYOHrS4RqJUak02g5nNnMlYqv2IDOEcDCIAAnFQ+gTMGSAAIwAOxULypDjDAIEgC+ihvhin7YhBYy4IgAAMVAiPgMZiGQSCgdUFDoNgBEEMQlGIWYTBsJwPAGq+6IflihjMGAGChOEkTRF4cRQikVwGAJQn1F69pdDAPQugMJyRKMEzrJsSxqUM2nzLpKwnHsBzxkM7zSjcQIPGQxZvJEtY/MpjY2SCYBghCCRJFJ/GCXCHmksyQVYbxHI4niBJ4CShq8OSqaSLSDJqEy0hWGyOFdohfICkKNByGKEpUFKviyoETpKiqFpWtmVA6u6+oYUawh/JIGZxlmOIKR0Skqa6+kNd6Xo+uWfouQGQYhlSiURt2maxsm+mJrwi1rAl4ZoO1NU5m5dkvCWvD2f4AiTdWTn1i5/xNsCLZtkBnbtX2A5DhQI6sGOPYTtOVCzvOi4ruuW4QDue6bYex7JKhzDnjAl7Xre96PnAz4hTx7L6N+aC/v+VBAYoSAAGwwRBajjNBiDwdlyGoXgTWhejuB4TSSAAEwkWRmoUeQRHVABlKwLTQVZFxmFo5lvBKvwPm8AA5AAAuDJ5Q2um7bruYIy1UYDwqj74M4wYmxCLaCMDLnJLutJzI44YbpuuMvcPUMs22mQwOxUOKnswSCgGYajaJIeDriA1TVEAA==="} -import { importWhenVisible } from '@studiometa/js-toolkit'; - -importWhenVisible(() => import('./components/Component.js'), 'Component'); -``` - -**Parameters** - -- `importFn` (`() => Promise`): the function to import components -- `selector` (`string`): the name of the component or a CSS selector, the same logic as [components resolution](#config-components) will be used -- `parent` (`Base?`): the parent Base instance used to query the `selector`, if not specified `selector` will be searched in the whole document. -- `observerOptions` ([`IntersectionObserverInit?`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver)): options for the `IntersectionObserver` instance - -**Return value** - -- `Promise`: a promise resolving to the the component's class - -## Examples - -Import the class when the root element of the component is visible: - -```js {1,7-8} twoslash -// @twoslash-cache: {"v":1,"hash":"840591b649aaf3e9e3b1bc42025e634288009bb409ec451f44f1fafab91dd56d","data":"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="} -import { Base, importWhenVisible } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: (app) => - importWhenVisible( - () => import('./components/Component.js'), - 'Component', - app, - ), - }, - }; -} -``` - -Import the class when the `#import-component-trigger` element, which can be anywhere in the DOM, is visible: - -```js {1,7-8} twoslash -// @twoslash-cache: {"v":1,"hash":"d95382495fbe500769403a89346021b136a21e61d5eb695fe4384dafca6aaf69","data":"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"} -import { Base, importWhenVisible } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component: () => - importWhenVisible( - () => import('./components/Component.js'), - '#import-component-trigger', - ), - }, - }; -} -``` - -Import the class when the app's `btn` ref is visible: - -```js {1,8-9} twoslash -// @twoslash-cache: {"v":1,"hash":"34505b3d91b87433e0cd62fbaf638d77368f59956543af143f1f6b4156f05373","data":"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"} -import { Base, importWhenVisible } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - refs: ['btn'], - components: { - Component: (app) => - importWhenVisible( - () => import('./components/Component.js'), - app.$refs.btn, - ), - }, - }; -} -``` diff --git a/packages/docs/api/helpers/index.md b/packages/docs/api/helpers/index.md deleted file mode 100644 index cdfd3fe3e..000000000 --- a/packages/docs/api/helpers/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar: true ---- - -# Helpers - -The following helper functions can be used to achieve advanced setup of your application. For practical usage, see the [Getting Started guide](/guide/) and [Lazy imports](/guide/going-further/lazy-imports.html) for lazy import helpers. - -## Setup helpers - -The recommended way to register and mount components: - -- [registerComponent](./registerComponent.html) — register and mount components independently (recommended) -- [registerComponents](./registerComponents.html) — register and mount several components at once -- [defineFeatures](./defineFeatures.html) — configure global features (breakpoints, attributes, prefix) -- [createApp](./createApp.html) — bootstrap a root App class (when you need a central app instance) - -## Instance helpers - -Some helpers can be used to work with instances. - -- [getClosestParent](./getClosestParent.html) -- [getDirectChildren](./getDirectChildren.html) -- [getInstanceFromElement](./getInstanceFromElement.html) -- [getInstances](./getInstances.html) -- [isDirectChild](./isDirectChild.html) - -## Query helpers - -The following helpers let you find component instances by name, CSS selector, and state — without relying on parent/children relationships. - -- [queryComponent / queryComponentAll](./queryComponent.html) -- [closestComponent](./closestComponent.html) - -## Lazy import helpers - -Some components might not need to be imported and instantiated immediately on page load. The following functions let you define when to import these components. - -- [importOnInteraction](./importOnInteraction.html) -- [importWhenIdle](./importWhenIdle.html) -- [importWhenVisible](./importWhenVisible.html) -- [importOnMediaQuery](./importOnMediaQuery.html) -- [importWhenPrefersMotion](./importWhenPrefersMotion.html) - -## Debug helpers - -- [logTree](./logTree.html) — log the component tree to the console diff --git a/packages/docs/api/helpers/isDirectChild.md b/packages/docs/api/helpers/isDirectChild.md deleted file mode 100644 index 50d481125..000000000 --- a/packages/docs/api/helpers/isDirectChild.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -outline: deep ---- - -# isDirectChild - -Tests whether a child component instance is a direct descendant of the given parent instance. It helps when working with nested components that declare themselves as children. - -## Usage - -```js {1,9,14} twoslash -// @twoslash-cache: {"v":1,"hash":"b6ac9a2c6b6b5510651f91e58012094659e5edbc4a5b5c9212866a7f1039956b","data":"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"} -import { Base, isDirectChild } from '@studiometa/js-toolkit'; -import Child from './Child.js'; - -class Parent extends Base { - static config = { - name: 'Parent', - components: { - Child, - Parent, // Useful for recursive components only - }, - }; - - onChildClick({ target, event }) { - if (isDirectChild(this, 'Parent', 'Child', target)) { - event.preventDefault(); - } - } -} -``` - -**Parameters** - -- `parentInstance` (`Base`): the parent instance. -- `parentName` (`string`): the name of the recursive parent as specified in the `config.components` object. -- `childName` (`string`): the name of the child component as specified in the `config.components` object. -- `childInstance` (`Base`): the child instance. - -**Return value** - -- `boolean`: `true` if the given child instance is a direct descendant of the given parent instance. diff --git a/packages/docs/api/helpers/logTree.md b/packages/docs/api/helpers/logTree.md deleted file mode 100644 index d5a1ba37a..000000000 --- a/packages/docs/api/helpers/logTree.md +++ /dev/null @@ -1,43 +0,0 @@ -# logTree - -Logs the component tree to the browser console starting from a given instance. Uses the global instance registry and DOM containment to build the tree — does **not** rely on the deprecated `$children` API. - -Components with children are displayed as collapsed groups. Each entry shows: - -- **●** for mounted instances, **○** for unmounted -- The instance `$id` -- A reference to the DOM element - -## Usage - -### From the console (zero config) - -When using `createApp`, a `$logTree()` function is automatically registered on `globalThis` in development mode. Just open your browser console and type: - -```js -$logTree(); -``` - -### Programmatic usage - -```js -import { logTree } from '@studiometa/js-toolkit'; - -// From any component -logTree(this); -``` - -```js -import { createApp, logTree } from '@studiometa/js-toolkit'; - -const useApp = createApp(App); -useApp().then((app) => logTree(app)); -``` - -### Parameters - -- `instance` (`Base`): The root component instance to log the tree from. - -### Return value - -- `void`: Logs to the console, does not return a value. diff --git a/packages/docs/api/helpers/queryComponent.md b/packages/docs/api/helpers/queryComponent.md deleted file mode 100644 index c3e14c25b..000000000 --- a/packages/docs/api/helpers/queryComponent.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -outline: deep ---- - -# queryComponent - -Returns the first instance of a component matching a given query. `queryComponentAll` returns all matching instances. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ec5cdc11f21bc5719982a5a5219a4cfc620dd1fb2fe083119ff66584916f42e9","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAI6CyGAMIQAtlkkwwaADwAVXnRpgocXgCEuMXgF4zFrebgwACqQhY4APg+NZ8xLzg0UnYwAHMKXjdxSTgAfn8ARTlSDAB5LGiwHn89AB9eYVh+EJgoAB0wdlUIUjQZZMUVNTANBiooCBEERBAAcRg6tHxLYtJA3hDA5lFLCH5eESb1TV4Ad3Yh3iHLUPYSKV8UgDpKECnapABOKlYNUKGkAEYAFio0ZlJQgbxDxuqWzSnDgtJAABioInwH2YYjIVwAvhR0NhcD1CCRyG8DEw2JweAJhGIJAcGkp/q0AIKsVi6fT0DTGWyOaxMmD2CwuNyeby/fyBYJhCJRYlxRINdKZbK8HTIAC6FSqalq9XkZOalOppw6XTw/TqbFYEyy7xmJjmCyWALq602214u32KuOp3ODEQACYAKw3O4PRCPADsbw+XzdIF+auWaCprCBJTBEKhpBhNHIHs9iORODw6LhWPoeEWxoEEAg/gcbIrnPcHl4+UKMGKLSgLveF39nsePrCfoAzMHPt8evxS3GQYh+yBIdDYWmAGyZ6gonPEPPUbE9FgcLh8COW1rsxyH5yuGs8hp8oIhcKRDIi+K8JLyCUi7jluxV0+eOsFIyNkrlJU1TKnu5KAu0nTdH0AxbMMAjsGMdSTCaIizPMixgdaGz4LBOx7BoToYCcVCuk8npBiAtw9vgTyvNQIZDuGpL7uBlHxhOiYzqmTzuoumDZmiq6YuuBY9EW4wGgAYqWcDvken5ch4cqth8bpeuClG+jRiAUW2oZ4FJMljqic6ccms5IAuSJLgJBBCacNCiSAW54ruzGYTGx7HtW3I+BeARXoKt6Sg+T4pC+MRvqy3lfkp8pAUqdSgeqmgxlqkG6jBBpGlMpqROhLFYbacEOgRvzEWcbZqXOGlUfc2mBgO+k9MlUZpTc7GmVOSYpnC/oLrKELQKiICKjUdTAIRkZWhErVWjGvDwgIrjKLwADkAACgSCFAEjKAMzAAPQAFZwAAtGgpasAA1hsa0ANwVBUh2Hbweq4fBiE5ShaEWphazYbwAAGRbFKERxgMw+3WFYNhrdJEBrUDFTiXUI4QCyc2tIw8Olmt3CPWAz2ve92XIdMqFmgV/02jhIOSGDENQ5YsNwwjSMozE+rUgjJg2FjqXUjj7ME6c+3vEgoAGBocDEngp0gPC8JAA="} -import { queryComponent, queryComponentAll } from '@studiometa/js-toolkit'; - -// Get the first instance of component with `config.name === 'Foo'` -const foo = queryComponent('Foo'); - -// Get all instances of component with `config.name === 'Foo'` -const allFoos = queryComponentAll('Foo'); -``` - -### CSS selector filtering - -You can filter by CSS selector by appending it in parentheses: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"f3fd02d1e8ec769d0602c41c9d0aa7406462ba0c814fe9448373a473e4557cd8","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAI6CyGAMIQAtlkkwwaADwAVXnRpgocXgCEuMXgF4zFrebgwACqQhY4APg+NZ8xLzg0UnYwAHMKXjdxSTgAfn8ARTlSDAB5LGiwHn89AB9eYVh+EJgoAB0wdlUIUjQZZMUVNTANBiooCBEERBAAcRg6tHxLYtJA3hDA5lFLCH5eESb1TV4Ad3Yh3iHLUPYSKV8UgDpKECnapABOKlYNUKGkAEYAFio0ZlJQgbxDxuqWzSnDgtJAABioInwH2YYjIVwAvhR0NhcD1CCRyG8DHhFlk6nB2LAAEYfABiEAg/gcMHsFhcbk8vHyhRgxRaUFO5wYiEeACYAOw3O4PHng6gfL7cs6EmAk0jkiBAkpIADMEKhpBhNHIiAAbIjkTg8Oi4Vj6Ew2JwePV5Ep/q1aY5Hc5XO4vD4Gv5AsEwhEohIsvFeEl5OlMtlbE7qfS3UyCkZWSVypVqrUbSk7c1WqcOl08P1BsMBOwxnVJu8ZpF5ot7St1pttrxdvt0xgTlQuU9nmLbmERS83hLvj1fpnlm0QMDUWqQJDobCdY9LgbqCjjcRTdRsT1ceNlMwQgqqXZo67GcyE2zSpz3hdELyVa9J8L8EhBeLPsOQPvDxSlSC9XVedtSQfUkVXI00Q3TEt3NHoWA4Lg+FHJYAW0alnRjTxvF+L0ghCcJIgyAM4kSBowxI7hjyjOkzw8OMWSvZMqjUNMUNrCdc26PoBi2ItRnGctphEWZq1Q1o1g2fA+J2PYNFbdszlvbleWeJ9e3uV8eSfW9JR+BoxzQ/9UV1IDNQXJ59QAXQhaBURAFiajqYBW0MiT4QEVxlF4AByAABQJBCgCRlAGZgAHoACs4AAWjQClWAAaw2HyAG4KgqcLwt4AsZOLUsJjxYTRN8hUfMkzZmF4BQAGUaoWVguBMAADI4CWJD5moqXd8RlOUFWsVzxM0RgfIVRg2r6j5uB87h0rATLstyxsBLLIrKzmUqKXK+tpOmCYoF4ZqAGIfzALrRBiOozoGmx2KzEaxopRhToPMAZrm05QveJBQAMDQCUkPBopAeF4SAA"} -import { queryComponent } from '@studiometa/js-toolkit'; - -// Get the first instance of 'Foo' with a CSS class `.sidebar` -const sidebarFoo = queryComponent('Foo(.sidebar)'); - -// Get the first instance of 'Foo' with an id `#main` -const mainFoo = queryComponent('Foo(#main)'); -``` - -### State filtering - -You can filter by component state using `:mounted`, `:destroyed`, or `:terminated`: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"92768d4c989f3b43d7f831ca1550fbfc22577809646249dc946c34a91473d555","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvAI6CyGAMIQAtlkkwwaADwAVXnRpgocXgCEuMXgF4zFrebgwACqQhY4APg+NZ8xLzg0UnYwAHMKXjdxSTgAfn8ARTlSDAB5LGiwHn89AB9eYVh+EJgoAB0wdlUIUjQZZMUVNTANBiooCBEERBAAcRg6tHxLYtJA3hDA5lFLCH5eESb1TV4Ad3Yh3iHLUPYSKV8UgDpKECnapABOKlYNUKGkAEYAFio0ZlJQgbxDxuqWzSnDgtJAABioInwH2YYjIVwAvhR0NhcD1CCRyG8DHhFlk6soIMIaFAAGIQCD+BwwewWFxuTy8fKFGDFFpQU7nBiIR6ggDsNzuD254OoHy+XJABKJpTJECBJSQAGYIVDSDCaOREAA2RHInB4dFwrH0JhsTg8eryJT/Vo0xx25yudxeHwNfyBYJhCJRCRZeK8JLydKZbK2e1UunOxkFIwskrlSrVWqWlLW5qtU4dLp4fqDYYCdhjOqTd4zSLzRY2lbrTbbXi7fYpjAnKicp4AJhFtzCQpebzF3x6vzTyzaIGBqOVIEh0Nhmsel111BRBuIRuo2J6uPGsA9EAwMvJlLsEadDKZsdZpQ57wuiE7U+793wHf7n0HIF3QX3h7lNwV2oqrOGpIDqSLLvqaJrpiG4mj0LAcFwfDDksALaFSDqRp43i/O6QQhOEkQZL6cSJA0wYkdwx7hrSZ4eNGzJXgmVRqMmKFVmOWbdH0AxbPmozjCW0wiLMFaoa0awbPgfE7HsGhNi2Zy3ly7aPAAHAKPYvtyryiu+ErsemgL/iCgHTqq6pwvejzwgAuhC0CoiALE1HUwBNiOaG8PCAiuMovAAOQAAKBIIUASMoAzMAA9AAVnAAC0aDkqwADWGwBQA3BUFTRdFvC5jJBZFrwUqaKUEx4sJomBbKAUVNu+KEuVpLktYHniZojABbKiBlcSAXcNlYC5flhV1gJdRfq4B5QJVUxlnMtXkvVogxFN8DfrNsrtYZo7db100/lAg2ZackXvEgoAGBocC+ng8UgPC8JAA==="} -import { queryComponent } from '@studiometa/js-toolkit'; - -// Get the first mounted instance of 'Foo' -const mountedFoo = queryComponent('Foo:mounted'); - -// Get the first destroyed instance of 'Foo' -const destroyedFoo = queryComponent('Foo:destroyed'); -``` - -### Scoped search - -By default, the search is performed on the entire document. Use the `from` option to limit the scope: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"5b06779dc9684068e8f4b3a792f589956f66c8e4ef2935276ab6254c4e2806ed","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLwAjmVkGADC1RsYBGaAAgqxWDI5PQRkoHN49F5JF5DNpjMZGD8/oheKVSOxRhReFo0B84AB+XEARV+pAwAHksGSIGAeLjpMh2uYrDY7N86QCgazQRDWE4XG48ABxWq8NisXiEnpveAkp4CYUgsD2ADuRXwvHG3hC7BIn2x9MC3VmDEQAEYAKxDEZjCYOgDsM168ztIEtQusIp1YuWhNWGxAWx2e2uDsdJzOODwhBI5Bmtw8gmEvDUvVBTh6fUQHoAzC7RuMkAA2b1zBYePOkAtDcNIABMm22pF2+xrieo5xTV3T1EzIBYHC4fGzfgR0PkcOUBk02l4SJXRjMFiD/KWVEl7k8Eh8wmt1FC4Ui0TiVASSTgqQy2Vy+UKxVKFSqNTqDSaLTaTobV6O0AA5QIrN0pjrX1FgkMMQQ7LsYz7RB23tAdMGTDxU2uDN6CYLBVzITA+CbUF/H4VknnYEJcWAcxeCY3gwGYGpcXxQkQgAbnMI4JVcI9ATAGiQnPYIwiQCIokJW8CESZI0kyHI8gKIoSnKSpqlqZh6hgRpmlaKiRNosoexZMB/ASSxxSAkAizte01mmKJXSrRBawves/WM0SENWcso27Xs42OU5B2wy40xuAiPEYIitBIjA+FY9i8TQAlRkLW0kHte1Blcyt3Rc2ZYI8VLcFbRDEBc6Me1jA5JkwoccJHGK/UYH9CCgMj8x1fxLAgV4aCgRhuFxIgIHYKBspA3LJkC4YiqQL0vLKkBBuGmAZqq1ZVrqkKDnbZrItw0caFiqNWVKZ48kfedUVXEwuVm4t23bValqgmqYIbEAnju/yBmQ+rUKck6LjO9q7inR4A0BINtXBSEUQkVHVDRExMQDDiMq44lSXJKleFpP4mQs9kHs3dEuR5Xd7HhrVRUhASpQ8WV7AVJU2WCVURAgDUqMR0FeH1cYjXwE0zRGAU/nPByO1LFyvvc+1VtKv7GeFkMWd24GgpQuM1Yh4dovwjqEpwOxkpJwVyfJfwnk0SxiYACWkABZAAZABRYYah1XgAB9eAAEVcMoA/sEPXlgGiQR2+ycrQ6t7Ug9ySp9P6neqIHDhBw6pia8KsMhtrzcI4jrb4ZFHq3fwABIYFYXF3e9v2YCj3gADJeAYz5mIAfUHgAjCRh+Jj3mkkTiiQRYPeFMMdSEsQlmBGpfjF4sB+IPQS8GkSXeE0CB7GbzuKKCS8pOvWT4gUx8lJfVT3w0r9tN/fT/1aZVef4GAsiWxIuweAVk0A2QAMTNw6F0JOc00Iek7IVb6gUNZ+ibuKPW+cDagzjI6BMsCqKwDwLyWw9hgAImJFrYEzNFRHGeM7XgAByAAAp+LSP5mDPhUm+IoTDt7mFnCIcigdFyKGXKoPujF0rr3YPwTUJkQjrikQPJiFVcRMJEWgJhFBpFHAEQPTaOptpjRUcxXgaReAMjAKwDAvBfS8AAGJ5G5iqf+IhlTTW8OMdgIghY0J1EwkQ58o7SKYsZG6AMIC6FlvSBGATkasEYEw5xEAdF9wYdUXEPiAgYN4Ecbg28mJHD4k4ThSBQBiLgB8PAmQQBHCOEAA"} -import { Base, queryComponentAll } from '@studiometa/js-toolkit'; - -class Parent extends Base { - static config = { - name: 'Parent', - }; - - mounted() { - // Only get Foo instances inside this component's element - const foos = queryComponentAll('Foo', { from: this.$el }); - } -} -``` - -## `queryComponent` - -**Parameters** - -- `query` (`string`): a query string in the format `ComponentName(.cssSelector):state` -- `options` (`{ from?: HTMLElement | Document }`): optional scope for the search (defaults to `document`) - -**Return value** - -- `Base | undefined`: the first matching instance, or `undefined` if none found - -## `queryComponentAll` - -**Parameters** - -- `query` (`string`): a query string in the format `ComponentName(.cssSelector):state` -- `options` (`{ from?: HTMLElement | Document }`): optional scope for the search (defaults to `document`) - -**Return value** - -- `Base[]`: an array of all matching instances diff --git a/packages/docs/api/helpers/registerComponent.md b/packages/docs/api/helpers/registerComponent.md deleted file mode 100644 index ed99f9900..000000000 --- a/packages/docs/api/helpers/registerComponent.md +++ /dev/null @@ -1,93 +0,0 @@ -# registerComponent - -Registers a component in the global registry and mounts it on the matching elements in the DOM. Use it to instantiate components without the parent → child relationship of the [`config.components` configuration](/api/configuration.md#config-components). - -This function is inspired by the [`customElements.define()` function](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define) of Web Components. - -::: tip 💡 Naming components -When using the `registerComponent` function to load and mount components, the [`config.name` property](/api/configuration.md#config-name) of the component is used to register and look for components. -::: - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"9c1d70450717691d825a4b8f762765da855d36460752d8a038214844e31900a8","data":"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="} -import { registerComponent, importWhenVisible } from '@studiometa/js-toolkit'; -import Component from './Component.js'; -import Link from './Link.js'; - -// Sync -registerComponent(Component); - -// Async -registerComponent(import('./AsyncComponent.js')); - -// Lazy -registerComponent( - importWhenVisible(() => import('./LazyComponent.js'), 'LazyComponent'), -); - -// Custom selector -registerComponent(Link, 'a[href^="https"]'); -``` - -**Parameters** - -- `ctor` (`typeof Base | Promise | (() => Promise)`): a component class, a promise resolving to a component class or a module namespace (`import(...)`), or a factory function returning such a promise (`() => import(...)`) -- `nameOrSelector` (`string`): an optional name or selector to use to find components in the DOM instead of the `config.name` property - -**Return value** - -- `instances` (`Promise`): a promise resolving to the created instances of the component - -Instances are mounted independently: if an element fails to mount, it is skipped (and logged with `console.error` in development) instead of rejecting the whole call, so the resolved array contains every instance that mounted successfully. - -## Examples - -### Basic usage - -Use the `registerComponent` function to register a component globally. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"dfb4fc6cfaaac78abdb5506540bedfb7822399776c57abaf92845c31071aac14","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYLykMCHspWQAYWqNjAIzQMjk9BGSgcMCBYFKpDKe1svD0XnhiORuVIxkYKNIiF4sgAPrxDJY/lJpMYKLwwMwagB5UgAZRgwwJAH4iYj2KNuESKVTJABBADuzCKMCgkgAkgjgm8YNJzjJjMZkO0zBZrLZ7N9fv9SEC9aCwAwqC43HgAEo/P77XghVgQABGbFYGF4zEUvEsEFe9mYzvYJE+/GBEHNaDpqJDWE0lNUX3g+SI/JCvFyPoEUZjgRmoXCkWicSoCSScFSGWyuXyhWKpQqVRqdQaTRaKXwHJwpDgKUNjsB+bB/gSllYHQokSwO0sTgJxJ7ebNYLziqRS/jvET1Spqbg6cz2YgvCKgS6s/nTgZzLZHJgS+kK7v3lRqk5ONPvDKqigzyouMfyriCY7TpE3zlKQYBOKKu5Jge3xHqwGajD+vo+qQpDMN6EBPP6gYWjKoHRuu/I9MqAQdF0IA9H0iAAIwAKxDCMYwTExADsRZzAsHhDsappgRayz8qsGwgFsOx7NcTHMScZw4HghAkOQMy3B4gjCLwwlkaJ3SzAwiBcQAzGxozjAMvHzMZIB6TGYmgkgABMmzbDhskHAAbIp1DnCpVzqdQmkgCwHBcHw2l+LCELyNCygGJo2horChjaDqVg2HYsJONa7ieBIPjCIW1DFkgERRPy5YEIkyRpJkOR5AUF7NpU1S1Mw9QwI0zStDRhm9MZ/SMRZHFTDZ/GFY4Qzia57kyfsrmTH5mDKR4qnXBp9BMHufaYHwDljpGYBPOwIREsA5i8Dd9KMjAvJoKQmYANzmEceWuAV8JnSEpXBGEFWltV8R1dWDV1s1jYlOU7Vtl1HZ9SkJ2/WUOFoB845oJOA10UZSCMWsPFROxVmIN5k12Sj51Oas5lSR5uxLYcq0BRtQU3DtHiMHtZAHXdNSPc9oxOPRxmMS5bkk5ZnHTGVfF2W+tMTQzi1yStpz+etlxqZzdnhQ8fCCfsR0WpIa0wPhumjhaeIEkSFtW6b9hksKqjm+cTs22gtICzALLsl+tg8rwfICkKiHu87WqZXqOXGyOa4Gc4X12g6xrOq6HqsF6Pp+gGQa5r84akTGcakLme7Jt4yHHuhOYhpGSfFEE5UoMDsSg1WNaNfWLVNrDradd1vVdj2rB9gOCcmt7WM41eIBzjhC6bN+L7eE3In2CdWLbhXCaRzXaaoSeOYXhBi83lQb4B4+z6vvdvAfnf345n+JFPEB+AgZv+ktwvUE0awSoPBKuSFj5oSzA3T4vQcJ4QIgXYiAFf4xnPIqX0/B4CXlomLAmkxBjS3GtxSmeBp7O2VogAAHAtTyzM1is21ptYKNAuZSV8CIchg0GKMW8sTYYMtrLy1sngThVVnJUJoUzOSjFKFHFopGWAeAsr6l4MAWEdIyHe14EcZ4SZeAAHIAACbUh7BFrE1BsRR9FvTAOYaKHCtHxUUIlFMV1Pih2CBjfgG5fqpTcbdP2RJ9HO30RQa62ibFHHMOYTRzdGDO24C9Jw8MkCgCcXAD4eBMggCOEcIAA"} -import { Base, registerComponent } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - }; -} - -registerComponent(Component); -``` - -### Async components - -Register components asynchronously by providing a dynamic import as parameter. The module's `default` export is used automatically, so you can pass the `import(...)` promise directly. - -```js -import { registerComponent } from '@studiometa/js-toolkit'; - -registerComponent(import('./AsyncComponent.js')); -``` - -You can also pass a factory function returning the import, mirroring how lazy [child components](/api/configuration.md#config-components) are declared. The import is triggered immediately. - -```js -import { registerComponent } from '@studiometa/js-toolkit'; - -registerComponent(() => import('./AsyncComponent.js')); -``` - -### Lazy components - -You can use the lazy import helpers such as [`importWhenVisible`](./importWhenVisible.md) to register lazy components. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"420199031a5bee5beec8ad022989e3f438314a394953014399062f7f8b8168c4","data":"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"} -import { registerComponent, importWhenVisible } from '@studiometa/js-toolkit'; - -registerComponent( - importWhenVisible(() => import('./LazyComponent.js'), 'LazyComponent'), -); -``` diff --git a/packages/docs/api/helpers/registerComponents.md b/packages/docs/api/helpers/registerComponents.md deleted file mode 100644 index f42b0db3c..000000000 --- a/packages/docs/api/helpers/registerComponents.md +++ /dev/null @@ -1,75 +0,0 @@ -# registerComponents - -Registers and mounts multiple components at once. It is a thin wrapper around [`registerComponent`](./registerComponent.md), looping over each given constructor so you do not have to call `registerComponent` repeatedly. - -::: tip 💡 Naming components -As with [`registerComponent`](./registerComponent.md), the [`config.name` property](/api/configuration.md#config-name) of each component is used to register and look for components in the DOM. Use `registerComponent` directly when you need a custom name or selector. -::: - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"47128342919d2217388de05173c9795d7319c4ee4dcec0c1daf8122f06c53e2d","data":"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"} -import { registerComponents } from '@studiometa/js-toolkit'; -import Action from './Action.js'; -import DataBind from './DataBind.js'; -import Figure from './Figure.js'; - -registerComponents(Action, DataBind, Figure); -``` - -This is equivalent to: - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"8fac8cec85d3754896c7d81feabd4e5c62d99d7cd9b1c6cc963db8610044d5cc","data":"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"} -import { registerComponent } from '@studiometa/js-toolkit'; -import Action from './Action.js'; -import DataBind from './DataBind.js'; -import Figure from './Figure.js'; - -registerComponent(Action); -registerComponent(DataBind); -registerComponent(Figure); -``` - -Async, factory and lazy components are supported too, since each argument is forwarded to [`registerComponent`](./registerComponent.md): - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"a539e64de9f45b435f570e7cd57044c07a08389b0ac89be413800c97a70b8ec8","data":"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"} -import { - registerComponents, - importWhenVisible, -} from '@studiometa/js-toolkit'; -import Action from './Action.js'; - -registerComponents( - Action, - import('./DataBind.js'), - () => import('./Table.js'), - importWhenVisible(() => import('./Figure.js'), 'Figure'), -); -``` - -**Parameters** - -- `...ctors` (`(typeof Base | Promise | (() => Promise))[]`): a list of components, each accepting the same forms as [`registerComponent`](./registerComponent.md)'s `ctor` parameter - -**Return value** - -- `instances` (`Promise`): a promise resolving to a flat array of the created instances - -## Error handling - -Components are registered independently, down to each instance. A failure — a rejected dynamic `import(...)`, or a single element that fails to mount — does not prevent the other components or instances from being registered, and the returned array contains every instance that mounted successfully. Failures are skipped and logged with `console.error` in development. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"87e70005977d62282ab3d9698402794a5d85eefe2b4d9bf54d48234044cf745c","data":"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"} -import { registerComponents } from '@studiometa/js-toolkit'; -import Action from './Action.js'; - -// `Action` is still registered even though the lazy import fails. -const instances = await registerComponents( - Action, - () => import('./Missing.js'), -); -``` diff --git a/packages/docs/api/html/data-component.md b/packages/docs/api/html/data-component.md deleted file mode 100644 index 4b619f156..000000000 --- a/packages/docs/api/html/data-component.md +++ /dev/null @@ -1,84 +0,0 @@ -# data-component - -Bind a JavaScript class to an element with the `data-component` attribute in HTML. - -:::tip READ MORE - -- [Configuration: `config.components`](/api/configuration.html#config-components) -- [Guide: managing components](/guide/introduction/managing-components.html) - -::: - -## Simple usage - -js-toolkit finds and mounts components on elements matching `[data-component=""]` where `` corresponds to the component's `config.name` or the name passed to `registerComponent`. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"1866d71daf94f1b60754eafba07c6671c574d43767130b8da1e8ee0601f3172a","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvUjADm7ODVIBhCAFsskmGDQAeACq86NMFDi8AQlxiqwi0oLERSvALyXrt+47TOAfIxOpIi8hgA+vAAKpOoKMAZ+FLxgzGowAPKkAMowrDBBAPwh9uxgstwh0bFw8QCCAO7M7DRQugCSdmjMojD62PH6fn7IALp+ADpg7BrOaNJyCkqqM2DaDFRQECIIiCAASguKZLyyrBAARmysGLzdULxqEMJzzCfsJFIi6pqrOknOt14WBiaji8zgEFYRFKsl4vkBXxWawAdJRqMxZDtkMgQBwwABrNH4NBoLBwRAAegpACs4ABaXyQ/HNZGKQRQCRpLrI2BECnMLDsCn4XI4UhwCkyeRHFTfLQ6ZHEtSsEAjCg4rDMUipNFBUIi3iIn5rQ2Sbx6gGvYHVGDgyHQspwiC8Fmq9UgTXatRolJpTI5PJ6/QG322gE1QO+FzwwQ1e78AFofAKU1IhVunEyNCCUhgNG1IEgsEyCFQmFO25SLXam4QfgPJ46GD3I3yualRTdETwVEjNUgTukBiIACcVDyZSTSAAjAB2KhdUiyGDDkBSxZkZbGnRovG4RAABioInwWuYYjISBHAF8KOh+nhCCRyAvjHhppoh7wt220YPhwAbPOuLaLIU6jguWrLquP6/OsuKlPu07Hqe2oXuQiCzre944I+xCXq+9DvjMX7pEmm5ynBf6LsO04HsBE5gfgM4ACyQUuK54GRIqymm8F7kgABMKFnuhSBYXe1APrsT4EdQb67CwHBcHw64yrBay6N0GABEEITaUkob+rk+RRkUvAlGUFRREWNRaWAGCjBMUwkXMalLJRaxops2x4Ac0pKCcZyXKw1yVvcjzPIC8gfKm25oP8LhWrZtolva5bwq8rZwaikGYkg2IIQSRIkmSlI0vSjKsMyaCstmHLqCuzA8jAfICkKIqsGKEruRRfGKmgyoZh6Z7eseUb6ra2Uml8nQOBaSWFjadplo68KumqGqjT6qQZNkJlBiGu28OGB0TTGcYCImybmNN6abWuK45nmVAFtaoI1CtDqwplVakDWJ31pFTYtp5Ogup0XY9qq/b/jOACsyEgZOzGIHO7HQXgvW8fFu6IUgbEgCeolKEgB7YVJuEyfhL7yURuwfrM35g/BcNowBY7I0xV4Y5xuwaTu4744ghPE2hpNowAHBTmBUwQNNojQ9MgEpnA8PMAV9fF9k6YEUb6Q5hm7cZkbOOZlnlJUKU605kyM1+2MC/BPk7PshyBacFxXDcdwNlFrwxdocVtolgLvcW8DpWtzpZSzuXovlKA4nihJUMSpLklStIMhATIsmyDVcs1vL8oKwqimQPXu1rbYDUND2ejq40AsGU0s6ac0+AClpLR9qWR6tP3Oht7qN2N4DG/tpsuK3yTHad08VrGzZXdGN3Bzlw1Zs9+a9xHpbfRW3S3P9zC1kDjYtBvJodl0PRwL2sM0TOktI4x4Ho+iHGro7LN46sSB4YiXFpeQ8MtpLy2fIrBSIB7ZzG4jXKiVA2bThHJzd+qNpyE0XJjXYCCca/iFgAxAQCiaoXPBLac0t+xfFgMRT8cxgAaw3AQuCvBrwCBBLwAA5AAAQLpyJqFUc55zQNwgA3HbVyzM+KcPUDw5EFInbIlpBIqRDDeD4KdnItQCiKRaLjqoyRYBJi/z4owJ23BjFmPiowAxfEkjcOULGXwagAByu1uFWLREXJAoBjDaDgBIPMuxaQgGvNeIAA=="} -import { registerComponent } from '@studiometa/js-toolkit'; -import Component from './Component.js'; -import OtherComponent from './OtherComponent.js'; - -registerComponent(Component); -registerComponent(OtherComponent, 'CustomName'); -``` - -```html - - - - - App - - -
    -
    - - -``` - -## Prefixed HTML elements - -In addition to resolving components with the `data-component` attribute, js-toolkit looks for prefixed HTML elements (the default is `tk-`). - -The previous HTML example can be rewritten to: - - -```html - - - - - App - - -
    // [!code --] -
    // [!code --] - // [!code ++] - // [!code ++] - - -``` - - -## Multiple components on a single HTML element - -Declare multiple components on a single HTML element by listing multiple names in the `data-component` attribute separated by a whitespace. - -In the following example, js-toolkit mounts both components from the previous app on the same element. - -```html - - - - - App - - -
    - - - - - -``` diff --git a/packages/docs/api/html/data-option.md b/packages/docs/api/html/data-option.md deleted file mode 100644 index a134c8001..000000000 --- a/packages/docs/api/html/data-option.md +++ /dev/null @@ -1,42 +0,0 @@ -# data-option-<​name> - -Configure the options of components from your HTML with `data-option-` attributes. - -:::tip READ MORE - -- [Configuration: `config.options`](/api/configuration.html#config-options) -- [Guide: managing options](/guide/introduction/managing-options.html) - -::: - -## data-option-no-<​name> - -Negate a boolean option's value by prefixing its name with `no-`. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"78bf935302f3b19c18f08cf5a0b2db13edfdf14ac8a91e4ef466ab3e281d1f59","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -/** - * @extends {Base<{ $options: { open: boolean } }>} - */ -class Component extends Base { - static config = { - name: 'Component', - options: { - open: { - type: Boolean, - default: true, - }, - }, - }; - - mounted() { - console.log(this.$options.open); // false - } -} -``` - -```html -
    -``` diff --git a/packages/docs/api/html/data-ref.md b/packages/docs/api/html/data-ref.md deleted file mode 100644 index d65b03053..000000000 --- a/packages/docs/api/html/data-ref.md +++ /dev/null @@ -1,10 +0,0 @@ -# data-ref - -Define elements inside the scope of a component with `data-ref` attributes. Access them in JavaScript with the `$refs` instance property. - -:::tip READ MORE - -- [Configuration: `config.refs`](/api/configuration.html#config-refs) -- [Guide: managing refs](/guide/introduction/managing-refs.html) - -::: diff --git a/packages/docs/api/html/index.md b/packages/docs/api/html/index.md deleted file mode 100644 index da8306590..000000000 --- a/packages/docs/api/html/index.md +++ /dev/null @@ -1,75 +0,0 @@ -# HTML API - -For a practical introduction to using these attributes, see the [Components](/guide/introduction/managing-components.html), [Refs](/guide/introduction/managing-refs.html), and [Options](/guide/introduction/managing-options.html) guides. - -The following attributes can be used: - -- [data-component](./data-component.md) -- [data-ref](./data-ref.md) -- [data-option](./data-option.md) - -## Customizing the attributes - -Configure these attributes with the [`defineFeatures` helper](/api/helpers/defineFeatures.html) or [`createApp`](/api/helpers/createApp.html): - -```js -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ - attributes: { - component: 'tk-is', - option: 'tk-opt', - ref: 'tk-ref', - }, -}); -``` - -Then update your HTML templates: - -```diff -
    - ... -- -
    -``` - -## Using prefixed HTML element names - -js-toolkit also resolves components from a prefixed, dash-case element name in HTML. - -```diff --
    -+ - ... --
    -+ -``` - -Combine the attribute and element-name API to attach multiple components to a single element: - -```html -... -``` - -The prefix defaults to `tk`. Configure it with the [`defineFeatures` helper](/api/helpers/defineFeatures.html) or [`createApp`](/api/helpers/createApp.html): - -```js -import { defineFeatures } from '@studiometa/js-toolkit'; - -defineFeatures({ prefix: 'w' }); -``` - -```diff -- -+ - ... -- -+ -``` diff --git a/packages/docs/api/index.md b/packages/docs/api/index.md deleted file mode 100644 index f188a41e4..000000000 --- a/packages/docs/api/index.md +++ /dev/null @@ -1,26 +0,0 @@ -# Base class - -Create components by extending the `Base` class. For a step-by-step introduction, see the [Getting Started guide](/guide/). - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"8236f1f9a006c6b6a734b7ee2c84b31864bd3b8591483051ff85b8454a8d3b04","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiACs01EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+yQADYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAB2VEA0bjKaguYLDxLIaI1bWrY7PbXRDIyZ46jnQlXEnUMkgRhYTQ4OwYPhQ17vfz8GEAM3YIUQvGA5l4ed4YGYNSzpVIiJCAG5zEdBa53JC0xmJdRQuFItE4lQEkk4KkMtlcvlCsVShUqjU6g0mi0UimwOmQmUMWgqmB/AlLKxjZ9et8ABx7oaAu2IbEO8F3RshZZupAAZjRXqxhwDmAJHiJ11J9CYUa0ZEwPhC2LXhS3LJwzW+ABGNYHxtIF7RbR0IWA3BXSRRB/k9DFvQOf0TRTWA8F5Wx7GAOleCOXhU00SxeAAcgAAVHLUJ2YfsVSHIp6KrMBzBpEQExhd45HoJllFFHMwDzHoV34AQr3ZbNc3zVCs3ooTYTQeiKBUo5eJrKg2KQUBGTAOBVzwTIQCOI4gA="} -import { Base } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - }; -} -``` - -Discover how to configure and use the `Base` class in the following sections: - -- [Configuration](/api/configuration.html) -- [Lifecycle hooks](/api/methods-hooks-lifecycle.html) -- [Services hooks](/api/methods-hooks-services.html) -- [Events hooks](/api/methods-hooks-events.html) -- [Instantiation](/api/instantiation.html) -- [Instance properties](/api/instance-properties.html) -- [Instance methods](/api/instance-methods.html) -- [Instance events](/api/instance-events.html) -- [Static methods](/api/static-methods.html) diff --git a/packages/docs/api/instance-events.md b/packages/docs/api/instance-events.md deleted file mode 100644 index eaa63421f..000000000 --- a/packages/docs/api/instance-events.md +++ /dev/null @@ -1,182 +0,0 @@ -# Events - -::: tip See also -For an introduction to event handling patterns, see the [Events guide](/guide/introduction/working-with-events.html). -::: - -## Lifecycle events - -### `mounted` - -Emitted when the instance is mounted. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"e091a819fd70d4c6aa762518c34a46f870dde4ea2f7256e3a0b5d67f5af26e00","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('mounted', () => { - console.log('App is mounted'); -}); -``` - -### `updated` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"6d12bba04d835728554c88730fa0ba738b424b587579fd790876fad405f97c64","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('updated', () => { - console.log('$update() has been called on this component'); -}); -``` - -### `destroyed` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"2db7187c6f00e9171a656fe893fd069b979ae0ff921f8477841934b366fd778e","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('destroyed', () => { - console.log('$destroy() has been called on this component'); -}); -``` - -### `terminated` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"cf56b882e8fac7ee3d732f7a1b6b9e27f0630f6b53a3384555f20f0773c605e0","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('terminated', () => { - console.log('$terminate() has been called on this component'); -}); -``` - -## Services events - -### `keyed` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ccfed257bb74472240913608d60630b42f86f654759edcaf349633a23d97a52b","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('keyed', () => { - console.log('User is typing'); -}); -``` - -### `moved` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"4b9cfb1138a280dd6dd25e4acb70e335721741846f37bd75161ed925dfd3d909","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('moved', () => { - console.log('User is moving their cursor'); -}); -``` - -### `resized` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"a7b91f15f0e3f34e4bed59a5948bb8563588027b8f2a6a4d09359231e9cd1d63","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAglhYTj19iACs01EjYxOIADMM168wYHmeryG7DAqwATJttqRdvskAA2E5nHB4QgkcgzW4eFgcLh8e5+BxSWTyEZKSmGbS8PReBkmcxWGx2SlOFxuRYSHzCQIgsJICJRGFxKgJJJwVIZbK5fKFYqlCpVGp1BpNFptTrdWbgtFooZ/cZTEFzBYeJbQ2FIBEgLY7PbXRAARgAHJjqOccVd8dRCSBGFhNDg7Bg+JD/PwIGAAGbsEKIXjAcy8TO8MDMGqp0qkGEhADc5iOPNc7hAAGF40mQsLqKFwpFolKCIlkmlMjk8gUiiVypVqrVmPUYI1mq044nk2VkWgqmB/AlLKwOl0QO9wZ7HcNRubECam1bwU668nljDVsCnUiUW7jqdfdiPLjrgT6Eww1oyJg+Dmea8AWRZvIaAwAOymgeAI/LMYJ4IBuB2qsPzOsiroHJMPqYK+lx4jcX4eDOpS8M0WCppCYG9OC7pwj8+7/Egt7wdaIDkVe9qIJ6iIuqiR44X6b4BoRZ4kWgpBlHsthPC8kgsuGJiMDAww1GAaCpgAEtIACyAAyACiqkjGg3CUS8FZ8h41a+CI4mSdJpC8AA7vgZDeGwrC8OM3iWKE7D8N5zAxPAvBYEI/AwI2wSiigkRYDslhOCpMBqfY0huQI1Q2LC6kAOQiJoED2ClaW8FAUCBF0raSvEnZyt2ip9iqg7qiOWoTjqrQwj06mcIu8Yrmga4bgaNFIO6gIMWaAIsaCbFUShSA8XefFuu6GLPrhFzvoGNBESARC9OVrhlGlqYACKnWlllVgAVHdAAGzkwi4zn1NdJmPQ9vCkLU85gCIzC/TACbuWAkXeRA3mZbyZ0mVl6nMNeUC8DCMPeC9igQO95jmMgOkXQAcrwABKoPg5F7SMDKXYpA0Km/qQ/iWBAABe7CsEI/i2CE9OVikADqMAAEYpI8agAJJC69OP8/w8Pqdw1EfJNK2MYeK2sWecM3Ut3G8Rh/Fwmsgl4btonfuGf5RrwV0K2l/gi9AGBabphnGept14Bl3gPY99uK8UztQBg313WF1uRiDYbwCZIg+bwkghxgxi8DJkgJsiNSqGgaeQLA6cJhjAjzn96knQ7JkUOnTlgGUXNo8XkDAVJ+ByJ7JW0OwpQBHjYAE8TZMU+XVM0/V8oM6wTMs+znPc7z8twELovi1LKSB2lKQp8rY2q5MUG/DBFonghHgp5xqwrehD4HHCT5YjtImfmJ8akeR5lQlu4Eep8nzQUxIEloz7sQsvrd0GxVpGzdKbLaQl8IfiDAdRgmpCBQD4F4eSBhFLGH8AAEnjMpEg6l8wSSLDXDgpQRhkFTAZYhaA9I9wUGQAA8qQOhJlGFUNhKQFhIt0gwD2DXLQA1AYAH5UzO3yDAZgYBeAAB8ngVQ4epLhzDeFYFETwVMjA+A6DTkQCA7AoDextK9MivBKHqN4AmMoENRFQzInIicJlorNjFPFRKyV6FZiJrmbwEBi6JxcepKqFBPHZyvNwsgWYABidi9hLkcSLbw/BPIwEqh0cJIAEqRKoCIpcIgWGaMKTYmSidHp/VZiQFRDCmHUNII9XgqDoBhMiH9copAwBOEeDYhJDjci8DsSLcxicrENLaRKWIdVZTyh7EqfsqohwalHOOScuoerBAhjALILSlBDTXAAYnjFkEJaAshpK5iLXYMQsgFLfqNb+41f6DCPoAuap48AEO6eAyBN9MJTDNk/AiL9EL+LgAlSGJFpHmCOk5aFwxUy1kBtI0xIBfa8EegimATTWZQAbt4H8RBjGhWBnADkwxyqizKCEEIRZEZwGkTDZg9ge7ASsJzY6gyfLmAAFLMCOgAZX4IWTRDKmU1GdBYOAlhI7EBJajEWGAXKi14CLTQzlVCkD7mAcwGK8UErkLQTkaAE7OWhhCwR7AkyBTjNYeM8dED9wjr0x6yLGXDCaeSEQL1xjNNqGgkQcA25kREFit+0j/DTxCLox6Ndw0ouGP4MgmhSCxqcajBNHqorOV6GAdN4wWUCFkWq7wZRVCo0Gc5QsNBHGyOVUTaAUVMjAQkjIyw/hzAut4CEae1yvJZukU0zZsioUXhCPODJjjq1FG8IM5Aj0fyRT8IOFwZQ0CPWprTBqKQC4wEyDzOYS8UhCBoKULIRA4Rwn8LQLqKQl3wACKuVghyH1+FKGu0yGb8aLs0MugIH6U2bvHrMtIe6D2L15MvU98BzmXuvbeqc96/2PoOS+t9fg0CwFIKQbg/heAYt7RAftmLsVepLSkoZFaXJFEIOutG9q7D0oqXuxAZHmnQAJZ23VYAAD6D1BZ5qLA9XjqZCN9rYOKylxGBF7AKv68Y0AgZ/WzDAWjMSSL1PUqwDA5g4AYAhvgTQkBy2WPYCFEu6qcZaqeFLBObllV/VUJYEWwwa6QCcr0OdDmGVabQDp8wXADNbGMxAUzHALOeXTj5JyjbYD+BbQWdtAReCCpgN57wC7IC1vjHK/9vBpYsOA9u+U4GAiQYFjB898Gb13ow2hw5zAsjZZ2ScjDWQqh8ATLYcwrMVMwm66QPyojuPmAMrQXM4Uy3ktGCXIjJHB2eqdTxx6q3MjmGxVGiAMa8puS5tDc1pBWBQDytwUsYA0i8A0DCU1qY9vTxcrYY7NdBkfrC2gDbEak3RsYLtlSD2ACkcA8o1zyod47p3zuXeu+pOUvB7sHae1AF7FqsPvc+4mqKKbbCMFhM5XgBkcM47yoLQgRga6MtQfS65qNtgvGoSd7gZ3zDQ8LLDuQROnI5zgKEDyihW03O8hhOdqPsOkGW5dzMhPU2plJ3kbQFP2r4Gp8wWn5EGcs5SFmTMRbkATjYO0L4v9Nfa7IvYYVoriiSTAJLMAGUe7Iv2vYXHTbEBEEsB6QEcIPSem4Cb7XRa+Gyat3Y239u4CO/kLwF3sA3ce8BGsfoQJff+6zEW1jN2yA5lYMh1wj6Uh0EEeupciAIIQQ9P0VPOv7B66OqwdoWRq3q/F2iRAV6q9m7kHXi37AxUx5gIgTPXS2C5//QX2gRfRGl9b2iNYfuLta4D/YDP6ks8j78jCAvdfeMgVGG3wEQJ+7iWzP4pkvASfzzJsRnq8Y8rnc27mrpjAA6yPmE5PBwAkJHAAIR21f2Qb/R6ZnBfK7NnW7P/UYGJQWS/Uma/FFMAX/C6f/Ugb/FHVtMXcwVbR6fucbSbSlctZjTKN1L7HFQUPwZbTAtbOADHUid7M/MEQVNtXMQVEcQgZyXRe/N+EqHDeg2oRgv6Zg1gnGDgmg+wSwDAd1JlPQPHKTKKSQ4YRgd7GuFNYA3rCQkgrbHbBHR7I7RnKHLXGHcA7Q8HZHRxdHMAcQ+QqKH7P7fbXgIHEHc/EwyHE3QwuHYwpHNA8wywjQ7HNNGQ6XYnOXcnYCJXFXNXenWERnYA1nG7OHZAQI8XXgYIhXUIqnWbGneHdXKIroRxFNI/Lgk/GoM/C/RuWAkZeAu/NQqw/wR/fNF/SA9/T/fxH/CAt/QAmIgwsAuHJAxo5ImAuAxlBAtogAtA/IsALAoIdxOKLcdLJwZARlecMeErNIOlcYMoEWWMaoXdJtTIHY2AbePtFIGrW9DgMWTbTIZWfUJ5VWT0aaY+UvYBNibFS+Cad0Q2W+B0IFf0EFJBM8FBANaAPgGon7bnXnCRJxDAGufwGE+5bPNQRKOHetZAdoMyXgQxYxaPAAandHTjxGnlV13mcErDwDcMcUeje3XSaV9XbjxxWHwx0gbkXCmzIjmCDjsgo0JWEAyRrhpIxnMCTG1XsHLSnS4BLjDCsF6GVTBPmAzTIkblV0qFEUkxFNRjFODRFlKCKGL3jFhTYDKFCnJUsE5ScnnV/RuwTEYEBG4GK07HlD8jAAgkPT5miDKFvQdKyASnmGXgdMBGQwtP8EBDQ3n0YETlBHZNZI8kbgSj8CnTNOL1YH8EG2G1jS3QnjA12PKyPSgxPRZVgwvSvVqyQwTIawTOTJZXLPOVBB4Dw37iwPWwhkKLjDsXsD0E+E4Mx00N+2bJIXsJOxrh7NMn0NALiNTEHNTH/kcUpI+0bM7JsPHMcMHM6JHNhzHLC17MnNezR3XUoOwJ4zS0y0ehLMrNTJAzpjK2dOPSqzg0LMQ11BLOfUOTLNsGG0rKyGrK6xkj628AGxfJZSXDcVinFBm0iicCIDWH8HdEgrWDWEeW3Amn6D3BmmYieLPGjVeI9HeKgU+I9FNk3DjFgDwA5FsHsGAEpF4COBsU0FlTygAAE1RhxNRmAFRexlQigqieNvVZIsAjUFA6QvA0wMwBdFxbVx0z90w5EswkJUw8pIQQchKjhzsjgCjAZ7ByIz8ZDIRGBdZXEd5ztAsXh8FCE8onN2A2YMlHDdEmQ04JLMxNsbCABVGzNlUyjmWbROLGN6FwsAI4M7JwJipAUAGkQGJcPATIEAI4I4IAA="} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('resized', () => { - console.log('User is resizing the window'); -}); -``` - -### `scrolled` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"299f329d2580f26b4bb0722c200a146f31de373cd47da607af6a41de7e3bce15","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('scrolled', () => { - console.log('User is scrolling'); -}); -``` - -### `ticked` - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"25680bc6dbafe0088888a4dfd244ccc5155ade7599da4acfb945ac8bf3bbcdb2","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class App extends Base { - static config = { - name: 'App', - }; -} - -const app = new App(document.body); - -app.$on('ticked', () => { - console.log('The render loop has ticked'); -}); -``` diff --git a/packages/docs/api/instance-methods.md b/packages/docs/api/instance-methods.md deleted file mode 100644 index fe01de0d0..000000000 --- a/packages/docs/api/instance-methods.md +++ /dev/null @@ -1,279 +0,0 @@ -# Instance methods - -::: tip See also -For practical examples of instance methods, see the [Components guide](/guide/introduction/managing-components.html) and [Lifecycle guide](/guide/introduction/lifecycle-hooks.html). -::: - -## `$log(...content)` - -Logs content to the console when the `instance.$options.log` option is set to `true`, either via the `config` getter or via the `data-options` attribute. - -**Parameters** - -- `...args` (`any[]`): The content to log - -**Example** - -```js {6,10} twoslash -// @twoslash-cache: {"v":1,"hash":"34b8b72cb0335c69489ffe98f1d4db7877c033401e3d9e22c4ab40523f1f2372","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlgQGUcIwFAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZNC2URqyYWRGK+gcyJKaGtHhupEIxnGsGJnSkicnGJj+AAJOxuaMP42VgrOvDGTEkAAO5gMg7R8Doxi8FZNm9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3uaGFCc52EkW+zogOljZSas/zekFFHHCa6awHgvK2PYwB0rwRy8BmmiWLwADkAACq5ahuzDziqS5FLDXbmHQfL2LAGbMGUrD2DSIjJvpcJyPQTLKKK+ZgIWPQnvwAifuyeZ1oWBG5rDFOwmgsMUFzvVNmgpBlDAwuM+D2My15JlmXwDNFt1+DsAEr0hIwsMKz5sPcF2hZHOYPZUCjSCgIyYBwKeeCZCARxHEAA==="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$log('mounted'); - } -} -``` - -## `$warn(...content)` - -Logs a warning to the console when the `instance.$options.log` option is set to `true`, either via the `config` getter or via the `data-options` attribute. - -**Parameters** - -- `...args` (`any[]`): The content to warn - -**Example** - -```js {6,10} twoslash -// @twoslash-cache: {"v":1,"hash":"5174cf63ab7c1548b16266e87922efde4893e328e324dfb77f71d502df67eec8","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlgQGUcIwFAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZNC2URqyYWRGK+gcyJKaGtHhupEIxnGsGJnSkicnGJj+AAJAA7r0YC5ow/h5WCs68MZMSQOlYDIO0fA6MYvBWTZvbCh4ADKlhsKwvD4DArDxrwuS8K1MTeJlpAWKMchcOwZDDsEUooOOiKTgQCqzkqC6qsuGprtqm76turSIj0YD8DAWRadAAQXqwADEw1gFke4KAwnQ3uaGFCc52GILJ7nOiAGVZVJqz/N6QUUccJrprAeC8rY9jAHSvBHLwGaaJYvAAOQAAKrlqG7MPOKpLkU6NduYdB8vYsAZswZSsPYNIiMm+lwnI9BMsoor5mAhY9Ce/ACJ+7J5nWhYEbm6NM7CaDoxQItsY2uZoKQZQwLL3OI6T6teSZZl8FzRa9fg7ABP9I2MOjADqWVVgAhOj3DVrwaS8MgkvvFk2LtLwVsjbbdZHOYPZUHjSCgIyYBwKeeCZCARxHEAA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$warn('Warning!'); // [Component-1] Warning! - } -} -``` - -## `$on(event, callback[, options])` - -Bind a callback function to an event emitted by the instance. Returns a function to unbind the callback from the event. - -**Parameters** - -- `event` (`string`): The name of the event. -- `callback` (`EventListenerOrEventListenerObject`): A callback function or an object implementing the [`EventListener` interface](https://developer.mozilla.org/en-US/docs/Web/API/EventListener). -- `options` (`boolean|AddEventListenerOptions`): Options for the `addEventListener` method, defaults to `undefined`. - -**Return value** - -- `() => void`: A function to unbind the callback from the event. - -**Example** - -```js {10-15} twoslash -// @twoslash-cache: {"v":1,"hash":"949d31b9995a8f010091bd80642c1c904d47200a93fd1a1556afe815132c9841","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlgQGUcIwFAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZNC2URqyYWRGK+gcyJKaGtHhupEJ7qUvCkDAhkkAAoiQcIADLsKUIxkLm5nssYvBWTZdnmhhnrDC5/H/GJzogPFiUwCl7wZVlbwRisAxyUFFH3mFKl0VFTBadAfBeJInJxiY/gACQwow+rvOWaCVqMFBsZlCg5bwTXpRt2WkAA8qQO1oC1m2Hc26QwHsa1aCeMJwAA/LmnHDB2vAAD68AAglAUAnWd+0HVg91gDwuV8DoBVFb5zh9osiJQLwzDra1ZC8Bmxl7KevC5MjYByKlxRBKO0qRFgOyWE4C1wkWABypbeBAGa4/g3g08TXTk5T35o6QRYAGJY6DuMQC23j8GwwxQIEXMgBTGJU1Qd2niIwOgyIGa2Kz3gAAb1VcAN7W1uu8MNMsdBQkTxeUpA8VQ30Y8LON48ZzaIzrqPnbLVuypOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZObAQXqwADEMJZBzWSS6wrDNrsMRZCrD3XqafGIMiaz/BV2EBm+tWzfbsqrP83rdX6/pWn1oGRRBEIxnGsGJnS40GJNxgzexuX+HPYKzrwxkxJAADuYDIO0kPQ9ZsNCv2ADKlhS7wbOsPGotsY2SHlBmGbDsEUooOOiL+9OirziqS7qquWobrqW5DQpDjsEBOScU7njQJedO7Fc4wgUAwToN5zTIkmH+OuL5SI1QhNNSSfl+JOQ7oBA42JcTBmUn3NSA8Pxg3sAbZKRNAZtQhvlQqu8SrfH9GsH4wlgTYmqmCWq9DGqMONuBVu/FSJEOClMI4Jp0ywDwLyWw9hgB0l4EcDGmhLC8AAOQAAFf7rh1J/Rcao0C6K7OYOgfJ7CwAzMwMorB7A0hEMmfStNGSKGUKKfMBMb7MBPPwAQn52R5jrIWAiuZdHuNhBYigESr5NmWmUGACT/FHCsf4ryJkzJ8D8UWEJtC4oJUNqIvmYTxiZRmnNXRZQsBQECaZXRa08pQ3Cf4wpVSAi4MbIwOpDSmlQF0dwLshSjijPMIktIvAABKpSSCew5l7faiThFGz5uZMZGjzA9ioP/JAoAvFwFPHgTIIAjhHCAA==="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - const removeEventListener = this.$on('updated', () => { - this.$log('updated'); - }); - - // Remove the event listener - removeEventListener(); - } -} -``` - -:::tip Tip -Set the `options.once` parameter to run the callback only once. - -```js -this.$on('updated', () => {}, { once: true }); -``` - -::: - -## `$off(event, callback[, options])` - -Unbind a callback function from an event emitted by the instance. If no callback function is provided, all previously bound callbacks are removed. - -**Parameters** - -- `event` (`string`): The name of the event. -- `callback` (`EventListenerOrEventListenerObject`): The callback function or the object implementing the [`EventListener` interface](https://developer.mozilla.org/en-US/docs/Web/API/EventListener) which was bound to the event. -- `options` (`boolean|AddEventListenerOptions`): Options for the `removeEventListener` method, defaults to `undefined`. - -**Example** - -```js {10-15} twoslash -// @twoslash-cache: {"v":1,"hash":"a85762455a29fa2419a8ab21c151dde50e817c6d58408bf20ea3b19414f7411b","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - const callback = () => this.$log('updated'); - - this.$on('updated', callback); - - // Removes the binded callback - this.$off('updated', callback); - } -} -``` - -## `$emit(event[, ...args])` - -Emit an event from the current instance, with optional custom arguments. The instance dispatches the event on its root element, so other components or scripts can listen to it. - -**Parameters** - -- `event` (`string | Event`): The name of the event or an `Event` instance. -- `...args` (`any[]`): The data to send with the event. - -**Example** - -```js {10-11} twoslash -// @twoslash-cache: {"v":1,"hash":"efac3a5fef63838518ab30e3ed959eb8d0139758bfb85d6817a9c65ccddc9729","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlgQGUcIwFAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZNC2URqyYWRGK+gcyJKaGtHhupEKMFp0B8F4kicnGJj+AAJDCjD6u85ZoJWowUGx7ClCMZC5gAoiQcIADJFQoZAAPKkBV7w1cVbykPVzbpDAewFVoJ4wnAAD8uaccMHa8AAPrwACCUBQM11W1SVHVYANYA8Lm5nssYvBWTZvbCi6iJQLwzCFW1ZC8Bmxl7KevC5GdYByJVxRBKO0qRFgOyWE4WVwkWABypbeBAGYPfg3j/W9XRfT936XaQRYAGK3etD0QC23j8GwwxQIEsMgN9GK/VQ/WniI9VrRT122BD3gAAakDAhkkItaCtXVpAM7wsX4x0FCRMz5SkDxVAzddaP3Y9xnNid9MXVzBOC7Kk4EAqs5KguqrLhqa7apu+rbq0iI9GA/AwFkfMBBerAAMQwlk0NZDjrCsM2uwxFk5ODdepp8YgGFCc52EBm+zogOlYuyqs/zekFFHAdRoGRRB0XEyD+x8MwuYdhgdnmsiayesMLn8eHELMFJsdyQnfr+msYUqXRUVQT9tRkHwza52A+c3oXayySHL7B2JEfNtXAy14BBz+v6Tcp2padQXGsGJnSiUGMlxhpexW3+AfYKzrwxkxJAADuYDIO0fA6Lt+2+c4fZ4AAypYuO8JDrDxhjbGNkh5QMwZmHMEKUKBxyIjVtORU84VRLnVKuLUG5dRbkNCkU2wRzaW2tueNAl47bsRdjCBQDBOj92+MibEPxhLAlImPCEqVJJ+SnoFGeUxFLBmUovcCkYNIxnblnM6Pc+7+3sogZElCaHl3chHKuzCQSsOClMJOXCwxL14enARncWzCILhQ5EQ9S6h1HmCcek8FHxzYYgaS89OHhVUjwhi0U+bxQkJvVQXId6pRZkUTKr0cp5RCFNXg7MCoH38EfXMp8L5XxvpZayj8hT9jKpYIoIgJrQxAR9cBRN4ZUGhrwYGNReBgwVpkgWcMSZOCPrwaQkMzpzDKDUOEIhHrNCwKwDAv9xjeBuubdaIhWzGVOo9cYRUXqpgqSAYWR4xZgDKG7QmE55QzjnMqRcaoVyanXDqPUBodwYI7BbK2tRtI2zwfbHxaAnavSyEfP2aEUSTFIkYl8Q96F4G8ak+EKx+JOUsUow4RwTTplgHgXkth7DADpLwI411NCWF4AAcgAAKIJ2cEWBGzlxIq7OYOgfJ7CwAzMwBZ9gaQiGTPpAGjJFDKFFPmZ6ADmAnn4AIT87I8x1kLARXMSKqWwjQEiig3K/5NlymUGAIqmVHDxUyryJkzJ8EZUWCGRU0oZSRfwMopRqg3PeMK3gLACrNlvrtMZARGGNhYLwAA1C2bg3Bqy8DSLwf0oqLVpSuYwLVOrciWH1XCQ1QleDIidXWI45gexUGQUgUAtK4CnjwJkEARwjhAA=="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - this.$on('custom-event', (a, b) => this.$log(a + b)); // 3 - this.$emit('custom-event', 1, 2); - } -} -``` - -## `$query(query)` - -Get all descendant component instances matching the given query. This is sugar for `queryComponentAll(query, { from: this.$el })`. - -**Parameters** - -- `query` (`string`): a query string in the format `ComponentName(.cssSelector):state` (see [queryComponent](./helpers/queryComponent.html)) - -**Return value** - -- `Base[]`: an array of all matching descendant instances - -**Example** - -```js {12-14} twoslash -// @twoslash-cache: {"v":1,"hash":"04e180686338152ec3ca81fa66052be6d6d5302f46d4e6023ac8223a80d77b46","data":"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"} -import { Base } from '@studiometa/js-toolkit'; -import SliderItem from './SliderItem.js'; - -class Slider extends Base { - static config = { - name: 'Slider', - components: { - SliderItem, - }, - }; - - mounted() { - for (const item of this.$query('SliderItem')) { - this.$log(item.$id); - } - } -} -``` - -::: tip See also -`$query` is the sanctioned **parent → child** channel: a parent reads and drives its declared descendants. See [Data flow between components](/guide/concepts/component-tree.html#data-flow-between-components). -::: - -## `$closest(query)` - -Get the closest ancestor component instance matching the given query. This is sugar for `closestComponent(query, { from: this.$el })`. - -**Parameters** - -- `query` (`string`): a query string in the format `ComponentName(.cssSelector):state` (see [closestComponent](./helpers/closestComponent.html)) - -**Return value** - -- `Base | undefined`: the closest matching ancestor instance, or `undefined` if none found - -**Example** - -```js {9-11} twoslash -// @twoslash-cache: {"v":1,"hash":"ec4d1f572bff20bff0c3675be81f78a5c1cf444acc5feef8826dca64c82ec79f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAyhywpACSNJZOPX2IAKzTKIjMYTRAARg21F68wYHme7FeHxgXyG7DAqwATJttqRdvskAA2E5nHB4QgkcgzW4eFgcLh8e5+BxSWTyEZKZmGbS8PReLkmcxWGx2ZlOFxuRYSHzCQIzULhSLROJUBJJOCpDLZXL5QrFUoVKo1OoNJotNqdbqzWEAdgAzENgeMpnK5gsPEtUeikFiQFsdntrogMX9idRzmSrpTqNSQIwsJocHYMHx4YjPv5+BAwAAzdghRC8YDmXgl3hgZg1AulUhokIAbnMRzFrncIAAwlncyFZVCwkgIlE0cqCIlkmlMjk8gUiiVypVqrVmPUYI1mq1Mzm82VcWgqmB/AlLKwOl0QD9YQAOQZA0ZOxAEl0wu6dvPLNGre2+nF4wPHU5h0kPHJa4qXoJh4y0MhMD4ctK14ata2+K0kAhQFhlvUFAVmJ8PFg3BPVWQE/VxAMDkmUNMEAy4KRuMCaSNQgoBTF4yCRSx/EsCAyjAGgoEYbgCyICAESQ3pYTBW0fXQkEkGtR83RATjuN4t8vUQOSv39fEgwo8MgMjWjYV9LNSngljSALLxJD5BMTF4AAfXhuNgXN0SgUTfjBAEHQwwl5KMuBzNU1YL2xLTAwhXSqOAqMaDo2MGOgPgrJsoxjH8AASQQIFUUprIkfLVH5YxjEYABHMoyAwKs0BrUYBOZQr1Fs4wHKcxQYFcmB3KocVWwAcVqXhxm8bLcvsZgwH4eBclIARqhsdEeN4NEeim7xLGYNAtlrYb8G8EJ2BIMBeAqqr/HMR4yhCXpeGzWxeAAAzGmaO2sLMRjQcrKtIDAKELO7NEsAtxnYAIMpgVheCObhHp7YI+xQRUh3iUd1XHLUp11WcDQXY0V1NVpVuCdaskSpQDzQI8AGIXtKLIzt+k9LTElCCVCm8ZMQDnsIUrLWBymbgqQDniJ/A4MXI/9KIuGLDOfMBTMChEyEsgrUu0VrHOczr3x6s9kPBfoH05u8Td5gKgoIgYwpI7SLyi2WDNAoy4wTKDk0ajWTEygX814Rh/CD6F1XamJIAAdzAZB2j4HRWqEkTepbPBHk21gof21hE2GiBeD9+DymzbN4flftkdiVG1Q1CdtWnPU50NRdl1XM1icm6aydqRiAkPVhqb9rINwUBgLQN1mgzBDTpLvLDoT5v3hfBSExdIlCwUdiMaJdhWlfMtXVCa4qPNhSXIRn0Fzfny2VajFYUJX7818QW0pZJJ3t+jeK3cgpNkoK1k9B2TKAMLZHknIWqZQRDVOqIRmwSg8NIfaK1FYk2mitKApdEYDiVFXMcmpJw6hnPqecRolwmjXCkdupMIKJl3PASmNMRJj3PN6SY09HSgk/BbPAGUk6DjUhCW24spgb1PJmWAeAhS2HsMAZk0NAbVF4AAcgAAIkKbsEAhdddTKIbGAcwjIRCplYp8OQQDFAgNUIWYshctrsH4PNTcIRwFFhOqWPCBZlEmPeJ8ZRFBbFHH0bYpSPFur8Rse4ksG49633AaDcGdMvrePMso7g+jSwrWzAHZWrw+BuMySWBJvsIAhEYMot4isVZmVvogfxNTXhQKYhk0sRxAmNicGQpAoA2RVKzHgTIIAjhHCAA=="} -import { Base } from '@studiometa/js-toolkit'; - -class SliderItem extends Base { - static config = { - name: 'SliderItem', - }; - - mounted() { - const slider = this.$closest('Slider'); - if (slider) { - this.$log('Inside slider:', slider.$id); - } - } -} -``` - -::: tip See also -`$closest` resolves a dynamic ancestor from the DOM and returns `Base | undefined`. Always guard the result; never dereference it unguarded in `mounted()`. See [Data flow between components](/guide/concepts/component-tree.html#data-flow-between-components). -::: - -## `$mount()` - -Mount the component and its children. Triggers the `mounted` lifecycle method. - -**Return value** - -- `Promise`: returns the current instance when all children components are mounted - -## `$update()` - -Update the children list from the DOM, mount any unmounted components, and re-bind [event hooks](./methods-hooks-events.md#onreforchildnameevent). - -**Return value** - -- `Promise`: returns the current instance when all children components are updated - -::: tip -js-toolkit re-mounts already registered or mounted components automatically on newly injected elements. For now, call the `$update()` method to re-bind [event hooks](./methods-hooks-events.md#onreforchildnameevent). -::: - -## `$destroy()` - -Destroy the component and its children. Triggers the `destroyed` lifecycle method. - -**Return value** - -- `Promise`: returns the current instance when all children components are destroyed - -## `$terminate()` - -Terminate the component. Its instance becomes available for garbage collection. - -**Return value** - -- `Promise`: returns a promise resolving when all children components are terminated - -:::warning -A terminated component can not be re-mounted, use with precaution. -::: diff --git a/packages/docs/api/instance-properties.md b/packages/docs/api/instance-properties.md deleted file mode 100644 index 6ed75ca08..000000000 --- a/packages/docs/api/instance-properties.md +++ /dev/null @@ -1,183 +0,0 @@ -# Instance properties - -::: tip See also -For practical usage of refs, options, and children, see the [Refs](/guide/introduction/managing-refs.html), [Options](/guide/introduction/managing-options.html), and [Components](/guide/introduction/managing-components.html) guides. -::: - -## `$options` - -An object containing the full options of the instance as defined in [the `config.options` property](/api/configuration.html#config-options). Additionally to the options defined in the config, the following properties are also available: - -- `$options.name` The name of the component -- `$options.log` whether the `$log` method is silent or not -- `$options.debug` whether the debug is active on this instance or not - -The values for the `$options` object are read from and written to the `data-option-` attribute of the root element. - -:::tip -Boolean options with `true` as a default value can be negated with a `data-option-no-` attribute. -::: - -## `$refs` - -An object containing references to all the component's refs, with each key being the name of the ref, and each value either the DOM element or a list of DOM elements. - -```ts -interface RefsInterface { - readonly [refName: string]: HTMLElement | Base | HTMLElement[] | Base[]; -} -``` - -Refs are resolved with the selector `data-ref=""` within the component's scope. Refs of [children components](#components) are excluded, even if the child has not been registered via the [`config.components`](#components) object. - -:::tip -You can force a ref to be an `Array` even when only one corresponding element exists in the DOM by appending `[]` to its name: - -```html -
      -
    • -
    -``` - -::: - -## `$children` - -::: warning Deprecated -`$children` is deprecated and will be removed in v4. Use [`$query(name)`](./instance-methods.html#query-query) instead. - -Note that the two shapes differ: `$children` exposes a **name-keyed object** (`{ Figure: Figure[], Slider: Slider[] }`), whereas `$query(name)` returns a **flat `Base[]`** containing every matching descendant. Group by `$options.name` yourself if you need the name-keyed shape. - -See [Data flow between components](/guide/concepts/component-tree.html#data-flow-between-components). -::: - -An object containing references to all the children component instances, with each key being the name of the child component, and each value a list of its corresponding instances. - -```ts -interface ChildrenInterface { - readonly [ComponentName: string]: Array; -} -``` - -**Example usage** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"ca4326860dd2ebfd7d4b0076aa55cf545049ef70bbe8093af22cef608c93d6bc","data":"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"} -import { Base } from '@studiometa/js-toolkit'; -import { Figure, Slider } from '@studiometa/ui'; - -/** - * @extends {Base<{ $children: { Figure: Figure[], Slider: Slider[] } }>} - */ -class App extends Base { - static config = { - name: 'App', - components: { - Figure, - Slider, - }, - }; - - mounted() { - for (const figure of this.$children.Figure) { - console.log(figure.$id); - } - - for (const slider of this.$children.Slider) { - console.log(slider.$id); - } - } -} -``` - -## `$config` - -The resolved configuration based on the current class [static `config` property](/api/configuration.html) merged with its ancestors properties. - -## `$parent` - -::: warning Deprecated -`$parent` is deprecated and will be removed in v4. Use [`$closest(name)`](./instance-methods.html#closest-query) instead. - -`$parent` is a **live getter** that walks up the DOM ancestors on every access. It resolves to `null` unless a **live** (mounting or mounted) ancestor both lists the current component in its [`config.components`](./configuration.md#config-components) and DOM-contains this instance. An ancestor that has not started mounting, has been terminated, or that reaches this instance through the DOM without declaring it in `config.components` will not be matched — hence the `null`. Because resolution is dynamic, never dereference `$parent` unguarded. - -See [Data flow between components](/guide/concepts/component-tree.html#data-flow-between-components). -::: - -The parent instance when the current instance component is registered as another [component child](./configuration.md#config-components), defaults to `null` otherwise. - -```ts twoslash {9} -// @twoslash-cache: {"v":1,"hash":"3cca79ec7bc274afaf78dd2c56beeb23f9e5ac9bef06061cb330cb12477ce30a","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class Child extends Base { - static config = { - name: 'Child', - }; - - mounted() { - console.log(this.$parent instanceof Parent); // true - } -} - -class Parent extends Base { - static config = { - name: 'Parent', - components: { - Child, - }, - }; -} -``` - -## `$root` - -::: warning Deprecated -`$root` is deprecated and will be removed in v4. Use [`$closest(name)`](./instance-methods.html#closest-query) instead. - -Unlike the old `$root`, the [`$closest(name)`](./instance-methods.html#closest-query) replacement resolves an ancestor dynamically from the DOM and returns `undefined` when no matching ancestor has been constructed — there is **no self-reference fallback**. Always guard the result; never dereference it unguarded in `mounted()`. - -See [Data flow between components](/guide/concepts/component-tree.html#data-flow-between-components). -::: - -The root instance of the application when the current instance has been mounted as a [child component](#components). Defaults to a self reference if the component is stand-alone. - -## `$services` - -A [Service](https://github.com/studiometa/js-toolkit/blob/main/src/abstracts/Base/classes/Services.js) instance to manage the [`scrolled`](#scrolled-props), [`resized`](#resized-props), [`ticked`](#ticked-props), [`moved`](#moved-props), [`keyed`](#keyed-props) services hooks. - -The following methods are available: - -- `has(service: string): boolean`: test if the current component instance has the service method defined and if it is currently enabled -- `enable(service: string): () => void`: enable the given service if the current component instance has the service method defined, returns a function to disable the service -- `disable(service: string): void`: disable the given service -- `toggle(service: string, force?: boolean): void`: toggle the given service -- `get(service: string): any`: get the props of the given service -- `enableAll(): Array<() => void>`: enable all services which are defined -- `disableAll(): void`: disable all services - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"c0005834199f1985063b08460f356e6a1d58533a30a5384e1981517811ab2a92","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - refs: ['btn'], - }; - - onBtnClick() { - if (!this.$services.has('ticked')) { - this.$services.enable('ticked'); - } else { - this.$services.disable('ticked'); - } - } - - ticked() { - // Do something on each frame... - } -} -``` diff --git a/packages/docs/api/instantiation.md b/packages/docs/api/instantiation.md deleted file mode 100644 index 3a88ca303..000000000 --- a/packages/docs/api/instantiation.md +++ /dev/null @@ -1,106 +0,0 @@ -# Instantiation - -::: tip See also -For getting started with component setup, see the [Getting Started guide](/guide/) and [Components guide](/guide/introduction/managing-components.html). -::: - -## Usage - -```js {9-10} twoslash -// @twoslash-cache: {"v":1,"hash":"edb62580820d87ffd0ffb38230cf6105ff04afcfb8ae4327b8e7317d2f45bc94","data":"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"} -import { Base } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - }; -} - -const component = new Component(document.querySelector('.component')); -component.$mount(); -``` - -**Parameters** - -- `element` (`HTMLElement`): the root element of the component/application - -**Return value** - -Returns an instance of the class not yet mounted. - -:::tip Recommended -The [`registerComponent(Component)`](./helpers/registerComponent.html) function registers and mounts components independently — no need for a monolithic App class. -::: - -:::tip -The [`$register(nameOrSelector?: string)`](./static-methods.html#factory-nameorselector) static method instantiates multiple instances on elements matching a name (e.g. `[data-component=""]`) or a CSS selector. -::: - -:::tip -The [`createApp(Base, rootElement)`](./helpers/createApp.html) function configures global features (breakpoints, attributes, blocking) and gives access to the root app instance. -::: - -## Examples - -### Using `registerComponent` (recommended) - -Register and mount components independently: - -::: code-group - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"863db4a3ef1a65415c57f82117ff3b6bd38f84b77fa3aeab0d1c54e8193b95a1","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIAzAK5gAxmnYQwvUjADm7ODVIBhCAFsskmGDQAeACq86NMFDi8AQlxiqwi0oLERSvALyXrt+47TOAfIxOpIi8hgA+vAAKpOoKMAZ+FLxgzGowAPKkAMowrDBBAPwh9uxgstwh0bFw8QCCAO7M7DRQugCSdmjMojD62PH6fn7IALp+ADpg7BrOaNJyCkqqM2DaDFRQECIIiCAASguKZLyyrBAARmysGLzdULxqEMJzzCfsJFIi6pqrOknOt14WBiaji8zgEFYRFKsl4vkBXxWawAdJRqMxZDtkMgQBwwABrNH4NBoLBwRAAegpACs4ABaXyQ/HNZGKQRQCRpLrI2BECnMLDsCn4XI4UhwCkyeRHFTfLQ6ZHEtSsEAjCg4rDMUipNFBUIi3iIn5rQ2Sbx6gGvYHVGDgyHQspwiC8Fmq9UgTXatRolJpTI5PJ6/QG322gE1QO+FzwwQ1e78AFofAKU1IhVunEyNCCUhgNG1IEgsEyCFQmFO25SLXam4QfgPJ46GD3I3yualRTdETwVEjNUgTukBiIACcVDyZSTSAAjAB2KhdUiyGDDkBSxZkZbGnRovG4RAABioInwWuYYjISBHAF8KOh+nhCCRyAvjHhppoh7wt220YPhwAbPOuLaLIU6jguWrLquP6/OsuKlPu07Hqe2oXuQiCzre944I+xCXq+9BMGwnA8PM0pLHKcG6N0GABEEIS0Ukob+rk+RRkUvAlGUFRREWNQ0WAGCjBMUwzF+64yrBaxops2x4AcFHHKcFxXDcdwNs8gLyB8qbbmg/wuFa/G2iW9rlvCrytnBqKQZiSDYghBJEiSZKUjS9KMqwzJoKy2YcuoK7MDyMB8gKQoiqwYoSpJlFpr5SoqmqGpnt6x5RvqtrWSaXydA4FpGYWNp2mWjrwq6yUeqlPqpBk2RsUGIa1bw4YNRlMZxgIibJuY2XppVWY5nmVAFtaoI1CVDqwpZVakDWLX1o8zzNnpbYup0XY9qq/b/jOB7ISBk74DOwGLtBeCxZuVEyeOiFIAAzChZ7oUgB7YdQD67E+BHUG+uwfrM37XTuVC7Yg07TmOh1gcdEHokuK54NJINOfuj0gCez1KDOAAc179l8sDvuJczAORG6yvFvDXgIIK8AA5AAAmyAVcswHkMhATLNPTADckwA1+yNzPwdP08iFLC8itJ85MkyXZT+mMML3C82ibNIKAxjaHAEh5rstIgNe15AA"} -import { registerComponent } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -registerComponent(Component); -``` - -```js twoslash [Component.js] -// @twoslash-cache: {"v":1,"hash":"bb4cbb4fc3398dcf8167d6bc92672ea4b5802320374e1ccaaeeb04faa26e05be","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADc5iOgtc7khmezEuooXCkWicSoCSScFSGWyuXyhWKpQqVRqdQaTRaKXTYCzITKGLQVTA/gSllYxs+vW+2LW/tto3tv0d4LuLZCy3dSBPXvRmL9QfxFyJ11J9CYsa0ZEwPgSzLXgKyrJwzUPbELVPIEHXbJ0IWA3A3SRRBpifH0sXQo4TXTWA8F5Wx7GAOleCOXgM00SxeAAcgAAQnLVp2YIcVVHIpaNrMBzDoPl7FgDNmDKVh7BpERkxhd45HoJllFFfMwELHp134AQb3ZPMCyLZDc1oyTYTQWiKG0o5uPrKgWKQUBGTAOANzwTIQCOI4gA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - }; -} -``` - -::: - -### Using `createApp` - -Use `createApp` when you need to configure global features or access the root app instance: - -::: code-group - -```js twoslash [app.js] -// @twoslash-cache: {"v":1,"hash":"e8526274c5a73133cac60a251280826c56b0ad8ed94b4bf6ebcffce50b26637f","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8kxsnDy8AGZlYHtVYAKkMMw0AIJYLCSADKcnoIyUDhgAGEIGBSqQyntbJIvMYKLxZPIIcoDJptLw9F5DNpjIwAVhELxgRitGgPnAAPxUgAS0gAsgAZACiwxqYHsAB9eNDvr8YBSAPJYelwnhUxh8HTGXiGSzsVQg3gAMihMmMZgs1ls9n4Yv+gKcLjceAAkvDggLODReMxFLxLBBXvZxt4QuwSJ9+NUbGARvY4bxfbx/YHeJoIPYYHzw7wAO74EZRzO8LChbzbEQAIxgWdYEGYsCg5jdUHjtTKpE+zGer3ekdyvDKqmz3maWF47Adbv43gzWaKg5EYqgGECM1C4Ui0TiVASSTgqQy2Vy+UKxVKFSqNTqDSaLRSmdYOFIcBSZp+Fqw/gSllYHS6IB6fUQAEYAKxDCMYwTIcC5zAsHgPuKFLLEOqwbCAWw7Hs1x/v+JxnDgeCECQ5AzLcHhWDYdgiiGcLhk434MIgABsgFRMB4wDOB8w0SAsLGmGApwWGSC/ps2ykLs+xIAA7Jh1DnDhVz4dQhFIb4Iiwd0sw0b+awMcMozMYgADMrGQSAKlRPBSAGUhQkiWhtGSZg2EeLh1wEfQdwcFwfCCMIepYuCii4qoJK6FCQWGsRJpQlarjuJ4Eg+MI87UIuSARKZsTxIkyRpJkOR5AURQlOUlTVLUzD1DAjTNK0H6qb06m/mJQE6aB0xJRB7FLEMZn6YJKGiX+AAcdnSY5sk3K5HiMFg+JkJgfAUv4wZgE87AhFSwDmLwW28GAzA1FSCJDiEADcm3bcGXHhpuvAbZ8233ZxobhlSboYKdd1bUc71HFFNoeLCy2rYlwRhCly5DquBCZZu2U7nl+6FUeJWnhV56tEtK0hI2vwfC+aBvjVX5qfxekWdpIFILRhnsRjq28asrXIcJqEHMcpxSQ5lx4eN7FTTNdgYHwu37bwh2jFRxN/pMA1NRTiCtbMbF4MLuBdXxiAMUz1kHJMw2c05ck0BNIB81os2CwI5HcWg123Q9VvPa6YBveYP21T+v70bLukadTeAXU9AoIGrqxU5ZfVobr7P2RcBs80w01mwLfCPRRAovc7Et1fxA1aUxoGDG1Sv/Q7PEh+JvXM/1tnRyNXPOfJxssO5jzQU+kgxxATy8BSGLEviJjkoCVKd93ve8HSDLMrwbJcryMD8kKIrmhKgLSrK8LcAqSoqmqGpSKPPeAjqer90YBrmOFpFt6vWC/TF9o9E64pO3Wnrer2MYBlmAdpxGnzRljFmBMSYUwCnTJmABOY8zzF4IWXgJYywVirDWd03xyhNldK2N4G8owQC7D2aM/ZBzDjeGOSBg57AanrJWOcQRkooHBulNc0Mtw5V3PlA8RVjylXKpVC8V4bx3hvgtV875OjuxogAJikWHcmulC6KyMiIy05c/xSMrtrfiGFa76zGi5GmSkj530kUgKRek5H53Mn7DwJkVj8Q0eHKuaEpEYU/MGWAeAr72GAFCDEKiBxHGeJoSwvAADkAABQ8xUTzMG3LlPcRQwnvW8WRS64CnghPCf4FIqdrb+EyMk8w5gvJ+GMWCBQkIvA3TOj0ek/BLaAxCISGpH0dp7RgFSMJFIwkUDOltX+1tbb9O2nk8MfS2knDOl9V2xSwy0BIvYWATxmBlFYKaFeFIh5YG4MdJwsSkCgGxPCD4eBMggCOEcIAA="} -import { Base, createApp } from '@studiometa/js-toolkit'; -import Component from './Component.js'; - -class App extends Base { - static config = { - name: 'App', - components: { - Component, - }, - }; -} - -export default createApp(App); -``` - -```js twoslash [Component.js] -// @twoslash-cache: {"v":1,"hash":"bb4cbb4fc3398dcf8167d6bc92672ea4b5802320374e1ccaaeeb04faa26e05be","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADc5iOgtc7khmezEuooXCkWicSoCSScFSGWyuXyhWKpQqVRqdQaTRaKXTYCzITKGLQVTA/gSllYxs+vW+2LW/tto3tv0d4LuLZCy3dSBPXvRmL9QfxFyJ11J9CYsa0ZEwPgSzLXgKyrJwzUPbELVPIEHXbJ0IWA3A3SRRBpifH0sXQo4TXTWA8F5Wx7GAOleCOXgM00SxeAAcgAAQnLVp2YIcVVHIpaNrMBzDoPl7FgDNmDKVh7BpERkxhd45HoJllFFfMwELHp134AQb3ZPMCyLZDc1oyTYTQWiKG0o5uPrKgWKQUBGTAOANzwTIQCOI4gA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - }; -} -``` - -::: diff --git a/packages/docs/api/methods-hooks-events.md b/packages/docs/api/methods-hooks-events.md deleted file mode 100644 index 9d9f11bcd..000000000 --- a/packages/docs/api/methods-hooks-events.md +++ /dev/null @@ -1,193 +0,0 @@ -# Event hooks - -::: tip See also -For an introduction to event handling in components, see the [Events guide](/guide/introduction/working-with-events.html). -::: - -Event hooks are methods of a class prefixed by `on`. Each one runs when the given event is dispatched on the given target. Every method receives a single parameter `ctx` whose type is: - -```ts -type EventHooksCallbackParams = { - /** - * The event emitted - */ - event: Event; - /** - * If the event is emitted on a component, given arguments - * can be accessed with the `args` property. - */ - args: Array; - /** - * If the event is emitted on multiple refs or children, the `index` - * property will be the index of the current target. - */ - index: number; - /** - * The target that emitted the event. - */ - target: Element | Base | Promise | typeof window | typeof document; -}; -``` - -## `on` - -Methods following this pattern run when the event is triggered on the instance's `$el` element. - -**Parameters** - -- `ctx` (`EventHooksCallbackParams`): the context of the event - -**Example** - -```js {10-11,16} twoslash -// @twoslash-cache: {"v":1,"hash":"69fc360cefb8f8fd884043c854bfbda2570aa1ff8125be86012dbac6eec1e759","data":"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="} -import { Base } from '@studiometa/js-toolkit'; - -class Foo extends Base { - static config = { - name: 'Foo', - emits: ['custom-event'], - }; - - // Will be triggered when clicking on `this.$el` - onClick({ event }) { - event.preventDefault(); - this.$emit('custom-event', 'foo', 'bar'); - } - - // Will be triggered when emitting the `custom-event` event - onCustomEvent({ event, args: [arg1, arg2] }) { - console.log(arg1); // 'foo' - console.log(arg2); // 'bar' - } -} -``` - -## `on` - -Methods following this pattern run when the corresponding event is triggered on the corresponding ref or child element. - -**Parameters** - -- `ctx` (`EventHooksCallbackParams`): the context of the event - -:::tip -Native DOM events registered on a child component bind to the child root element if it supports the event. See the second example below with the `
    ` element. -::: - -**Examples** - -```html {2-3,13-16} -
    -
    - - -``` - -```html {2,20-21,23-24} -
    - -
    - - -``` - -## `onDocument` - -Methods following this pattern run when the `event` event is dispatched on the `document`. - -**Parameters** - -- `ctx` (`EventHooksCallbackParams`): the context of the event - -**Examples** - -Implement a click-outside behaviour: - -```js {14-16} twoslash -// @twoslash-cache: {"v":1,"hash":"e030e32c50cff0609b0d95fa60018db77cdcfb0d7b055e01375435b4758572e4","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAIppYLgDuYE49fYgArNNREZjCaIAAcM168wYHmeWnenyG7DAqwATJttqRdvskAA2E5nHB4QgkcgzW4eFgcLh8e5+BxSWTyEZKemGbS8PReNkmcxWGx2elOFxuRYSHzCQIQsJICJRJFxKgJJJwVIZbK5fKFYqlCpVGp1BpNFptTrdWbQgDsAEYhkDxlMIXMFh4lojkUg0SAtjs9tdECiAMz46jnIlXUnUckgRhYF5kTB8WGvCAffz8CBgABm7BCiF4wHMvCLvDAzBqedKpCRIQA3IXi6QYJmVbxK9XkO062AjkLXO4QABhDPZkKS6ihcKRaIKgiJZJpTI5PIFIolcqVaq1Zj1GCNZqtdNZnNlTFoKpgfwJSysDpdEDfaGgi220b2xA4x1Qu7DnPLJGrAN0R9bFDmDTBCQ8YlrjJegmFjLR4wwPhS3LVs0CrUYvnNJArTWT1hlfEEAVmL8PBQ3A3VWAFvUxX0DkmMDQ0g8Mblgil4JwOwkN4RtmwrdD23aLDemhK0UQBAjgQdccnWhEBeIQSikF+IDaJAhjThDCDLhJVi5MYfVCCgRMXnhfwM1ENAwAHDh+BiRhgDkEgwHsI48wLMBiyckY0DzZgwAwLsjm4PMiAgdgoGEn4rUmZ9AUInCNhk0iQAsqybPYOy/3dMFVKxP0UUY7SoIjGg2OjLAdn1Mg+F3Hy/ICqLRJxJLJLfFTkudEA6pc7LVnBL0MXyg4rV+IqLhKvS4Kq2oau8lyGowJqcItDq2pBDqSK6nqGCUw48roqZxrDXSYLk/ylrNEScNBG14qkxBRs/LrSi0NlQmYM8Mz6gYDpA3DjuY07I3Ki7lv9NZBnut9iMhLqEIROUctwv6/WOTTwImlizqYQzoBMuEUwvDNHlcMoahcjK7MYELeDCiLwZRcSXwep7OrkkmyYptAqZnFYcMAwbgIKwGdOgkHzsaq6fhRX5BfW5TnrkwQIEcPaYtRg5jjvdNYDwPlbHsRyvF4I5eEzTRLF4AByAABHUN31Zg1SXTUimtrtzFpEQk3hOR6GZZQxQ8osejPfgBB/EIOXzesi3IvNrd9onrYoOOeKbFtkGtgAjKzra6esjk9zzeDS6zbPsxydtNvgQ+LHa1zel4Pq+sAaa7LzxnYAIEY7ovzHrTn+HJnzeZp2PS6LbuAhV1R+9Lo5zB7KgnaQUAmTAOBzzwTIQCOI4gA==="} -import { Base } from '@studiometa/js-toolkit'; - -class Dropdown extends Base { - static config = { - name: 'Dropdown', - refs: ['btn'], - }; - - onBtnClick({ event }) { - event.stopPropagation(); - this.open(); - } - - onDocumentClick() { - this.close(); - } -} -``` - -## `onWindow` - -Methods following this pattern run when the `event` event is dispatched on the `window`. - -**Parameters** - -- `ctx` (`EventHooksCallbackParams`): the context of the event - -**Examples** - -Watch the page hash: - -```js {8-10} twoslash -// @twoslash-cache: {"v":1,"hash":"ef0fe91641e95122f3726a7d733034aa0a9f701c779ce700f652fb3dc1781c38","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiACs01EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+yQADYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAB2VEA0bjKaguYLDxLIaI1bWrY7PbXRDIyZ46jnQlXEnUMkgRhYTQ4OwYPhQ17vfz8GEAM3YIUQvGA5l4ed4YGYNSzpVIiJCAG5zEdBa53JC0xmJdRQuFItE4lQEkk4KkMtlcvlCsVShUqjU6g0mi0UimwOmQmUMWgqmB/AlLKxjZ9et8ABx7oaAu2IbEO8F3RshZZupAAZjRXqxhwDmAJHiJ11J9CYUa0ZEwPhC2LXhS3LJwzW+ABGNYHxtIF7RbR0IWA3BXSRRB/k9DFvQOf1TkDd9LmJG4f3JCdCCgeMXhhJMYQAdURFwAHcAAkuHwT1RhgRhgDkEg4V4I4sxzMB83494s2YMAMCrMAjm4LMiAgdgoAgr4kCgu8Nngk8oMPJCLw8BimIgNiOK4+Ybwwi1Hxw59kVfIMPxDUiIUjHYJzIPh9Uk3hpIwdTd00n4oKPW1gR+c8nRAXy4Ws1ZbJAbDMR9ZE7yOE0U1gPBeVsew+K8ITeFTTRLF4AByAABUctQnZh+xVIcigquTzBpEQE1owTGUUZRRVEvMehXfgBCvdls1zfNUKzCquthNAKooKajjasTeBMxQzPYuBOO2bjeIkwSFMm9a8zSXgXFA7VxnLXhmKKfBeHGbw3mY3htl2/xvpW6snHqpBQF6uBVzwTIQCOI4gA=="} -import { Base } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - }; - - onWindowHashchange({ event }) { - // do something with the new hash... - } -} -``` diff --git a/packages/docs/api/methods-hooks-lifecycle.md b/packages/docs/api/methods-hooks-lifecycle.md deleted file mode 100644 index 3eefb2b30..000000000 --- a/packages/docs/api/methods-hooks-lifecycle.md +++ /dev/null @@ -1,113 +0,0 @@ -# Lifecycle hooks - -::: tip See also -For an introduction to lifecycle hooks with examples, see the [Lifecycle guide](/guide/introduction/lifecycle-hooks.html). -::: - -## `mounted` - -Runs after the instance is mounted. - -**Parameters** - -> This method has no parameters. - -**Example** - -```js {9-12} twoslash -// @twoslash-cache: {"v":1,"hash":"52622767dc2f0af3e444f0e5dcbce93f47b83b3eb22716a2762bd39a24056b64","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlgQGUcIwFAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZNC2URqyYWRGK+gcyJKaGtHhupEIxnGsGJnSkicnGJj+AAJOxuaMP42VgrOvDGTEkAAO5gMg7R8Doxi8FZNm9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3uayL+n+wwuThYnOiA6WNlJqz3nJQUUccJrprAeC8rY9jAHSvBHLwGaaJYvAAOQAAKrlqG7MPOKpLkUcNduYdB8vYsAZswZSsPYNIiMm+lwnI9BMsoor5mAhY9Ce/ACJ+7J5nWhYEbmcOU7CaBwxQ3O9U2aCkGUMAi0zEM47LXkmWZfCM0WvBpLwAAyjYiHDis+XDvBFe1TPjN46bQoLvDsCI+umaL4w22l7GMHrRlK3D3BdoWRzmD2VCo0goCMmAcCnngmQgEcRxAA=="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - mounted() { - // Logs 'mounted' when the component is mounted - this.$log('mounted'); - } -} -``` - -## `updated` - -Runs after the instance is updated. - -**Parameters** - -> This method has no parameters. - -**Example** - -```js {9-12} twoslash -// @twoslash-cache: {"v":1,"hash":"89c6977701802f27dd3fa1502204457330291eca7d5dc2c0f99f8a3f72688652","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmZRYFAzA0FAjDcLmRAQOwUC8be/E/BsALPsCNq4eJICGcZplSasmFkRivoHMiSmhrR4bqRCMZxrBiZ0pInJxiY/gACTsbmjD+FlYKzrwZSxJAADuYDIO0fA6MYvBWTZvbCh4ADKlhsKwvD4DArDxrwuRsY2SHlBmGbDsEUooOOiKTgQCqzkqC6qsuGprtqm76turSIj0YD8DAWRadAAQXqwADE7FZHuCgMJ0N7msi/p/sMLk4WJzogGlja+fxTneoFFHHCa6awHgvK2PYwB0rwRy8BmmiWLwADkAACq5ahuzDziqS5FLDXbmHQfL2LAGbMGUrD2DSIjJvpcJyPQTLKKK+ZgIWPQnvwAifuyeZ1oWBG5rDFOwmgsMUFzPVNmgpBlDAwuM+D2My15JkwGZfAM0WvBpLwAAyjYiLDCumbDvCFW1jPjN46bQgLvDsCI+tKyL4w26l7GMHrRmK1AsPcF2hZHOYPZUCjSCgIyYBwKeeCZCARxHEAA"} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - updated() { - // Logs 'updated' when the component is updated - this.$log('updated'); - } -} -``` - -## `destroyed` - -Runs when the component is destroyed. - -**Parameters** - -> This method has no parameters. - -**Example** - -```js {9-12} twoslash -// @twoslash-cache: {"v":1,"hash":"0e4706e63a61107f8b4e55690d52cb41b3a66341cfd6dc2e064d21aee77b026a","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmsAVhAGAwFAjDcLmRAQOwUC8be/E/BsALPsC/xic6zjwGgmgmbZRGrJhZEYr6BzIkpoa0eG6kQjGcawYmdKSJycYmP4AAk7G5ow/g5WCs68GUsSQAA7mAyDtHwOjGLwVk2b2woeAAypYbCsLw+AwKw8a8LkbGNkh5QZhmw7BFKKDjoik4EAqs5KguqrLhqa7apu+rbq0iI9GA/AwFkWnQAEF6sAAxOxWR7goDCdDe5rIoGwnAqR7kQhljZSas95ycFFHHCa6awHgvK2PYwB0rwRy8BmmiWLwADkAACq5ahuzDziqS5FLDXbmHQfL2LAGbMGUrD2DSIjJvpcJyPQTLKKK+ZgIWPQnvwAifuyeZ1oWBG5rDFOwmgsMUFzfVNt5ZQwMLjPg9j0uGd5xmmeZnPS4WaS8AAMo2Iiw/LPmmbDvDFR1jPjN46bQgLvDsCIeuK1AIvjDb6XsYwutefrUCw9wXaFkc5g9lQKNIKAjJgHAp54JkIBHEcQA==="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - destroyed() { - // Logs 'destroyed' when the component is destroyed - this.$log('destroyed'); - } -} -``` - -## `terminated` - -Runs when the component is terminated. - -**Parameters** - -> This method has no parameters. - -**Example** - -```js {9-12} twoslash -// @twoslash-cache: {"v":1,"hash":"eda4cdbf8c5ffe482c1e132845a3c2a25213ba76e65cd460a813134127282a1c","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqm+yWIizA0FAjDcLmRAQOwUC8be/E/BsALPsC95vs6kakEZJamVJqyYWRGK+gcyJKaGtHhupEIxnGsGJnSkicnGJj+AAJOxuaMP42VgrOvBlLEkAAO5gMg7R8Doxi8FZNm9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3uayKTJ6wwuThYkeeljZ+fxTnekFFHHCa6awHgvK2PYwB0rwRy8BmmiWLwADkAACq5ahuzDziqS5FLDXbmHQfL2LAGbMGUrD2DSIjJvpcJyPQTLKKK+ZgIWPQnvwAifuyeZ1oWBG5rDFOwmgsMUFzvVNmgpBlDAwuM+D2My4ZxmmeZnMy4WaS8AAMo2IiwwrPkwFAsO8EV7WM+M3jptCAu8OwIh6yZBsi+MttpexjC62Q3kO4b3BdoWRzmD2VAo0goCMmAcCnngmQgEcRxAA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - terminated() { - // Logs 'terminated' when the component is terminated - this.$log('terminated'); - } -} -``` diff --git a/packages/docs/api/methods-hooks-services.md b/packages/docs/api/methods-hooks-services.md deleted file mode 100644 index 4e3511d4c..000000000 --- a/packages/docs/api/methods-hooks-services.md +++ /dev/null @@ -1,155 +0,0 @@ -# Services hooks - -::: tip See also -For an introduction to using services in components, see the [Services guide](/guide/introduction/using-services.html). For the service architecture overview, see [Service Architecture](/guide/concepts/service-architecture.html). -::: - -## `scrolled` - -Called when the user is scrolling. - -**Arguments** - -- `props` (`ScrollServiceProps`): The [scroll service props](/api/services/useScroll.html#props). - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"034ac5b7029bb78ee88e624229a89bc601f8118971653ff288266fb37ac5b4bf","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmcD8JorDDFAMZxrOvAdomuZEBA7BQLxt78T8GwAs+wKYbh4mmkZ+SmVJqxed6GK+gcyJKaGtHhupEIxjsG5kHwzGWdZTnmtifzCcCsnec6IApYFSDBQBYX8biwbKaBMUQXFzGwYmdKSJyFnGP4AAk7G5ow/i9WClllLEkAAO5gMg7R8Doxi8HZDm9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3hl1rZThYn5Z1jZFSCZGhRRwHUdVam1VBCW1ElvApbmaUw98yJrLlwweUguWIxChVEas/whYB4VWkcJrprAeC8rY9jAHSvBHLwGaaJYvAAOQAAKrlqG7MPOKpLkUUtduYdB8vYsAZswZSsPYNIiMm+lwnI9BMsoor5mAhY9Ce/ACJ+7J5nWhYEbmUum7CaBSxQ7t7U2aCkGUMAB3bIsa5HhnGaZ5lGHwttFjt+DsAEyMhIwUux/5Vb+8TFncF2hZHOYPZUIrSCgIyYBwKeeCZCARxHEAA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - scrolled(props) { - this.$log('scrolling', props); - } -} -``` - -:::tip Tip -See the [`useScroll` service](/api/services/useScroll.html) for more details. -::: - -## `resized` - -Called when the document has been resized. - -**Arguments** - -- `props` (`ResizeServiceProps`): The [resize service props](/api/services/useResize.html#props). - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"175d415b09a346dfbab2110a8d125a790367fb90cd28da24ed0e1edfb13fe6bd","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmpDwOwABeMBQDGcazrwHaJrmRAQOwUC8be/E/BsALPsCNq4eJICGXAJlmVJqyYWRGK+gcyJKaGtHhupEIxjsG5kHwzFWTZznmtiPyhcMnlILJPnOiAaXBUgoXeuFFH3tFKl0fFUFxrBiZ0pInKWcY/gACTsbmjD+ANYJWWUsSQAA7mAyDtHwOjGLw9mOb2woeAAypYbCsLw+AwKw8a8LkbGNkh5QZhmw7BFKKDjoik4EAqs5KguqrLhqa7apu+rbq0iI9GA/AwFkWnQAEF6sAAxOxWR7goDCdDeWUWj8wnAqRYnFT1jZlSCYWAQcwHUaBcUQQlWBJbUKW8GluYZfD3zImsnp5dhiCFWjEKlURqz/JVuMotJRwmumsB4Lytj2MAdK8EcvAZpoli8AA5AAAquWobsw84qkuRQK125h0Hy9iwBmzBlKw9g0iIyb6XCcj0EyyiivmYCFj0J78AIn7snmdaFgRuYK9bsJoArFC+4dTZoKQZQwGHLtS3r8f+YF5lpXwztFvt+DsAEGMhIwCvJ6ZUCh5TlncF2hZHOYPZUOrSCgIyYABTCeCZCARxHEAA="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - resized(props) { - this.$log('resized', props); - } -} -``` - -:::tip Tip -See the [`useResize` service](/api/services/useResize.html) for more details. -::: - -## `keyed` - -Called when the user is typing. - -**Arguments** - -- `props` (`KeyServiceProps`): The [key service props](/api/services/useKey.html#props). - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"5b7d47300b5e852df56ac50da413c5f73323a8ecd547aeeaeb32648f984b8383","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmMQwBgMBQDGcazrwHaJrmRAQOwUC8be/E/BsALPsCsm4eJICGcZDlEasmFkRivoHMiSmhrR4bqRCMY7BuZB8MxFlWY55rYj8PzCR5b7OiAyVSYFckhRRFoRSpdExVBcawYmdKSJy5nGP4AAk7G5ow/hdWCFllLEkAAO5gMg7R8Doxi8LZ9m9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3ulFqkcM7k4WJeVtY2hUDMVgEHMB1GgdFEGxVg8W1IlvDJbmqWQ3e/RBbD2GIJ5CMQgVAWo8F6Mov6RwmumsB4Lytj2MAdK8EcvAZpoli8AA5AAAquWobsw84qkuRQS125h0Hy9iwBmzBlKw9g0iIyb6XCcj0EyyiivmYCFj0J78AIn7snmdaFgRuYS8bsJoBLFCu9tTZoKQZQwH7NtC2r4e+SZZlGHw1tFpt+DsAESMhIwEvR1AvvE+Z3BdoWRzmD2VDy0goCMmAcCnngmQgEcRxAA"} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - keyed(props) { - this.$log('keyed', props); - } -} -``` - -:::tip Tip -See the [`useKey` service](/api/services/useKey.html) for more details. -::: - -## `moved` - -Called when the user is moving their cursor. - -**Arguments** - -- `props` (`PointerServiceProps`): The [pointer service props](/api/services/usePointer.html#props). - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"5e7d262323c006348a5c51c81acf0d8a6f87c208fd122f6d17fea63f772fbdf6","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmlhXFAMZxrOvAdomuZEBA7BQLxt78T8GwAs+wKybh4kgIZJB2URqyYWRGK+gcyJKaGtHhupEIxjsG5kHwzFmRZ9nmtiPw/MJblvs6ICJVJ/lyUFFEWmFKl0VFUFxrBiZ0pInKmcY/gACTsbmjD+B1YJmWUsSQAA7mAyDtHwOjGLw1m2b2woeAAypYbCsLw+AwKw8a8LkbGNkh5QZhmw7BFKKDjoik4EAqs5KguqrLhqa7apu+rbq0iI9GA/AwFkWnQAEF6sAAxOxWR7goDCdDeqUWqRwyuThYk5S1jb5QMhWAQcwHUaBkUQdFWCxbU8W8IlubJeDd79AF0PYYg7lwxCeV+cjgWoyi/pHCa6awHgvK2PYwB0rwRy8BmmiWLwADkAACq5ahuzDziqS5FGLXbmHQfL2LAGbMGUrD2DSIjJvpcJyPQTLKKK+ZgIWPQnvwAifuyeZ1oWBG5mLhuwmgYsUM7m1NmgpBlDAPtWwLKuh95MDGYlfCW0W634OwAQIyEjBi5HUDe4TpncF2hZHOYPZULLSCgIyYBwKeeCZCARxHEAA==="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - moved(props) { - this.$log('moved', props); - } -} -``` - -:::tip Tip -See the [`usePointer` service](/api/services/usePointer.html) for more details. -::: - -## `ticked` - -Executed on every frame with `requestAnimationFrame`. - -**Arguments** - -- `props` (`RafServiceProps`): The [raf service props](/api/services/useRaf.html#props). - -**Example** - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"13ce3e3b716c4364be322c2a293d2d331e3ca0a47a754af0935b36db6130a4f1","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiABsg1EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+xRAEYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAAOADsQ0B4ymoLmCw8SyGiNWqJAWx2e2uiAAzMdTtRzoSriTqGSQIwsJocHYMHwoa93v5+DCAGbsEKIXjAcy8Qu8MDMGq50qkREhADcBaLrAgOd4ACNVTBmGBa2AjoLXO5IZnsxLqKFwpFonEqAkknBUhlsrl8oViqUKlUanUGk0Wil02AsyEyhi0FUwP4EpZWMbPr1vti1v7baN7b9HeC7oOQst3UhH170ZifpBviFxEtcpL0EwsZaGQmB8CWZa8BWVZOGad7YhaT5Ag6I5OhCCG4G6SKINM/4+liJF4iGBIeGBEY0JB5LQfGcG8A2Tatvk7ZgKhXxINikzYlhL5/rM74eOx37EQArGi5F+pMVGYDRlzEjcjHRhuhBQEmLwwqmJ78DEMBQDGcazrwHaJrmRAQOwUC8be/E/BsALPsCPxvs61DsEZJlSasmFkRivoHMiSmhrR4bqRCMY7BuZB8MxFlWY55rYj8NpudhiCybh4kgMlAVIEF3ohRRwHUaB0UQbFzGwYmdKSJy5nGP4AAk7G5ow/i9WCFllLEkAAO5gMg7R8Doxi8LZ9m9sKHgAMqWGwrC8PgMCsPGvC5GxjZIeUGYZsOwRSig46IpOBAKrOSoLqqy4amu2qbvq26tIiPRgPwMBZFp0ABBerAAMTsVke4KAwnQ3ulFp5cM7k4WJ3mdY2xUgsFgEHJVynVWptVQfFtSJbwyW5qlMPfMiayuQjOV5cjEJFURqz/GVWMoopJrprAeC8rY9jAHSvBHLwGaaJYvAAOQAAKrlqG7MPOKpLkUUtduYdB8vYsAZswZSsPYNIiMm+lwnI9BMsoor5mAhY9IZAifuyeZ1oWBG5lLpuwmgUsUG7e1NmgpBlDA/t2yLGsR4ZxmmclfC20WO34OwASoyEjBSzHJl+6T5ncF2hZHOYPZUIrSCgIyYBwKeeCZCARxHEAA=="} -import { Base } from '@studiometa/js-toolkit'; - -export default class Component extends Base { - static config = { - name: 'Component', - log: true, - }; - - ticked(props) { - this.$log('ticked', props); - } -} -``` - -:::tip Tip -See the [`useRaf` service](/api/services/useRaf.html) for more details. -::: diff --git a/packages/docs/api/services/index.md b/packages/docs/api/services/index.md deleted file mode 100644 index 3b3aade4f..000000000 --- a/packages/docs/api/services/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# Services - -::: tip See also -For an introduction to using services in components, see the [Services guide](/guide/introduction/using-services.html). For architecture details, see [Service Architecture](/guide/concepts/service-architecture.html). -::: - -Services implement common tasks and hide their repetitive parts. A service always has the following signature: - -```ts -interface ServiceProps { - [key:string]: any; -} - -interface Service { - add: (key:string, fn: (props:ServiceProps) => void) => void; - remove: (key:string) => void; - has: (key:string) => boolean; - props: () => ServiceProps; -} - -useService(...args?):Service; -``` - -The following services are available: - -- [useDrag](./useDrag.html) to implement drag features -- [useKey](./useKey.html) to implement keyboard features -- [useLoad](./useLoad.html) to implement window load features -- [useMutation](./useMutation.html) to implement DOM mutation features -- [usePointer](./usePointer.html) to implement mouse/touch features -- [useRaf](./useRaf.html) to implement `requestAnimationFrame` features -- [useResize](./useResize.html) to implement window resize features -- [useScroll](./useScroll.html) to implement scroll features diff --git a/packages/docs/api/services/useDrag.md b/packages/docs/api/services/useDrag.md deleted file mode 100644 index eafac207b..000000000 --- a/packages/docs/api/services/useDrag.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -outline: deep ---- - -# Drag service - -The drag service runs registered callbacks on drag interactions with an element. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"852a216ed7d99ed80265c7d1277ab2574f8b8b8d676ebe8f147f2399a163b408","data":"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="} -import { useDrag } from '@studiometa/js-toolkit'; - -const target = document.querySelector('.draggable'); -const { add, remove, props } = useDrag(target, { - dampFactor: 0.5, - dragTreshold: 10, -}); - -add('custom-id', (props) => { - console.log(props.mode); // 'start', 'drag', 'drop', 'inertia' or 'stop' - console.log(props.MODES); // an object of all available modes - console.log(props.isGrabbing); // true if the target element is grabbed - console.log(props.x); // horizontal position of the cursor in the viewport - console.log(props.y); // vertical position of the cursor in the viewport -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -## Parameters - -### `target` - -- Type : `HTMLElement` - -The target element of the drag. - -### `options` - -- Type : `{ dampFactor?: number, dragTreshold?: number }` - -Options for the drag behavior. The `dampFactor` option is used for the inertia, it defaults to `0.5`. The `dragTreshold` property is the distance from which we prevent clicks on child elements, it defaults to `10` (pixels). - -## Props - -### `mode` - -- Type: `'start'|'drag'|'drop'|'inertia'|'stop'` - -The current mode of the dragging logic. - -### `MODES` - -- Type: `{ START: 'start', DRAG: 'drag', DROP: 'drop', INERTIA: 'inertia', STOP: 'stop' }` - -An object representing the different mode of the draggin logic. Use it to match against the current mode: - -```js twoslash {2} -// @twoslash-cache: {"v":1,"hash":"4df7eee3014addd915dfc68a84b2e0c2133eb8627d9e228c51c8391f2ec87c0f","data":"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"} -import { useDrag } from '@studiometa/js-toolkit'; -// ---cut--- -useDrag(target).add('key', (props) => { - if (props.mode === props.MODES.START) { - console.log('drag is starting'); - } -}); -``` - -### `target` - -- Type: `HTMLElement` - -The target element of the drag. - -### `isGrabbing` - -- Type: `boolean` - -Whether the user is currently grabbing the targeted element or not. - -### `hasInertia` - -- Type: `boolean` - -Whether the drag currently has inertia or not. - -### `x` - -- Type: `number` - -The current horizontal position in the viewport. - -### `y` - -- Type: `number` - -The current vertical position in the viewport. - -### `delta` - -- Type: `{ x: number, y: number }` - -The delta between the current position and the previous position. - -### `origin` - -- Type: `{ x: number, y: number }` - -The initial position where the dragging started. - -### `distance` - -- Type: `{ x: number, y: number }` - -The distance from the current position to the origin. - -### `final` - -- Type: `{ x: number, y: number }` - -The final position that will be reached at the end of the inertia. diff --git a/packages/docs/api/services/useKey.md b/packages/docs/api/services/useKey.md deleted file mode 100644 index 4373bcf3a..000000000 --- a/packages/docs/api/services/useKey.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -outline: deep ---- - -# Key service - -The key service runs registered callbacks on keyboard events. It merges the `keydown` and `keyup` events. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"1ae0ca9345d431402f26817191bd84a99e82957312f7414f7613af67d96d960e","data":"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"} -import { useKey } from '@studiometa/js-toolkit'; - -const { add, remove, props } = useKey(); - -add('custom-id', (props) => { - console.log(props.direction); // 'down' on keydown, 'up' on keyup - console.log(props.isUp); // true on keyup, false on keydown - console.log(props.isDown); // true on keydown, false on keyup - console.log(props.triggered); // 1 - console.log(props.ENTER); // will be `true` when the pressed key is enter -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -## Props - -### `event` - -- Type: [`KeyboardEvent`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) - -The original event instance. - -### `direction` - -- Type: `String` -- Values: `up` or `down` - -The direction of the keystroke, `up` for the event is of type `keyup`, `down` when the event is of type `keydown`. - -### `isUp` - -- Type: `Boolean` - -A boolean for the event's direction. Will be `true` on `keyup` events. - -### `isDown` - -- Type: `Boolean` - -A boolean for the event's direction. Will be `true` on `keydown` events. - -### `triggered` - -- Type: `Number` - -The number of time, especially for `keydown` events, the events have been fired. - -### `ENTER` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the enter key. - -::: tip -The `ENTER` prop and the following ones are mapped from the [`keyCodes`](/utils/#keycodes) utility. -::: - -### `SPACE` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the space key. - -### `TAB` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the tab key. - -### `ESC` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the escape key. - -### `LEFT` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the left key. - -### `UP` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the up key. - -### `RIGHT` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the right key. - -### `DOWN` - -- Type: `Boolean` - -Will be `true` if the key initiating the event is the down key. diff --git a/packages/docs/api/services/useLoad.md b/packages/docs/api/services/useLoad.md deleted file mode 100644 index de388eac3..000000000 --- a/packages/docs/api/services/useLoad.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -outline: deep ---- - -# Load service - -The load service runs registered callbacks on the `window` load event. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"87308d13227fcfe5021b9e2b102a14b7600726acd713d05915235e9884da3bc2","data":"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="} -import { useLoad } from '@studiometa/js-toolkit'; - -const { add, remove } = useLoad(); - -// Add a callback -add('custom-id', () => { - console.log('loaded!'); -}); - -// Remove the callback -remove('custom-id'); -``` - -## Props - -This service does not have any props. diff --git a/packages/docs/api/services/useMutation.md b/packages/docs/api/services/useMutation.md deleted file mode 100644 index 388392797..000000000 --- a/packages/docs/api/services/useMutation.md +++ /dev/null @@ -1,63 +0,0 @@ -# Mutation service - -The mutation service observes DOM mutations on a component with the MutationObserver API. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"85a532a3a47ab81137c3808d48485a980296bd7b950fa09f8c18f647aa5abbd5","data":"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"} -import { useMutation } from '@studiometa/js-toolkit'; - -const { add, remove } = useMutation(); - -// Add a callback -add('custom-id', ({ mutations }) => { - console.log('Some attribute has changed!'); -}); - -// Remove the callback -remove('custom-id'); -``` - -## Parameters - -### `target` - -- Type: `Node` - -The target element to observe, defaults to `document.documentElement`. - -**Example** - -Observe any attribute mutation on the `` element: - -```js -const service = useMutation(document.body); -``` - -### `options` - -- Type: [`MutationObserverInit`](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver/observe#options) - -Options for the mutation observer, defaults to `{ attributes: true }` only. - -**Example** - -Observe everything on the given element: - -```js -const element = document.querySelector('#element'); -const service = useMutation(element, { - attributes: true, - childList: true, - subtree: true, -}); -``` - -## Props - -### `mutations` - -- Type: `MutationRecord[]` - -The list of `MutationRecord` that triggered the callback. diff --git a/packages/docs/api/services/usePointer.md b/packages/docs/api/services/usePointer.md deleted file mode 100644 index be3568de3..000000000 --- a/packages/docs/api/services/usePointer.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -outline: deep ---- - -# Pointer service - -The pointer service runs registered callbacks on cursor movement. It merges the mouse and touch `move`, `up` and `down` events. Pass an `HTMLElement` to the `usePointer` function to make the positional props (`x`, `y`, etc.) relative to that element's size. By default, positions are based on the viewport's size. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"e54acdd50f312bd4d0c7df1ec3242ebaed620edf7239f011f422556073b0b883","data":"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"} -import { usePointer } from '@studiometa/js-toolkit'; - -const { add, remove, props } = usePointer(); - -add('custom-id', (props) => { - console.log(props.isDown); // `true` if the pointer is down - console.log(props.x); // the pointer X position - console.log(props.y); // the pointer Y position - console.log(props.event); // the latest MouseEvent object -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -## Parameters - -### `target` - -- Type : `HTMLElement | undefined` - -The target element to use to compute the positionnal props. - -## Props - -### `event` - -- Type: `MouseEvent` - -### `isDown` - -- Type: `Boolean` - -### `x` - -- Type: `Number` - -### `y` - -- Type: `Number` - -### `changed` - -- Type: `Object` -- Interface: `{ x: boolean, y: boolean }` - -For both axis, whether or not the current position has changed since the last one. - -### `last` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The last position on both the `x` and `y` axis. - -### `delta` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The difference between the last position and the current one. - -### `progress` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The position on both axis mapped to a `0` to `1` range. - -::: tip Examples -If the cursor is in the **middle of the viewport or the target element**, the value of this prop will be: - -```js -{ x: 0.5, y: 0.5 } -``` - -If the cursor is in the **top left corner of the viewport or the target element**, the value of this prop will be: - -```js -{ x: 0, y: 0 } -``` - -::: - -### `max` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The maximum value the pointer can reach. The values of `window.innerWidth` and `window.innerHeight` by default, the widht and height of the element when the service is used with a target element. diff --git a/packages/docs/api/services/useRaf.md b/packages/docs/api/services/useRaf.md deleted file mode 100644 index cd43ac7a8..000000000 --- a/packages/docs/api/services/useRaf.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -outline: deep ---- - -# RAF service - -The RAF (short for `requestAnimationFrame`) service runs registered callbacks on every animation frame. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"f5806ce6eb09eacf243fefab727dde3b0a1efd81f3e03fb0b9dce61ce4b07622","data":"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"} -import { useRaf } from '@studiometa/js-toolkit'; - -const { add, remove, props } = useRaf(); - -add('custom-id', (props) => { - console.log(props.time); // latest `performance.now()` - console.log(props.delta); // time elapsed since the last frame - - // Read the DOM and compute values... - - return () => { - // Update the DOM... - }; -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -## Props - -### `time` - -- Type: `Number` - -The time elapsed since the [time origin](https://developer.mozilla.org/en-US/docs/Web/API/DOMHighResTimeStamp#The_time_origin). - -::: tip -Read the [`performance.now()` documentation](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) to find out more on the time origin. -::: - -### `delta` - -- Type: `Number` - -The time elapsed between the current frame and the previous frame in milliseconds. This value is `0` on the first frame and represents the frame duration for subsequent frames. - -::: tip -The `delta` property is useful for creating frame-rate independent animations and calculations. You can use it to scale movement or animations based on the actual time elapsed between frames. -::: diff --git a/packages/docs/api/services/useResize.md b/packages/docs/api/services/useResize.md deleted file mode 100644 index 5e6f8b8df..000000000 --- a/packages/docs/api/services/useResize.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -outline: deep ---- - -# Resize service - -The resize service runs registered callbacks on window resize. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"d4868666259dba393da3a176b2a2e70501ae5d746bf7bc19ec7d3f62c1c7d025","data":"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"} -import { useResize } from '@studiometa/js-toolkit'; - -const { add, remove, props } = useResize(); - -add('custom-id', (props) => { - console.log(props.width); // the viewport's width - console.log(props.height); // the viewport's height - console.log(props.ratio); // the width / height ratio - console.log(props.orientation); // the orientation of the viewport - console.log(props.breakpoint); // the current active breakpoint - console.log(props.breakpoints); // all breakpoints' names - console.log(props.activeBreakpoints); // a record of all breakpoints and their status as boolean -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -::: warning IMPORTANT -A debounce of 300ms is configured to limit the execution of each resize callback to only when the window stops being resized. -::: - -### Define custom breakpoints - -The `useResize()` service accepts an object defining breakpoints as parameter. - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"f01ec8c71cc937532cc9c708997814c481070bd536f11ea3ffcc4fe861014fdf","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808BjCMONAAi1IizkXYAUASnYBeAHzsASvACWALxgBlMkVmMYABW68APMAA6YdifZ8zaUrLABzANxHT7ALb82V2w+OmANm8vW9kYAvuKUIFAQjAiIIADiMBxo+DBmquowAORwnDpwAHThbACGpAyIABxUPjC2yUgArFRopTaJeFw8CNXWuIgADFSM+KXFjDTklcEU6Nh9BMRk4TT0eALFPrLFcCIArnAwMnAKMPqOpubugV5OrhYeQd4mfvfXIeICAEakMMUA1lgINY0HAAPz8QxPMz+B43Ux3K6ec7PGFvMDBdgAH3YuzAsAAZr0oEJ+EcTipSGoNABJMATfFjU6QpyXAJIqEItmPJwvRGPUJGWTOQFlHEHMmKcKRaJ4ACqB3YyVSP2OijSlIyhWaxRsMWQyBAmzAf3C+DQaF4iAA9FaAFZwAC0aAgEB8f1kaHybF2UFkEGciWK+VgRCtxSwsitBw1GjgVv2hzkinyZucPhAAF0M1QSmUkABGKqG2o2eqIACc2tIbXKIATEtwPTAfUGIGGo3GS0QhemsxweEIJHIzTotYEnRwZQwIlZDyKLTziAAzAAmaolsv5qs1vDdQ29AtDEakMYTJAr3vUOYDxbD6ijtYTsiYEScuc5hflAAsX/XdXwh7UK07SxM44RGn0a5tsep5dheMxXv2sSDksI6rLE446M+07sLyXLzqU5QNEWNT/oBC47rE6ZNn0S5Hh2Z6IPBfbzChd4rLWYDFAGcBYIy7DMKwrowEYRClAJLBwMJ/AAMKScJUpRDEIAACopOwAAGglSTUGkuNAuw1LkxCyLAOTFGYQpYEZsCfLsNg2IEElCUZyTFBwsg5McziyD44nOoqKRGAAUsUYlKIwVhYBw2nCS4MDtmAnnOMZaiwFA7CfBg7AAO4wJ8mXcDl0YFEYRhqakzgGUZdAiiCio5RAZg4IwsiEowEnCiwtQgogZVgAAVOwACCmlyS5MB6YwflwDkOUevg8XJNAXm7MM7DbJpsU1PkPgQDYwgaRQW3yTtZDcKQh0bXiJ0TfkOWlGAV1uTFxTGJ8qQJhlAU5VYNCKk1b3ZQActAMD5Pa9y/M4+RGENo02HtnwbLdOmTew1glGAGjOYSNi7D831Nb9HqpAFyAaZ0sYFGwkS7GgGkZgIZoWnwNqQLA9r5BA1ZWtKcZ+TQbAOkQK4rvktBhhGVpU/ABSpj4ADEsuzbTED0yIb1QEYFMqzTaCwKQpCM8z5qWuzYNczzNh80pVqC/AaAi2LEtS5GespmgabK9w1O0+dQj5OwFXsIjEDIz4qPCVNb2ZZ9BwZfNy30xjXVlE5SqaRzMCINt6NVVAhng/1AD6A0DQA6o9gTlyX/Ah2HEfOWj7Dh7aCVoNkS2EFA5k/OwzYLWQzeeTQdI+BgRhwBg2P4NwkD7Lhsh/GT6nfBAxXD8NmjUjkSrZSqMDOJ8NTHZApAbf3+8j2wPUT0Y2wz8M8/qzkmwrxtPiRxASoX6DsAQy8pYaGBR2AqFXqkCmkB/osGMtTdg1IrQAHkTYs3NlabOVteb83tu5R2ztxaS3DO7X2ctPbe2KA6aBMAHQsAdHrB0foRD4h5kYKq/drAsNIM4dyfowCwzAEYAAorQbi1l44Z3Uo3FGWlTqTT6oIsAGllH2iMHnXa+0BCZBSF/YmPMfBQEyEILwNp2DaGBOYHRe1cr6KgMdAKat6ZqLkRog62iYC6PYAAUjgJkY6mRGqkAMUYkxVozEeF6uwKxeigl2IBhYOmaBnF3XOjzAQzYcrsCEUbNJmQK6EC6MdKSAZkhOWRhlEYWAcDNkMUIYxRhTHmLpDkVJF8eJwB1KkLWFgxh/EVCeHGDiDbnQUaYkw2SLr8HyS6XgRT/SJHwGU4oFTwzVJgNrMAYzTDuXYMgGAYkfAZkQA0bsDQGlhKcDsiKUVPSkFxLSNSnlxocUENnRARBXD5lXN2CoQhzlOA2hwJBnx27jHyHcsADzFlwGeaOV5YN3muCXP0csy5fn/MuRwN5wIyBcR8DLUhs0rR0ASvTPhiAADsFLuzlgxdsjgeyDkZgdL9VZZBEAADYmIrjpSYHZ+yNjXNkNFeFsBEA4tIHiglUQ5bEtoKStA5KKVco5f0P5myLn0oHgiiVUqeHWGJQckufImJLmXP1bSWLuKpFEOwPJvlI5SHDpjFgmQvDqIepKgQGkAAib02gXwACTAC4gGYIABCdgfrbBkHDRpepGrwkWP4NGgN7AK4OukM6oSYBI2ptjfYpq/sjZGGURpfqIixFGX2JI1IGlxpoymjNPg/Uy2qOxpJDg6sOC2prEoYB3ElDzMIDlYQ7rO3sHOmIUOiR+0/EHcOjeY7klsBcBgBtcVbUZObsJfIG6agCG7cdAOXg2HrpcXtNx0SbGxJCf8ppkTr2BIMYW1uTiwDOHPXdS9Wjr0+L8Xa59tTQlJuafwJ9tjX3drPfu8GrT0kwEyRM3J0zClmHmaU2wmVllRLZTUoxCbGkRPMMgZDpApkFNmehkpiysPlNw1U2o6zszxPOhaidoabV2ozV/LNnwXVgDdTBlxnqnq+v9cPYNnGI1Rok6QONhGwkPvMPmi+PHHXZqkrm2TMb5OvrY0o5RywdR6gNAcRsIBkBSQJhoJmaC2ZWkcskXYnx8jMGcBgy2cZs5WhPuHK0otCH21kJ8K06j7RCEzNmEAuZyjKr/KWAClLtwgTbHI8CB5OX0QGYxfol5MBIQWEOZYD4MI0egCIWDriBDtM6eCa6GBjr5GazwRVLANiaFGM4cwQNkAZhJOwIgQIMoCAANT5lbkOPayzItUH5ngZT8SNKOIZrlBaA9EMQSDgAWUMoq8Rl98YBmaQJWOH1ODbATsdJOi0lRGEJKQVdX0Np73UlwIUpRsq1baNdDKGxI7LN9G1vFYp1kvbMC5tgHoyUsFEhsXY8BLI+T8hfcmlMIn4gEEuIQqCzbWitDwsAFLua8yNLsSWhP6GdLjITpcBLgT4nyEuchPh1UCEzq0XYx36qlC6bxvis0wdo7JT4fIXCeFoEOnZs2DnMEFGtrbaIuChZO0C67Yh8ZFWi4VorEX4v3L66dq0HYgdW0qLgCumK6s6TToaOO79mjMjMFxGgfgXjDHHWd3SRToHIle9d+wJo8SVsrt3T+p31vXcAf9z75T/B/f8CD0MxJpblH9XAbsjSIuxc8wl1L02rN8dy5JzbHBDthZq6IdLbPOu9e54N/Xo31YdjsC4fpDhYBDd8K1EBXUSB9QxesBocIRB+j5HzOP/o/QosfkIkgCov5ixkWXCl2sl6MvNiQBy7LsFJgVHy9eZCt4SvoRAGJC+808QbymdYSImSABkio5gQHxKHJGGxHl7nm7EEO5cNKX7vw0nLmMknEwFblfwsgzSv0yTbg7k4CBBOwCkzgAI3lbhBTgI9AOB8EZ36mQG2x9WBmkBgHxDIFqFswL3QRDA8R4DIHyCqnkAdSDAVxwQrnyitG3kQSgLvytBQJylmxi0/HnxIg3CS23yAmrFS14I3z6DEPbByy7HzGYkQlYmPzQjHCfCnBEGsGbFIAzSgGSH4DAC5w+jvG/1UnUnnSgFoTAAnnTVv1QI0LAL/20LID0OSCAKGh+DQAJlYEClSAlT9Av1MmSHAL8LW2gIxmMAjHlR8ByHZxGA8jgHsXUnmn0MWhfzCN4K7j8gwG7UG1kEQzqkDmDgSMiOmh9ER2QOCPSNf0ziHEVUYBRjgEildEjmRlIGOjalbmbAxhyC4HgB6gER1nwMIJkBIJ+GxhgGl0LxtCoL2knDoIgAYK/iYOwTtlYNCw4KtC4I3itBcN0OqP4NiyQHLCaCX0SwLFbAolS32LcIAhoi3x307EmHzHLAP0KzYhP04mtV4n4jzjhwvjzlknSzmyUjwBDlkQmj0gLiLlSlMkRwsm8gO1snskciwzzkCh2U8iR18n8iajuzAFCnCkimFStwmnikSmSjhPSkymyjygKnXk3keyGLABDhhJqloDqj3kamagSjanUE6kBGbDA36nhjGjkSbUuzWxCPK17gh3Wk2khLRmqxx2OiVN3Xgxx1+yjh2lE2elKMaPenjiF2Jj+jJkBjABBjBkAShm4gETFOkUjnVN0kiKxhxkEjxgJhNNyjNPiV1kJX1kSVxxmM805nlzWKV3L1VxdirxIRlVmhZx9njNmgNm7U1jxB1nR2TK9GGSNmDPQWL2YLtijIIXV2lg9h1z1mLVIGKIbnfydLzhjiNNB0TgWjyKsh5kVSw0zg0jeUbP0kLh2lLnLirklRrgGjrhKNSEdJ3SMlgPGC7llL7lSEHl/hvjHjQHvlYCfjnhYFfiXg/kzkZOjBGh3lexgAPgGOPlPm1Qvl5z8Oym0lHjvkni4mnlnhfkXnfj52/jXP/nBkhncBASDgz0zigR/lSFgT1gQWQXzNly8xL0VwFjwQrxjLdmlWpkTMoWoWsPoQDMYQgGYVYQ/R5n8M70b27wrVEWFGrWOG7KkXrJ1PkTNw0nbXUXDwg1vVj2I3Aw8WsSA1fRDw7QdyvT4qan/X8SAzvUTTjyiTEpvRfWD1TPfXUXg23TIy0VQyo2KQWSWRWUY3wzqRA0W1aXilmk6W1JKEYD6UsH4mTxGTpTIwoxmSSOo10roxw0qTWQ2S2T5QZQFUOWOVOV5UBTARJOinBXuVZOhVhXoFFRzg+W7G+ULHVV8tCuBVBVuSis/1io4HSQRUSuRVRSXHRUTUxW1TFV1Q2AwtlRJUYBhzAEpWpVeJCp2UZQ2GZVZUY3Iy5TFlao4ACqFRFXysqrpFxWqr1jlQVSVRVTVX6oqpziqvxX1U2QCuNS5FNXNUUUtQHmtWnXtV4ydX4xzSE2EuVL1PE103YCk2tRk1UwU2Mp4p0zTXUz4wEzzTk3DUEtzNIFT3LUUUrRookXorrVg0lNmgUT+rYonTyN7VnQHWcCHQDBHWXTOoGqNmnT7QRqRpgBRoTR2s/Vg2nW3XUVg0PXpmPSNgTWExEt/Xkqku4uTTks8QEviWgw/S/WVI4vkoksA1sWkqIyZs4sUoCnZsJpcTUsQyyRyUujyUo1cp0swxsGw30u8oI0eqZtIxlucrQ0Vto2Vvoy8qYygBYwCgM0t12oDH2teqOoE1OvFrugutU2upDVuo+t0wevvSeudpts0xYHdoDS+tYxLUMw0mMz7xQDMxgAsys3VlIHIPs3xyc3wBczc39FDJgHtAzt8yRgCzQs2FC3Cx2BnwELn27BXEX1IguOS3EMojSwmmkKQApSeNy3eJUOKzULWFlMqwvU0W+xgHqyBiaxa2ij4Q6y6x60tL6wGyG1MkEHG0mzIGm2JEUhlFiEWwCmW2UtWxuw2xyi23YF2x8H2yMk525xyENLjgu0FziV3oJIeyewTnB0znex4VIC+zlgsu6X+w2igCBzHsjme02jgEh0VW8OBzhx8ARy8iFFxNRyan9IZyxxx2mKwHx0J2JwVzJwpzeipzaBpzejp3ezpEZ2ZwVjZw52rC5x6mXM/kjgFyfuFy1xz24Xcnz0TotjDMQrLxQujKCw1xry9iVjr1YbQENwdGNzqRZLbQtzRokhd1t3ty5sdwT28Q93ke9w1rAw0YDyTyLW3tDx2nDwT2j0j0Zu0dUb0YSXZrLXT2jsz2z0N3YZlyLwQqLMjN4dLNjM118kTJEYl3Eckdbx5nbzIq7xYB7xaAjoHzouHyoFH3H0n2nyzFn0XC+SgirrLDolrtS3XweJrrkN33nzbpvA7vvFPx2onHMGEDEEkAbApCpC0DyDOChFnDRFuFRHZB5E6f5DCFBLXviESDCOjEaa7iqZ72OKSrEMyaSzOOuNrCqcboKZgmeILCUIK3btQnKfUKwk0KINVGUHSA0G0C6H0GhFeE8BcB6bsFwmufYFCHyG+F+ABAQIDwMBi3eaxHYHeecE+exHeZ8HeYIjSZ/AS03CuOAlrCef+EBGBCWebuggYjgjywQg2dKa2Y4jwE41+PdLkQBNnJznYFg1XuUghP7PZNSE6DSgRKR2RPylRKcgxJel6JxJR3iQJKJOKCGrJJbgDEpLgBSipfhIyiylynykKg3hKhZLZOqlSFqk7O5KLRan5I6ncyFJochsGhGnFKhIEmbWlMWiXPlMWkVPYs0VVKYvyE1L0m6WdPBj1K1OZcvvO2ex+l9ICiBnYH/JtKArtLhm1ZnLtb0kxhaEmNxlkHxkJniRJn+jRw9hWzgtca4fceQpVy8fQorKEaTL9m3vTI2X9OzOrMTc4czvDNL2LM8crwzYDMTKrJ+trIYvDhkX7OdeNNbOTg8jTi7OVp7L7IlIHKLhZLLkrmrlsFrnrkbabgxPnM7hyCNfvNXJSEBMkmfPHlfPfOfj3K/OXggQlaZNPN3gfPYEPmvJgDPhCfvOvifNvjXYfg3d3IXjfh3bodbj/OtMAoRtAVAvUnApgSiIDJgpQVQfguTYjNTfwSrY10zYoSoQgtwoYSYWCd+pIo73Cf4SoqrWBp7cnebYlM1ZkcMfBm5pZv5vMcfXpsgyUpTzOrD0dz/V8UktI60fI5I9iW+uo9UploQyQy47lpcrmRoz0oYzVqMq9osUnRlrMo6R+26SspsoGXNISQcrKulsmXTXloE/coNs8rw3WXmvasCpOXzDORU78rCpuUishWiqeRYBeRGoSs+WStKrSp2Qyo7ks6hRs7Grivs8RWXBRTRVSs1TM+xTGslQmoDKmvquByappX04Cs6pPG6s5W5XmsGvCrytC4mClUmrqoaspVmqC4BR2Sy/GuWuKANTWpNRXDNSXHY1YCtStttQOo02Oq01Oo9Uem9WdpurDQDtjXjWY5UzkzsMOr9u03uvY4M1sYBuooOxrRBp1cbT1cu3w/NwtthpnTQDnWhhxrxqUfRovjhu2+xsXVHXxonQdpbi3SltJrkXJrQEpprNPQ5qq2I/4qY7E+0eFriVFvfSu9o9Es8V5oCU+5kqep+6g3+85o1K4/Ut460oVow31pVuE+NvVq+8iS1rU8R806VtR6NpqVNqanNrkc42tszVtpOq8AB91K68urTV65gDus+sG8x+G6ut9ra/9ueoLWDuQ7LXDtMxi2jvCFjpsymIoIc2TtTvcwzqzp8z81CyrYLrCxcQixLsmfzA5UrpEKbtXyYBBP3E30qBbq7BRZYnRfYlKxABqwWQqyJd7oOn7sHstOHu5lHvax8E6xPG634F63634FnpGwXtvGXv4LMI3qai3qDINb3oPqPpPq6SofPtO2bIYfWWu3W3vtkEew4CAfPNyA+3fqk6/puh/sBw9AAZbPBxAc+Ch3Ab4UgegdZbxMz2IbEeQfzPQbekwdJ2sHJwJ1wb4nwaH7ACIYxyZxZwofUjPpocvh/OvsYYQaz2YacZQal6TdLe4YrbTcg+r2Ydry10N0CebykZYuhoa50cUcI+qwjxdzd3UZjyG/j0j0T3Y/ZrNbcRMc9zMZf50ff5UcbGaeRRBngpiONG8zjEMoWTA7K4IOaFARofyzb+MG8ojCRmfyQ6hNIiaHSJiZn7xmYh8FmBJhPnzBT5NeghbsBSgyZ68V8OTNfPtCWZFhCmqzKYKi0PxFYMWNvSpnkH4A1MJA+zckEcyaanNmQFwa5siCuYXNuQvgcQeiD6YRAwSsQBIEkHUgjMMgYzPIBMwoH5h4s5xMsHM0hYdA8gjAs3i8XWbsDPindDCI4Rwj1MhBJzPQMAHOZ8gbmb4a4LcykE3MHm0LF5kzQEDvMLcIAL5j8z+bfNDQ7zIQH1mBblBCwuvZfPmC3B0C8APg2Fs0hMGIt5CkwFcBb2UJW8viWLH4nxFxYTR8WQJR3g3X6akt1IQbAdkZCFZmQNotLGyPSwciMs5EmJRIq33gZ+EQoYULlhlwJYUkRgSUAVtSTByit6Se7KVv1BlaDk5WnJBVg1CVZ8l2ogpbqCKUURil60/baaFKV3pGsQGCpHIHaxVJHRLW1rbUicIdZ6QnWZ2NttG3dYWkrSACD9vOhhj+sEYjFGoSGzejFDPSUbN1qTD9JZlMKCbYDlvywTlsPGe/BAeWRraVkAyK2PNpmXjY/Vi28vMtkhTgGoV+GcI7MgiOTLVkG205L4S2zuE18bs7ZLtrWizgIpyWsrIdiOVHY2Bx2U5N/E20jjTt0CC5OdvbzlILsYAQ8ZdqwFXabl12O5T8k+0PJrwioJ5DgueUvIHBT257O8lfBSCPkV2N7MUXewlFbspRi/H+Euy9bvsgEbwr9vYzAq9kIK3ROBHLEA7oiYBUI8DjiLLJxlMKOubCnBzoQIdCKSHNhKRWwEUUImGHIGmKBpGBtGya3VirIy/501WOwSMjpYgo5scgBKlJ3nGOsQg8Ga//SHqmKSQ0czocPKWhpT4661keQnQnusgx7g9xOplfupZRaDWV+kdlfRobHIyOVta6nfjm5Xx6G1dOPlYLqFQM5HIjOJnFzhwG5YedrOMKWznCl86JV0mPyIruVTc5goIUnnGcd50y4FUkUAXEqsuK1Sldwu+KXLvKmi5KpmqtKUzkOIS4sokuk4FLn1WvH8oDk3LeKuKjC45dIueXGLsqk5RzVnxWKHVJ+OqorVDUGwdag8E2p1dtqHGPas1y5520lGu6J2iNyZ4s8PabPGsdox9qU9xu/XPTFR2m4gDhEc3WijSO2G6tdhENC/jGJhopxjuO3BdMjSXQXcr+U6RiadxYnncDua6Imjd0yR3cJoD3J7tTVe7pj3E8Y4DOz14pSSoe+Y2nkRzo480GOfNLijmOTEi0moYtGHoWIujcdVOKGDTj2JR59iDKVY0TthKx5OUuxZYwTh5VVrG1ieEnZDhbXJ4IS8J3PQTDT10n2t6ePXV2n1157yYsJgtHCSN0Qk5oCJQdM2iHUF7ahomUdGOtZnjqS8OGjmBaLL3Tpy5s6SvPOkFlV5F1IsKTUuouBXA6CwWSWBFvM0N4VDjefQSsBkKKYDASmR+MppizKx8ie6tNF3v7zd7sBmsHvYHOPV96T0MA09IPsNnnoTYw+EAGbCSwWzEYlsCbOPhkgT57ZhUp9FPvP1bZL9M+cfHPnnxr6bQX6VgN+h/XMoydy+vGSvsNMAZP1gGoDaHBAzAAHIW+3kOBsCI76Y5sc3fG0Bg0QrYMx+eDeAGPwn4M4p+5DIwPEWT5HZ5+95H+hnyJgOM1+kAjfulMdFYiSy+/SMII29goCxGjedAbqHP6KICOcjf3DfwLFKTv+b/NRqYxdyJjX+D/QPB/zTG017+dIRAAzM0YySABrMvMX9TsaQJV+vjdfg6LcawDsZsI3GUgPxnH9G8p/EmZgPYRhMgx/CIXvgMHyTER8Y+EgWQJKmTMxYZxGZkgGyY1SqIDA/Jo1OYGMR98bAj4qoW2a1TV0VTXgSIH4F2CYwwgxwRILaZdN4Qsg7pp4PeALSlBQzTOGoI0AaCugWgsumLEammzjkBvWIIs2tmmC1mrUjgdb1PyYQaCezL2Y0wcFwAzm/s+wJIJcEeDK5DzU8LIBIAAAhedL4O0YyBmApAKALoACGhCQhQQ/5uEMoCZQXQNQN6PIKNlLgEWSciqUkNiC1yG5Tc1ISCCWY2yVmjEbIcEGizMBYALsjgE4Kqb3Np09YJMDAAECiDzAmQfoFgFoB+JzgdwTIKqgvlXyKA5wF4JkEUJT5L5189EGJNjG8F8gtxaomIFEC2plUvyG5qYksAI5b+P6KpsIEebzzXmxidgKYkyDOBMgUCzRDAsDgpDXmOwMBWEmQDZAAMKCohT4EyAZh0FB0TBfkFnkwBG5zzBebgqQVhInB5gCBWe0kFsLjoLwBkLEVSDBBwgJSYoEgFACjhagxwFgHgHtAgBggwQIAA=="} -import { useResize } from '@studiometa/js-toolkit'; -// ---cut--- -const { props } = useResize({ - s: '0px', - m: '600px', - l: '1200px', -}); - -console.log(window.innerWidth === 768); // true -console.log(props().breakpoint); // 'm' -console.log(props().breakpoints); // ['s', 'm', 'l'] -console.log(props().activeBreakpoints); // { s: true, m: true, l: false } -``` - -Custom breakpoints values will be used to define `(min-width)` media queries to manage responsive features such as [responsive options](/api/decorators/withResponsiveOptions.html), breakpoint [manager](/api/decorators/withBreakpointManager.html) and [observer](/api/decorators/withBreakpointObserver.html) for components. - -## Parameters - -### `breakpoints` - -- Type: `Record` -- Required: `false` - -Configure the breakpoints used for responsive features of this service. This parameter is optional, its default value is: - -```js -{ - xxs: '0rem', // 0px - xs: '30rem', // 480px - s: '48rem', // 768px - m: '64rem', // 1024px - l: '80rem', // 1280px - xl: '90rem', // 1440px - xxl: '120rem', // 1920px - xxxl: '160rem', // 2560px -} -``` - -::: tip 💡 Configuring breakpoints globally -At the application level, these breakpoints can be configure with the `options` parameter of [the `createApp` function](/api/helpers/createApp.html). -::: - -## Props - -### `width` - -- Type: `Number` - -The width of the viewport. - -### `height` - -- Type: `Number` - -The height of the viewport. - -### `ratio` - -- Type: `Number` - -The `width / height` ratio of the viewport. - -### `orientation` - -- Type: `String` -- Values: `square`, `portrait` or `landscape` - -### `breakpoint` - -- Type: `string` -- Value: the name of the current active breakpoint - -### `breakpoints` - -- Type: `string[]` -- Value: the names of all defined breakpoints - -### `activeBreakpoints` - -- Type: `Record` -- Value: an object with breakpoints as keys and their boolean state as values diff --git a/packages/docs/api/services/useScroll.md b/packages/docs/api/services/useScroll.md deleted file mode 100644 index 95f86a2c7..000000000 --- a/packages/docs/api/services/useScroll.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -outline: deep ---- - -# Scroll service - -The scroll service runs registered callbacks on page scroll. - -## Usage - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"9a0b0f7c22d33092461d21c3d1fb2e2753756df6df15ad130d9f689b0dfeb02b","data":"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"} -import { useScroll } from '@studiometa/js-toolkit'; - -const { add, remove, props } = useScroll(); - -add('custom-id', (props) => { - console.log(props.x); // the horizontal position of the scroll - console.log(props.y); // the vertical position of the scroll - console.log(props.changedX); // will be `true` when the `x` scroll has changed -}); - -// Get the latest prop object -console.log(props()); - -// Remove the callback -remove('custom-id'); -``` - -::: warning IMPORTANT -A throttle of 100 ms is configured to limit the execution of each scroll callback to a minimum. If you need 60 FPS animations, use the [`raf`](./useRaf.html) service. -::: - -## Props - -### `x` - -- Type: `Number` - -The current horizontal scroll position. - -### `y` - -- Type: `Number` - -The current vertical scroll position. - -### `changed` - -- Type: `Object` -- Interface: `{ x: boolean, y: boolean }` - -For both axis, whether or not the current position has changed since the last one. - -### `changedX` - -- Type: `boolean` - -Shorthand for `changed.x`. - -### `changedY` - -- Type: `boolean` - -Shorthand for `changed.y`. - -### `last` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The last position on both the `x` and `y` axis. - -### `lastX` - -- Type: `number` - -Shorthand for `last.x`. - -### `lastY` - -- Type: `number` - -Shorthand for `last.y`. - -### `delta` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The difference between the last position and the current one. - -### `deltaX` - -- Type: `number` - -Shorthand for `delta.x`. - -### `deltaY` - -- Type: `number` - -Shorthand for `delta.y`. - -### `progress` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The scroll position on both axis mapped to a `0` to `1` range, based on the [max](#max) property. - -### `progressX` - -- Type: `number` - -Shorthand for `progress.x`. - -### `progressY` - -- Type: `number` - -Shorthand for `progress.y`. - -### `max` - -- Type: `Object` -- Interface: `{ x: number, y: number }` - -The maximum value the scroll can reach. - -### `maxX` - -- Type: `number` - -Shorthand for `max.x`. - -### `maxY` - -- Type: `number` - -Shorthand for `max.y`. - -### `direction` - -- Type: `Object` -- Interface `{ x: 'LEFT'|'RIGHT'|'NONE', y: 'UP'|'DOWN'|'NONE' }` - -The direction of the scroll. - -### `isUp` - -- Type: `boolean` - -Shorthand for `direction.y === 'UP'`. - -### `isRight` - -- Type: `boolean` - -Shorthand for `direction.x === 'RIGHT'`. - -### `isDown` - -- Type: `boolean` - -Shorthand for `direction.y === 'DOWN'`. - -### `isLeft` - -- Type: `boolean` - -Shorthand for `direction.x === 'LEFT'`. diff --git a/packages/docs/api/static-methods.md b/packages/docs/api/static-methods.md deleted file mode 100644 index 2e7424a94..000000000 --- a/packages/docs/api/static-methods.md +++ /dev/null @@ -1,35 +0,0 @@ -# Static methods - -For practical examples of components and registration, see the [Components guide](/guide/introduction/managing-components.html). - -## `$register(nameOrSelector?: string)` - -Instantiates a class on each element matching the given component's name or CSS selector. This method uses the [child component resolution](#components) to find components. - -**Parameters** - -- `nameOrSelector` (`string`): the name of the component or a CSS selector - -**Return value** - -- `Base[]`: an array of instances of the component that triggered the method - -```js twoslash -// @twoslash-cache: {"v":1,"hash":"21edd6ee6f6346ff37fde5baab459c9067c8fe1673fc1f9b49ceb92a05960127","data":"N4Igdg9gJgpgziAXAbVAFwJ4AcZJACwgDcYAnEAGhDRgA808AKAQwBsBLZuASgAIBjVlzi8AQlxgAeACq86NMFBHi4MAAqkIWEQF4xEjVrgA+ADph2AWywRSafasogoEfgkQgVMAULhwAdE5ozADm7sjIIBxgANZO+Gho2ogA9CkAVnAAtGgQEKwx7Gj+cGgArlDsEJYwwf6wRCnMWOwpIAC67VSlzHZIAJxUrDBgIWj4SAAsVMGkIbV4Xk7RuIgADFT8+L3M/DTkiP0AvhTo2KsExGRB8niCwrwAwtU2YCMM3bMMiACs01EjMYTQ4zXrzb4gZ7WCBvMAfKLsN5IABMm22pF2+yQADYTmccHhCCRyDNbh4WBwuHx7n4HFJZPIRko6YZtLw9F5WSZzFYbHY6U4XG5FhIfMJAqCwkgIgjYvFEsk0pkcnkCkUSuVKtVasx6jBGs1Wh0uiAen1EAB2VEA0bjKaguYLDxLIaI1bWrY7PbXRDIyZ46jnQlXEnUMkgRhYTQ4OwYPhQ17vfz8GEAM3YIUQvGA5l4ed4YGYNSzpVIiJCAG5zEdBa53JC0xmJdRQuFItE4lQEkk4KkMtlcvlCsVShUqjU6g0mi0UimwOmQmUMWgqmB/AlLKxjZ9et8ABx7oaAu2IbEO8F3RshZZupAAZjRXqxhwDmAJHiJ11J9CYUa0ZEwPhC2LXhS3LJwzW+ABGNYHxtIF7RbR0IWA3BXSRRB/k9DFvQOf1TkDd9LmJG4fw8GkRATGF3ggr4UTWC0j1tYFBiQi8PCo2F4RWAZHxw581lfIMPxDUiIUYCdCCgPgvBkOR6CZZQDGjXQWRU4x/AAElIGAQnYUoyEkTkVIoXg3xgCBUyeF5qLhYxGHGfSs3MyzrOhLjTNQgB5UgAGUYGGPZbAAfhLNAy1Gbgs0MSx9KkTj3mMZB2lrYUPAAJV0/T9l4ZhFF4SwIDKOFctYVheERHowH4eBeFc8ZvBTdykyCVtpXbRFOwIBVeyVAdVWHDUx21Sd9WnVoehXfgskk6AAg3VgAGIdL0gzSCyVDbFUQLcnWsDRm3U06N9KDGPgk9WNmdiQG0rK1pvDDWOwzEfRgoSiM/UMaDIkAKLcxM4Vo3d7zWa1hmY3i2KdBtmsB9DVigj10Reg5BII8zgxI79xNm6S6TkxlFCU1QuXZNSjA027Vv2IzlKMUyXKshK7Ic/AnLM85XOZtBPKLGAfP8naQrCiKQii3gYriyRuaSlKqCFetMupshcvywrivsNhysq4Jqtq+r8EamyuObYIpRQDq5S7Hq+2VQc1RHTVxx1PUDRnSb2Gm3H5rQTdlru/YNr5raApgIK9vC8DOh3c070RpiEJBKGISp7Kv1lBGkafV60fxC5PrEu5fEo42aJj74736MHjxY89oe5h6EZ+PiUaQXPCPz0TsaYXGZIkAmFKJ8m2Q5OntEpla09IWmSZMjmcC50uWcc3t54spml55gs+YF0Pw9C0DI8i6LNFi1Rpc32XUsVgOVbyqACqKkqtYqsAqpqkQDaN2Hila82ZQ7PKHstt+pDnVKOLUE5dRTkNCkD2XtahSR9n7Sea0g41BDkLCOotDqQSmKDBOF064p1QVieGSAoLN1+sjXCFDBImhTLAPAvJbD2GAHSXgRxeCplPrwAA5AAAQgc7YI/YVRgLQHwqsYBzB/W5vJBQzIvDZlzIfZgU0BBXjJjmMA+Zt4gT4dzPhFBVFHGkUccw5g0i8AAOrsDKo/DWZlDb/VsvYP6MJeAAANkBQHUcwLITUAZoB0KYGGwSwntC8XIYYNQ4RwHMNzLSpCyCMG4NIqxKRbH2PKurEqDVXFcTFLSTxPi/HBECZvUJIAABieRInRNDnEtACSwBJNTmtRgfC6kQD4ekyxYBrF2IcawPIMRnHf2CcUz+uivH+EsBgSpP9GmxPeK09pKTSBdPmYsoJbi+kVicFApAoBCZwFXHgTIIAjhHCAA"} -import { Base } from '@studiometa/js-toolkit'; - -class Component extends Base { - static config = { - name: 'Component', - }; -} - -// Will mount the Component class on `[data-component="Component"]` elements -Component.$register(); - -// Will mount the Component class on `[data-component="Foo"]` elements -Component.$register('Foo'); - -// Will look the component class on `.my-component` elements -Component.$register('.my-component'); -``` diff --git a/packages/docs/assets/events-diagram.png b/packages/docs/assets/events-diagram.png deleted file mode 100644 index 1fab36cee9e34e1a876b7fa61d5d16f1e8aa8b64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746176 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

    $iJ7iQ=(| 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Μ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