From 0cba1d2291e2235099e74887e7eb97146273e1db Mon Sep 17 00:00:00 2001 From: Ezra Brooks Date: Wed, 12 Nov 2025 15:02:31 -0700 Subject: [PATCH] Import files with .ts extensions We have at least one passionate user (because they contributed!) using Bun, so there's probably others. Bun and Deno can run .ts files directly - but if we confuse them with import paths that don't resolve until after a transpile step, they can break. This PR ensures all files are imported as .ts files and then rewritten at build time for compatibility with non-TypeScript runtimes. --- eslint.config.ts | 3 + examples/node_simple.ts | 2 +- package-lock.json | 2010 ++++++++++++++++- package.json | 1 + src/RosLib.ts | 76 +- src/actionlib/ActionClient.ts | 8 +- src/actionlib/ActionListener.ts | 6 +- src/actionlib/Goal.ts | 4 +- src/actionlib/SimpleActionServer.ts | 9 +- src/core/Action.ts | 2 +- src/core/Param.ts | 6 +- src/core/Ros.ts | 20 +- src/core/Service.ts | 2 +- src/core/Topic.ts | 4 +- .../transport/NativeWebSocketTransport.ts | 4 +- src/core/transport/Transport.ts | 10 +- .../transport/WebSocketTransportFactory.ts | 6 +- src/core/transport/WsWebSocketTransport.ts | 4 +- src/math/Pose.ts | 8 +- src/math/Quaternion.ts | 2 +- src/math/Transform.ts | 4 +- src/math/Vector3.ts | 4 +- src/tf/BaseTFClient.ts | 8 +- src/tf/ROS2TFClient.ts | 6 +- src/tf/TFClient.ts | 12 +- src/types/actionlib_msgs.ts | 4 +- src/types/tf2_msgs.ts | 2 +- src/types/tf2_web_republisher.ts | 4 +- src/urdf/UrdfBox.ts | 6 +- src/urdf/UrdfColor.ts | 4 +- src/urdf/UrdfCylinder.ts | 2 +- src/urdf/UrdfJoint.ts | 10 +- src/urdf/UrdfLink.ts | 4 +- src/urdf/UrdfMaterial.ts | 6 +- src/urdf/UrdfMesh.ts | 6 +- src/urdf/UrdfModel.ts | 10 +- src/urdf/UrdfSphere.ts | 2 +- src/urdf/UrdfUtils.ts | 8 +- src/urdf/UrdfVisual.ts | 16 +- test/cbor.test.ts | 2 +- test/examples/check-topics.example.ts | 4 +- test/examples/fibonacci.example.ts | 2 +- test/examples/params.example.ts | 2 +- test/examples/pubsub.example.ts | 2 +- test/examples/tf.example.ts | 2 +- test/examples/tf_service.example.ts | 2 +- test/examples/topic-listener.example.ts | 2 +- test/math-examples.test.ts | 2 +- test/quaternion.test.ts | 2 +- test/ros.test.ts | 8 +- test/service.test.ts | 2 +- test/setup/per-suite-setup.ts | 1 + test/setup/ros-backend.ts | 2 +- test/setup/vitest-setup.ts | 2 +- test/tfclient.test.ts | 2 +- test/transform.test.ts | 2 +- test/transport.test.ts | 10 +- test/urdf.test.ts | 4 +- test/urdfjoint.test.ts | 2 +- tsconfig.json | 5 +- 60 files changed, 2107 insertions(+), 260 deletions(-) diff --git a/eslint.config.ts b/eslint.config.ts index 1d447e746..f34ca595b 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -4,6 +4,7 @@ import tseslint from "typescript-eslint"; import globals from "globals"; import jsdoc from "eslint-plugin-jsdoc"; import prettier from "eslint-plugin-prettier"; +import importPlugin from "eslint-plugin-import"; export default defineConfig( eslint.configs.recommended, @@ -22,6 +23,7 @@ export default defineConfig( }, plugins: { prettier, + import: importPlugin, }, rules: { "prettier/prettier": [2, { endOfLine: "auto" }], @@ -39,6 +41,7 @@ export default defineConfig( "Prefer arrow functions over invoking Function.prototype.bind", }, ], + "import/extensions": 2, }, }, { diff --git a/examples/node_simple.ts b/examples/node_simple.ts index 46d9e397c..a5a4f51e2 100644 --- a/examples/node_simple.ts +++ b/examples/node_simple.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node // Connecting to ROS -import * as ROSLIB from "../src/RosLib"; +import * as ROSLIB from "../src/RosLib.ts"; const ros = new ROSLIB.Ros({ url: "ws://localhost:9090", diff --git a/package-lock.json b/package-lock.json index 1a04e6768..ca6521ff1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "dockerode": "^4.0.9", "eslint": "^9.32.0", "eslint-config-prettier": "^10.1.8", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsdoc": "^61.1.12", "eslint-plugin-prettier": "^5.5.4", "globals": "^16.0.0", @@ -1613,6 +1614,13 @@ "win32" ] }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@rushstack/node-core-library": { "version": "5.10.2", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.2.tgz", @@ -1958,6 +1966,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.10.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", @@ -2701,6 +2716,128 @@ "dequal": "^2.0.3" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -2721,6 +2858,32 @@ "node": ">=12" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2870,6 +3033,56 @@ "node": ">=10.0.0" } }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3068,6 +3281,60 @@ "node": ">=20" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -3105,6 +3372,42 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -3164,6 +3467,19 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", @@ -3171,6 +3487,21 @@ "dev": true, "peer": true }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -3200,6 +3531,95 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", @@ -3207,30 +3627,90 @@ "dev": true, "license": "MIT" }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "es-errors": "^1.3.0" }, "engines": { - "node": ">=18" + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", "@esbuild/linux-ia32": "0.25.0", "@esbuild/linux-loong64": "0.25.0", "@esbuild/linux-mips64el": "0.25.0", @@ -3347,6 +3827,123 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-jsdoc": { "version": "61.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.2.1.tgz", @@ -3744,6 +4341,22 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -3797,6 +4410,47 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3807,6 +4461,63 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -3833,6 +4544,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -3846,6 +4587,19 @@ "dev": true, "license": "MIT" }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3855,6 +4609,64 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4005,29 +4817,373 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { - "node": ">=0.8.19" + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/iobuffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-6.0.1.tgz", + "integrity": "sha512-SZWYkWNfjIXIBYSDpXDYIgshqtbOPsi4lviawAEceR1Kqk+sHDlcQjWrzNQsii80AyBY0q5c8HCTNjqo74ul+Q==", + "license": "MIT" + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/iobuffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-6.0.1.tgz", - "integrity": "sha512-SZWYkWNfjIXIBYSDpXDYIgshqtbOPsi4lviawAEceR1Kqk+sHDlcQjWrzNQsii80AyBY0q5c8HCTNjqo74ul+Q==", - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4036,51 +5192,72 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, @@ -4202,6 +5379,19 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -4348,6 +5538,16 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdn-data": { "version": "2.12.2", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", @@ -4404,6 +5604,16 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -4504,6 +5714,103 @@ "dev": true, "license": "MIT" }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4520,6 +5827,7 @@ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -4532,6 +5840,24 @@ "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4692,6 +6018,16 @@ "pathe": "^1.1.2" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -4891,12 +6227,56 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5034,27 +6414,82 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -5098,6 +6533,55 @@ "node": ">=10" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5121,6 +6605,82 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -5214,6 +6774,20 @@ "dev": true, "license": "MIT" }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -5248,6 +6822,65 @@ "node": ">=8" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5261,6 +6894,16 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5484,6 +7127,19 @@ "typescript": ">=4.8.4" } }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -5503,6 +7159,84 @@ "node": ">= 0.8.0" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedoc": { "version": "0.28.14", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.14.tgz", @@ -5646,6 +7380,25 @@ "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", "dev": true }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -6068,6 +7821,95 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", diff --git a/package.json b/package.json index 51253632a..ca831db8a 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "dockerode": "^4.0.9", "eslint": "^9.32.0", "eslint-config-prettier": "^10.1.8", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsdoc": "^61.1.12", "eslint-plugin-prettier": "^5.5.4", "globals": "^16.0.0", diff --git a/src/RosLib.ts b/src/RosLib.ts index c3030afa6..fabe87294 100644 --- a/src/RosLib.ts +++ b/src/RosLib.ts @@ -6,12 +6,12 @@ export const REVISION = import.meta.env.VITE_ROSLIBJS_VERSION; // Core exports -export { default as Ros, type TypeDefDict } from "./core/Ros.js"; -export { default as Topic } from "./core/Topic.js"; -export { default as Param } from "./core/Param.js"; -export { default as Service } from "./core/Service.js"; -export { default as Action } from "./core/Action.js"; -export { type GoalStatus } from "./core/GoalStatus.js"; +export { default as Ros, type TypeDefDict } from "./core/Ros.ts"; +export { default as Topic } from "./core/Topic.ts"; +export { default as Param } from "./core/Param.ts"; +export { default as Service } from "./core/Service.ts"; +export { default as Action } from "./core/Action.ts"; +export { type GoalStatus } from "./core/GoalStatus.ts"; // Core Transport exports export { @@ -19,58 +19,58 @@ export { type ITransport, type ITransportFactory, type TransportEvent, -} from "./core/transport/Transport.js"; -export { WebSocketTransportFactory } from "./core/transport/WebSocketTransportFactory.js"; +} from "./core/transport/Transport.ts"; +export { WebSocketTransportFactory } from "./core/transport/WebSocketTransportFactory.ts"; // ActionLib exports -export { default as ActionClient } from "./actionlib/ActionClient.js"; -export { default as ActionListener } from "./actionlib/ActionListener.js"; -export { default as Goal } from "./actionlib/Goal.js"; -export { default as SimpleActionServer } from "./actionlib/SimpleActionServer.js"; +export { default as ActionClient } from "./actionlib/ActionClient.ts"; +export { default as ActionListener } from "./actionlib/ActionListener.ts"; +export { default as Goal } from "./actionlib/Goal.ts"; +export { default as SimpleActionServer } from "./actionlib/SimpleActionServer.ts"; // Math exports -export { default as Pose, type IPose } from "./math/Pose.js"; -export { default as Quaternion, type IQuaternion } from "./math/Quaternion.js"; -export { default as Transform, type ITransform } from "./math/Transform.js"; -export { default as Vector3, type IVector3 } from "./math/Vector3.js"; +export { default as Pose, type IPose } from "./math/Pose.ts"; +export { default as Quaternion, type IQuaternion } from "./math/Quaternion.ts"; +export { default as Transform, type ITransform } from "./math/Transform.ts"; +export { default as Vector3, type IVector3 } from "./math/Vector3.ts"; // TF exports -export { default as TFClient } from "./tf/TFClient.js"; -export { default as ROS2TFClient } from "./tf/ROS2TFClient.js"; +export { default as TFClient } from "./tf/TFClient.ts"; +export { default as ROS2TFClient } from "./tf/ROS2TFClient.ts"; // URDF exports -export { default as UrdfBox } from "./urdf/UrdfBox.js"; -export { default as UrdfColor } from "./urdf/UrdfColor.js"; -export { default as UrdfCylinder } from "./urdf/UrdfCylinder.js"; -export { default as UrdfLink } from "./urdf/UrdfLink.js"; -export { default as UrdfMaterial } from "./urdf/UrdfMaterial.js"; -export { default as UrdfMesh } from "./urdf/UrdfMesh.js"; +export { default as UrdfBox } from "./urdf/UrdfBox.ts"; +export { default as UrdfColor } from "./urdf/UrdfColor.ts"; +export { default as UrdfCylinder } from "./urdf/UrdfCylinder.ts"; +export { default as UrdfLink } from "./urdf/UrdfLink.ts"; +export { default as UrdfMaterial } from "./urdf/UrdfMaterial.ts"; +export { default as UrdfMesh } from "./urdf/UrdfMesh.ts"; export { default as UrdfModel, type UrdfModelOptions, -} from "./urdf/UrdfModel.js"; -export { default as UrdfSphere } from "./urdf/UrdfSphere.js"; +} from "./urdf/UrdfModel.ts"; +export { default as UrdfSphere } from "./urdf/UrdfSphere.ts"; export { default as UrdfVisual, type UrdfGeometryLike, -} from "./urdf/UrdfVisual.js"; -export { default as UrdfJoint } from "./urdf/UrdfJoint.js"; +} from "./urdf/UrdfVisual.ts"; +export { default as UrdfJoint } from "./urdf/UrdfJoint.ts"; export { UrdfAttrs, UrdfType, type UrdfDefaultOptions, -} from "./urdf/UrdfTypes.js"; -export { isElement, parseUrdfOrigin } from "./urdf/UrdfUtils.js"; +} from "./urdf/UrdfTypes.ts"; +export { isElement, parseUrdfOrigin } from "./urdf/UrdfUtils.ts"; // only export the types that typedoc requires us to export - those are our public interfaces -export { type actionlib_msgs } from "./types/actionlib_msgs.js"; -export { type tf2_web_republisher } from "./types/tf2_web_republisher.js"; -export { type rosapi } from "./types/rosapi.js"; -export { type std_msgs } from "./types/std_msgs.js"; -export { type tf2_msgs } from "./types/tf2_msgs.js"; -export { type geometry_msgs } from "./types/geometry_msgs.js"; -export type { Nullable, PartialNullable } from "./types/interface-types.js"; +export { type actionlib_msgs } from "./types/actionlib_msgs.ts"; +export { type tf2_web_republisher } from "./types/tf2_web_republisher.ts"; +export { type rosapi } from "./types/rosapi.ts"; +export { type std_msgs } from "./types/std_msgs.ts"; +export { type tf2_msgs } from "./types/tf2_msgs.ts"; +export { type geometry_msgs } from "./types/geometry_msgs.ts"; +export type { Nullable, PartialNullable } from "./types/interface-types.ts"; export { type RosbridgeMessage, isRosbridgeMessage, @@ -118,4 +118,4 @@ export { type SuccessfulRosbridgeActionResultMessage, type FailedRosbridgeServiceResponseMessage, type SuccessfulRosbridgeServiceResponseMessage, -} from "./types/protocol.js"; +} from "./types/protocol.ts"; diff --git a/src/actionlib/ActionClient.ts b/src/actionlib/ActionClient.ts index b3104d173..bbd878f5f 100644 --- a/src/actionlib/ActionClient.ts +++ b/src/actionlib/ActionClient.ts @@ -3,11 +3,11 @@ * @author Russell Toris - rctoris@wpi.edu */ -import type Ros from "../core/Ros.js"; -import Topic from "../core/Topic.js"; +import type Ros from "../core/Ros.ts"; +import Topic from "../core/Topic.ts"; import { EventEmitter } from "eventemitter3"; -import type { actionlib_msgs } from "../types/actionlib_msgs.js"; -import type Goal from "./Goal.js"; +import type { actionlib_msgs } from "../types/actionlib_msgs.ts"; +import type Goal from "./Goal.ts"; /** * An actionlib action client. diff --git a/src/actionlib/ActionListener.ts b/src/actionlib/ActionListener.ts index e3890484d..96e3ad9d1 100644 --- a/src/actionlib/ActionListener.ts +++ b/src/actionlib/ActionListener.ts @@ -4,10 +4,10 @@ * @author Russell Toris - rctoris@wpi.edu */ -import type Ros from "../core/Ros.js"; -import Topic from "../core/Topic.js"; +import type Ros from "../core/Ros.ts"; +import Topic from "../core/Topic.ts"; import { EventEmitter } from "eventemitter3"; -import type { actionlib_msgs } from "../types/actionlib_msgs.js"; +import type { actionlib_msgs } from "../types/actionlib_msgs.ts"; /** * An actionlib action listener. diff --git a/src/actionlib/Goal.ts b/src/actionlib/Goal.ts index d4c1f6f89..1b3274838 100644 --- a/src/actionlib/Goal.ts +++ b/src/actionlib/Goal.ts @@ -4,8 +4,8 @@ */ import { EventEmitter } from "eventemitter3"; -import type ActionClient from "./ActionClient"; -import type { actionlib_msgs } from "../types/actionlib_msgs"; +import type ActionClient from "./ActionClient.ts"; +import type { actionlib_msgs } from "../types/actionlib_msgs.ts"; import { v4 as uuidv4 } from "uuid"; /** diff --git a/src/actionlib/SimpleActionServer.ts b/src/actionlib/SimpleActionServer.ts index f6183a5d1..c1bfabaf7 100644 --- a/src/actionlib/SimpleActionServer.ts +++ b/src/actionlib/SimpleActionServer.ts @@ -3,12 +3,11 @@ * @author Laura Lindzey - lindzey@gmail.com */ -import type Ros from "../core/Ros.js"; -import Topic from "../core/Topic.js"; +import type Ros from "../core/Ros.ts"; +import Topic from "../core/Topic.ts"; import { EventEmitter } from "eventemitter3"; -import type { actionlib_msgs } from "../types/actionlib_msgs.js"; -import type { std_msgs } from "../types/std_msgs.js"; - +import type { actionlib_msgs } from "../types/actionlib_msgs.ts"; +import type { std_msgs } from "../types/std_msgs.ts"; /** * An actionlib action server client. * diff --git a/src/core/Action.ts b/src/core/Action.ts index 4c3d670c4..f6d01871e 100644 --- a/src/core/Action.ts +++ b/src/core/Action.ts @@ -11,7 +11,7 @@ import { isRosbridgeCancelActionGoalMessage, isRosbridgeSendActionGoalMessage, } from "../types/protocol.ts"; -import type Ros from "./Ros.js"; +import type Ros from "./Ros.ts"; import { v4 as uuidv4 } from "uuid"; /** diff --git a/src/core/Param.ts b/src/core/Param.ts index 45040e6de..2145b6a6c 100644 --- a/src/core/Param.ts +++ b/src/core/Param.ts @@ -3,9 +3,9 @@ * @author Brandon Alexander - baalexander@gmail.com */ -import type { rosapi } from "../types/rosapi.js"; -import type Ros from "./Ros.js"; -import Service from "./Service.js"; +import type { rosapi } from "../types/rosapi.ts"; +import type Ros from "./Ros.ts"; +import Service from "./Service.ts"; /** * A ROS parameter. diff --git a/src/core/Ros.ts b/src/core/Ros.ts index bf3c02ae8..37f72c138 100644 --- a/src/core/Ros.ts +++ b/src/core/Ros.ts @@ -7,7 +7,7 @@ import type { RosbridgeMessage, RosbridgeMessageBase, RosbridgeSetStatusLevelMessage, -} from "../types/protocol.js"; +} from "../types/protocol.ts"; import { isRosbridgeActionFeedbackMessage, isRosbridgeActionResultMessage, @@ -17,21 +17,21 @@ import { isRosbridgeSendActionGoalMessage, isRosbridgeServiceResponseMessage, isRosbridgeStatusMessage, -} from "../types/protocol.js"; - -import Topic from "./Topic.js"; -import Service from "./Service.js"; -import Param from "./Param.js"; -import TFClient from "../tf/TFClient"; -import ActionClient from "../actionlib/ActionClient.js"; -import SimpleActionServer from "../actionlib/SimpleActionServer.js"; +} from "../types/protocol.ts"; + +import Topic from "./Topic.ts"; +import Service from "./Service.ts"; +import Param from "./Param.ts"; +import TFClient from "../tf/TFClient.ts"; +import ActionClient from "../actionlib/ActionClient.ts"; +import SimpleActionServer from "../actionlib/SimpleActionServer.ts"; import { EventEmitter } from "eventemitter3"; import type { rosapi } from "../types/rosapi.ts"; import type { ITransport, ITransportFactory, TransportEvent, -} from "./transport/Transport.js"; +} from "./transport/Transport.ts"; import { WebSocketTransportFactory } from "./transport/WebSocketTransportFactory.ts"; export interface TypeDefDict { diff --git a/src/core/Service.ts b/src/core/Service.ts index 1077e4853..f8064ea0f 100644 --- a/src/core/Service.ts +++ b/src/core/Service.ts @@ -9,7 +9,7 @@ import { isRosbridgeCallServiceMessage, isRosbridgeServiceResponseMessage, } from "../types/protocol.ts"; -import type Ros from "./Ros.js"; +import type Ros from "./Ros.ts"; import { v4 as uuidv4 } from "uuid"; /** diff --git a/src/core/Topic.ts b/src/core/Topic.ts index 0f088c1d3..6d3344b9f 100644 --- a/src/core/Topic.ts +++ b/src/core/Topic.ts @@ -4,8 +4,8 @@ */ import { EventEmitter } from "eventemitter3"; -import Service from "./Service.js"; -import type Ros from "./Ros.js"; +import Service from "./Service.ts"; +import type Ros from "./Ros.ts"; import { isRosbridgePublishMessage, type RosbridgeAdvertiseMessage, diff --git a/src/core/transport/NativeWebSocketTransport.ts b/src/core/transport/NativeWebSocketTransport.ts index 72d6a2507..6a7e5d2d9 100644 --- a/src/core/transport/NativeWebSocketTransport.ts +++ b/src/core/transport/NativeWebSocketTransport.ts @@ -1,5 +1,5 @@ -import type { RosbridgeMessage } from "../../types/protocol.js"; -import { AbstractTransport } from "./Transport.js"; +import type { RosbridgeMessage } from "../../types/protocol.ts"; +import { AbstractTransport } from "./Transport.ts"; /** * Uses the native `WebSocket` class to send and receive messages. diff --git a/src/core/transport/Transport.ts b/src/core/transport/Transport.ts index f349f9336..7dd5baac9 100644 --- a/src/core/transport/Transport.ts +++ b/src/core/transport/Transport.ts @@ -1,19 +1,19 @@ -import EventEmitter from "eventemitter3"; +import { EventEmitter } from "eventemitter3"; import type { RosbridgePngMessage, RosbridgeMessage, RosbridgeFragmentMessage, RosbridgeMessageBase, -} from "../../types/protocol.js"; +} from "../../types/protocol.ts"; import { isRosbridgeFragmentMessage, isRosbridgeMessage, isRosbridgePngMessage, -} from "../../types/protocol.js"; +} from "../../types/protocol.ts"; import { deserialize } from "bson"; import CBOR from "cbor-js"; -import typedArrayTagger from "../../util/cborTypedArrayTags.js"; -import decompressPng from "../../util/decompressPng.js"; +import typedArrayTagger from "../../util/cborTypedArrayTags.ts"; +import decompressPng from "../../util/decompressPng.ts"; /** * Because transport implementations may have different event types diff --git a/src/core/transport/WebSocketTransportFactory.ts b/src/core/transport/WebSocketTransportFactory.ts index 38de7565d..79fad882a 100644 --- a/src/core/transport/WebSocketTransportFactory.ts +++ b/src/core/transport/WebSocketTransportFactory.ts @@ -1,4 +1,4 @@ -import type { ITransport, ITransportFactory } from "./Transport.js"; +import type { ITransport, ITransportFactory } from "./Transport.ts"; /** * A transport factory that uses WebSockets to send and receive messages. @@ -13,7 +13,7 @@ export const WebSocketTransportFactory: ITransportFactory = async ( ): Promise => { // Browsers, Deno, Bun, and Node 22+ support WebSockets natively if (typeof WebSocket === "function") { - const transportModule = await import("./NativeWebSocketTransport.js"); + const transportModule = await import("./NativeWebSocketTransport.ts"); const { NativeWebSocketTransport } = transportModule; const socket = new WebSocket(url); socket.binaryType = "arraybuffer"; @@ -24,7 +24,7 @@ export const WebSocketTransportFactory: ITransportFactory = async ( // Dynamically import the dependencies as they may not // be available in a browser environment. const ws = await import("ws"); - const transportModule = await import("./WsWebSocketTransport.js"); + const transportModule = await import("./WsWebSocketTransport.ts"); const { WsWebSocketTransport } = transportModule; const socket = new ws.WebSocket(url); socket.binaryType = "arraybuffer"; diff --git a/src/core/transport/WsWebSocketTransport.ts b/src/core/transport/WsWebSocketTransport.ts index dc853f114..49307d1bc 100644 --- a/src/core/transport/WsWebSocketTransport.ts +++ b/src/core/transport/WsWebSocketTransport.ts @@ -1,6 +1,6 @@ import * as ws from "ws"; -import type { RosbridgeMessage } from "../../types/protocol.js"; -import { AbstractTransport } from "./Transport.js"; +import type { RosbridgeMessage } from "../../types/protocol.ts"; +import { AbstractTransport } from "./Transport.ts"; /** * Uses the `ws` package to send and receive messages. diff --git a/src/math/Pose.ts b/src/math/Pose.ts index 0322888ae..3da3e44e9 100644 --- a/src/math/Pose.ts +++ b/src/math/Pose.ts @@ -2,10 +2,10 @@ * @fileOverview * @author David Gossow - dgossow@willowgarage.com */ -import Vector3, { type IVector3 } from "./Vector3.js"; -import Quaternion, { type IQuaternion } from "./Quaternion.js"; -import { type ITransform } from "./Transform.js"; -import type { PartialNullable } from "../types/interface-types.js"; +import Vector3, { type IVector3 } from "./Vector3.ts"; +import Quaternion, { type IQuaternion } from "./Quaternion.ts"; +import { type ITransform } from "./Transform.ts"; +import type { PartialNullable } from "../types/interface-types.ts"; export interface IPose { /** diff --git a/src/math/Quaternion.ts b/src/math/Quaternion.ts index eed85fb9e..9c790d933 100644 --- a/src/math/Quaternion.ts +++ b/src/math/Quaternion.ts @@ -2,7 +2,7 @@ * @fileOverview * @author David Gossow - dgossow@willowgarage.com */ -import { type PartialNullable } from "../types/interface-types.js"; +import { type PartialNullable } from "../types/interface-types.ts"; export interface IQuaternion { /** diff --git a/src/math/Transform.ts b/src/math/Transform.ts index 87b175a86..65ebc1041 100644 --- a/src/math/Transform.ts +++ b/src/math/Transform.ts @@ -3,8 +3,8 @@ * @author David Gossow - dgossow@willowgarage.com */ -import Vector3, { type IVector3 } from "./Vector3.js"; -import Quaternion, { type IQuaternion } from "./Quaternion.js"; +import Vector3, { type IVector3 } from "./Vector3.ts"; +import Quaternion, { type IQuaternion } from "./Quaternion.ts"; export interface ITransform { /** diff --git a/src/math/Vector3.ts b/src/math/Vector3.ts index 9420a46fa..2e50ccf6d 100644 --- a/src/math/Vector3.ts +++ b/src/math/Vector3.ts @@ -3,8 +3,8 @@ * @author David Gossow - dgossow@willowgarage.com */ -import { type IQuaternion } from "./Quaternion.js"; -import { type PartialNullable } from "../types/interface-types.js"; +import { type IQuaternion } from "./Quaternion.ts"; +import { type PartialNullable } from "../types/interface-types.ts"; export interface IVector3 { /** diff --git a/src/tf/BaseTFClient.ts b/src/tf/BaseTFClient.ts index ff92880e7..f3e81af11 100644 --- a/src/tf/BaseTFClient.ts +++ b/src/tf/BaseTFClient.ts @@ -1,7 +1,7 @@ -import Transform from "../math/Transform.js"; -import type Ros from "../core/Ros.js"; -import type { tf2_msgs } from "../types/tf2_msgs.js"; -import type { std_msgs } from "../types/std_msgs.js"; +import Transform from "../math/Transform.ts"; +import type Ros from "../core/Ros.ts"; +import type { tf2_msgs } from "../types/tf2_msgs.ts"; +import type { std_msgs } from "../types/std_msgs.ts"; /** * Base class for TF Clients that provides common functionality. diff --git a/src/tf/ROS2TFClient.ts b/src/tf/ROS2TFClient.ts index 7ab405a51..e1d4c3c42 100644 --- a/src/tf/ROS2TFClient.ts +++ b/src/tf/ROS2TFClient.ts @@ -1,6 +1,6 @@ -import type { tf2_web_republisher } from "../types/tf2_web_republisher.js"; -import Action from "../core/Action.js"; -import BaseTFClient from "./BaseTFClient.js"; +import type { tf2_web_republisher } from "../types/tf2_web_republisher.ts"; +import Action from "../core/Action.ts"; +import BaseTFClient from "./BaseTFClient.ts"; /** * A TF Client that listens to TFs from tf2_web_republisher using ROS2 actions. diff --git a/src/tf/TFClient.ts b/src/tf/TFClient.ts index 8ce6c06c1..0e3838a77 100644 --- a/src/tf/TFClient.ts +++ b/src/tf/TFClient.ts @@ -3,14 +3,14 @@ * @author David Gossow - dgossow@willowgarage.com */ -import ActionClient from "../actionlib/ActionClient.js"; -import Goal from "../actionlib/Goal.js"; +import ActionClient from "../actionlib/ActionClient.ts"; +import Goal from "../actionlib/Goal.ts"; -import Topic from "../core/Topic.js"; -import type { tf2_msgs } from "../types/tf2_msgs.js"; -import type { tf2_web_republisher } from "../types/tf2_web_republisher.js"; +import Topic from "../core/Topic.ts"; +import type { tf2_msgs } from "../types/tf2_msgs.ts"; +import type { tf2_web_republisher } from "../types/tf2_web_republisher.ts"; -import BaseTFClient from "./BaseTFClient.js"; +import BaseTFClient from "./BaseTFClient.ts"; /** * A TF Client that listens to TFs from tf2_web_republisher. diff --git a/src/types/actionlib_msgs.ts b/src/types/actionlib_msgs.ts index 06d202dff..7dd4a4b5a 100644 --- a/src/types/actionlib_msgs.ts +++ b/src/types/actionlib_msgs.ts @@ -1,5 +1,5 @@ -import type { std_msgs } from "./std_msgs.js"; -import type { GoalStatus as GoalStatusEnum } from "../core/GoalStatus.js"; +import type { std_msgs } from "./std_msgs.ts"; +import type { GoalStatus as GoalStatusEnum } from "../core/GoalStatus.ts"; export namespace actionlib_msgs { export interface GoalID { diff --git a/src/types/tf2_msgs.ts b/src/types/tf2_msgs.ts index 03966e429..da913784d 100644 --- a/src/types/tf2_msgs.ts +++ b/src/types/tf2_msgs.ts @@ -1,4 +1,4 @@ -import type { geometry_msgs } from "./geometry_msgs"; +import type { geometry_msgs } from "./geometry_msgs.ts"; export namespace tf2_msgs { export interface TFMessage { diff --git a/src/types/tf2_web_republisher.ts b/src/types/tf2_web_republisher.ts index cb18deeda..802f9d9d5 100644 --- a/src/types/tf2_web_republisher.ts +++ b/src/types/tf2_web_republisher.ts @@ -1,5 +1,5 @@ -import type { geometry_msgs } from "./geometry_msgs"; -import type { std_msgs } from "./std_msgs"; +import type { geometry_msgs } from "./geometry_msgs.ts"; +import type { std_msgs } from "./std_msgs.ts"; export namespace tf2_web_republisher { export interface RepublishTFsRequest extends TFSubscriptionGoal { diff --git a/src/urdf/UrdfBox.ts b/src/urdf/UrdfBox.ts index 184a8cb33..ea5180bf6 100644 --- a/src/urdf/UrdfBox.ts +++ b/src/urdf/UrdfBox.ts @@ -4,9 +4,9 @@ * @author Russell Toris - rctoris@wpi.edu */ -import Vector3 from "../math/Vector3.js"; -import { UrdfAttrs, UrdfType, type UrdfDefaultOptions } from "./UrdfTypes.js"; -import type { Optional, Nullable } from "../types/interface-types.js"; +import Vector3 from "../math/Vector3.ts"; +import { UrdfAttrs, UrdfType, type UrdfDefaultOptions } from "./UrdfTypes.ts"; +import type { Optional, Nullable } from "../types/interface-types.ts"; /** * A Box element in a URDF. diff --git a/src/urdf/UrdfColor.ts b/src/urdf/UrdfColor.ts index cc1127aa5..7c30c1bc1 100644 --- a/src/urdf/UrdfColor.ts +++ b/src/urdf/UrdfColor.ts @@ -4,8 +4,8 @@ * @author Russell Toris - rctoris@wpi.edu */ -import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.js"; -import type { Optional } from "../types/interface-types.js"; +import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.ts"; +import type { Optional } from "../types/interface-types.ts"; /** * A Color element in a URDF. diff --git a/src/urdf/UrdfCylinder.ts b/src/urdf/UrdfCylinder.ts index 5b008a5b9..22d05757f 100644 --- a/src/urdf/UrdfCylinder.ts +++ b/src/urdf/UrdfCylinder.ts @@ -4,7 +4,7 @@ * @author Russell Toris - rctoris@wpi.edu */ -import { type UrdfDefaultOptions, UrdfType, UrdfAttrs } from "./UrdfTypes.js"; +import { type UrdfDefaultOptions, UrdfType, UrdfAttrs } from "./UrdfTypes.ts"; /** * A Cylinder element in a URDF. diff --git a/src/urdf/UrdfJoint.ts b/src/urdf/UrdfJoint.ts index 7e0026ff7..c98e95079 100644 --- a/src/urdf/UrdfJoint.ts +++ b/src/urdf/UrdfJoint.ts @@ -3,11 +3,11 @@ * @author David V. Lu!! - davidvlu@gmail.com */ -import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.js"; -import Pose from "../math/Pose.js"; -import Vector3 from "../math/Vector3.js"; -import { parseUrdfOrigin } from "./UrdfUtils.js"; -import type { Nullable } from "../types/interface-types.js"; +import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.ts"; +import Pose from "../math/Pose.ts"; +import Vector3 from "../math/Vector3.ts"; +import { parseUrdfOrigin } from "./UrdfUtils.ts"; +import type { Nullable } from "../types/interface-types.ts"; /** * A Joint element in a URDF. diff --git a/src/urdf/UrdfLink.ts b/src/urdf/UrdfLink.ts index 48ede2a7d..fa8f0a99d 100644 --- a/src/urdf/UrdfLink.ts +++ b/src/urdf/UrdfLink.ts @@ -4,8 +4,8 @@ * @author Russell Toris - rctoris@wpi.edu */ -import UrdfVisual from "./UrdfVisual.js"; -import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.js"; +import UrdfVisual from "./UrdfVisual.ts"; +import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.ts"; /** * A Link element in a URDF. diff --git a/src/urdf/UrdfMaterial.ts b/src/urdf/UrdfMaterial.ts index 385f360aa..6acf17f84 100644 --- a/src/urdf/UrdfMaterial.ts +++ b/src/urdf/UrdfMaterial.ts @@ -4,9 +4,9 @@ * @author Russell Toris - rctoris@wpi.edu */ -import UrdfColor from "./UrdfColor.js"; -import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.js"; -import type { Nullable } from "../types/interface-types.js"; +import UrdfColor from "./UrdfColor.ts"; +import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.ts"; +import type { Nullable } from "../types/interface-types.ts"; /** * A Material element in a URDF. diff --git a/src/urdf/UrdfMesh.ts b/src/urdf/UrdfMesh.ts index c876d1bcc..d165edeea 100644 --- a/src/urdf/UrdfMesh.ts +++ b/src/urdf/UrdfMesh.ts @@ -4,9 +4,9 @@ * @author Russell Toris - rctoris@wpi.edu */ -import Vector3 from "../math/Vector3.js"; -import { UrdfAttrs, type UrdfDefaultOptions, UrdfType } from "./UrdfTypes.js"; -import type { Nullable, Optional } from "../types/interface-types.js"; +import Vector3 from "../math/Vector3.ts"; +import { UrdfAttrs, type UrdfDefaultOptions, UrdfType } from "./UrdfTypes.ts"; +import type { Nullable, Optional } from "../types/interface-types.ts"; /** * A Mesh element in a URDF. diff --git a/src/urdf/UrdfModel.ts b/src/urdf/UrdfModel.ts index 0a8e5cd4e..23aeae79c 100644 --- a/src/urdf/UrdfModel.ts +++ b/src/urdf/UrdfModel.ts @@ -6,11 +6,11 @@ import type { Element } from "@xmldom/xmldom"; import { DOMParser, MIME_TYPE } from "@xmldom/xmldom"; -import UrdfMaterial from "./UrdfMaterial.js"; -import UrdfLink from "./UrdfLink.js"; -import UrdfJoint from "./UrdfJoint.js"; -import { isElement } from "./UrdfUtils.js"; -import { UrdfAttrs } from "./UrdfTypes.js"; +import UrdfMaterial from "./UrdfMaterial.ts"; +import UrdfLink from "./UrdfLink.ts"; +import UrdfJoint from "./UrdfJoint.ts"; +import { isElement } from "./UrdfUtils.ts"; +import { UrdfAttrs } from "./UrdfTypes.ts"; /* * See https://developer.mozilla.org/docs/XPathResult#Constants diff --git a/src/urdf/UrdfSphere.ts b/src/urdf/UrdfSphere.ts index 14968884c..9eec2c428 100644 --- a/src/urdf/UrdfSphere.ts +++ b/src/urdf/UrdfSphere.ts @@ -4,7 +4,7 @@ * @author Russell Toris - rctoris@wpi.edu */ -import { UrdfAttrs, type UrdfDefaultOptions, UrdfType } from "./UrdfTypes.js"; +import { UrdfAttrs, type UrdfDefaultOptions, UrdfType } from "./UrdfTypes.ts"; /** * A Sphere element in a URDF. diff --git a/src/urdf/UrdfUtils.ts b/src/urdf/UrdfUtils.ts index 63940947c..7c3ae5054 100644 --- a/src/urdf/UrdfUtils.ts +++ b/src/urdf/UrdfUtils.ts @@ -1,9 +1,9 @@ /********** Utility Methods for parsing Joint **********/ import type { Element, Node } from "@xmldom/xmldom"; -import Pose from "../math/Pose.js"; -import Quaternion from "../math/Quaternion.js"; -import Vector3 from "../math/Vector3.js"; -import { UrdfAttrs } from "./UrdfTypes.js"; +import Pose from "../math/Pose.ts"; +import Quaternion from "../math/Quaternion.ts"; +import Vector3 from "../math/Vector3.ts"; +import { UrdfAttrs } from "./UrdfTypes.ts"; export function parseUrdfOrigin(originElement: Element): Pose { // Check the XYZ diff --git a/src/urdf/UrdfVisual.ts b/src/urdf/UrdfVisual.ts index 17dc238d7..b7fe0526e 100644 --- a/src/urdf/UrdfVisual.ts +++ b/src/urdf/UrdfVisual.ts @@ -5,14 +5,14 @@ */ import type { Element } from "@xmldom/xmldom"; -import Pose from "../math/Pose.js"; -import UrdfCylinder from "./UrdfCylinder.js"; -import UrdfBox from "./UrdfBox.js"; -import UrdfMaterial from "./UrdfMaterial.js"; -import UrdfMesh from "./UrdfMesh.js"; -import UrdfSphere from "./UrdfSphere.js"; -import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.js"; -import { isElement, parseUrdfOrigin } from "./UrdfUtils.js"; +import Pose from "../math/Pose.ts"; +import UrdfCylinder from "./UrdfCylinder.ts"; +import UrdfBox from "./UrdfBox.ts"; +import UrdfMaterial from "./UrdfMaterial.ts"; +import UrdfMesh from "./UrdfMesh.ts"; +import UrdfSphere from "./UrdfSphere.ts"; +import { UrdfAttrs, type UrdfDefaultOptions } from "./UrdfTypes.ts"; +import { isElement, parseUrdfOrigin } from "./UrdfUtils.ts"; export type UrdfGeometryLike = UrdfMesh | UrdfSphere | UrdfBox | UrdfCylinder; diff --git a/test/cbor.test.ts b/test/cbor.test.ts index d7e436411..b6166ed98 100644 --- a/test/cbor.test.ts +++ b/test/cbor.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from "vitest"; import CBOR from "cbor-js"; -import cborTypedArrayTagger from "../src/util/cborTypedArrayTags.js"; +import cborTypedArrayTagger from "../src/util/cborTypedArrayTags.ts"; /** Convert hex string to ArrayBuffer. */ function hexToBuffer(hex: string) { diff --git a/test/examples/check-topics.example.ts b/test/examples/check-topics.example.ts index c57215a5d..8456d9290 100644 --- a/test/examples/check-topics.example.ts +++ b/test/examples/check-topics.example.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; -import type { rosapi } from "../../src/types/rosapi.js"; +import * as ROSLIB from "../../src/RosLib.ts"; +import type { rosapi } from "../../src/types/rosapi.ts"; const expectedTopics = ["/listener"]; diff --git a/test/examples/fibonacci.example.ts b/test/examples/fibonacci.example.ts index c07514d5e..a4b636284 100644 --- a/test/examples/fibonacci.example.ts +++ b/test/examples/fibonacci.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; // Noetic is the only version of ROS 1 we support, so we skip based on distro name // instead of adding extra plumbing for ROS_VERSION. diff --git a/test/examples/params.example.ts b/test/examples/params.example.ts index 0482b6b8b..1072f32b1 100644 --- a/test/examples/params.example.ts +++ b/test/examples/params.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; const PARAM_NAME = process.env["ROS_DISTRO"] === "noetic" diff --git a/test/examples/pubsub.example.ts b/test/examples/pubsub.example.ts index 10ada69b0..b1f7b6d19 100644 --- a/test/examples/pubsub.example.ts +++ b/test/examples/pubsub.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect, afterAll, vi } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; describe("Topics Example", function () { const ros = new ROSLIB.Ros({ diff --git a/test/examples/tf.example.ts b/test/examples/tf.example.ts index 17c26b16f..d87e0b41d 100644 --- a/test/examples/tf.example.ts +++ b/test/examples/tf.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; // Noetic is the only version of ROS 1 we support, so we skip based on distro name // instead of adding extra plumbing for ROS_VERSION. diff --git a/test/examples/tf_service.example.ts b/test/examples/tf_service.example.ts index e74805c0b..c543c1486 100644 --- a/test/examples/tf_service.example.ts +++ b/test/examples/tf_service.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; // Noetic is the only version of ROS 1 we support, so we skip based on distro name // instead of adding extra plumbing for ROS_VERSION. diff --git a/test/examples/topic-listener.example.ts b/test/examples/topic-listener.example.ts index 7defe06e6..1e953947e 100644 --- a/test/examples/topic-listener.example.ts +++ b/test/examples/topic-listener.example.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from "vitest"; -import * as ROSLIB from "../../src/RosLib.js"; +import * as ROSLIB from "../../src/RosLib.ts"; const ros = new ROSLIB.Ros({ url: "ws://localhost:9090", diff --git a/test/math-examples.test.ts b/test/math-examples.test.ts index 1a65efcc3..88660fe95 100644 --- a/test/math-examples.test.ts +++ b/test/math-examples.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../src/RosLib.js"; +import * as ROSLIB from "../src/RosLib.ts"; describe("Math examples", function () { let v1: ROSLIB.Vector3, diff --git a/test/quaternion.test.ts b/test/quaternion.test.ts index d1ace7f10..244512182 100644 --- a/test/quaternion.test.ts +++ b/test/quaternion.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../src/RosLib.js"; +import * as ROSLIB from "../src/RosLib.ts"; describe("Quaternion", function () { describe("creation", function () { diff --git a/test/ros.test.ts b/test/ros.test.ts index 6937c49f8..363dac42d 100644 --- a/test/ros.test.ts +++ b/test/ros.test.ts @@ -5,10 +5,10 @@ import type { ITransport, ITransportFactory, TransportEvent, -} from "../src/core/transport/Transport.js"; -import { WebSocketTransportFactory } from "../src/core/transport/WebSocketTransportFactory.js"; -import Ros from "../src/core/Ros.js"; -import type { RosbridgeMessage } from "../src/types/protocol.js"; +} from "../src/core/transport/Transport.ts"; +import { WebSocketTransportFactory } from "../src/core/transport/WebSocketTransportFactory.ts"; +import Ros from "../src/core/Ros.ts"; +import type { RosbridgeMessage } from "../src/types/protocol.ts"; describe("Ros", function () { let mockRosUrl: string; diff --git a/test/service.test.ts b/test/service.test.ts index 48bc98ba8..c682370fd 100644 --- a/test/service.test.ts +++ b/test/service.test.ts @@ -1,5 +1,5 @@ import { it, describe, expect, vi } from "vitest"; -import { Service, Ros } from "../src/RosLib"; +import { Service, Ros } from "../src/RosLib.ts"; describe("Service", () => { const ros = new Ros({ diff --git a/test/setup/per-suite-setup.ts b/test/setup/per-suite-setup.ts index c0f11230f..5e896b8b3 100644 --- a/test/setup/per-suite-setup.ts +++ b/test/setup/per-suite-setup.ts @@ -1,5 +1,6 @@ import failOnConsole from "vitest-fail-on-console"; +// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- something wonky is going on with this rule here. failOnConsole({ shouldFailOnWarn: false, }); diff --git a/test/setup/ros-backend.ts b/test/setup/ros-backend.ts index c67f33007..5cfb97df4 100644 --- a/test/setup/ros-backend.ts +++ b/test/setup/ros-backend.ts @@ -4,7 +4,7 @@ */ import Docker from "dockerode"; -import Ros from "../../src/core/Ros.js"; +import Ros from "../../src/core/Ros.ts"; const CONTAINER_NAME = "roslibjs-test-backend"; const CONTAINER_PORT = 9090; diff --git a/test/setup/vitest-setup.ts b/test/setup/vitest-setup.ts index 040d4c773..671ba9cd9 100644 --- a/test/setup/vitest-setup.ts +++ b/test/setup/vitest-setup.ts @@ -3,7 +3,7 @@ * This file sets up and tears down the ROS backend container for all tests */ -import { setupBackend, teardownBackend } from "./ros-backend.js"; +import { setupBackend, teardownBackend } from "./ros-backend.ts"; // Global setup - runs once before all tests export async function setup() { diff --git a/test/tfclient.test.ts b/test/tfclient.test.ts index 19b53c209..e12e7ce31 100644 --- a/test/tfclient.test.ts +++ b/test/tfclient.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../src/RosLib.js"; +import * as ROSLIB from "../src/RosLib.ts"; describe("TFClient", function () { describe("dispose", function () { diff --git a/test/transform.test.ts b/test/transform.test.ts index 5aea85bed..f4e62ce11 100644 --- a/test/transform.test.ts +++ b/test/transform.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../src/RosLib.js"; +import * as ROSLIB from "../src/RosLib.ts"; describe("Transform", function () { describe("creation", function () { diff --git a/test/transport.test.ts b/test/transport.test.ts index e4a840681..9e0cb9003 100644 --- a/test/transport.test.ts +++ b/test/transport.test.ts @@ -2,18 +2,18 @@ import type { MockedObject } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import type { AbstractTransport } from "../src/core/transport/Transport.js"; -import { WebSocketTransportFactory } from "../src/core/transport/WebSocketTransportFactory.js"; +import type { AbstractTransport } from "../src/core/transport/Transport.ts"; +import { WebSocketTransportFactory } from "../src/core/transport/WebSocketTransportFactory.ts"; import type { RosbridgeMessage, RosbridgePngMessage, -} from "../src/types/protocol.js"; +} from "../src/types/protocol.ts"; import CBOR from "cbor-js"; import * as fastpng from "fast-png"; import * as bson from "bson"; import * as ws from "ws"; -import { NativeWebSocketTransport } from "../src/core/transport/NativeWebSocketTransport.js"; -import { WsWebSocketTransport } from "../src/core/transport/WsWebSocketTransport.js"; +import { NativeWebSocketTransport } from "../src/core/transport/NativeWebSocketTransport.ts"; +import { WsWebSocketTransport } from "../src/core/transport/WsWebSocketTransport.ts"; vi.mock("fast-png"); diff --git a/test/urdf.test.ts b/test/urdf.test.ts index 6e280ad81..d8dd82016 100644 --- a/test/urdf.test.ts +++ b/test/urdf.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from "vitest"; -import * as ROSLIB from "../src/RosLib.js"; +import * as ROSLIB from "../src/RosLib.ts"; import { DOMParser } from "@xmldom/xmldom"; -import { UrdfBox, UrdfCylinder, UrdfSphere } from "../src/RosLib.js"; +import { UrdfBox, UrdfCylinder, UrdfSphere } from "../src/RosLib.ts"; const sample_urdf = function () { return ( diff --git a/test/urdfjoint.test.ts b/test/urdfjoint.test.ts index afdcbe9f9..b0e259b6d 100644 --- a/test/urdfjoint.test.ts +++ b/test/urdfjoint.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from "vitest"; import { DOMParser } from "@xmldom/xmldom"; -import UrdfJoint from "../src/urdf/UrdfJoint"; +import UrdfJoint from "../src/urdf/UrdfJoint.ts"; describe("UrdfJoint", () => { it("should parse axis correctly from URDF", () => { diff --git a/tsconfig.json b/tsconfig.json index 1c9b1ff67..a22751772 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,8 +8,8 @@ "DOM", "DOM.Iterable" ] /* Specify library files to be included in the compilation. */, - "module": "esnext" /* Specify what module code is generated. */, - "moduleResolution": "bundler", + "module": "NodeNext" /* Specify what module code is generated. */, + "moduleResolution": "NodeNext", /* JavaScript Support */ "allowJs": false /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, @@ -23,6 +23,7 @@ "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, "skipLibCheck": true /* Skip type checking all .d.ts files. */, "allowImportingTsExtensions": true, + "rewriteRelativeImportExtensions": true, /* Module Options */ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,