diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 174aae1..2e0ce08 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -36,3 +36,6 @@ jobs:
- name: Publish to npm
run: pnpm publish --no-git-checks
+
+ - name: Publish to JSR
+ run: pnpx jsr publish
diff --git a/README.md b/README.md
index b9de7f2..5b8353d 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
-
modern, lightweight, robust and extensible human gesture recognizer
+ 🖱️🤏 lightweight, robust and extensible human gesture detector
@@ -23,6 +23,9 @@
+
+
+
@@ -65,13 +68,19 @@ Install Pointeract using your favorite package manager:
```sh
# npm
-$ npm add pointeract
+npm add pointeract
# pnpm
-$ pnpm add pointeract
+pnpm add pointeract
# yarn
-$ yarn add pointeract
+yarn add pointeract
+
+# bun
+bun add pointeract
+
+# deno
+deno add jsr:@hesprs/pointeract
```
Or include the following lines directly in your HTML file:
@@ -89,7 +98,7 @@ Then simply grab the core class and a module:
```TypeScript
import { Pointeract, Drag } from 'pointeract';
-new Pointeract({ element: yourElement }, Drag)
+new Pointeract({ element: yourElement }, [Drag])
.start()
.on('drag', e => console.log(e));
```
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 8e66d51..0be0aba 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -98,6 +98,11 @@ export default defineConfig({
],
editLink: 'https://github.com/hesprs/pointeract/edit/main/docs/:path',
outline: 'deep',
+ footer: {
+ message:
+ 'Licensed under Apache License 2.0.',
+ copyright: 'Copyright © 2025-2026 Hēsperus',
+ },
},
markdown: {
config(md) {
diff --git a/docs/components/playground.vue b/docs/components/playground.vue
index 45758b3..5f34629 100644
--- a/docs/components/playground.vue
+++ b/docs/components/playground.vue
@@ -25,7 +25,7 @@ import {
zoomPreset,
panPreset,
} from '@';
-import { Coordinates } from '@/declarations';
+import { Coordinates } from '@/types';
function C2C(coords: Coordinates) {
return {
diff --git a/docs/en/basic/types.md b/docs/en/basic/types.md
index 5401bc5..1afff12 100644
--- a/docs/en/basic/types.md
+++ b/docs/en/basic/types.md
@@ -15,9 +15,9 @@ This architecture can create highly modular apps and nice DX. Here we provide yo
:::tip
All the types shown below are designed to be flexible, they accept:
-- a single constructor / instance
-- an array of either module constructors / instances
-- nothing
+- an array of module constructor types
+- an array of module instance types
+- nothing (which means no module loaded)
as their type parameters
diff --git a/docs/en/basic/use-pointeract.md b/docs/en/basic/use-pointeract.md
index dea5f35..d003692 100644
--- a/docs/en/basic/use-pointeract.md
+++ b/docs/en/basic/use-pointeract.md
@@ -6,7 +6,7 @@ Everything Pointeract does is based on this class. It serves as an orchestrator
| Description | Method |
| --------------------------------------- | ------------------------------------------------------------ |
-| [Instantiate the Class](#instantiation) | `new Pointeract(element, modules, options?)` |
+| [Instantiate the Class](#instantiation) | `new Pointeract(options, modules?)` |
| [Start Base Class](#start-and-stop) | `pointeract.start()` |
| [Stop Base Class](#start-and-stop) | `pointeract.stop()` |
| [Start Modules](#modules) | `pointeract.start(ModuleConstructor \| ModuleConstructor[])` |
@@ -63,7 +63,7 @@ const pointeract = new Pointeract(options, [Drag, PreventDefault]);
```
::: info
-Pointeract uses TypeScript generics to smartly infer the types of options, events, and class methods available by scanning every module passed into the constructor.
+Powered by [SynthKernel](https://hesprs.github.io/researches/synthkernel), Pointeract uses TypeScript generics to smartly infer the types of options, events, and class methods available by scanning every module passed into the constructor.
:::
### Start and Stop
@@ -109,10 +109,9 @@ All modules are instantiated during the construction of `Pointeract` and dispose
To turn on/off modules at runtime, also use `start()` and `stop()`. For these two methods, if you do not pass any arguments, they will start/stop the Pointeract instance; otherwise the specified modules. All modules passed in are enabled by default at Pointeract construction.
-You start/stop modules by passing in the **constructors** of modules, the methods accept a single module or an array of modules:
+You start/stop modules by passing in the **constructors** of modules, the methods accept an array of modules:
```TypeScript
-pointeract.start(PreventDefault); // single module
pointeract.stop([PreventDefault, Drag]); // multiple modules
```
@@ -122,9 +121,9 @@ Note that the start/stop of modules are independent to the start/stop of the bas
```TypeScript
// we have modules PreventDefault and Drag
pointeract.stop(); // everything is paused
-pointeract.stop(PreventDefault); // no apparent change, but PreventDefault is disabled at module level
+pointeract.stop([PreventDefault]); // no apparent change, but PreventDefault is disabled at module level
pointeract.start(); // only the base class and Drag are started
-pointeract.start(PreventDefault); // PreventDefault will not be restarted unless explicitly reenabled here
+pointeract.start([PreventDefault]); // PreventDefault will not be restarted unless explicitly reenabled here
```
:::
@@ -166,9 +165,10 @@ Options are defined as an object and passed as the third argument of a Pointerac
```TypeScript
const options = {
+ element: app,
coordinateOutput: 'absolute',
}
-const pointeract = new Pointeract(app, [Drag, PreventDefault], options);
+const pointeract = new Pointeract(options, [Drag, PreventDefault]);
```
### Base Options
@@ -198,10 +198,11 @@ Pointeract uses the same `options` reference passed in the constructor, you can
import { Pointeract, WheelPanZoom, Options } from 'pointeract';
const options: Options = {
+ element: document.body
coordinateOutput: 'absolute', // output absolute coordinates
}
-const pointeract = new Pointeract(document.body, WheelPanZoom, options);
+const pointeract = new Pointeract(options, [WheelPanZoom]);
options.coordinateOutput = 'relative'; // output format instantly changes to relative
```
@@ -238,7 +239,7 @@ pointeract.stop();
pointeract.start();
// Disable PreventDefault only
-pointeract.stop(PreventDefault);
+pointeract.stop([PreventDefault]);
// Dispose
pointeract.dispose();
diff --git a/docs/en/development/custom-modules.md b/docs/en/development/custom-modules.md
index 2c14efe..66d464f 100644
--- a/docs/en/development/custom-modules.md
+++ b/docs/en/development/custom-modules.md
@@ -91,8 +91,8 @@ class BaseModule {
- `onPointerMove`: Triggered when a pointer is moved (same to `pointermove` event).
- `onPointerUp`: Triggered when a pointer is released (same to `pointerup` event).
- `onWheel`: Triggered when a wheel event is triggered (same to `wheel` event).
-- `onStart`: Triggered when the module is started or after construction (`pointeract.start(MyModule)`).
-- `onStop`: Triggered when the module is stopped or before disposal (`pointeract.stop(MyModule)`).
+- `onStart`: Triggered when the module is started or after construction (`pointeract.start([MyModule])`).
+- `onStop`: Triggered when the module is stopped or before disposal (`pointeract.stop([MyModule])`).
- `dispose`: Triggered when the module and the Pointeract instance is disposed (`pointeract.dispose()`).
::: tip
@@ -217,7 +217,7 @@ Then when you instantiate the `Pointeract` class with your module loaded, you ca
import { Pointeract } from 'pointeract';
import YourModule from './your-module';
-const instance = new Pointeract({ element: app }, YourModule);
+const instance = new Pointeract({ element: app }, [YourModule]);
instance.log();
// Result:
diff --git a/docs/en/development/testing.md b/docs/en/development/testing.md
index 8790b4a..8cfd7c1 100644
--- a/docs/en/development/testing.md
+++ b/docs/en/development/testing.md
@@ -1,10 +1,6 @@
# Testing
-Any professional library should have a test suite, Pointeract is no different.
-
-[](https://codecov.io/github/hesprs/pointeract)
-
-Above is the current test coverage.
+Go to [Codecov](https://codecov.io/github/hesprs/pointeract) to see the current test coverage.
## Techstack
@@ -13,7 +9,7 @@ Above is the current test coverage.
## Standards
-Pointeract should obey the test requirements as follows:
+Pointeract obeys the test requirements as follows:
- When developing a new module, it is mandatory to write a unit test unless it's untestable.
- The overall test coverage should be higher than 90%.
@@ -28,4 +24,8 @@ The interaction denoted by the code is visualized as follows:

-The aim of this test is to simulate chaotic multitouch drag, pan and zoom intends to ensure `drag` and `multitouchPanZoom` modules can survive extreme conditions. Pointeract coped it well. But when the similar test (manual human test) is conducted in other libraries like `Hammer.js` or `Interact.js`, [they failed](/whats-pointeract#how-pointeract-stands-out).
+The aim of this test is to simulate chaotic multitouch drag, pan and zoom intends to ensure `drag` and `multitouchPanZoom` modules can survive extreme conditions. Pointeract handled it decently.
+
+But when the similar manual human test is conducted in the website demos of `Hammer.js` and `Interact.js`, [they failed for different symptoms](/whats-pointeract#how-pointeract-stands-out).
+
+This test demonstrates how `Pointeract` can handle extreme conditions with the least amount of code.
diff --git a/docs/en/get-started.md b/docs/en/get-started.md
index c5cb3e3..2f42372 100644
--- a/docs/en/get-started.md
+++ b/docs/en/get-started.md
@@ -24,6 +24,14 @@ pnpm add pointeract
yarn add pointeract
```
+```sh [bun]
+bun add pointeract
+```
+
+```sh [deno]
+deno add jsr:@hesprs/pointeract
+```
+
:::
Or include the following lines directly in your HTML file:
@@ -43,7 +51,7 @@ Simply grab the core class and a module:
```TypeScript
import { Pointeract, Drag } from 'pointeract';
-new Pointeract({ element: yourElement }, Drag)
+new Pointeract({ element: yourElement }, [Drag])
.start()
.on('drag', e => console.log(e));
```
diff --git a/docs/en/index.md b/docs/en/index.md
index 06a3a84..6e865df 100644
--- a/docs/en/index.md
+++ b/docs/en/index.md
@@ -17,16 +17,21 @@ hero:
link: /playground
features:
- - title: Modern
+ - title: Powered by SynthKernel
icon: 🧪
- details: Written in TypeScript, succinct in size, wide compatibility.
+ details: 100% modular with precise typing and excellent extensibility.
+ link: https://hesprs.github.io/researches/synthkernel
+ linkText: Learn more about SynthKernel
- title: Scale from 1KB
icon: 🐣
+ link: /modules
details: Grab what you need via modules, the base class is only 1KB gzipped.
- - title: Extensible
+ - title: Runtime-Flexible
icon: 🧩
- details: Write your own modules and plug into Pointeract via its module API.
+ details: Start/stop the detector and any module at any time, update options reactively.
- title: Robust
icon: 🦾
- details: Full touchpad support, excels at complex gestures where most interaction libraries fail.
+ details: Excels at complex gestures where most contenders fail.
+ link: /development/testing
+ linkText: See testing
---
diff --git a/docs/en/modules/click.md b/docs/en/modules/click.md
index fc1f8d5..ce42f04 100644
--- a/docs/en/modules/click.md
+++ b/docs/en/modules/click.md
@@ -8,7 +8,7 @@ The click module in checks whether the mouse/touch has actually moved during dow
```TypeScript
import { Click, Pointeract } from 'pointeract';
-const pointeract = new Pointeract({ element: app }, Click);
+const pointeract = new Pointeract({ element: app }, [Click]);
```
## Options
diff --git a/docs/en/modules/drag.md b/docs/en/modules/drag.md
index dafb758..09947b4 100644
--- a/docs/en/modules/drag.md
+++ b/docs/en/modules/drag.md
@@ -8,5 +8,5 @@ This module handles drag interactions, events are dispatched when a single touch
```TypeScript
import { Drag, Pointeract } from 'pointeract';
-const pointeract = new Pointeract({ element: app }, Drag);
+const pointeract = new Pointeract({ element: app }, [Drag]);
```
diff --git a/docs/en/modules/lubricator.md b/docs/en/modules/lubricator.md
index 2234baf..32dc235 100644
--- a/docs/en/modules/lubricator.md
+++ b/docs/en/modules/lubricator.md
@@ -23,9 +23,11 @@ Lubricator requires a granular configuration of what and how to interpolate an e
```TypeScript
interface Options extends BaseOptions {
lubricator?: {
+ // this is the configuration for each event
[Key: string]?: {
decayFactor: number;
fields: {
+ // this is the configuration for each field in the emitted event
[Key: string]?: {
countType: 'sum' | 'product';
diminishBoundary: number;
@@ -42,7 +44,7 @@ In **per-event** configuration:
`decayFactor`: controls how fast it interpolates, i.e., how the smoothified event lags behind the real-time interaction. The lower this value is, the more smooth interactions are.
-`fields`: the name of fields in the event to interpolate, the fields must be the type `number`, you can find the fields of events in the [event types](/basic/types#events). The values of the items in `fields` are configurations per-field.
+`fields`: the names of fields in the event to interpolate, the fields must be the type `number`, you can find the fields of events in the [event types](/basic/types#events). The values of the items in `fields` are configurations per-field.
In **per-field** configuration:
@@ -53,7 +55,7 @@ In **per-field** configuration:
`diminishBoundary`: defines the threshold for the final dispatch.
-- interpolation is infinite if you don't manually define a boundary. If the difference between the real dispatch and raw is smaller than this boundary, the interpolation will stop and lubricator will dispatch a final event to make the aggregate interpolation equals the raw.
+- interpolation is infinite if you don't manually define a boundary. If the difference between the real dispatch and raw is smaller than this boundary, the interpolation will stop and lubricator will dispatch a final event to make the aggregate interpolation equal the raw.
In the following example, we will smoothify `zoom` event:
@@ -76,7 +78,7 @@ new Pointeract({
}, [WheelPanZoom, Lubricator])
```
-In this example, we've configured Lubricator to intercept event `zoom`, interpolate the `factor` field in it with product goal and stops when the aggregate interpolation is less than 1% from total product.
+In this example, we've configured Lubricator to intercept event `zoom`, interpolate the `factor` field in it with product goal and stops when the leftover zoom factor is less than 0.01.
## Presets
diff --git a/docs/en/modules/multitouch-pan-zoom.md b/docs/en/modules/multitouch-pan-zoom.md
index c6575e8..6259123 100644
--- a/docs/en/modules/multitouch-pan-zoom.md
+++ b/docs/en/modules/multitouch-pan-zoom.md
@@ -11,5 +11,5 @@ This module monitors touches on the screen.
```TypeScript
import { MultitouchPanZoom, Pointeract } from 'pointeract';
-const pointeract = new Pointeract({ element: app }, MultitouchPanZoom);
+const pointeract = new Pointeract({ element: app }, [MultitouchPanZoom]);
```
diff --git a/docs/en/modules/prevent-default.md b/docs/en/modules/prevent-default.md
index 21d8315..20bb42f 100644
--- a/docs/en/modules/prevent-default.md
+++ b/docs/en/modules/prevent-default.md
@@ -6,5 +6,5 @@ This module disables all default browser behaviors related to touch / mouse / wh
```TypeScript
import { PreventDefault, Pointeract } from 'pointeract';
-const pointeract = new Pointeract({ element: app }, PreventDefault);
+const pointeract = new Pointeract({ element: app }, [PreventDefault]);
```
diff --git a/docs/en/modules/wheel-pan-zoom.md b/docs/en/modules/wheel-pan-zoom.md
index 08d17e8..2e9e60f 100644
--- a/docs/en/modules/wheel-pan-zoom.md
+++ b/docs/en/modules/wheel-pan-zoom.md
@@ -22,7 +22,7 @@ Most devices with touchpad interpret touchpad gestures as mouse wheel + key pres
```TypeScript
import { WheelPanZoom, Pointeract } from 'pointeract';
-const pointeract = new Pointeract({ element: app }, WheelPanZoom);
+const pointeract = new Pointeract({ element: app }, [WheelPanZoom]);
```
## Options
diff --git a/jsr.json b/jsr.json
new file mode 100644
index 0000000..a8613c3
--- /dev/null
+++ b/jsr.json
@@ -0,0 +1,21 @@
+{
+ "name": "pointeract",
+ "version": "1.1.2",
+ "description": "A 3KB, tree-shakable, TypeScript-native alternative to Hammer.js for robust pan/zoom gestures — runtime-flexible, extensible, and safe.",
+ "keywords": ["lightweight", "frontend", "gesture-detection", "pan-zoom", "typescript"],
+ "homepage": "https://pointeract.consensia.cc",
+ "bugs": {
+ "url": "https://github.com/hesprs/pointeract/issues"
+ },
+ "license": "MIT",
+ "author": {
+ "name": "Hēsperus",
+ "email": "hesprs@outlook.com"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/hesprs/pointeract.git"
+ },
+ "exports": "./src/index.ts",
+ "sideEffects": false
+}
diff --git a/package.json b/package.json
index 0277671..b898e60 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,12 @@
{
"name": "pointeract",
- "version": "1.1.1",
- "description": "Modern, lightweight, robust and extensible human gesture recognizer.",
+ "version": "1.1.2",
+ "description": "A 3KB, tree-shakable, TypeScript-native alternative to Hammer.js for robust pan/zoom gestures — runtime-flexible and extensible.",
"keywords": [
"frontend",
- "interaction",
- "pointer-events",
+ "gesture-detection",
+ "lightweight",
+ "pan-zoom",
"typescript"
],
"homepage": "https://pointeract.consensia.cc",
@@ -49,20 +50,20 @@
"devDependencies": {
"@types/node": "^25.3.0",
"@vitest/coverage-v8": "^4.0.18",
- "happy-dom": "^20.6.3",
- "oxfmt": "^0.33.0",
- "oxlint": "^1.48.0",
- "oxlint-tsgolint": "^0.14.0",
+ "happy-dom": "^20.7.0",
+ "oxfmt": "^0.35.0",
+ "oxlint": "^1.50.0",
+ "oxlint-tsgolint": "^0.14.2",
"terser": "^5.46.0",
"tsc-alias": "^1.8.16",
"typescript": "^5.9.3",
"vite": "^7.3.1",
"vitepress": "2.0.0-alpha.16",
"vitepress-plugin-group-icons": "^1.7.1",
- "vitepress-theme-trito": "^1.0.5",
+ "vitepress-theme-trito": "^1.0.6",
"vitest": "^4.0.18",
"vue": "^3.5.28",
- "vue-tsc": "^3.2.4"
+ "vue-tsc": "^3.2.5"
},
"packageManager": "pnpm@10.29.3"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4c1471e..2debf67 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,19 +13,19 @@ importers:
version: 25.3.0
'@vitest/coverage-v8':
specifier: ^4.0.18
- version: 4.0.18(vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.6.3)(jsdom@27.3.0)(terser@5.46.0))
+ version: 4.0.18(vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.7.0)(jsdom@27.3.0)(terser@5.46.0))
happy-dom:
- specifier: ^20.6.3
- version: 20.6.3
+ specifier: ^20.7.0
+ version: 20.7.0
oxfmt:
- specifier: ^0.33.0
- version: 0.33.0
+ specifier: ^0.35.0
+ version: 0.35.0
oxlint:
- specifier: ^1.48.0
- version: 1.48.0(oxlint-tsgolint@0.14.0)
+ specifier: ^1.50.0
+ version: 1.50.0(oxlint-tsgolint@0.14.2)
oxlint-tsgolint:
- specifier: ^0.14.0
- version: 0.14.0
+ specifier: ^0.14.2
+ version: 0.14.2
terser:
specifier: ^5.46.0
version: 5.46.0
@@ -45,17 +45,17 @@ importers:
specifier: ^1.7.1
version: 1.7.1(vite@7.3.1(@types/node@25.3.0)(terser@5.46.0))
vitepress-theme-trito:
- specifier: ^1.0.5
- version: 1.0.5(@types/node@25.3.0)(focus-trap@7.8.0)(postcss@8.5.6)(terser@5.46.0)(typescript@5.9.3)
+ specifier: ^1.0.6
+ version: 1.0.6(@types/node@25.3.0)(focus-trap@7.8.0)(postcss@8.5.6)(terser@5.46.0)(typescript@5.9.3)
vitest:
specifier: ^4.0.18
- version: 4.0.18(@types/node@25.3.0)(happy-dom@20.6.3)(jsdom@27.3.0)(terser@5.46.0)
+ version: 4.0.18(@types/node@25.3.0)(happy-dom@20.7.0)(jsdom@27.3.0)(terser@5.46.0)
vue:
specifier: ^3.5.28
version: 3.5.28(typescript@5.9.3)
vue-tsc:
- specifier: ^3.2.4
- version: 3.2.4(typescript@5.9.3)
+ specifier: ^3.2.5
+ version: 3.2.5(typescript@5.9.3)
packages:
@@ -95,8 +95,8 @@ packages:
resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
engines: {node: '>=18'}
- '@csstools/color-helpers@6.0.1':
- resolution: {integrity: sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==}
+ '@csstools/color-helpers@6.0.2':
+ resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==}
engines: {node: '>=20.19.0'}
'@csstools/css-calc@3.1.1':
@@ -106,8 +106,8 @@ packages:
'@csstools/css-parser-algorithms': ^4.0.0
'@csstools/css-tokenizer': ^4.0.0
- '@csstools/css-color-parser@4.0.1':
- resolution: {integrity: sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==}
+ '@csstools/css-color-parser@4.0.2':
+ resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==}
engines: {node: '>=20.19.0'}
peerDependencies:
'@csstools/css-parser-algorithms': ^4.0.0
@@ -119,8 +119,8 @@ packages:
peerDependencies:
'@csstools/css-tokenizer': ^4.0.0
- '@csstools/css-syntax-patches-for-csstree@1.0.27':
- resolution: {integrity: sha512-sxP33Jwg1bviSUXAV43cVYdmjt2TLnLXNqCWl9xmxHawWVjGz/kEbdkr7F9pxJNBN2Mh+dq0crgItbW6tQvyow==}
+ '@csstools/css-syntax-patches-for-csstree@1.0.28':
+ resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==}
'@csstools/css-tokenizer@4.0.0':
resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==}
@@ -334,276 +334,276 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@oxfmt/binding-android-arm-eabi@0.33.0':
- resolution: {integrity: sha512-ML6qRW8/HiBANteqfyFAR1Zu0VrJu+6o4gkPLsssq74hQ7wDMkufBYJXI16PGSERxEYNwKxO5fesCuMssgTv9w==}
+ '@oxfmt/binding-android-arm-eabi@0.35.0':
+ resolution: {integrity: sha512-BaRKlM3DyG81y/xWTsE6gZiv89F/3pHe2BqX2H4JbiB8HNVlWWtplzgATAE5IDSdwChdeuWLDTQzJ92Lglw3ZA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@oxfmt/binding-android-arm64@0.33.0':
- resolution: {integrity: sha512-WimmcyrGpTOntj7F7CO9RMssncOKYall93nBnzJbI2ZZDhVRuCkvFwTpwz80cZqwYm5udXRXfF40ZXcCxjp9jg==}
+ '@oxfmt/binding-android-arm64@0.35.0':
+ resolution: {integrity: sha512-/O+EbuAJYs6nde/anv+aID6uHsGQApyE9JtYBo/79KyU8e6RBN3DMbT0ix97y1SOnCglurmL2iZ+hlohjP2PnQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@oxfmt/binding-darwin-arm64@0.33.0':
- resolution: {integrity: sha512-PorspsX9O5ISstVaq34OK4esN0LVcuU4DVg+XuSqJsfJ//gn6z6WH2Tt7s0rTQaqEcp76g7+QdWQOmnJDZsEVg==}
+ '@oxfmt/binding-darwin-arm64@0.35.0':
+ resolution: {integrity: sha512-pGqRtqlNdn9d4VrmGUWVyQjkw79ryhI6je9y2jfqNUIZCfqceob+R97YYAoG7C5TFyt8ILdLVoN+L2vw/hSFyA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@oxfmt/binding-darwin-x64@0.33.0':
- resolution: {integrity: sha512-8278bqQtOcHRPhhzcqwN9KIideut+cftBjF8d2TOsSQrlsJSFx41wCCJ38mFmH9NOmU1M+x9jpeobHnbRP1okw==}
+ '@oxfmt/binding-darwin-x64@0.35.0':
+ resolution: {integrity: sha512-8GmsDcSozTPjrCJeGpp+sCmS9+9V5yRrdEZ1p/sTWxPG5nYeAfSLuS0nuEYjXSO+CtdSbStIW6dxa+4NM58yRw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@oxfmt/binding-freebsd-x64@0.33.0':
- resolution: {integrity: sha512-BiqYVwWFHLf5dkfg0aCKsXa9rpi//vH1+xePCpd7Ulz9yp9pJKP4DWgS5g+OW8MaqOtt7iyAszhxtk/j1nDKHQ==}
+ '@oxfmt/binding-freebsd-x64@0.35.0':
+ resolution: {integrity: sha512-QyfKfTe0ytHpFKHAcHCGQEzN45QSqq1AHJOYYxQMgLM3KY4xu8OsXHpCnINjDsV4XGnQzczJDU9e04Zmd8XqIQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@oxfmt/binding-linux-arm-gnueabihf@0.33.0':
- resolution: {integrity: sha512-oAVmmurXx0OKbNOVv71oK92LsF1LwYWpnhDnX0VaAy/NLsCKf4B7Zo7lxkJh80nfhU20TibcdwYfoHVaqlStPQ==}
+ '@oxfmt/binding-linux-arm-gnueabihf@0.35.0':
+ resolution: {integrity: sha512-u+kv3JD6P3J38oOyUaiCqgY5TNESzBRZJ5lyZQ6c2czUW2v5SIN9E/KWWa9vxoc+P8AFXQFUVrdzGy1tK+nbPQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxfmt/binding-linux-arm-musleabihf@0.33.0':
- resolution: {integrity: sha512-YB6S8CiRol59oRxnuclJiWoV6l+l8ru/NsuQNYjXZnnPXfSTXKtMLWHCnL/figpCFYA1E7JyjrBbar1qxe2aZg==}
+ '@oxfmt/binding-linux-arm-musleabihf@0.35.0':
+ resolution: {integrity: sha512-1NiZroCiV57I7Pf8kOH4XGR366kW5zir3VfSMBU2D0V14GpYjiYmPYFAoJboZvp8ACnZKUReWyMkNKSa5ad58A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxfmt/binding-linux-arm64-gnu@0.33.0':
- resolution: {integrity: sha512-hrYy+FpWoB6N24E9oGRimhVkqlls9yeqcRmQakEPUHoAbij6rYxsHHYIp3+FHRiQZFAOUxWKn/CCQoy/Mv3Dgw==}
+ '@oxfmt/binding-linux-arm64-gnu@0.35.0':
+ resolution: {integrity: sha512-7Q0Xeg7ZnW2nxnZ4R7aF6DEbCFls4skgHZg+I63XitpNvJCbVIU8MFOTZlvZGRsY9+rPgWPQGeUpLHlyx0wvMA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-arm64-musl@0.33.0':
- resolution: {integrity: sha512-O1YIzymGRdWj9cG5iVTjkP7zk9/hSaVN8ZEbqMnWZjLC1phXlv54cUvANGGXndgJp2JS4W9XENn7eo5I4jZueg==}
+ '@oxfmt/binding-linux-arm64-musl@0.35.0':
+ resolution: {integrity: sha512-5Okqi+uhYFxwKz8hcnUftNNwdm8BCkf6GSCbcz9xJxYMm87k1E4p7PEmAAbhLTk7cjSdDre6TDL0pDzNX+Y22Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-linux-ppc64-gnu@0.33.0':
- resolution: {integrity: sha512-2lrkNe+B0w1tCgQTaozfUNQCYMbqKKCGcnTDATmWCZzO77W2sh+3n04r1lk9Q1CK3bI+C3fPwhFPUR2X2BvlyQ==}
+ '@oxfmt/binding-linux-ppc64-gnu@0.35.0':
+ resolution: {integrity: sha512-9k66pbZQXM/lBJWys3Xbc5yhl4JexyfqkEf/tvtq8976VIJnLAAL3M127xHA3ifYSqxdVHfVGTg84eiBHCGcNw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-riscv64-gnu@0.33.0':
- resolution: {integrity: sha512-8DSG1q0M6097vowHAkEyHnKed75/BWr1IBtgCJfytnWQg+Jn1X4DryhfjqonKZOZiv74oFQl5J8TCbdDuXXdtQ==}
+ '@oxfmt/binding-linux-riscv64-gnu@0.35.0':
+ resolution: {integrity: sha512-aUcY9ofKPtjO52idT6t0SAQvEF6ctjzUQa1lLp7GDsRpSBvuTrBQGeq0rYKz3gN8dMIQ7mtMdGD9tT4LhR8jAQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-riscv64-musl@0.33.0':
- resolution: {integrity: sha512-eWaxnpPz7+p0QGUnw7GGviVBDOXabr6Cd0w7S/vnWTqQo9z1VroT7XXFnJEZ3dBwxMB9lphyuuYi/GLTCxqxlg==}
+ '@oxfmt/binding-linux-riscv64-musl@0.35.0':
+ resolution: {integrity: sha512-C6yhY5Hvc2sGM+mCPek9ZLe5xRUOC/BvhAt2qIWFAeXMn4il04EYIjl3DsWiJr0xDMTJhvMOmD55xTRPlNp39w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-linux-s390x-gnu@0.33.0':
- resolution: {integrity: sha512-+mH8cQTqq+Tu2CdoB2/Wmk9CqotXResi+gPvXpb+AAUt/LiwpicTQqSolMheQKogkDTYHPuUiSN23QYmy7IXNQ==}
+ '@oxfmt/binding-linux-s390x-gnu@0.35.0':
+ resolution: {integrity: sha512-RG2hlvOMK4OMZpO3mt8MpxLQ0AAezlFqhn5mI/g5YrVbPFyoCv9a34AAvbSJS501ocOxlFIRcKEuw5hFvddf9g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-x64-gnu@0.33.0':
- resolution: {integrity: sha512-fjyslAYAPE2+B6Ckrs5LuDQ6lB1re5MumPnzefAXsen3JGwiRilra6XdjUmszTNoExJKbewoxxd6bcLSTpkAJQ==}
+ '@oxfmt/binding-linux-x64-gnu@0.35.0':
+ resolution: {integrity: sha512-wzmh90Pwvqj9xOKHJjkQYBpydRkaXG77ZvDz+iFDRRQpnqIEqGm5gmim2s6vnZIkDGsvKCuTdtxm0GFmBjM1+w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-x64-musl@0.33.0':
- resolution: {integrity: sha512-ve/jGBlTt35Jl/I0A0SfCQX3wKnadzPDdyOFEwe2ZgHHIT9uhqhAv1PaVXTenSBpauICEWYH8mWy+ittzlVE/A==}
+ '@oxfmt/binding-linux-x64-musl@0.35.0':
+ resolution: {integrity: sha512-+HCqYCJPCUy5I+b2cf+gUVaApfgtoQT3HdnSg/l7NIcLHOhKstlYaGyrFZLmUpQt4WkFbpGKZZayG6zjRU0KFA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-openharmony-arm64@0.33.0':
- resolution: {integrity: sha512-lsWRgY9e+uPvwXnuDiJkmJ2Zs3XwwaQkaALJ3/SXU9kjZP0Qh8/tGW8Tk/Z6WL32sDxx+aOK5HuU7qFY9dHJhg==}
+ '@oxfmt/binding-openharmony-arm64@0.35.0':
+ resolution: {integrity: sha512-kFYmWfR9YL78XyO5ws+1dsxNvZoD973qfVMNFOS4e9bcHXGF7DvGC2tY5UDFwyMCeB33t3sDIuGONKggnVNSJA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@oxfmt/binding-win32-arm64-msvc@0.33.0':
- resolution: {integrity: sha512-w8AQHyGDRZutxtQ7IURdBEddwFrtHQiG6+yIFpNJ4HiMyYEqeAWzwBQBfwSAxtSNh6Y9qqbbc1OM2mHN6AB3Uw==}
+ '@oxfmt/binding-win32-arm64-msvc@0.35.0':
+ resolution: {integrity: sha512-uD/NGdM65eKNCDGyTGdO8e9n3IHX+wwuorBvEYrPJXhDXL9qz6gzddmXH8EN04ejUXUujlq4FsoSeCfbg0Y+Jg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@oxfmt/binding-win32-ia32-msvc@0.33.0':
- resolution: {integrity: sha512-j2X4iumKVwDzQtUx3JBDkaydx6eLuncgUZPl2ybZ8llxJMFbZIniws70FzUQePMfMtzLozIm7vo4bjkvQFsOzw==}
+ '@oxfmt/binding-win32-ia32-msvc@0.35.0':
+ resolution: {integrity: sha512-oSRD2k8J2uxYDEKR2nAE/YTY9PobOEnhZgCmspHu0+yBQ665yH8lFErQVSTE7fcGJmJp/cC6322/gc8VFuQf7g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@oxfmt/binding-win32-x64-msvc@0.33.0':
- resolution: {integrity: sha512-lsBQxbepASwOBUh3chcKAjU+jVAQhLElbPYiagIq26cU8vA9Bttj6t20bMvCQCw31m440IRlNhrK7NpnUI8mzA==}
+ '@oxfmt/binding-win32-x64-msvc@0.35.0':
+ resolution: {integrity: sha512-WCDJjlS95NboR0ugI2BEwzt1tYvRDorDRM9Lvctls1SLyKYuNRCyrPwp1urUPFBnwgBNn9p2/gnmo7gFMySRoQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
- '@oxlint-tsgolint/darwin-arm64@0.14.0':
- resolution: {integrity: sha512-9JdNm9dNeCNgRxBzYb+8vJa/aPD4asc3INdRAC4oJ5EucM2yIPfmHEMlwkAe2WkC7QHPVMG3L9MheAnCrXPTyg==}
+ '@oxlint-tsgolint/darwin-arm64@0.14.2':
+ resolution: {integrity: sha512-03WxIXguCXf1pTmoG2C6vqRcbrU9GaJCW6uTIiQdIQq4BrJnVWZv99KEUQQRkuHK78lOLa9g7B4K58NcVcB54g==}
cpu: [arm64]
os: [darwin]
- '@oxlint-tsgolint/darwin-x64@0.14.0':
- resolution: {integrity: sha512-8Z6BkXV7g6BoToCqi/6M7qiDDVHoKzEKRclMXxXiM0JNdk+w4ashNQ101kZh5Xb976vwbo3GuOS8co1UrJ8MQw==}
+ '@oxlint-tsgolint/darwin-x64@0.14.2':
+ resolution: {integrity: sha512-ksMLl1cIWz3Jw+U79BhyCPdvohZcJ/xAKri5bpT6oeEM2GVnQCHBk/KZKlYrd7hZUTxz0sLnnKHE11XFnLASNQ==}
cpu: [x64]
os: [darwin]
- '@oxlint-tsgolint/linux-arm64@0.14.0':
- resolution: {integrity: sha512-OZJ/mZSY15cSk3uoqYaKkw5Ue7duaDHfYoigy9bdASeNn4fHnYqeziqOPBvD3K76BDN/mwPLydawsgfY4VPQJQ==}
+ '@oxlint-tsgolint/linux-arm64@0.14.2':
+ resolution: {integrity: sha512-2BgR535w7GLxBCyQD5DR3dBzbAgiBbG5QX1kAEVzOmWxJhhGxt5lsHdHebRo7ilukYLpBDkerz0mbMErblghCQ==}
cpu: [arm64]
os: [linux]
- '@oxlint-tsgolint/linux-x64@0.14.0':
- resolution: {integrity: sha512-NDEBWwtpmCL8AL5jkX9nj9T69QbmaQ5AMSLnMWSJcL4xwR/yh0zk92/662sE2NWiX+8jACycIOa8CzH98rk5gw==}
+ '@oxlint-tsgolint/linux-x64@0.14.2':
+ resolution: {integrity: sha512-TUHFyVHfbbGtnTQZbUFgwvv3NzXBgzNLKdMUJw06thpiC7u5OW5qdk4yVXIC/xeVvdl3NAqTfcT4sA32aiMubg==}
cpu: [x64]
os: [linux]
- '@oxlint-tsgolint/win32-arm64@0.14.0':
- resolution: {integrity: sha512-onUJNTdoi5eh9HRg0Eb7rBvUtZP8RYP5XCJJkwh1cpNfG8p5JQU0MxYujgdk4ZFGKmg81AsaGAWXDkVNlgMELw==}
+ '@oxlint-tsgolint/win32-arm64@0.14.2':
+ resolution: {integrity: sha512-OfYHa/irfVggIFEC4TbawsI7Hwrttppv//sO/e00tu4b2QRga7+VHAwtCkSFWSr0+BsO4InRYVA0+pun5BinpQ==}
cpu: [arm64]
os: [win32]
- '@oxlint-tsgolint/win32-x64@0.14.0':
- resolution: {integrity: sha512-5pV3fznLN3yZAbEbygZzM9QvcNLYjLmrnM7AYTunhDnkIqagTv5XFwHqXcZf7MZ6oNPtkcImhtzhSpxsk23n3A==}
+ '@oxlint-tsgolint/win32-x64@0.14.2':
+ resolution: {integrity: sha512-5gxwbWYE2pP+pzrO4SEeYvLk4N609eAe18rVXUx+en3qtHBkU8VM2jBmMcZdIHn+G05leu4pYvwAvw6tvT9VbA==}
cpu: [x64]
os: [win32]
- '@oxlint/binding-android-arm-eabi@1.48.0':
- resolution: {integrity: sha512-1Pz/stJvveO9ZO7ll4ZoEY3f6j2FiUgBLBcCRCiW6ylId9L9UKs+gn3X28m3eTnoiFCkhKwmJJ+VO6vwsu7Qtg==}
+ '@oxlint/binding-android-arm-eabi@1.50.0':
+ resolution: {integrity: sha512-G7MRGk/6NCe+L8ntonRdZP7IkBfEpiZ/he3buLK6JkLgMHgJShXZ+BeOwADmspXez7U7F7L1Anf4xLSkLHiGTg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@oxlint/binding-android-arm64@1.48.0':
- resolution: {integrity: sha512-Zc42RWGE8huo6Ht0lXKjd0NH2lWNmimQHUmD0JFcvShLOuwN+RSEE/kRakc2/0LIgOUuU/R7PaDMCOdQlPgNUQ==}
+ '@oxlint/binding-android-arm64@1.50.0':
+ resolution: {integrity: sha512-GeSuMoJWCVpovJi/e3xDSNgjeR8WEZ6MCXL6EtPiCIM2NTzv7LbflARINTXTJy2oFBYyvdf/l2PwHzYo6EdXvg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@oxlint/binding-darwin-arm64@1.48.0':
- resolution: {integrity: sha512-jgZs563/4vaG5jH2RSt2TSh8A2jwsFdmhLXrElMdm3Mmto0HPf85FgInLSNi9HcwzQFvkYV8JofcoUg2GH1HTA==}
+ '@oxlint/binding-darwin-arm64@1.50.0':
+ resolution: {integrity: sha512-w3SY5YtxGnxCHPJ8Twl3KmS9oja1gERYk3AMoZ7Hv8P43ZtB6HVfs02TxvarxfL214Tm3uzvc2vn+DhtUNeKnw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@oxlint/binding-darwin-x64@1.48.0':
- resolution: {integrity: sha512-kvo87BujEUjCJREuWDC4aPh1WoXCRFFWE4C7uF6wuoMw2f6N2hypA/cHHcYn9DdL8R2RrgUZPefC8JExyeIMKA==}
+ '@oxlint/binding-darwin-x64@1.50.0':
+ resolution: {integrity: sha512-hNfogDqy7tvmllXKBSlHo6k5x7dhTUVOHbMSE15CCAcXzmqf5883aPvBYPOq9AE7DpDUQUZ1kVE22YbiGW+tuw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@oxlint/binding-freebsd-x64@1.48.0':
- resolution: {integrity: sha512-eyzzPaHQKn0RIM+ueDfgfJF2RU//Wp4oaKs2JVoVYcM5HjbCL36+O0S3wO5Xe1NWpcZIG3cEHc/SuOCDRqZDSg==}
+ '@oxlint/binding-freebsd-x64@1.50.0':
+ resolution: {integrity: sha512-ykZevOWEyu0nsxolA911ucxpEv0ahw8jfEeGWOwwb/VPoE4xoexuTOAiPNlWZNJqANlJl7yp8OyzCtXTUAxotw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@oxlint/binding-linux-arm-gnueabihf@1.48.0':
- resolution: {integrity: sha512-p3kSloztK7GRO7FyO3u38UCjZxQTl92VaLDsMQAq0eGoiNmeeEF1KPeE4+Fr+LSkQhF8WvJKSuls6TwOlurdPA==}
+ '@oxlint/binding-linux-arm-gnueabihf@1.50.0':
+ resolution: {integrity: sha512-hif3iDk7vo5GGJ4OLCCZAf2vjnU9FztGw4L0MbQL0M2iY9LKFtDMMiQAHmkF0PQGQMVbTYtPdXCLKVgdkiqWXQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxlint/binding-linux-arm-musleabihf@1.48.0':
- resolution: {integrity: sha512-uWM+wiTqLW/V0ZmY/eyTWs8ykhIkzU+K2tz/8m35YepYEzohiUGRbnkpAFXj2ioXpQL+GUe5vmM3SLH6ozlfFw==}
+ '@oxlint/binding-linux-arm-musleabihf@1.50.0':
+ resolution: {integrity: sha512-dVp9iSssiGAnTNey2Ruf6xUaQhdnvcFOJyRWd/mu5o2jVbFK15E5fbWGeFRfmuobu5QXuROtFga44+7DOS3PLg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxlint/binding-linux-arm64-gnu@1.48.0':
- resolution: {integrity: sha512-OhQNPjs/OICaYqxYJjKKMaIY7p3nJ9IirXcFoHKD+CQE1BZFCeUUAknMzUeLclDCfudH9Vb/UgjFm8+ZM5puAg==}
+ '@oxlint/binding-linux-arm64-gnu@1.50.0':
+ resolution: {integrity: sha512-1cT7yz2HA910CKA9NkH1ZJo50vTtmND2fkoW1oyiSb0j6WvNtJ0Wx2zoySfXWc/c+7HFoqRK5AbEoL41LOn9oA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-arm64-musl@1.48.0':
- resolution: {integrity: sha512-adu5txuwGvQ4C4fjYHJD+vnY+OCwCixBzn7J3KF3iWlVHBBImcosSv+Ye+fbMMJui4HGjifNXzonjKm9pXmOiw==}
+ '@oxlint/binding-linux-arm64-musl@1.50.0':
+ resolution: {integrity: sha512-++B3k/HEPFVlj89cOz8kWfQccMZB/aWL9AhsW7jPIkG++63Mpwb2cE9XOEsd0PATbIan78k2Gky+09uWM1d/gQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@oxlint/binding-linux-ppc64-gnu@1.48.0':
- resolution: {integrity: sha512-inlQQRUnHCny/7b7wA6NjEoJSSZPNea4qnDhWyeqBYWx8ukf2kzNDSiamfhOw6bfAYPm/PVlkVRYaNXQbkLeTQ==}
+ '@oxlint/binding-linux-ppc64-gnu@1.50.0':
+ resolution: {integrity: sha512-Z9b/KpFMkx66w3gVBqjIC1AJBTZAGoI9+U+K5L4QM0CB/G0JSNC1es9b3Y0Vcrlvtdn8A+IQTkYjd/Q0uCSaZw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-riscv64-gnu@1.48.0':
- resolution: {integrity: sha512-YiJx6sW6bYebQDZRVWLKm/Drswx/hcjIgbLIhULSn0rRcBKc7d9V6mkqPjKDbhcxJgQD5Zi0yVccJiOdF40AWA==}
+ '@oxlint/binding-linux-riscv64-gnu@1.50.0':
+ resolution: {integrity: sha512-jvmuIw8wRSohsQlFNIST5uUwkEtEJmOQYr33bf/K2FrFPXHhM4KqGekI3ShYJemFS/gARVacQFgBzzJKCAyJjg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-riscv64-musl@1.48.0':
- resolution: {integrity: sha512-zwSqxMgmb2ITamNfDv9Q9EKBc/4ZhCBP9gkg2hhcgR6sEVGPUDl1AKPC89CBKMxkmPUi3685C38EvqtZn5OtHw==}
+ '@oxlint/binding-linux-riscv64-musl@1.50.0':
+ resolution: {integrity: sha512-x+UrN47oYNh90nmAAyql8eQaaRpHbDPu5guasDg10+OpszUQ3/1+1J6zFMmV4xfIEgTcUXG/oI5fxJhF4eWCNA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@oxlint/binding-linux-s390x-gnu@1.48.0':
- resolution: {integrity: sha512-c/+2oUWAOsQB5JTem0rW8ODlZllF6pAtGSGXoLSvPTonKI1vAwaKhD9Qw1X36jRbcI3Etkpu/9z/RRjMba8vFQ==}
+ '@oxlint/binding-linux-s390x-gnu@1.50.0':
+ resolution: {integrity: sha512-i/JLi2ljLUIVfekMj4ISmdt+Hn11wzYUdRRrkVUYsCWw7zAy5xV7X9iA+KMyM156LTFympa7s3oKBjuCLoTAUQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-x64-gnu@1.48.0':
- resolution: {integrity: sha512-PhauDqeFW5DGed6QxCY5lXZYKSlcBdCXJnH03ZNU6QmDZ0BFM/zSy1oPT2MNb1Afx1G6yOOVk8ErjWsQ7c59ng==}
+ '@oxlint/binding-linux-x64-gnu@1.50.0':
+ resolution: {integrity: sha512-/C7brhn6c6UUPccgSPCcpLQXcp+xKIW/3sji/5VZ8/OItL3tQ2U7KalHz887UxxSQeEOmd1kY6lrpuwFnmNqOA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-x64-musl@1.48.0':
- resolution: {integrity: sha512-6d7LIFFZGiavbHndhf1cK9kG9qmy2Dmr37sV9Ep7j3H+ciFdKSuOzdLh85mEUYMih+b+esMDlF5DU0WQRZPQjw==}
+ '@oxlint/binding-linux-x64-musl@1.50.0':
+ resolution: {integrity: sha512-oDR1f+bGOYU8LfgtEW8XtotWGB63ghtcxk5Jm6IDTCk++rTA/IRMsjOid2iMd+1bW+nP9Mdsmcdc7VbPD3+iyQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@oxlint/binding-openharmony-arm64@1.48.0':
- resolution: {integrity: sha512-r+0KK9lK6vFp3tXAgDMOW32o12dxvKS3B9La1uYMGdWAMoSeu2RzG34KmzSpXu6MyLDl4aSVyZLFM8KGdEjwaw==}
+ '@oxlint/binding-openharmony-arm64@1.50.0':
+ resolution: {integrity: sha512-4CmRGPp5UpvXyu4jjP9Tey/SrXDQLRvZXm4pb4vdZBxAzbFZkCyh0KyRy4txld/kZKTJlW4TO8N1JKrNEk+mWw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@oxlint/binding-win32-arm64-msvc@1.48.0':
- resolution: {integrity: sha512-Nkw/MocyT3HSp0OJsKPXrcbxZqSPMTYnLLfsqsoiFKoL1ppVNL65MFa7vuTxJehPlBkjy+95gUgacZtuNMECrg==}
+ '@oxlint/binding-win32-arm64-msvc@1.50.0':
+ resolution: {integrity: sha512-Fq0M6vsGcFsSfeuWAACDhd5KJrO85ckbEfe1EGuBj+KPyJz7KeWte2fSFrFGmNKNXyhEMyx4tbgxiWRujBM2KQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@oxlint/binding-win32-ia32-msvc@1.48.0':
- resolution: {integrity: sha512-reO1SpefvRmeZSP+WeyWkQd1ArxxDD1MyKgMUKuB8lNuUoxk9QEohYtKnsfsxJuFwMT0JTr7p9wZjouA85GzGQ==}
+ '@oxlint/binding-win32-ia32-msvc@1.50.0':
+ resolution: {integrity: sha512-qTdWR9KwY/vxJGhHVIZG2eBOhidOQvOwzDxnX+jhW/zIVacal1nAhR8GLkiywW8BIFDkQKXo/zOfT+/DY+ns/w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@oxlint/binding-win32-x64-msvc@1.48.0':
- resolution: {integrity: sha512-T6zwhfcsrorqAybkOglZdPkTLlEwipbtdO1qjE+flbawvwOMsISoyiuaa7vM7zEyfq1hmDvMq1ndvkYFioranA==}
+ '@oxlint/binding-win32-x64-msvc@1.50.0':
+ resolution: {integrity: sha512-682t7npLC4G2Ca+iNlI9fhAKTcFPYYXJjwoa88H4q+u5HHHlsnL/gHULapX3iqp+A8FIJbgdylL5KMYo2LaluQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -611,141 +611,141 @@ packages:
'@rolldown/pluginutils@1.0.0-rc.2':
resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==}
- '@rollup/rollup-android-arm-eabi@4.57.1':
- resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==}
+ '@rollup/rollup-android-arm-eabi@4.59.0':
+ resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.57.1':
- resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==}
+ '@rollup/rollup-android-arm64@4.59.0':
+ resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.57.1':
- resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==}
+ '@rollup/rollup-darwin-arm64@4.59.0':
+ resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.57.1':
- resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==}
+ '@rollup/rollup-darwin-x64@4.59.0':
+ resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.57.1':
- resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==}
+ '@rollup/rollup-freebsd-arm64@4.59.0':
+ resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.57.1':
- resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==}
+ '@rollup/rollup-freebsd-x64@4.59.0':
+ resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.57.1':
- resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.59.0':
+ resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-arm-musleabihf@4.57.1':
- resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==}
+ '@rollup/rollup-linux-arm-musleabihf@4.59.0':
+ resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==}
cpu: [arm]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-arm64-gnu@4.57.1':
- resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==}
+ '@rollup/rollup-linux-arm64-gnu@4.59.0':
+ resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-arm64-musl@4.57.1':
- resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==}
+ '@rollup/rollup-linux-arm64-musl@4.59.0':
+ resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-loong64-gnu@4.57.1':
- resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==}
+ '@rollup/rollup-linux-loong64-gnu@4.59.0':
+ resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==}
cpu: [loong64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-loong64-musl@4.57.1':
- resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==}
+ '@rollup/rollup-linux-loong64-musl@4.59.0':
+ resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==}
cpu: [loong64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-ppc64-gnu@4.57.1':
- resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==}
+ '@rollup/rollup-linux-ppc64-gnu@4.59.0':
+ resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-ppc64-musl@4.57.1':
- resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==}
+ '@rollup/rollup-linux-ppc64-musl@4.59.0':
+ resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==}
cpu: [ppc64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-riscv64-gnu@4.57.1':
- resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==}
+ '@rollup/rollup-linux-riscv64-gnu@4.59.0':
+ resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-riscv64-musl@4.57.1':
- resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==}
+ '@rollup/rollup-linux-riscv64-musl@4.59.0':
+ resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@rollup/rollup-linux-s390x-gnu@4.57.1':
- resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==}
+ '@rollup/rollup-linux-s390x-gnu@4.59.0':
+ resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-gnu@4.57.1':
- resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==}
+ '@rollup/rollup-linux-x64-gnu@4.59.0':
+ resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rollup/rollup-linux-x64-musl@4.57.1':
- resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==}
+ '@rollup/rollup-linux-x64-musl@4.59.0':
+ resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rollup/rollup-openbsd-x64@4.57.1':
- resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==}
+ '@rollup/rollup-openbsd-x64@4.59.0':
+ resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==}
cpu: [x64]
os: [openbsd]
- '@rollup/rollup-openharmony-arm64@4.57.1':
- resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==}
+ '@rollup/rollup-openharmony-arm64@4.59.0':
+ resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.57.1':
- resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==}
+ '@rollup/rollup-win32-arm64-msvc@4.59.0':
+ resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.57.1':
- resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==}
+ '@rollup/rollup-win32-ia32-msvc@4.59.0':
+ resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.57.1':
- resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==}
+ '@rollup/rollup-win32-x64-gnu@4.59.0':
+ resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==}
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.57.1':
- resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==}
+ '@rollup/rollup-win32-x64-msvc@4.59.0':
+ resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==}
cpu: [x64]
os: [win32]
@@ -776,13 +776,13 @@ packages:
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
- '@tabler/icons-vue@3.36.1':
- resolution: {integrity: sha512-ssIu0KSmGFKvvoC5PJhSYAj/J2kTEbIVIix0528zdRKfN6yohUlQt014tGnDDdJ/MyyG/xRXsKD1U6dyQY8rrg==}
+ '@tabler/icons-vue@3.37.1':
+ resolution: {integrity: sha512-iLO8Gl2ry77C4JHFxLzVGuF505M+HHgEx+u1IyKPFdgVY3ebBCP76go/62qVHNeIIGwsw8cErKi0aQjanlTCqQ==}
peerDependencies:
vue: '>=3.0.1'
- '@tabler/icons@3.36.1':
- resolution: {integrity: sha512-f4Jg3Fof/Vru5ioix/UO4GX+sdDsF9wQo47FbtvG+utIYYVQ/QVAC0QYgcBbAjQGfbdOh2CCf0BgiFOF9Ixtjw==}
+ '@tabler/icons@3.37.1':
+ resolution: {integrity: sha512-neLCWkuyNHEPXCyYu6nbN4S3g/59BTa4qyITAugYVpq1YzYNDOZooW7/vRWH98ZItXAudxdKU8muFT7y1PqzuA==}
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
@@ -871,14 +871,14 @@ packages:
'@vitest/utils@4.0.18':
resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==}
- '@volar/language-core@2.4.27':
- resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==}
+ '@volar/language-core@2.4.28':
+ resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
- '@volar/source-map@2.4.27':
- resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==}
+ '@volar/source-map@2.4.28':
+ resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
- '@volar/typescript@2.4.27':
- resolution: {integrity: sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==}
+ '@volar/typescript@2.4.28':
+ resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
'@vue/compiler-core@3.5.28':
resolution: {integrity: sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==}
@@ -901,8 +901,8 @@ packages:
'@vue/devtools-shared@8.0.6':
resolution: {integrity: sha512-Pp1JylTqlgMJvxW6MGyfTF8vGvlBSCAvMFaDCYa82Mgw7TT5eE5kkHgDvmOGHWeJE4zIDfCpCxHapsK2LtIAJg==}
- '@vue/language-core@3.2.4':
- resolution: {integrity: sha512-bqBGuSG4KZM45KKTXzGtoCl9cWju5jsaBKaJJe3h5hRAAWpZUuj5G+L+eI01sPIkm4H6setKRlw7E85wLdDNew==}
+ '@vue/language-core@3.2.5':
+ resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==}
'@vue/reactivity@3.5.28':
resolution: {integrity: sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==}
@@ -976,8 +976,8 @@ packages:
peerDependencies:
vue: ^3.5.0
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -1157,8 +1157,8 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
- happy-dom@20.6.3:
- resolution: {integrity: sha512-QAMY7d228dHs8gb9NG4SJ3OxQo4r+NGN8pOXGZ3SGfQf/XYuuYubrtZ25QVY2WoUQdskhRXSXb4R4mcRk+hV1w==}
+ happy-dom@20.7.0:
+ resolution: {integrity: sha512-hR/uLYQdngTyEfxnOoa+e6KTcfBFyc1hgFj/Cc144A5JJUuHFYqIEBDcD4FeGqUeKLRZqJ9eN9u7/GDjYEgS1g==}
engines: {node: '>=20.0.0'}
has-flag@4.0.0:
@@ -1330,21 +1330,21 @@ packages:
oniguruma-to-es@4.3.4:
resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==}
- oxfmt@0.33.0:
- resolution: {integrity: sha512-ogxBXA9R4BFeo8F1HeMIIxHr5kGnQwKTYZ5k131AEGOq1zLxInNhvYSpyRQ+xIXVMYfCN7yZHKff/lb5lp4auQ==}
+ oxfmt@0.35.0:
+ resolution: {integrity: sha512-QYeXWkP+aLt7utt5SLivNIk09glWx9QE235ODjgcEZ3sd1VMaUBSpLymh6ZRCA76gD2rMP4bXanUz/fx+nLM9Q==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
- oxlint-tsgolint@0.14.0:
- resolution: {integrity: sha512-BUdiXO0vX7npql4hjLjbZvyM1yDL3U2m1DSZ3jBNl/r+IZaammWN0YmkmlMmYaLnVuTH0+8hO/1rQ6cD+YaEqQ==}
+ oxlint-tsgolint@0.14.2:
+ resolution: {integrity: sha512-XJsFIQwnYJgXFlNDz2MncQMWYxwnfy4BCy73mdiFN/P13gEZrAfBU4Jmz2XXFf9UG0wPILdi7hYa6t0KmKQLhw==}
hasBin: true
- oxlint@1.48.0:
- resolution: {integrity: sha512-m5vyVBgPtPhVCJc3xI//8je9lRc8bYuYB4R/1PH3VPGOjA4vjVhkHtyJukdEjYEjwrw4Qf1eIf+pP9xvfhfMow==}
+ oxlint@1.50.0:
+ resolution: {integrity: sha512-iSJ4IZEICBma8cZX7kxIIz9PzsYLF2FaLAYN6RKu7VwRVKdu7RIgpP99bTZaGl//Yao7fsaGZLSEo5xBrI5ReQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
- oxlint-tsgolint: '>=0.12.2'
+ oxlint-tsgolint: '>=0.14.1'
peerDependenciesMeta:
oxlint-tsgolint:
optional: true
@@ -1431,8 +1431,8 @@ packages:
rfdc@1.4.1:
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
- rollup@4.57.1:
- resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==}
+ rollup@4.59.0:
+ resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -1633,8 +1633,8 @@ packages:
vite:
optional: true
- vitepress-theme-trito@1.0.5:
- resolution: {integrity: sha512-+hi7QHao6atxjlNfCp5jaZsYXnKPS0drnYKsr1M/qFa1iJoD44JSOB4WKeeTaxunOh7kfkZKoJn9ZZmjE4vU4w==}
+ vitepress-theme-trito@1.0.6:
+ resolution: {integrity: sha512-bFOWJH4TZfaGDvF3t7GAMiZ2ndRz120TrpJ4WnUkLrWqy0vwLofHYElZ62oa9vDLojUVwstYx5SSZ9KdcYOXZg==}
vitepress@2.0.0-alpha.16:
resolution: {integrity: sha512-w1nwsefDVIsje7BZr2tsKxkZutDGjG0YoQ2yxO7+a9tvYVqfljYbwj5LMYkPy8Tb7YbPwa22HtIhk62jbrvuEQ==}
@@ -1688,8 +1688,8 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
- vue-tsc@3.2.4:
- resolution: {integrity: sha512-xj3YCvSLNDKt1iF9OcImWHhmYcihVu9p4b9s4PGR/qp6yhW+tZJaypGxHScRyOrdnHvaOeF+YkZOdKwbgGvp5g==}
+ vue-tsc@3.2.5:
+ resolution: {integrity: sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==}
hasBin: true
peerDependencies:
typescript: '>=5.0.0'
@@ -1771,7 +1771,7 @@ snapshots:
'@asamuzakjp/css-color@4.1.2':
dependencies:
'@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
- '@csstools/css-color-parser': 4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
lru-cache: 11.2.6
@@ -1804,7 +1804,7 @@ snapshots:
'@bcoe/v8-coverage@1.0.2': {}
- '@csstools/color-helpers@6.0.1':
+ '@csstools/color-helpers@6.0.2':
optional: true
'@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
@@ -1813,9 +1813,9 @@ snapshots:
'@csstools/css-tokenizer': 4.0.0
optional: true
- '@csstools/css-color-parser@4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies:
- '@csstools/color-helpers': 6.0.1
+ '@csstools/color-helpers': 6.0.2
'@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
@@ -1826,7 +1826,7 @@ snapshots:
'@csstools/css-tokenizer': 4.0.0
optional: true
- '@csstools/css-syntax-patches-for-csstree@1.0.27':
+ '@csstools/css-syntax-patches-for-csstree@1.0.28':
optional: true
'@csstools/css-tokenizer@4.0.0':
@@ -1967,213 +1967,213 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1
- '@oxfmt/binding-android-arm-eabi@0.33.0':
+ '@oxfmt/binding-android-arm-eabi@0.35.0':
optional: true
- '@oxfmt/binding-android-arm64@0.33.0':
+ '@oxfmt/binding-android-arm64@0.35.0':
optional: true
- '@oxfmt/binding-darwin-arm64@0.33.0':
+ '@oxfmt/binding-darwin-arm64@0.35.0':
optional: true
- '@oxfmt/binding-darwin-x64@0.33.0':
+ '@oxfmt/binding-darwin-x64@0.35.0':
optional: true
- '@oxfmt/binding-freebsd-x64@0.33.0':
+ '@oxfmt/binding-freebsd-x64@0.35.0':
optional: true
- '@oxfmt/binding-linux-arm-gnueabihf@0.33.0':
+ '@oxfmt/binding-linux-arm-gnueabihf@0.35.0':
optional: true
- '@oxfmt/binding-linux-arm-musleabihf@0.33.0':
+ '@oxfmt/binding-linux-arm-musleabihf@0.35.0':
optional: true
- '@oxfmt/binding-linux-arm64-gnu@0.33.0':
+ '@oxfmt/binding-linux-arm64-gnu@0.35.0':
optional: true
- '@oxfmt/binding-linux-arm64-musl@0.33.0':
+ '@oxfmt/binding-linux-arm64-musl@0.35.0':
optional: true
- '@oxfmt/binding-linux-ppc64-gnu@0.33.0':
+ '@oxfmt/binding-linux-ppc64-gnu@0.35.0':
optional: true
- '@oxfmt/binding-linux-riscv64-gnu@0.33.0':
+ '@oxfmt/binding-linux-riscv64-gnu@0.35.0':
optional: true
- '@oxfmt/binding-linux-riscv64-musl@0.33.0':
+ '@oxfmt/binding-linux-riscv64-musl@0.35.0':
optional: true
- '@oxfmt/binding-linux-s390x-gnu@0.33.0':
+ '@oxfmt/binding-linux-s390x-gnu@0.35.0':
optional: true
- '@oxfmt/binding-linux-x64-gnu@0.33.0':
+ '@oxfmt/binding-linux-x64-gnu@0.35.0':
optional: true
- '@oxfmt/binding-linux-x64-musl@0.33.0':
+ '@oxfmt/binding-linux-x64-musl@0.35.0':
optional: true
- '@oxfmt/binding-openharmony-arm64@0.33.0':
+ '@oxfmt/binding-openharmony-arm64@0.35.0':
optional: true
- '@oxfmt/binding-win32-arm64-msvc@0.33.0':
+ '@oxfmt/binding-win32-arm64-msvc@0.35.0':
optional: true
- '@oxfmt/binding-win32-ia32-msvc@0.33.0':
+ '@oxfmt/binding-win32-ia32-msvc@0.35.0':
optional: true
- '@oxfmt/binding-win32-x64-msvc@0.33.0':
+ '@oxfmt/binding-win32-x64-msvc@0.35.0':
optional: true
- '@oxlint-tsgolint/darwin-arm64@0.14.0':
+ '@oxlint-tsgolint/darwin-arm64@0.14.2':
optional: true
- '@oxlint-tsgolint/darwin-x64@0.14.0':
+ '@oxlint-tsgolint/darwin-x64@0.14.2':
optional: true
- '@oxlint-tsgolint/linux-arm64@0.14.0':
+ '@oxlint-tsgolint/linux-arm64@0.14.2':
optional: true
- '@oxlint-tsgolint/linux-x64@0.14.0':
+ '@oxlint-tsgolint/linux-x64@0.14.2':
optional: true
- '@oxlint-tsgolint/win32-arm64@0.14.0':
+ '@oxlint-tsgolint/win32-arm64@0.14.2':
optional: true
- '@oxlint-tsgolint/win32-x64@0.14.0':
+ '@oxlint-tsgolint/win32-x64@0.14.2':
optional: true
- '@oxlint/binding-android-arm-eabi@1.48.0':
+ '@oxlint/binding-android-arm-eabi@1.50.0':
optional: true
- '@oxlint/binding-android-arm64@1.48.0':
+ '@oxlint/binding-android-arm64@1.50.0':
optional: true
- '@oxlint/binding-darwin-arm64@1.48.0':
+ '@oxlint/binding-darwin-arm64@1.50.0':
optional: true
- '@oxlint/binding-darwin-x64@1.48.0':
+ '@oxlint/binding-darwin-x64@1.50.0':
optional: true
- '@oxlint/binding-freebsd-x64@1.48.0':
+ '@oxlint/binding-freebsd-x64@1.50.0':
optional: true
- '@oxlint/binding-linux-arm-gnueabihf@1.48.0':
+ '@oxlint/binding-linux-arm-gnueabihf@1.50.0':
optional: true
- '@oxlint/binding-linux-arm-musleabihf@1.48.0':
+ '@oxlint/binding-linux-arm-musleabihf@1.50.0':
optional: true
- '@oxlint/binding-linux-arm64-gnu@1.48.0':
+ '@oxlint/binding-linux-arm64-gnu@1.50.0':
optional: true
- '@oxlint/binding-linux-arm64-musl@1.48.0':
+ '@oxlint/binding-linux-arm64-musl@1.50.0':
optional: true
- '@oxlint/binding-linux-ppc64-gnu@1.48.0':
+ '@oxlint/binding-linux-ppc64-gnu@1.50.0':
optional: true
- '@oxlint/binding-linux-riscv64-gnu@1.48.0':
+ '@oxlint/binding-linux-riscv64-gnu@1.50.0':
optional: true
- '@oxlint/binding-linux-riscv64-musl@1.48.0':
+ '@oxlint/binding-linux-riscv64-musl@1.50.0':
optional: true
- '@oxlint/binding-linux-s390x-gnu@1.48.0':
+ '@oxlint/binding-linux-s390x-gnu@1.50.0':
optional: true
- '@oxlint/binding-linux-x64-gnu@1.48.0':
+ '@oxlint/binding-linux-x64-gnu@1.50.0':
optional: true
- '@oxlint/binding-linux-x64-musl@1.48.0':
+ '@oxlint/binding-linux-x64-musl@1.50.0':
optional: true
- '@oxlint/binding-openharmony-arm64@1.48.0':
+ '@oxlint/binding-openharmony-arm64@1.50.0':
optional: true
- '@oxlint/binding-win32-arm64-msvc@1.48.0':
+ '@oxlint/binding-win32-arm64-msvc@1.50.0':
optional: true
- '@oxlint/binding-win32-ia32-msvc@1.48.0':
+ '@oxlint/binding-win32-ia32-msvc@1.50.0':
optional: true
- '@oxlint/binding-win32-x64-msvc@1.48.0':
+ '@oxlint/binding-win32-x64-msvc@1.50.0':
optional: true
'@rolldown/pluginutils@1.0.0-rc.2': {}
- '@rollup/rollup-android-arm-eabi@4.57.1':
+ '@rollup/rollup-android-arm-eabi@4.59.0':
optional: true
- '@rollup/rollup-android-arm64@4.57.1':
+ '@rollup/rollup-android-arm64@4.59.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.57.1':
+ '@rollup/rollup-darwin-arm64@4.59.0':
optional: true
- '@rollup/rollup-darwin-x64@4.57.1':
+ '@rollup/rollup-darwin-x64@4.59.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.57.1':
+ '@rollup/rollup-freebsd-arm64@4.59.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.57.1':
+ '@rollup/rollup-freebsd-x64@4.59.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.57.1':
+ '@rollup/rollup-linux-arm-gnueabihf@4.59.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.57.1':
+ '@rollup/rollup-linux-arm-musleabihf@4.59.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.57.1':
+ '@rollup/rollup-linux-arm64-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.57.1':
+ '@rollup/rollup-linux-arm64-musl@4.59.0':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.57.1':
+ '@rollup/rollup-linux-loong64-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-loong64-musl@4.57.1':
+ '@rollup/rollup-linux-loong64-musl@4.59.0':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.57.1':
+ '@rollup/rollup-linux-ppc64-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-ppc64-musl@4.57.1':
+ '@rollup/rollup-linux-ppc64-musl@4.59.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.57.1':
+ '@rollup/rollup-linux-riscv64-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.57.1':
+ '@rollup/rollup-linux-riscv64-musl@4.59.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.57.1':
+ '@rollup/rollup-linux-s390x-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.57.1':
+ '@rollup/rollup-linux-x64-gnu@4.59.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.57.1':
+ '@rollup/rollup-linux-x64-musl@4.59.0':
optional: true
- '@rollup/rollup-openbsd-x64@4.57.1':
+ '@rollup/rollup-openbsd-x64@4.59.0':
optional: true
- '@rollup/rollup-openharmony-arm64@4.57.1':
+ '@rollup/rollup-openharmony-arm64@4.59.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.57.1':
+ '@rollup/rollup-win32-arm64-msvc@4.59.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.57.1':
+ '@rollup/rollup-win32-ia32-msvc@4.59.0':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.57.1':
+ '@rollup/rollup-win32-x64-gnu@4.59.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.57.1':
+ '@rollup/rollup-win32-x64-msvc@4.59.0':
optional: true
'@shikijs/core@3.22.0':
@@ -2216,12 +2216,12 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
- '@tabler/icons-vue@3.36.1(vue@3.5.28(typescript@5.9.3))':
+ '@tabler/icons-vue@3.37.1(vue@3.5.28(typescript@5.9.3))':
dependencies:
- '@tabler/icons': 3.36.1
+ '@tabler/icons': 3.37.1
vue: 3.5.28(typescript@5.9.3)
- '@tabler/icons@3.36.1': {}
+ '@tabler/icons@3.37.1': {}
'@types/chai@5.2.3':
dependencies:
@@ -2271,7 +2271,7 @@ snapshots:
vite: 7.3.1(@types/node@25.3.0)(terser@5.46.0)
vue: 3.5.28(typescript@5.9.3)
- '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.6.3)(jsdom@27.3.0)(terser@5.46.0))':
+ '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.7.0)(jsdom@27.3.0)(terser@5.46.0))':
dependencies:
'@bcoe/v8-coverage': 1.0.2
'@vitest/utils': 4.0.18
@@ -2283,7 +2283,7 @@ snapshots:
obug: 2.1.1
std-env: 3.10.0
tinyrainbow: 3.0.3
- vitest: 4.0.18(@types/node@25.3.0)(happy-dom@20.6.3)(jsdom@27.3.0)(terser@5.46.0)
+ vitest: 4.0.18(@types/node@25.3.0)(happy-dom@20.7.0)(jsdom@27.3.0)(terser@5.46.0)
'@vitest/expect@4.0.18':
dependencies:
@@ -2324,15 +2324,15 @@ snapshots:
'@vitest/pretty-format': 4.0.18
tinyrainbow: 3.0.3
- '@volar/language-core@2.4.27':
+ '@volar/language-core@2.4.28':
dependencies:
- '@volar/source-map': 2.4.27
+ '@volar/source-map': 2.4.28
- '@volar/source-map@2.4.27': {}
+ '@volar/source-map@2.4.28': {}
- '@volar/typescript@2.4.27':
+ '@volar/typescript@2.4.28':
dependencies:
- '@volar/language-core': 2.4.27
+ '@volar/language-core': 2.4.28
path-browserify: 1.0.1
vscode-uri: 3.1.0
@@ -2384,9 +2384,9 @@ snapshots:
dependencies:
rfdc: 1.4.1
- '@vue/language-core@3.2.4':
+ '@vue/language-core@3.2.5':
dependencies:
- '@volar/language-core': 2.4.27
+ '@volar/language-core': 2.4.28
'@vue/compiler-dom': 3.5.28
'@vue/shared': 3.5.28
alien-signals: 3.1.2
@@ -2439,7 +2439,7 @@ snapshots:
dependencies:
vue: 3.5.28(typescript@5.9.3)
- acorn@8.15.0: {}
+ acorn@8.16.0: {}
agent-base@7.1.4:
optional: true
@@ -2517,7 +2517,7 @@ snapshots:
cssstyle@5.3.7:
dependencies:
'@asamuzakjp/css-color': 4.1.2
- '@csstools/css-syntax-patches-for-csstree': 1.0.27
+ '@csstools/css-syntax-patches-for-csstree': 1.0.28
css-tree: 3.1.0
lru-cache: 11.2.6
optional: true
@@ -2636,7 +2636,7 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
- happy-dom@20.6.3:
+ happy-dom@20.7.0:
dependencies:
'@types/node': 25.3.0
'@types/whatwg-mimetype': 3.0.2
@@ -2826,7 +2826,7 @@ snapshots:
mlly@1.8.0:
dependencies:
- acorn: 8.15.0
+ acorn: 8.16.0
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.6.3
@@ -2852,61 +2852,61 @@ snapshots:
regex: 6.1.0
regex-recursion: 6.0.2
- oxfmt@0.33.0:
+ oxfmt@0.35.0:
dependencies:
tinypool: 2.1.0
optionalDependencies:
- '@oxfmt/binding-android-arm-eabi': 0.33.0
- '@oxfmt/binding-android-arm64': 0.33.0
- '@oxfmt/binding-darwin-arm64': 0.33.0
- '@oxfmt/binding-darwin-x64': 0.33.0
- '@oxfmt/binding-freebsd-x64': 0.33.0
- '@oxfmt/binding-linux-arm-gnueabihf': 0.33.0
- '@oxfmt/binding-linux-arm-musleabihf': 0.33.0
- '@oxfmt/binding-linux-arm64-gnu': 0.33.0
- '@oxfmt/binding-linux-arm64-musl': 0.33.0
- '@oxfmt/binding-linux-ppc64-gnu': 0.33.0
- '@oxfmt/binding-linux-riscv64-gnu': 0.33.0
- '@oxfmt/binding-linux-riscv64-musl': 0.33.0
- '@oxfmt/binding-linux-s390x-gnu': 0.33.0
- '@oxfmt/binding-linux-x64-gnu': 0.33.0
- '@oxfmt/binding-linux-x64-musl': 0.33.0
- '@oxfmt/binding-openharmony-arm64': 0.33.0
- '@oxfmt/binding-win32-arm64-msvc': 0.33.0
- '@oxfmt/binding-win32-ia32-msvc': 0.33.0
- '@oxfmt/binding-win32-x64-msvc': 0.33.0
-
- oxlint-tsgolint@0.14.0:
+ '@oxfmt/binding-android-arm-eabi': 0.35.0
+ '@oxfmt/binding-android-arm64': 0.35.0
+ '@oxfmt/binding-darwin-arm64': 0.35.0
+ '@oxfmt/binding-darwin-x64': 0.35.0
+ '@oxfmt/binding-freebsd-x64': 0.35.0
+ '@oxfmt/binding-linux-arm-gnueabihf': 0.35.0
+ '@oxfmt/binding-linux-arm-musleabihf': 0.35.0
+ '@oxfmt/binding-linux-arm64-gnu': 0.35.0
+ '@oxfmt/binding-linux-arm64-musl': 0.35.0
+ '@oxfmt/binding-linux-ppc64-gnu': 0.35.0
+ '@oxfmt/binding-linux-riscv64-gnu': 0.35.0
+ '@oxfmt/binding-linux-riscv64-musl': 0.35.0
+ '@oxfmt/binding-linux-s390x-gnu': 0.35.0
+ '@oxfmt/binding-linux-x64-gnu': 0.35.0
+ '@oxfmt/binding-linux-x64-musl': 0.35.0
+ '@oxfmt/binding-openharmony-arm64': 0.35.0
+ '@oxfmt/binding-win32-arm64-msvc': 0.35.0
+ '@oxfmt/binding-win32-ia32-msvc': 0.35.0
+ '@oxfmt/binding-win32-x64-msvc': 0.35.0
+
+ oxlint-tsgolint@0.14.2:
optionalDependencies:
- '@oxlint-tsgolint/darwin-arm64': 0.14.0
- '@oxlint-tsgolint/darwin-x64': 0.14.0
- '@oxlint-tsgolint/linux-arm64': 0.14.0
- '@oxlint-tsgolint/linux-x64': 0.14.0
- '@oxlint-tsgolint/win32-arm64': 0.14.0
- '@oxlint-tsgolint/win32-x64': 0.14.0
-
- oxlint@1.48.0(oxlint-tsgolint@0.14.0):
+ '@oxlint-tsgolint/darwin-arm64': 0.14.2
+ '@oxlint-tsgolint/darwin-x64': 0.14.2
+ '@oxlint-tsgolint/linux-arm64': 0.14.2
+ '@oxlint-tsgolint/linux-x64': 0.14.2
+ '@oxlint-tsgolint/win32-arm64': 0.14.2
+ '@oxlint-tsgolint/win32-x64': 0.14.2
+
+ oxlint@1.50.0(oxlint-tsgolint@0.14.2):
optionalDependencies:
- '@oxlint/binding-android-arm-eabi': 1.48.0
- '@oxlint/binding-android-arm64': 1.48.0
- '@oxlint/binding-darwin-arm64': 1.48.0
- '@oxlint/binding-darwin-x64': 1.48.0
- '@oxlint/binding-freebsd-x64': 1.48.0
- '@oxlint/binding-linux-arm-gnueabihf': 1.48.0
- '@oxlint/binding-linux-arm-musleabihf': 1.48.0
- '@oxlint/binding-linux-arm64-gnu': 1.48.0
- '@oxlint/binding-linux-arm64-musl': 1.48.0
- '@oxlint/binding-linux-ppc64-gnu': 1.48.0
- '@oxlint/binding-linux-riscv64-gnu': 1.48.0
- '@oxlint/binding-linux-riscv64-musl': 1.48.0
- '@oxlint/binding-linux-s390x-gnu': 1.48.0
- '@oxlint/binding-linux-x64-gnu': 1.48.0
- '@oxlint/binding-linux-x64-musl': 1.48.0
- '@oxlint/binding-openharmony-arm64': 1.48.0
- '@oxlint/binding-win32-arm64-msvc': 1.48.0
- '@oxlint/binding-win32-ia32-msvc': 1.48.0
- '@oxlint/binding-win32-x64-msvc': 1.48.0
- oxlint-tsgolint: 0.14.0
+ '@oxlint/binding-android-arm-eabi': 1.50.0
+ '@oxlint/binding-android-arm64': 1.50.0
+ '@oxlint/binding-darwin-arm64': 1.50.0
+ '@oxlint/binding-darwin-x64': 1.50.0
+ '@oxlint/binding-freebsd-x64': 1.50.0
+ '@oxlint/binding-linux-arm-gnueabihf': 1.50.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.50.0
+ '@oxlint/binding-linux-arm64-gnu': 1.50.0
+ '@oxlint/binding-linux-arm64-musl': 1.50.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.50.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.50.0
+ '@oxlint/binding-linux-riscv64-musl': 1.50.0
+ '@oxlint/binding-linux-s390x-gnu': 1.50.0
+ '@oxlint/binding-linux-x64-gnu': 1.50.0
+ '@oxlint/binding-linux-x64-musl': 1.50.0
+ '@oxlint/binding-openharmony-arm64': 1.50.0
+ '@oxlint/binding-win32-arm64-msvc': 1.50.0
+ '@oxlint/binding-win32-ia32-msvc': 1.50.0
+ '@oxlint/binding-win32-x64-msvc': 1.50.0
+ oxlint-tsgolint: 0.14.2
package-manager-detector@1.6.0: {}
@@ -2977,35 +2977,35 @@ snapshots:
rfdc@1.4.1: {}
- rollup@4.57.1:
+ rollup@4.59.0:
dependencies:
'@types/estree': 1.0.8
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.57.1
- '@rollup/rollup-android-arm64': 4.57.1
- '@rollup/rollup-darwin-arm64': 4.57.1
- '@rollup/rollup-darwin-x64': 4.57.1
- '@rollup/rollup-freebsd-arm64': 4.57.1
- '@rollup/rollup-freebsd-x64': 4.57.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.57.1
- '@rollup/rollup-linux-arm-musleabihf': 4.57.1
- '@rollup/rollup-linux-arm64-gnu': 4.57.1
- '@rollup/rollup-linux-arm64-musl': 4.57.1
- '@rollup/rollup-linux-loong64-gnu': 4.57.1
- '@rollup/rollup-linux-loong64-musl': 4.57.1
- '@rollup/rollup-linux-ppc64-gnu': 4.57.1
- '@rollup/rollup-linux-ppc64-musl': 4.57.1
- '@rollup/rollup-linux-riscv64-gnu': 4.57.1
- '@rollup/rollup-linux-riscv64-musl': 4.57.1
- '@rollup/rollup-linux-s390x-gnu': 4.57.1
- '@rollup/rollup-linux-x64-gnu': 4.57.1
- '@rollup/rollup-linux-x64-musl': 4.57.1
- '@rollup/rollup-openbsd-x64': 4.57.1
- '@rollup/rollup-openharmony-arm64': 4.57.1
- '@rollup/rollup-win32-arm64-msvc': 4.57.1
- '@rollup/rollup-win32-ia32-msvc': 4.57.1
- '@rollup/rollup-win32-x64-gnu': 4.57.1
- '@rollup/rollup-win32-x64-msvc': 4.57.1
+ '@rollup/rollup-android-arm-eabi': 4.59.0
+ '@rollup/rollup-android-arm64': 4.59.0
+ '@rollup/rollup-darwin-arm64': 4.59.0
+ '@rollup/rollup-darwin-x64': 4.59.0
+ '@rollup/rollup-freebsd-arm64': 4.59.0
+ '@rollup/rollup-freebsd-x64': 4.59.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.59.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.59.0
+ '@rollup/rollup-linux-arm64-gnu': 4.59.0
+ '@rollup/rollup-linux-arm64-musl': 4.59.0
+ '@rollup/rollup-linux-loong64-gnu': 4.59.0
+ '@rollup/rollup-linux-loong64-musl': 4.59.0
+ '@rollup/rollup-linux-ppc64-gnu': 4.59.0
+ '@rollup/rollup-linux-ppc64-musl': 4.59.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.59.0
+ '@rollup/rollup-linux-riscv64-musl': 4.59.0
+ '@rollup/rollup-linux-s390x-gnu': 4.59.0
+ '@rollup/rollup-linux-x64-gnu': 4.59.0
+ '@rollup/rollup-linux-x64-musl': 4.59.0
+ '@rollup/rollup-openbsd-x64': 4.59.0
+ '@rollup/rollup-openharmony-arm64': 4.59.0
+ '@rollup/rollup-win32-arm64-msvc': 4.59.0
+ '@rollup/rollup-win32-ia32-msvc': 4.59.0
+ '@rollup/rollup-win32-x64-gnu': 4.59.0
+ '@rollup/rollup-win32-x64-msvc': 4.59.0
fsevents: 2.3.3
run-parallel@1.2.0:
@@ -3075,7 +3075,7 @@ snapshots:
terser@5.46.0:
dependencies:
'@jridgewell/source-map': 0.3.11
- acorn: 8.15.0
+ acorn: 8.16.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -3171,7 +3171,7 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.57.1
+ rollup: 4.59.0
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 25.3.0
@@ -3186,11 +3186,11 @@ snapshots:
optionalDependencies:
vite: 7.3.1(@types/node@25.3.0)(terser@5.46.0)
- vitepress-theme-trito@1.0.5(@types/node@25.3.0)(focus-trap@7.8.0)(postcss@8.5.6)(terser@5.46.0)(typescript@5.9.3):
+ vitepress-theme-trito@1.0.6(@types/node@25.3.0)(focus-trap@7.8.0)(postcss@8.5.6)(terser@5.46.0)(typescript@5.9.3):
dependencies:
'@docsearch/css': 4.6.0
'@docsearch/js': 4.6.0
- '@tabler/icons-vue': 3.36.1(vue@3.5.28(typescript@5.9.3))
+ '@tabler/icons-vue': 3.37.1(vue@3.5.28(typescript@5.9.3))
'@vueuse/core': 14.2.1(vue@3.5.28(typescript@5.9.3))
'@vueuse/integrations': 14.2.1(focus-trap@7.8.0)(vue@3.5.28(typescript@5.9.3))
mark.js: 8.11.1
@@ -3274,7 +3274,7 @@ snapshots:
- universal-cookie
- yaml
- vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.6.3)(jsdom@27.3.0)(terser@5.46.0):
+ vitest@4.0.18(@types/node@25.3.0)(happy-dom@20.7.0)(jsdom@27.3.0)(terser@5.46.0):
dependencies:
'@vitest/expect': 4.0.18
'@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.0)(terser@5.46.0))
@@ -3298,7 +3298,7 @@ snapshots:
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.3.0
- happy-dom: 20.6.3
+ happy-dom: 20.7.0
jsdom: 27.3.0
transitivePeerDependencies:
- jiti
@@ -3315,10 +3315,10 @@ snapshots:
vscode-uri@3.1.0: {}
- vue-tsc@3.2.4(typescript@5.9.3):
+ vue-tsc@3.2.5(typescript@5.9.3):
dependencies:
- '@volar/typescript': 2.4.27
- '@vue/language-core': 3.2.4
+ '@volar/typescript': 2.4.28
+ '@vue/language-core': 3.2.5
typescript: 5.9.3
vue@3.5.28(typescript@5.9.3):
diff --git a/src/baseModule.ts b/src/BaseModule.ts
similarity index 67%
rename from src/baseModule.ts
rename to src/BaseModule.ts
index bc1c1eb..24d2707 100644
--- a/src/baseModule.ts
+++ b/src/BaseModule.ts
@@ -1,12 +1,14 @@
+import type { Pointeract, PointeractInterface } from '@/Pointeract';
import type {
BaseOptions,
GeneralObject,
Pointer,
Pointers,
StdEvents,
- Constrain,
-} from '@/declarations';
-import type { Pointeract, PointeractInterface } from '@/pointeract';
+ ModuleInput as MI,
+ Orchestratable,
+ General,
+} from '@/types';
export type HookKeys =
| 'onPointerDown'
@@ -17,13 +19,14 @@ export type HookKeys =
| 'onStop'
| 'dispose';
-export type BaseArgs = [
- Pointeract<[]>['moduleUtils'],
- Window,
- Pointers,
- HTMLElement,
- GeneralObject,
-];
+export type BaseArgs = ConstructorParameters;
+export type ModuleCtor = typeof BaseModule;
+
+export type ModuleInput = MI;
+export type ModuleInputCtor = ReadonlyArray;
+export type Options = Orchestratable & BaseOptions;
+export type Events = Orchestratable & StdEvents;
+export type Augmentation = Orchestratable;
export default class BaseModule<
O extends BaseOptions = BaseOptions,
@@ -36,7 +39,7 @@ export default class BaseModule<
protected getNthPointer: Pointeract<[]>['moduleUtils']['getNthPointer'];
protected toTargetCoords: Pointeract<[]>['moduleUtils']['toTargetCoords'];
protected augment: (augmentation: A) => void;
- protected dispatch: >(
+ protected dispatch: (
...arg: undefined extends E[K] ? [K] : [K, E[K]]
) => void;
options: O;
@@ -51,7 +54,7 @@ export default class BaseModule<
this.toTargetCoords = utils.toTargetCoords;
this.augment = utils.augment;
this.dispatch = utils.dispatch as typeof this.dispatch;
- this.options = options;
+ this.options = options as O;
}
onPointerDown?: (...args: [event: PointerEvent, pointer: Pointer, pointers: Pointers]) => void;
@@ -62,6 +65,6 @@ export default class BaseModule<
onStop?: () => void;
dispose?: () => void;
modifiers?: {
- [K in keyof Constrain]?: (event: E[K]) => boolean | E[K];
+ [K in keyof E]?: (event: E[K]) => boolean | E[K];
};
}
diff --git a/src/pointeract.ts b/src/Pointeract.ts
similarity index 92%
rename from src/pointeract.ts
rename to src/Pointeract.ts
index 64ff15e..2e0d24d 100644
--- a/src/pointeract.ts
+++ b/src/Pointeract.ts
@@ -1,18 +1,16 @@
-import type BaseModule from '@/baseModule';
+import type BaseModule from '@/BaseModule';
import type {
Augmentation,
- Coordinates,
Events,
- GeneralObject,
+ Options,
ModuleCtor,
- ModuleInput,
ModuleInputCtor,
- Options,
- Pointers,
- Reloadable,
-} from '@/declarations';
-import { HookKeys } from '@/baseModule';
-import { toArray } from '@/utils';
+ ModuleInput,
+} from '@/BaseModule';
+import type { Coordinates, GeneralObject, Pointers } from '@/types';
+import { HookKeys } from '@/BaseModule';
+
+type Reloadable = Array;
export class Pointeract {
#element: HTMLElement;
@@ -30,7 +28,7 @@ export class Pointeract {
}
constructor(options: Options, _modules?: T) {
- const modules = toArray(_modules ? _modules : ([] as Array));
+ const modules = _modules ? _modules : [];
this.#_window = options.element.ownerDocument.defaultView;
this.#element = options.element;
if (!options.coordinateOutput) options.coordinateOutput = 'relative';
@@ -148,7 +146,7 @@ export class Pointeract {
#onWheel = (e: WheelEvent) => this.#runHooks('onWheel', e);
- stop = (_toStop?: Reloadable) => {
+ stop = (toStop?: Reloadable) => {
const stopPointeract = () => {
this.#element.removeEventListener('pointerdown', this.#onPointerDown);
this.#window.removeEventListener('pointermove', this.#onPointerMove);
@@ -163,15 +161,15 @@ export class Pointeract {
this.#pausedModules[moduleCtor.name] = module;
delete this.#modules[moduleCtor.name];
};
- if (!_toStop) stopPointeract();
+ if (!toStop) stopPointeract();
else
- toArray(_toStop).forEach((module) => {
+ toStop.forEach((module) => {
stopModule(module);
});
return this;
};
- start = (_toStart?: Reloadable) => {
+ start = (toStart?: Reloadable) => {
const startPointeract = () => {
this.#element.addEventListener('pointerdown', this.#onPointerDown);
this.#window.addEventListener('pointermove', this.#onPointerMove);
@@ -186,9 +184,9 @@ export class Pointeract {
this.#modules[moduleCtor.name] = module;
delete this.#pausedModules[moduleCtor.name];
};
- if (!_toStart) startPointeract();
+ if (!toStart) startPointeract();
else
- toArray(_toStart).forEach((module) => {
+ toStart.forEach((module) => {
startModule(module);
});
return this;
diff --git a/src/declarations.ts b/src/declarations.ts
deleted file mode 100644
index 18d88d3..0000000
--- a/src/declarations.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-// oxlint-disable typescript/no-explicit-any
-import type BaseModule from '@/baseModule';
-
-// #region General Types
-export type GeneralArguments = Array;
-export type GeneralObject = Record;
-export type Indexable = string | number | symbol;
-// #endregion ===============================================================================
-
-// #region Conversion Helpers
-type KnownKeys = keyof {
- [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
-};
-export type Constrain = Pick>;
-type WrapInArray = T extends Array ? Array : [T];
-type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void
- ? I
- : never;
-type Instances =
- T extends Array ? InstanceType : T[number];
-type Orchestratable<
- T extends ModuleInput,
- K extends 'options' | '_Events' | '_Augmentation',
-> = UnionToIntersection[K]>;
-// #endregion ===============================================================================
-
-// #region Derived Types
-type ModuleInstance = BaseModule;
-export type ModuleCtor = typeof BaseModule;
-export type ModuleInput = ModuleCtor | ModuleInstance | Array | Array;
-export type ModuleInputCtor = ModuleCtor | Array;
-type ProcessedModuleInput = Array | Array;
-
-type AllModuleInstances = Instances>;
-export type Options = Orchestratable & BaseOptions;
-export type Events = Constrain<
- Orchestratable & StdEvents
->;
-export type Augmentation = Orchestratable;
-
-type ReloadableAtom = WrapInArray[number];
-export type Reloadable = ReloadableAtom | Array>;
-// #endregion ===============================================================================
-
-// #region Informative Types
-export type Coordinates = {
- x: number;
- y: number;
-};
-
-export type Pointers = Map;
-
-export type Pointer = {
- records: Array<{ x: number; y: number; timestamp: number }>;
- target: EventTarget | null;
- [key: Indexable]: any;
-};
-
-export interface StdEvents {
- pan: { deltaX: number; deltaY: number };
- drag: { deltaX: number; deltaY: number; x: number; y: number };
- trueClick: Coordinates & { target: EventTarget | null; streak: number };
- zoom: Coordinates & { factor: number };
- [key: string]: unknown;
-}
-
-export interface BaseOptions {
- coordinateOutput?: 'absolute' | 'relative' | 'relativeFraction';
- element: HTMLElement;
-}
-// #endregion ===============================================================================
diff --git a/src/index.ts b/src/index.ts
index fa36b60..21fde8f 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-export { default as BaseModule, type BaseArgs } from '@/baseModule';
-export type { Options, Events, Pointer, Pointers, StdEvents, BaseOptions } from '@/declarations';
-export { default as Click } from '@/modules/click';
-export { default as Drag } from '@/modules/drag';
-export { default as MultitouchPanZoom } from '@/modules/multitouchPanZoom';
-export { default as PreventDefault } from '@/modules/preventDefault';
-export { default as WheelPanZoom } from '@/modules/wheelPanZoom';
-export { default as Lubricator, panPreset, dragPreset, zoomPreset } from '@/modules/lubricator';
-export { default as Pointeract, type PointeractInterface } from '@/pointeract';
+export { default as BaseModule, type BaseArgs, type Options, type Events } from '@/BaseModule';
+export type { Pointer, Pointers, StdEvents, BaseOptions } from '@/types';
+export { default as Click } from '@/modules/Click';
+export { default as Drag } from '@/modules/Drag';
+export { default as MultitouchPanZoom } from '@/modules/MultitouchPanZoom';
+export { default as PreventDefault } from '@/modules/PreventDefault';
+export { default as WheelPanZoom } from '@/modules/WheelPanZoom';
+export { default as Lubricator, panPreset, dragPreset, zoomPreset } from '@/modules/Lubricator';
+export { default as Pointeract, type PointeractInterface } from '@/Pointeract';
diff --git a/src/modules/click.ts b/src/modules/Click.ts
similarity index 92%
rename from src/modules/click.ts
rename to src/modules/Click.ts
index 712d7c2..49eaa73 100644
--- a/src/modules/click.ts
+++ b/src/modules/Click.ts
@@ -1,5 +1,5 @@
-import type { BaseOptions, Pointer, Pointers } from '@/declarations';
-import BaseModule from '@/baseModule';
+import type { BaseOptions, Pointer, Pointers } from '@/types';
+import BaseModule from '@/BaseModule';
import { getLast } from '@/utils';
interface Options extends BaseOptions {
diff --git a/src/modules/drag.ts b/src/modules/Drag.ts
similarity index 80%
rename from src/modules/drag.ts
rename to src/modules/Drag.ts
index 71c9ea7..c01992b 100644
--- a/src/modules/drag.ts
+++ b/src/modules/Drag.ts
@@ -1,5 +1,5 @@
-import type { Pointer, Pointers } from '@/declarations';
-import BaseModule from '@/baseModule';
+import type { Pointer, Pointers } from '@/types';
+import BaseModule from '@/BaseModule';
import { getLast } from '@/utils';
export default class Drag extends BaseModule {
diff --git a/src/modules/lubricator.ts b/src/modules/Lubricator.ts
similarity index 95%
rename from src/modules/lubricator.ts
rename to src/modules/Lubricator.ts
index fd54d29..f861f0e 100644
--- a/src/modules/lubricator.ts
+++ b/src/modules/Lubricator.ts
@@ -1,5 +1,5 @@
-import BaseModule, { BaseArgs } from '@/baseModule';
-import { BaseOptions, Events, GeneralObject } from '@/declarations';
+import BaseModule, { BaseArgs, Events } from '@/BaseModule';
+import { BaseOptions, GeneralDictionary } from '@/types';
interface Options extends BaseOptions {
lubricator?: Record;
@@ -11,7 +11,7 @@ type PerEventOption = {
};
type PerEventStates = {
- sample: GeneralObject;
+ sample: GeneralDictionary;
fields: Record<
string,
{
@@ -64,7 +64,7 @@ export default class Lubricator extends BaseModule {
};
#makeLubricate =
- (states: PerEventStates, options: PerEventOption) => (detail: GeneralObject) => {
+ (states: PerEventStates, options: PerEventOption) => (detail: GeneralDictionary) => {
if (detail.lubricated) return true;
states.sample = detail;
this.#accumulate(states.fields, options.fields, detail);
@@ -74,7 +74,7 @@ export default class Lubricator extends BaseModule {
#accumulate = (
stateFields: PerEventStates['fields'],
optionsFields: PerEventOption['fields'],
- detail: GeneralObject,
+ detail: GeneralDictionary,
) => {
Object.entries(stateFields).forEach(([key, value]) => {
if (typeof detail[key] !== 'number') return;
diff --git a/src/modules/multitouchPanZoom.ts b/src/modules/MultitouchPanZoom.ts
similarity index 94%
rename from src/modules/multitouchPanZoom.ts
rename to src/modules/MultitouchPanZoom.ts
index f1c7dd8..dd6f5a4 100644
--- a/src/modules/multitouchPanZoom.ts
+++ b/src/modules/MultitouchPanZoom.ts
@@ -1,5 +1,5 @@
-import type { Coordinates, Pointer, Pointers } from '@/declarations';
-import BaseModule from '@/baseModule';
+import type { Coordinates, Pointer, Pointers } from '@/types';
+import BaseModule from '@/BaseModule';
import { getLast } from '@/utils';
export default class MultitouchPanZoom extends BaseModule {
diff --git a/src/modules/preventDefault.ts b/src/modules/PreventDefault.ts
similarity index 94%
rename from src/modules/preventDefault.ts
rename to src/modules/PreventDefault.ts
index 5b86a10..a151df1 100644
--- a/src/modules/preventDefault.ts
+++ b/src/modules/PreventDefault.ts
@@ -1,4 +1,4 @@
-import BaseModule from '@/baseModule';
+import BaseModule from '@/BaseModule';
export default class PreventDefault extends BaseModule {
onWheel = (e: WheelEvent) => e.preventDefault();
diff --git a/src/modules/wheelPanZoom.ts b/src/modules/WheelPanZoom.ts
similarity index 92%
rename from src/modules/wheelPanZoom.ts
rename to src/modules/WheelPanZoom.ts
index 0e5d38d..e9de83f 100644
--- a/src/modules/wheelPanZoom.ts
+++ b/src/modules/WheelPanZoom.ts
@@ -1,10 +1,8 @@
-import type { Coordinates, BaseOptions } from '@/declarations';
-import BaseModule, { BaseArgs } from '@/baseModule';
+import type { Coordinates, BaseOptions } from '@/types';
+import BaseModule, { BaseArgs } from '@/BaseModule';
import { fillIn } from '@/utils';
/*
-to normal computer users:
-
# normal schema
diff y > 0 => zooms in => zoom factor < 1
diff y < 0 => zooms out => zoom factor > 1
diff --git a/src/types.ts b/src/types.ts
new file mode 100644
index 0000000..9fdd1af
--- /dev/null
+++ b/src/types.ts
@@ -0,0 +1,56 @@
+// #region SynthKernel Core Types
+// oxlint-disable-next-line typescript/no-explicit-any
+export type General = any;
+export type GeneralArray = ReadonlyArray;
+export type GeneralObject = object;
+export type GeneralDictionary = Record;
+export type GeneralConstructor = new (...args: General[]) => General;
+type Indexable = string | number | symbol;
+
+type UnionToIntersection = (U extends General ? (k: U) => void : never) extends (
+ k: infer I,
+) => void
+ ? I
+ : never;
+
+type GeneralModuleInput = ReadonlyArray | ReadonlyArray;
+
+export type ModuleInput =
+ | ReadonlyArray
+ | ReadonlyArray>;
+
+type Instances =
+ T extends ReadonlyArray ? InstanceType : T[number];
+
+export type Orchestratable<
+ T extends GeneralModuleInput,
+ K extends keyof Instances,
+> = UnionToIntersection[K]>;
+// #endregion ==============================================================================
+
+// #region Informative Types
+export type Coordinates = {
+ x: number;
+ y: number;
+};
+
+export type Pointers = Map;
+
+export type Pointer = {
+ records: Array<{ x: number; y: number; timestamp: number }>;
+ target: EventTarget | null;
+ [key: Indexable]: General;
+};
+
+export interface StdEvents {
+ pan: { deltaX: number; deltaY: number };
+ drag: { deltaX: number; deltaY: number; x: number; y: number };
+ trueClick: Coordinates & { target: EventTarget | null; streak: number };
+ zoom: Coordinates & { factor: number };
+}
+
+export interface BaseOptions {
+ coordinateOutput?: 'absolute' | 'relative' | 'relativeFraction';
+ element: HTMLElement;
+}
+// #endregion ===============================================================================
diff --git a/src/utils.ts b/src/utils.ts
index 2d8b146..a563da7 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -1,13 +1,10 @@
-import { GeneralObject } from '@/declarations';
+import { GeneralDictionary } from '@/types';
export function getLast(arr: Array, num: number = 0) {
return arr[arr.length - 1 - num];
}
-export function fillIn(patch: GeneralObject, target: GeneralObject) {
- for (const [k, v] of Object.entries(patch)) if (!(k in target)) target[k] = v;
-}
-
-export function toArray(toTrans: T | Array) {
- return Array.isArray(toTrans) ? toTrans : [toTrans];
+export function fillIn(patch: GeneralDictionary, target: GeneralDictionary) {
+ for (const [k, v] of Object.entries(patch))
+ if (!(k in target)) (target as Record)[k] = v;
}
diff --git a/tests/click.test.ts b/tests/click.test.ts
index e19c000..e3569e4 100644
--- a/tests/click.test.ts
+++ b/tests/click.test.ts
@@ -3,7 +3,7 @@ import { expect, test } from 'vitest';
import setup from './testUtils';
test('trigger a trueClick', async () => {
- const { acc, dispose, Pointer } = setup(Click);
+ const { acc, dispose, Pointer } = setup([Click]);
const p = new Pointer();
for (let i = 0; i < 3; i++) {
p.down();
@@ -14,7 +14,7 @@ test('trigger a trueClick', async () => {
});
test('trigger an shifted click that is not a trueClick', async () => {
- const { acc, dispose, Pointer } = setup(Click);
+ const { acc, dispose, Pointer } = setup([Click]);
const p = new Pointer();
p.down();
p.move({ x: 10, y: 10 });
@@ -24,7 +24,7 @@ test('trigger an shifted click that is not a trueClick', async () => {
});
test('trigger an interrupted click that is not a trueClick', async () => {
- const { acc, dispose, Pointer } = setup(Click);
+ const { acc, dispose, Pointer } = setup([Click]);
const p1 = new Pointer();
const p2 = new Pointer();
p1.down();
diff --git a/tests/dev/script.ts b/tests/dev/script.ts
index e4a23d8..13d9f52 100644
--- a/tests/dev/script.ts
+++ b/tests/dev/script.ts
@@ -11,7 +11,7 @@ import {
zoomPreset,
dragPreset,
} from '@';
-import { Coordinates } from '@/declarations';
+import { Coordinates } from '@/types';
const square = document.getElementById('test-square') as HTMLElement;
const squareRect = square.getBoundingClientRect();
diff --git a/tests/drag.test.ts b/tests/drag.test.ts
index e999db0..98efe4a 100644
--- a/tests/drag.test.ts
+++ b/tests/drag.test.ts
@@ -3,7 +3,7 @@ import { expect, test } from 'vitest';
import setup from './testUtils';
test('drag', async () => {
- const { acc, dispose, Pointer } = setup(Drag);
+ const { acc, dispose, Pointer } = setup([Drag]);
const p = new Pointer();
p.down();
p.move({ x: 100, y: 100 });
diff --git a/tests/integration.test.ts b/tests/integration.test.ts
index 420169d..fed502d 100644
--- a/tests/integration.test.ts
+++ b/tests/integration.test.ts
@@ -17,14 +17,14 @@ test('hot stop / start a module', async () => {
});
const p = new Pointer();
- pointeract.stop(Click);
+ pointeract.stop([Click]);
for (let i = 0; i < 3; i++) {
p.down();
p.up();
}
expect(acc.clicks).toBe(0);
- pointeract.start(Click);
+ pointeract.start([Click]);
for (let i = 0; i < 3; i++) {
p.down();
p.up();
@@ -97,7 +97,7 @@ test('augmentation', async () => {
private sample = () => {};
}
- const { pointeract, dispose } = setup(Aug);
+ const { pointeract, dispose } = setup([Aug]);
expect(pointeract.sample).toBeDefined();
await dispose();
diff --git a/tests/multiTouch.test.ts b/tests/multiTouch.test.ts
index 463e5e7..bda5c82 100644
--- a/tests/multiTouch.test.ts
+++ b/tests/multiTouch.test.ts
@@ -3,7 +3,7 @@ import { expect, test } from 'vitest';
import setup from './testUtils';
test('two touches 100px apart, zoom in and pan up', async () => {
- const { acc, dispose, Pointer } = setup(MultitouchPanZoom);
+ const { acc, dispose, Pointer } = setup([MultitouchPanZoom]);
const p1 = new Pointer();
const p2 = new Pointer();
diff --git a/tests/testUtils.ts b/tests/testUtils.ts
index a3d45cb..1299109 100644
--- a/tests/testUtils.ts
+++ b/tests/testUtils.ts
@@ -1,7 +1,8 @@
import { type Click, type Drag, PointeractInterface, type WheelPanZoom, Pointeract } from '@';
import { Window as HappyWindow, PointerEvent, HTMLDivElement, WheelEvent } from 'happy-dom';
import { beforeEach, vi } from 'vitest';
-import type { Coordinates, ModuleInputCtor, Options, StdEvents } from '@/declarations';
+import type { Coordinates, StdEvents } from '@/types';
+import { ModuleInputCtor, Options } from '@/BaseModule';
beforeEach(() => {
vi.spyOn(HTMLElement.prototype, 'getBoundingClientRect').mockImplementation(
diff --git a/tests/wheel.test.ts b/tests/wheel.test.ts
index 0d1b912..b060e28 100644
--- a/tests/wheel.test.ts
+++ b/tests/wheel.test.ts
@@ -3,7 +3,7 @@ import { expect, test } from 'vitest';
import setup from './testUtils';
test('normal wheel', async () => {
- const { acc, dispose, wheel } = setup(WheelPanZoom);
+ const { acc, dispose, wheel } = setup([WheelPanZoom]);
wheel({ x: 0, y: 50 });
const smallerScale = acc.scale;
expect(smallerScale < 0.9).toBe(true);
@@ -14,7 +14,7 @@ test('normal wheel', async () => {
test('professional control schema', async () => {
const options = { proControlSchema: false };
- const { acc, dispose, wheel } = setup(WheelPanZoom, options);
+ const { acc, dispose, wheel } = setup([WheelPanZoom], options);
// normal schema
wheel({ x: 0, y: 200 });