master
parent
244dcf3893
commit
52bf4dc0bc
74
index.html
74
index.html
|
|
@ -1,38 +1,38 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>URDF Robot Viewer</title>
|
<title>URDF Robot Viewer</title>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background-color: #111;
|
background-color: #111;
|
||||||
}
|
}
|
||||||
|
|
||||||
#status {
|
#status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
left: 10px;
|
left: 10px;
|
||||||
color: white;
|
color: white;
|
||||||
background: rgba(0, 0, 0, 0.5);
|
background: rgba(0, 0, 0, 0.5);
|
||||||
padding: 6px 10px;
|
padding: 6px 10px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="status">Loading URDF...</div>
|
<div id="status">Loading URDF...</div>
|
||||||
<canvas id="urdf-canvas"></canvas>
|
<canvas id="urdf-canvas"></canvas>
|
||||||
|
|
||||||
|
|
||||||
<!-- Your logic -->
|
<!-- Your logic -->
|
||||||
<script type="module" src="script.js"></script>
|
<script type="module" src="script.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
@ECHO off
|
@ECHO off
|
||||||
GOTO start
|
GOTO start
|
||||||
:find_dp0
|
:find_dp0
|
||||||
SET dp0=%~dp0
|
SET dp0=%~dp0
|
||||||
EXIT /b
|
EXIT /b
|
||||||
:start
|
:start
|
||||||
SETLOCAL
|
SETLOCAL
|
||||||
CALL :find_dp0
|
CALL :find_dp0
|
||||||
|
|
||||||
IF EXIST "%dp0%\node.exe" (
|
IF EXIST "%dp0%\node.exe" (
|
||||||
SET "_prog=%dp0%\node.exe"
|
SET "_prog=%dp0%\node.exe"
|
||||||
) ELSE (
|
) ELSE (
|
||||||
SET "_prog=node"
|
SET "_prog=node"
|
||||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
)
|
)
|
||||||
|
|
||||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
@ECHO off
|
@ECHO off
|
||||||
GOTO start
|
GOTO start
|
||||||
:find_dp0
|
:find_dp0
|
||||||
SET dp0=%~dp0
|
SET dp0=%~dp0
|
||||||
EXIT /b
|
EXIT /b
|
||||||
:start
|
:start
|
||||||
SETLOCAL
|
SETLOCAL
|
||||||
CALL :find_dp0
|
CALL :find_dp0
|
||||||
|
|
||||||
IF EXIST "%dp0%\node.exe" (
|
IF EXIST "%dp0%\node.exe" (
|
||||||
SET "_prog=%dp0%\node.exe"
|
SET "_prog=%dp0%\node.exe"
|
||||||
) ELSE (
|
) ELSE (
|
||||||
SET "_prog=node"
|
SET "_prog=node"
|
||||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
)
|
)
|
||||||
|
|
||||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
@ECHO off
|
@ECHO off
|
||||||
GOTO start
|
GOTO start
|
||||||
:find_dp0
|
:find_dp0
|
||||||
SET dp0=%~dp0
|
SET dp0=%~dp0
|
||||||
EXIT /b
|
EXIT /b
|
||||||
:start
|
:start
|
||||||
SETLOCAL
|
SETLOCAL
|
||||||
CALL :find_dp0
|
CALL :find_dp0
|
||||||
|
|
||||||
IF EXIST "%dp0%\node.exe" (
|
IF EXIST "%dp0%\node.exe" (
|
||||||
SET "_prog=%dp0%\node.exe"
|
SET "_prog=%dp0%\node.exe"
|
||||||
) ELSE (
|
) ELSE (
|
||||||
SET "_prog=node"
|
SET "_prog=node"
|
||||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
)
|
)
|
||||||
|
|
||||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*|*MINGW*|*MSYS*)
|
|
||||||
if command -v cygpath > /dev/null 2>&1; then
|
|
||||||
basedir=`cygpath -w "$basedir"`
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
|
|
||||||
else
|
|
||||||
exec node "$basedir/../vite/bin/vite.js" "$@"
|
|
||||||
fi
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
../vite/bin/vite.js
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
@ECHO off
|
@ECHO off
|
||||||
GOTO start
|
GOTO start
|
||||||
:find_dp0
|
:find_dp0
|
||||||
SET dp0=%~dp0
|
SET dp0=%~dp0
|
||||||
EXIT /b
|
EXIT /b
|
||||||
:start
|
:start
|
||||||
SETLOCAL
|
SETLOCAL
|
||||||
CALL :find_dp0
|
CALL :find_dp0
|
||||||
|
|
||||||
IF EXIST "%dp0%\node.exe" (
|
IF EXIST "%dp0%\node.exe" (
|
||||||
SET "_prog=%dp0%\node.exe"
|
SET "_prog=%dp0%\node.exe"
|
||||||
) ELSE (
|
) ELSE (
|
||||||
SET "_prog=node"
|
SET "_prog=node"
|
||||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
)
|
)
|
||||||
|
|
||||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,23 @@
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
|
"node_modules/@esbuild/linux-x64": {
|
||||||
|
"version": "0.25.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
|
||||||
|
"integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@esbuild/win32-x64": {
|
"node_modules/@esbuild/win32-x64": {
|
||||||
"version": "0.25.12",
|
"version": "0.25.12",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
|
||||||
|
|
@ -21,6 +38,34 @@
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||||
|
"version": "4.52.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz",
|
||||||
|
"integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||||
|
"version": "4.52.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz",
|
||||||
|
"integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
||||||
"version": "4.52.5",
|
"version": "4.52.5",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz",
|
||||||
|
|
@ -260,11 +305,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "7.1.12",
|
"version": "7.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz",
|
||||||
"integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==",
|
"integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"fdir": "^6.5.0",
|
"fdir": "^6.5.0",
|
||||||
|
|
|
||||||
|
|
@ -1,52 +1,37 @@
|
||||||
{
|
{
|
||||||
"hash": "d903b885",
|
"hash": "9696e02b",
|
||||||
"configHash": "3e836f7b",
|
"configHash": "e103e9de",
|
||||||
"lockfileHash": "e28807c3",
|
"lockfileHash": "8d45ad8a",
|
||||||
"browserHash": "9a7a5c1b",
|
"browserHash": "8e3e062d",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"three": {
|
"three": {
|
||||||
"src": "../../three/build/three.module.js",
|
"src": "../../three/build/three.module.js",
|
||||||
"file": "three.js",
|
"file": "three.js",
|
||||||
"fileHash": "357a2d6a",
|
"fileHash": "acdec5e5",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"three/examples/jsm/controls/OrbitControls.js": {
|
"three/examples/jsm/controls/OrbitControls.js": {
|
||||||
"src": "../../three/examples/jsm/controls/OrbitControls.js",
|
"src": "../../three/examples/jsm/controls/OrbitControls.js",
|
||||||
"file": "three_examples_jsm_controls_OrbitControls__js.js",
|
"file": "three_examples_jsm_controls_OrbitControls__js.js",
|
||||||
"fileHash": "06df99c3",
|
"fileHash": "c1a4f949",
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"three/examples/jsm/controls/TransformControls.js": {
|
|
||||||
"src": "../../three/examples/jsm/controls/TransformControls.js",
|
|
||||||
"file": "three_examples_jsm_controls_TransformControls__js.js",
|
|
||||||
"fileHash": "0772f5bb",
|
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"three/examples/jsm/loaders/ColladaLoader.js": {
|
"three/examples/jsm/loaders/ColladaLoader.js": {
|
||||||
"src": "../../three/examples/jsm/loaders/ColladaLoader.js",
|
"src": "../../three/examples/jsm/loaders/ColladaLoader.js",
|
||||||
"file": "three_examples_jsm_loaders_ColladaLoader__js.js",
|
"file": "three_examples_jsm_loaders_ColladaLoader__js.js",
|
||||||
"fileHash": "9054d4c1",
|
"fileHash": "dcb1087e",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"three/examples/jsm/loaders/STLLoader.js": {
|
"three/examples/jsm/loaders/STLLoader.js": {
|
||||||
"src": "../../three/examples/jsm/loaders/STLLoader.js",
|
"src": "../../three/examples/jsm/loaders/STLLoader.js",
|
||||||
"file": "three_examples_jsm_loaders_STLLoader__js.js",
|
"file": "three_examples_jsm_loaders_STLLoader__js.js",
|
||||||
"fileHash": "3632de55",
|
"fileHash": "618ff280",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
|
||||||
"esbuild": {
|
|
||||||
"src": "../../esbuild/lib/main.js",
|
|
||||||
"file": "esbuild.js",
|
|
||||||
"fileHash": "0a908aaf",
|
|
||||||
"needsInterop": true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chunks": {
|
"chunks": {
|
||||||
"chunk-22FAE54D": {
|
"chunk-5P7KF7VS": {
|
||||||
"file": "chunk-22FAE54D.js"
|
"file": "chunk-5P7KF7VS.js"
|
||||||
},
|
|
||||||
"chunk-VUNV25KB": {
|
|
||||||
"file": "chunk-VUNV25KB.js"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
12
node_modules/.vite/deps/chunk-22FAE54D.js → node_modules/.vite/deps/chunk-5P7KF7VS.js
generated
vendored
12
node_modules/.vite/deps/chunk-22FAE54D.js → node_modules/.vite/deps/chunk-5P7KF7VS.js
generated
vendored
|
|
@ -44170,14 +44170,4 @@ export {
|
||||||
WebGLUtils,
|
WebGLUtils,
|
||||||
WebGLRenderer
|
WebGLRenderer
|
||||||
};
|
};
|
||||||
/*! Bundled license information:
|
//# sourceMappingURL=chunk-5P7KF7VS.js.map
|
||||||
|
|
||||||
three/build/three.core.js:
|
|
||||||
three/build/three.module.js:
|
|
||||||
(**
|
|
||||||
* @license
|
|
||||||
* Copyright 2010-2025 Three.js Authors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*)
|
|
||||||
*/
|
|
||||||
//# sourceMappingURL=chunk-22FAE54D.js.map
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
||||||
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
||||||
}) : x)(function(x) {
|
|
||||||
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
||||||
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
||||||
});
|
|
||||||
var __commonJS = (cb, mod) => function __require2() {
|
|
||||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
||||||
};
|
|
||||||
|
|
||||||
export {
|
|
||||||
__require,
|
|
||||||
__commonJS
|
|
||||||
};
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"sources": [],
|
|
||||||
"sourcesContent": [],
|
|
||||||
"mappings": "",
|
|
||||||
"names": []
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -427,8 +427,7 @@ import {
|
||||||
setConsoleFunction,
|
setConsoleFunction,
|
||||||
warn,
|
warn,
|
||||||
warnOnce
|
warnOnce
|
||||||
} from "./chunk-22FAE54D.js";
|
} from "./chunk-5P7KF7VS.js";
|
||||||
import "./chunk-VUNV25KB.js";
|
|
||||||
export {
|
export {
|
||||||
ACESFilmicToneMapping,
|
ACESFilmicToneMapping,
|
||||||
AddEquation,
|
AddEquation,
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,7 @@ import {
|
||||||
TOUCH,
|
TOUCH,
|
||||||
Vector2,
|
Vector2,
|
||||||
Vector3
|
Vector3
|
||||||
} from "./chunk-22FAE54D.js";
|
} from "./chunk-5P7KF7VS.js";
|
||||||
import "./chunk-VUNV25KB.js";
|
|
||||||
|
|
||||||
// node_modules/three/examples/jsm/controls/OrbitControls.js
|
// node_modules/three/examples/jsm/controls/OrbitControls.js
|
||||||
var _changeEvent = { type: "change" };
|
var _changeEvent = { type: "change" };
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
1121
node_modules/.vite/deps/three_examples_jsm_controls_TransformControls__js.js
generated
vendored
1121
node_modules/.vite/deps/three_examples_jsm_controls_TransformControls__js.js
generated
vendored
File diff suppressed because it is too large
Load Diff
7
node_modules/.vite/deps/three_examples_jsm_controls_TransformControls__js.js.map
generated
vendored
7
node_modules/.vite/deps/three_examples_jsm_controls_TransformControls__js.js.map
generated
vendored
File diff suppressed because one or more lines are too long
|
|
@ -40,8 +40,7 @@ import {
|
||||||
Vector2,
|
Vector2,
|
||||||
Vector3,
|
Vector3,
|
||||||
VectorKeyframeTrack
|
VectorKeyframeTrack
|
||||||
} from "./chunk-22FAE54D.js";
|
} from "./chunk-5P7KF7VS.js";
|
||||||
import "./chunk-VUNV25KB.js";
|
|
||||||
|
|
||||||
// node_modules/three/examples/jsm/loaders/TGALoader.js
|
// node_modules/three/examples/jsm/loaders/TGALoader.js
|
||||||
var TGALoader = class extends DataTextureLoader {
|
var TGALoader = class extends DataTextureLoader {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -7,8 +7,7 @@ import {
|
||||||
Loader,
|
Loader,
|
||||||
SRGBColorSpace,
|
SRGBColorSpace,
|
||||||
Vector3
|
Vector3
|
||||||
} from "./chunk-22FAE54D.js";
|
} from "./chunk-5P7KF7VS.js";
|
||||||
import "./chunk-VUNV25KB.js";
|
|
||||||
|
|
||||||
// node_modules/three/examples/jsm/loaders/STLLoader.js
|
// node_modules/three/examples/jsm/loaders/STLLoader.js
|
||||||
var STLLoader = class extends Loader {
|
var STLLoader = class extends Loader {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,3 @@
|
||||||
|
# esbuild
|
||||||
|
|
||||||
|
This is the Linux 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"name": "@esbuild/linux-x64",
|
||||||
|
"version": "0.25.12",
|
||||||
|
"description": "The Linux 64-bit binary for esbuild, a JavaScript bundler.",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/evanw/esbuild.git"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"preferUnplugged": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# `@rollup/rollup-linux-x64-gnu`
|
||||||
|
|
||||||
|
This is the **x86_64-unknown-linux-gnu** binary for `rollup`
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"name": "@rollup/rollup-linux-x64-gnu",
|
||||||
|
"version": "4.52.5",
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"rollup.linux-x64-gnu.node"
|
||||||
|
],
|
||||||
|
"description": "Native bindings for Rollup",
|
||||||
|
"author": "Lukas Taegert-Atkinson",
|
||||||
|
"homepage": "https://rollupjs.org/",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/rollup/rollup.git"
|
||||||
|
},
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"main": "./rollup.linux-x64-gnu.node"
|
||||||
|
}
|
||||||
BIN
node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node
generated
vendored
Normal file
BIN
node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node
generated
vendored
Normal file
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
||||||
|
# `@rollup/rollup-linux-x64-musl`
|
||||||
|
|
||||||
|
This is the **x86_64-unknown-linux-musl** binary for `rollup`
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"name": "@rollup/rollup-linux-x64-musl",
|
||||||
|
"version": "4.52.5",
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"rollup.linux-x64-musl.node"
|
||||||
|
],
|
||||||
|
"description": "Native bindings for Rollup",
|
||||||
|
"author": "Lukas Taegert-Atkinson",
|
||||||
|
"homepage": "https://rollupjs.org/",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/rollup/rollup.git"
|
||||||
|
},
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"main": "./rollup.linux-x64-musl.node"
|
||||||
|
}
|
||||||
BIN
node_modules/@rollup/rollup-linux-x64-musl/rollup.linux-x64-musl.node
generated
vendored
Normal file
BIN
node_modules/@rollup/rollup-linux-x64-musl/rollup.linux-x64-musl.node
generated
vendored
Normal file
Binary file not shown.
|
|
@ -1,15 +1,15 @@
|
||||||
# Installation
|
# Installation
|
||||||
> `npm install --save @types/estree`
|
> `npm install --save @types/estree`
|
||||||
|
|
||||||
# Summary
|
# Summary
|
||||||
This package contains type definitions for estree (https://github.com/estree/estree).
|
This package contains type definitions for estree (https://github.com/estree/estree).
|
||||||
|
|
||||||
# Details
|
# Details
|
||||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
|
||||||
|
|
||||||
### Additional Details
|
### Additional Details
|
||||||
* Last updated: Fri, 06 Jun 2025 00:04:33 GMT
|
* Last updated: Fri, 06 Jun 2025 00:04:33 GMT
|
||||||
* Dependencies: none
|
* Dependencies: none
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
These definitions were written by [RReverser](https://github.com/RReverser).
|
These definitions were written by [RReverser](https://github.com/RReverser).
|
||||||
|
|
|
||||||
|
|
@ -1246,76 +1246,76 @@ yargsParser.camelCase = camelCase;
|
||||||
yargsParser.decamelize = decamelize;
|
yargsParser.decamelize = decamelize;
|
||||||
yargsParser.looksLikeNumber = looksLikeNumber;
|
yargsParser.looksLikeNumber = looksLikeNumber;
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
Copyright (c) Microsoft Corporation.
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
||||||
|
|
||||||
|
|
||||||
function __addDisposableResource(env, value, async) {
|
function __addDisposableResource(env, value, async) {
|
||||||
if (value !== null && value !== void 0) {
|
if (value !== null && value !== void 0) {
|
||||||
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
||||||
var dispose, inner;
|
var dispose, inner;
|
||||||
if (async) {
|
if (async) {
|
||||||
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
||||||
dispose = value[Symbol.asyncDispose];
|
dispose = value[Symbol.asyncDispose];
|
||||||
}
|
}
|
||||||
if (dispose === void 0) {
|
if (dispose === void 0) {
|
||||||
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
||||||
dispose = value[Symbol.dispose];
|
dispose = value[Symbol.dispose];
|
||||||
if (async) inner = dispose;
|
if (async) inner = dispose;
|
||||||
}
|
}
|
||||||
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
||||||
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
||||||
env.stack.push({ value: value, dispose: dispose, async: async });
|
env.stack.push({ value: value, dispose: dispose, async: async });
|
||||||
}
|
}
|
||||||
else if (async) {
|
else if (async) {
|
||||||
env.stack.push({ async: true });
|
env.stack.push({ async: true });
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
||||||
var e = new Error(message);
|
var e = new Error(message);
|
||||||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
||||||
};
|
};
|
||||||
|
|
||||||
function __disposeResources(env) {
|
function __disposeResources(env) {
|
||||||
function fail(e) {
|
function fail(e) {
|
||||||
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
||||||
env.hasError = true;
|
env.hasError = true;
|
||||||
}
|
}
|
||||||
var r, s = 0;
|
var r, s = 0;
|
||||||
function next() {
|
function next() {
|
||||||
while (r = env.stack.pop()) {
|
while (r = env.stack.pop()) {
|
||||||
try {
|
try {
|
||||||
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
||||||
if (r.dispose) {
|
if (r.dispose) {
|
||||||
var result = r.dispose.call(r.value);
|
var result = r.dispose.call(r.value);
|
||||||
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
||||||
}
|
}
|
||||||
else s |= 1;
|
else s |= 1;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
fail(e);
|
fail(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
||||||
if (env.hasError) throw env.error;
|
if (env.hasError) throw env.error;
|
||||||
}
|
}
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;
|
const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ BSD-2-Clause, CC0-1.0, ISC, MIT
|
||||||
## @jridgewell/gen-mapping, @jridgewell/remapping, @jridgewell/sourcemap-codec, @jridgewell/trace-mapping
|
## @jridgewell/gen-mapping, @jridgewell/remapping, @jridgewell/sourcemap-codec, @jridgewell/trace-mapping
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Justin Ridgewell
|
By: Justin Ridgewell
|
||||||
Repositories: git+https://github.com/jridgewell/sourcemaps.git, git+https://github.com/jridgewell/sourcemaps.git, git+https://github.com/jridgewell/sourcemaps.git, git+https://github.com/jridgewell/sourcemaps.git
|
Repositories: https://github.com/jridgewell/sourcemaps, https://github.com/jridgewell/sourcemaps, https://github.com/jridgewell/sourcemaps, https://github.com/jridgewell/sourcemaps
|
||||||
|
|
||||||
> Copyright 2024 Justin Ridgewell <justin@ridgewell.name>
|
> Copyright 2024 Justin Ridgewell <justin@ridgewell.name>
|
||||||
>
|
>
|
||||||
|
|
@ -84,20 +84,20 @@ Repository: https://github.com/jridgewell/resolve-uri
|
||||||
|
|
||||||
## @polka/compression
|
## @polka/compression
|
||||||
License: MIT
|
License: MIT
|
||||||
Repository: lukeed/polka
|
Repository: https://github.com/lukeed/polka
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
## @polka/url
|
## @polka/url
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Luke Edwards
|
By: Luke Edwards
|
||||||
Repository: lukeed/polka
|
Repository: https://github.com/lukeed/polka
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
## @rolldown/pluginutils
|
## @rolldown/pluginutils
|
||||||
License: MIT
|
License: MIT
|
||||||
Repository: git+https://github.com/rolldown/rolldown.git
|
Repository: https://github.com/rolldown/rolldown
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -130,19 +130,19 @@ Repository: git+https://github.com/rolldown/rolldown.git
|
||||||
## @rollup/plugin-alias, @rollup/plugin-commonjs, @rollup/plugin-dynamic-import-vars, @rollup/pluginutils
|
## @rollup/plugin-alias, @rollup/plugin-commonjs, @rollup/plugin-dynamic-import-vars, @rollup/pluginutils
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Johannes Stein
|
By: Johannes Stein
|
||||||
Repository: rollup/plugins
|
Repository: https://github.com/rollup/plugins
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Rich Harris
|
By: Rich Harris
|
||||||
Repository: rollup/plugins
|
Repository: https://github.com/rollup/plugins
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
By: LarsDenBakker
|
By: LarsDenBakker
|
||||||
Repository: rollup/plugins
|
Repository: https://github.com/rollup/plugins
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Rich Harris
|
By: Rich Harris
|
||||||
Repository: rollup/plugins
|
Repository: https://github.com/rollup/plugins
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -194,7 +194,7 @@ Repository: https://github.com/micromatch/anymatch
|
||||||
## artichokie
|
## artichokie
|
||||||
License: MIT
|
License: MIT
|
||||||
By: sapphi-red, Evan You
|
By: sapphi-red, Evan You
|
||||||
Repository: git+https://github.com/sapphi-red/artichokie.git
|
Repository: https://github.com/sapphi-red/artichokie
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -224,7 +224,7 @@ Repository: git+https://github.com/sapphi-red/artichokie.git
|
||||||
## binary-extensions
|
## binary-extensions
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Sindre Sorhus
|
By: Sindre Sorhus
|
||||||
Repository: sindresorhus/binary-extensions
|
Repository: https://github.com/sindresorhus/binary-extensions
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -242,15 +242,15 @@ Repository: sindresorhus/binary-extensions
|
||||||
## braces, fill-range, is-number
|
## braces, fill-range, is-number
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Brian Woodward, Elan Shanker, Eugene Sharygin, hemanth.hm
|
By: Jon Schlinkert, Brian Woodward, Elan Shanker, Eugene Sharygin, hemanth.hm
|
||||||
Repository: micromatch/braces
|
Repository: https://github.com/micromatch/braces
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Edo Rivai, Paul Miller, Rouven Weßling
|
By: Jon Schlinkert, Edo Rivai, Paul Miller, Rouven Weßling
|
||||||
Repository: jonschlinkert/fill-range
|
Repository: https://github.com/jonschlinkert/fill-range
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Olsten Larck, Rouven Weßling
|
By: Jon Schlinkert, Olsten Larck, Rouven Weßling
|
||||||
Repository: jonschlinkert/is-number
|
Repository: https://github.com/jonschlinkert/is-number
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -279,7 +279,7 @@ Repository: jonschlinkert/is-number
|
||||||
## bundle-name, default-browser, default-browser-id, define-lazy-prop, is-docker, is-inside-container, is-wsl, open, run-applescript, wsl-utils
|
## bundle-name, default-browser, default-browser-id, define-lazy-prop, is-docker, is-inside-container, is-wsl, open, run-applescript, wsl-utils
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Sindre Sorhus
|
By: Sindre Sorhus
|
||||||
Repositories: sindresorhus/bundle-name, sindresorhus/default-browser, sindresorhus/default-browser-id, sindresorhus/define-lazy-prop, sindresorhus/is-docker, sindresorhus/is-inside-container, sindresorhus/is-wsl, sindresorhus/open, sindresorhus/run-applescript, sindresorhus/wsl-utils
|
Repositories: https://github.com/sindresorhus/bundle-name, https://github.com/sindresorhus/default-browser, https://github.com/sindresorhus/default-browser-id, https://github.com/sindresorhus/define-lazy-prop, https://github.com/sindresorhus/is-docker, https://github.com/sindresorhus/is-inside-container, https://github.com/sindresorhus/is-wsl, https://github.com/sindresorhus/open, https://github.com/sindresorhus/run-applescript, https://github.com/sindresorhus/wsl-utils
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -296,7 +296,7 @@ Repositories: sindresorhus/bundle-name, sindresorhus/default-browser, sindresorh
|
||||||
## cac
|
## cac
|
||||||
License: MIT
|
License: MIT
|
||||||
By: egoist
|
By: egoist
|
||||||
Repository: egoist/cac
|
Repository: https://github.com/egoist/cac
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -325,7 +325,7 @@ Repository: egoist/cac
|
||||||
## chokidar
|
## chokidar
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Paul Miller, Elan Shanker
|
By: Paul Miller, Elan Shanker
|
||||||
Repository: git+https://github.com/paulmillr/chokidar.git
|
Repository: https://github.com/paulmillr/chokidar
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -354,7 +354,7 @@ Repository: git+https://github.com/paulmillr/chokidar.git
|
||||||
## commondir, shell-quote
|
## commondir, shell-quote
|
||||||
License: MIT
|
License: MIT
|
||||||
By: James Halliday
|
By: James Halliday
|
||||||
Repositories: http://github.com/substack/node-commondir.git, http://github.com/ljharb/shell-quote.git
|
Repositories: http://github.com/substack/node-commondir, http://github.com/ljharb/shell-quote
|
||||||
|
|
||||||
> The MIT License
|
> The MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -386,7 +386,7 @@ Repositories: http://github.com/substack/node-commondir.git, http://github.com/l
|
||||||
## connect
|
## connect
|
||||||
License: MIT
|
License: MIT
|
||||||
By: TJ Holowaychuk, Douglas Christopher Wilson, Jonathan Ong, Tim Caswell
|
By: TJ Holowaychuk, Douglas Christopher Wilson, Jonathan Ong, Tim Caswell
|
||||||
Repository: senchalabs/connect
|
Repository: https://github.com/senchalabs/connect
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -419,7 +419,7 @@ Repository: senchalabs/connect
|
||||||
## convert-source-map
|
## convert-source-map
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Thorsten Lorenz
|
By: Thorsten Lorenz
|
||||||
Repository: git://github.com/thlorenz/convert-source-map.git
|
Repository: https://github.com/thlorenz/convert-source-map
|
||||||
|
|
||||||
> Copyright 2013 Thorsten Lorenz.
|
> Copyright 2013 Thorsten Lorenz.
|
||||||
> All rights reserved.
|
> All rights reserved.
|
||||||
|
|
@ -450,7 +450,7 @@ Repository: git://github.com/thlorenz/convert-source-map.git
|
||||||
## cors
|
## cors
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Troy Goode
|
By: Troy Goode
|
||||||
Repository: expressjs/cors
|
Repository: https://github.com/expressjs/cors
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -480,7 +480,7 @@ Repository: expressjs/cors
|
||||||
## cross-spawn
|
## cross-spawn
|
||||||
License: MIT
|
License: MIT
|
||||||
By: André Cruz
|
By: André Cruz
|
||||||
Repository: git@github.com:moxystudio/node-cross-spawn.git
|
Repository: https://github.com/moxystudio/node-cross-spawn
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -509,7 +509,7 @@ Repository: git@github.com:moxystudio/node-cross-spawn.git
|
||||||
## cssesc
|
## cssesc
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Mathias Bynens
|
By: Mathias Bynens
|
||||||
Repository: https://github.com/mathiasbynens/cssesc.git
|
Repository: https://github.com/mathiasbynens/cssesc
|
||||||
|
|
||||||
> Copyright Mathias Bynens <https://mathiasbynens.be/>
|
> Copyright Mathias Bynens <https://mathiasbynens.be/>
|
||||||
>
|
>
|
||||||
|
|
@ -537,7 +537,7 @@ Repository: https://github.com/mathiasbynens/cssesc.git
|
||||||
## debug
|
## debug
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Josh Junon, TJ Holowaychuk, Nathan Rajlich, Andrew Rhyne
|
By: Josh Junon, TJ Holowaychuk, Nathan Rajlich, Andrew Rhyne
|
||||||
Repository: git://github.com/debug-js/debug.git
|
Repository: https://github.com/debug-js/debug
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -563,7 +563,7 @@ Repository: git://github.com/debug-js/debug.git
|
||||||
|
|
||||||
## dotenv
|
## dotenv
|
||||||
License: BSD-2-Clause
|
License: BSD-2-Clause
|
||||||
Repository: git://github.com/motdotla/dotenv.git
|
Repository: https://github.com/motdotla/dotenv
|
||||||
|
|
||||||
> Copyright (c) 2015, Scott Motte
|
> Copyright (c) 2015, Scott Motte
|
||||||
> All rights reserved.
|
> All rights reserved.
|
||||||
|
|
@ -625,7 +625,7 @@ Repository: https://github.com/motdotla/dotenv-expand
|
||||||
## ee-first
|
## ee-first
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jonathan Ong, Douglas Christopher Wilson
|
By: Jonathan Ong, Douglas Christopher Wilson
|
||||||
Repository: jonathanong/ee-first
|
Repository: https://github.com/jonathanong/ee-first
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -654,7 +654,7 @@ Repository: jonathanong/ee-first
|
||||||
## encodeurl
|
## encodeurl
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson
|
By: Douglas Christopher Wilson
|
||||||
Repository: pillarjs/encodeurl
|
Repository: https://github.com/pillarjs/encodeurl
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -684,7 +684,7 @@ Repository: pillarjs/encodeurl
|
||||||
## entities
|
## entities
|
||||||
License: BSD-2-Clause
|
License: BSD-2-Clause
|
||||||
By: Felix Boehm
|
By: Felix Boehm
|
||||||
Repository: git://github.com/fb55/entities.git
|
Repository: https://github.com/fb55/entities
|
||||||
|
|
||||||
> Copyright (c) Felix Böhm
|
> Copyright (c) Felix Böhm
|
||||||
> All rights reserved.
|
> All rights reserved.
|
||||||
|
|
@ -703,7 +703,7 @@ Repository: git://github.com/fb55/entities.git
|
||||||
## es-module-lexer
|
## es-module-lexer
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Guy Bedford
|
By: Guy Bedford
|
||||||
Repository: git+https://github.com/guybedford/es-module-lexer.git
|
Repository: https://github.com/guybedford/es-module-lexer
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
> -----------
|
> -----------
|
||||||
|
|
@ -720,7 +720,7 @@ Repository: git+https://github.com/guybedford/es-module-lexer.git
|
||||||
|
|
||||||
## escape-html
|
## escape-html
|
||||||
License: MIT
|
License: MIT
|
||||||
Repository: component/escape-html
|
Repository: https://github.com/component/escape-html
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -767,7 +767,7 @@ Repository: https://github.com/Rich-Harris/estree-walker
|
||||||
## etag
|
## etag
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson, David Björklund
|
By: Douglas Christopher Wilson, David Björklund
|
||||||
Repository: jshttp/etag
|
Repository: https://github.com/jshttp/etag
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -797,7 +797,7 @@ Repository: jshttp/etag
|
||||||
## finalhandler
|
## finalhandler
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson
|
By: Douglas Christopher Wilson
|
||||||
Repository: pillarjs/finalhandler
|
Repository: https://github.com/pillarjs/finalhandler
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -827,7 +827,7 @@ Repository: pillarjs/finalhandler
|
||||||
## follow-redirects
|
## follow-redirects
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Ruben Verborgh, Olivier Lalonde, James Talmage
|
By: Ruben Verborgh, Olivier Lalonde, James Talmage
|
||||||
Repository: git+ssh://git@github.com/follow-redirects/follow-redirects.git
|
Repository: https://github.com/follow-redirects/follow-redirects
|
||||||
|
|
||||||
> Copyright 2014–present Olivier Lalonde <olalonde@gmail.com>, James Talmage <james@talmage.io>, Ruben Verborgh
|
> Copyright 2014–present Olivier Lalonde <olalonde@gmail.com>, James Talmage <james@talmage.io>, Ruben Verborgh
|
||||||
>
|
>
|
||||||
|
|
@ -853,7 +853,7 @@ Repository: git+ssh://git@github.com/follow-redirects/follow-redirects.git
|
||||||
## generic-names
|
## generic-names
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Alexey Litvinov
|
By: Alexey Litvinov
|
||||||
Repository: git+https://github.com/css-modules/generic-names.git
|
Repository: https://github.com/css-modules/generic-names
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -882,7 +882,7 @@ Repository: git+https://github.com/css-modules/generic-names.git
|
||||||
## glob-parent
|
## glob-parent
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Gulp Team, Elan Shanker, Blaine Bublitz
|
By: Gulp Team, Elan Shanker, Blaine Bublitz
|
||||||
Repository: gulpjs/glob-parent
|
Repository: https://github.com/gulpjs/glob-parent
|
||||||
|
|
||||||
> The ISC License
|
> The ISC License
|
||||||
>
|
>
|
||||||
|
|
@ -905,7 +905,7 @@ Repository: gulpjs/glob-parent
|
||||||
## host-validation-middleware
|
## host-validation-middleware
|
||||||
License: MIT
|
License: MIT
|
||||||
By: sapphi-red
|
By: sapphi-red
|
||||||
Repository: git+https://github.com/sapphi-red/host-validation-middleware.git
|
Repository: https://github.com/sapphi-red/host-validation-middleware
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -934,7 +934,7 @@ Repository: git+https://github.com/sapphi-red/host-validation-middleware.git
|
||||||
## http-proxy-3
|
## http-proxy-3
|
||||||
License: MIT
|
License: MIT
|
||||||
By: William Stein, Charlie Robbins, Jimb Esser, jcrugzz
|
By: William Stein, Charlie Robbins, Jimb Esser, jcrugzz
|
||||||
Repository: https://github.com/sagemathinc/http-proxy-3.git
|
Repository: https://github.com/sagemathinc/http-proxy-3
|
||||||
|
|
||||||
> node-http-3
|
> node-http-3
|
||||||
>
|
>
|
||||||
|
|
@ -964,7 +964,7 @@ Repository: https://github.com/sagemathinc/http-proxy-3.git
|
||||||
## icss-utils
|
## icss-utils
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Glen Maddern
|
By: Glen Maddern
|
||||||
Repository: git+https://github.com/css-modules/icss-utils.git
|
Repository: https://github.com/css-modules/icss-utils
|
||||||
|
|
||||||
> ISC License (ISC)
|
> ISC License (ISC)
|
||||||
> Copyright 2018 Glen Maddern
|
> Copyright 2018 Glen Maddern
|
||||||
|
|
@ -978,7 +978,7 @@ Repository: git+https://github.com/css-modules/icss-utils.git
|
||||||
## is-binary-path
|
## is-binary-path
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Sindre Sorhus
|
By: Sindre Sorhus
|
||||||
Repository: sindresorhus/is-binary-path
|
Repository: https://github.com/sindresorhus/is-binary-path
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -995,7 +995,7 @@ Repository: sindresorhus/is-binary-path
|
||||||
## is-extglob
|
## is-extglob
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert
|
By: Jon Schlinkert
|
||||||
Repository: jonschlinkert/is-extglob
|
Repository: https://github.com/jonschlinkert/is-extglob
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1024,7 +1024,7 @@ Repository: jonschlinkert/is-extglob
|
||||||
## is-glob
|
## is-glob
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Brian Woodward, Daniel Perez
|
By: Jon Schlinkert, Brian Woodward, Daniel Perez
|
||||||
Repository: micromatch/is-glob
|
Repository: https://github.com/micromatch/is-glob
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1053,14 +1053,14 @@ Repository: micromatch/is-glob
|
||||||
## is-reference
|
## is-reference
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Rich Harris
|
By: Rich Harris
|
||||||
Repository: git+https://github.com/Rich-Harris/is-reference.git
|
Repository: https://github.com/Rich-Harris/is-reference
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
## isexe, which
|
## isexe, which
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Isaac Z. Schlueter
|
By: Isaac Z. Schlueter
|
||||||
Repositories: git+https://github.com/isaacs/isexe.git, git://github.com/isaacs/node-which.git
|
Repositories: https://github.com/isaacs/isexe, https://github.com/isaacs/node-which
|
||||||
|
|
||||||
> The ISC License
|
> The ISC License
|
||||||
>
|
>
|
||||||
|
|
@ -1083,7 +1083,7 @@ Repositories: git+https://github.com/isaacs/isexe.git, git://github.com/isaacs/n
|
||||||
## js-tokens
|
## js-tokens
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Simon Lydell
|
By: Simon Lydell
|
||||||
Repository: lydell/js-tokens
|
Repository: https://github.com/lydell/js-tokens
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1112,7 +1112,7 @@ Repository: lydell/js-tokens
|
||||||
## launch-editor, launch-editor-middleware
|
## launch-editor, launch-editor-middleware
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Evan You
|
By: Evan You
|
||||||
Repositories: git+https://github.com/yyx990803/launch-editor.git, git+https://github.com/yyx990803/launch-editor.git
|
Repositories: https://github.com/yyx990803/launch-editor, https://github.com/yyx990803/launch-editor
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1170,7 +1170,7 @@ Repository: https://github.com/antonk52/lilconfig
|
||||||
## loader-utils
|
## loader-utils
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Tobias Koppers @sokra
|
By: Tobias Koppers @sokra
|
||||||
Repository: https://github.com/webpack/loader-utils.git
|
Repository: https://github.com/webpack/loader-utils
|
||||||
|
|
||||||
> Copyright JS Foundation and other contributors
|
> Copyright JS Foundation and other contributors
|
||||||
>
|
>
|
||||||
|
|
@ -1198,7 +1198,7 @@ Repository: https://github.com/webpack/loader-utils.git
|
||||||
## lodash.camelcase
|
## lodash.camelcase
|
||||||
License: MIT
|
License: MIT
|
||||||
By: John-David Dalton, Blaine Bublitz, Mathias Bynens
|
By: John-David Dalton, Blaine Bublitz, Mathias Bynens
|
||||||
Repository: lodash/lodash
|
Repository: https://github.com/lodash/lodash
|
||||||
|
|
||||||
> Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
> Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||||
>
|
>
|
||||||
|
|
@ -1253,7 +1253,7 @@ Repository: lodash/lodash
|
||||||
## magic-string
|
## magic-string
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Rich Harris
|
By: Rich Harris
|
||||||
Repository: https://github.com/rich-harris/magic-string.git
|
Repository: https://github.com/Rich-Harris/magic-string
|
||||||
|
|
||||||
> Copyright 2018 Rich Harris
|
> Copyright 2018 Rich Harris
|
||||||
>
|
>
|
||||||
|
|
@ -1267,7 +1267,7 @@ Repository: https://github.com/rich-harris/magic-string.git
|
||||||
|
|
||||||
## mlly, ufo
|
## mlly, ufo
|
||||||
License: MIT
|
License: MIT
|
||||||
Repositories: unjs/mlly, unjs/ufo
|
Repositories: https://github.com/unjs/mlly, https://github.com/unjs/ufo
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -1296,7 +1296,7 @@ Repositories: unjs/mlly, unjs/ufo
|
||||||
## mrmime
|
## mrmime
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Luke Edwards
|
By: Luke Edwards
|
||||||
Repository: lukeed/mrmime
|
Repository: https://github.com/lukeed/mrmime
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1324,7 +1324,7 @@ Repository: lukeed/mrmime
|
||||||
|
|
||||||
## ms
|
## ms
|
||||||
License: MIT
|
License: MIT
|
||||||
Repository: vercel/ms
|
Repository: https://github.com/vercel/ms
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1353,7 +1353,7 @@ Repository: vercel/ms
|
||||||
## normalize-path
|
## normalize-path
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Blaine Bublitz
|
By: Jon Schlinkert, Blaine Bublitz
|
||||||
Repository: jonschlinkert/normalize-path
|
Repository: https://github.com/jonschlinkert/normalize-path
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1382,7 +1382,7 @@ Repository: jonschlinkert/normalize-path
|
||||||
## object-assign
|
## object-assign
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Sindre Sorhus
|
By: Sindre Sorhus
|
||||||
Repository: sindresorhus/object-assign
|
Repository: https://github.com/sindresorhus/object-assign
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1411,7 +1411,7 @@ Repository: sindresorhus/object-assign
|
||||||
## on-finished
|
## on-finished
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson, Jonathan Ong
|
By: Douglas Christopher Wilson, Jonathan Ong
|
||||||
Repository: jshttp/on-finished
|
Repository: https://github.com/jshttp/on-finished
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -1442,7 +1442,7 @@ Repository: jshttp/on-finished
|
||||||
## parse5
|
## parse5
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Ivan Nikulin, https://github.com/inikulin/parse5/graphs/contributors
|
By: Ivan Nikulin, https://github.com/inikulin/parse5/graphs/contributors
|
||||||
Repository: git://github.com/inikulin/parse5.git
|
Repository: https://github.com/inikulin/parse5
|
||||||
|
|
||||||
> Copyright (c) 2013-2019 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin)
|
> Copyright (c) 2013-2019 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin)
|
||||||
>
|
>
|
||||||
|
|
@ -1469,7 +1469,7 @@ Repository: git://github.com/inikulin/parse5.git
|
||||||
## parseurl
|
## parseurl
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson, Jonathan Ong
|
By: Douglas Christopher Wilson, Jonathan Ong
|
||||||
Repository: pillarjs/parseurl
|
Repository: https://github.com/pillarjs/parseurl
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -1500,7 +1500,7 @@ Repository: pillarjs/parseurl
|
||||||
## path-key, shebang-regex
|
## path-key, shebang-regex
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Sindre Sorhus
|
By: Sindre Sorhus
|
||||||
Repositories: sindresorhus/path-key, sindresorhus/shebang-regex
|
Repositories: https://github.com/sindresorhus/path-key, https://github.com/sindresorhus/shebang-regex
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -1516,7 +1516,7 @@ Repositories: sindresorhus/path-key, sindresorhus/shebang-regex
|
||||||
|
|
||||||
## periscopic
|
## periscopic
|
||||||
License: MIT
|
License: MIT
|
||||||
Repository: Rich-Harris/periscopic
|
Repository: https://github.com/Rich-Harris/periscopic
|
||||||
|
|
||||||
> Copyright (c) 2019 Rich Harris
|
> Copyright (c) 2019 Rich Harris
|
||||||
>
|
>
|
||||||
|
|
@ -1531,7 +1531,7 @@ Repository: Rich-Harris/periscopic
|
||||||
## picocolors
|
## picocolors
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Alexey Raspopov
|
By: Alexey Raspopov
|
||||||
Repository: alexeyraspopov/picocolors
|
Repository: https://github.com/alexeyraspopov/picocolors
|
||||||
|
|
||||||
> ISC License
|
> ISC License
|
||||||
>
|
>
|
||||||
|
|
@ -1554,7 +1554,7 @@ Repository: alexeyraspopov/picocolors
|
||||||
## postcss-import
|
## postcss-import
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Maxime Thirouin
|
By: Maxime Thirouin
|
||||||
Repository: https://github.com/postcss/postcss-import.git
|
Repository: https://github.com/postcss/postcss-import
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1582,7 +1582,7 @@ Repository: https://github.com/postcss/postcss-import.git
|
||||||
## postcss-load-config
|
## postcss-load-config
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Michael Ciniawky, Ryan Dunckel, Mateusz Derks, Dalton Santos, Patrick Gilday, François Wouts
|
By: Michael Ciniawky, Ryan Dunckel, Mateusz Derks, Dalton Santos, Patrick Gilday, François Wouts
|
||||||
Repository: postcss/postcss-load-config
|
Repository: https://github.com/postcss/postcss-load-config
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1610,7 +1610,7 @@ Repository: postcss/postcss-load-config
|
||||||
## postcss-modules
|
## postcss-modules
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Alexander Madyankin
|
By: Alexander Madyankin
|
||||||
Repository: https://github.com/css-modules/postcss-modules.git
|
Repository: https://github.com/css-modules/postcss-modules
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1638,7 +1638,7 @@ Repository: https://github.com/css-modules/postcss-modules.git
|
||||||
## postcss-modules-extract-imports
|
## postcss-modules-extract-imports
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Glen Maddern
|
By: Glen Maddern
|
||||||
Repository: https://github.com/css-modules/postcss-modules-extract-imports.git
|
Repository: https://github.com/css-modules/postcss-modules-extract-imports
|
||||||
|
|
||||||
> Copyright 2015 Glen Maddern
|
> Copyright 2015 Glen Maddern
|
||||||
>
|
>
|
||||||
|
|
@ -1651,7 +1651,7 @@ Repository: https://github.com/css-modules/postcss-modules-extract-imports.git
|
||||||
## postcss-modules-local-by-default
|
## postcss-modules-local-by-default
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Mark Dalgleish
|
By: Mark Dalgleish
|
||||||
Repository: https://github.com/css-modules/postcss-modules-local-by-default.git
|
Repository: https://github.com/css-modules/postcss-modules-local-by-default
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1679,7 +1679,7 @@ Repository: https://github.com/css-modules/postcss-modules-local-by-default.git
|
||||||
## postcss-modules-scope
|
## postcss-modules-scope
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Glen Maddern
|
By: Glen Maddern
|
||||||
Repository: https://github.com/css-modules/postcss-modules-scope.git
|
Repository: https://github.com/css-modules/postcss-modules-scope
|
||||||
|
|
||||||
> ISC License (ISC)
|
> ISC License (ISC)
|
||||||
>
|
>
|
||||||
|
|
@ -1694,7 +1694,7 @@ Repository: https://github.com/css-modules/postcss-modules-scope.git
|
||||||
## postcss-modules-values
|
## postcss-modules-values
|
||||||
License: ISC
|
License: ISC
|
||||||
By: Glen Maddern
|
By: Glen Maddern
|
||||||
Repository: git+https://github.com/css-modules/postcss-modules-values.git
|
Repository: https://github.com/css-modules/postcss-modules-values
|
||||||
|
|
||||||
> ISC License (ISC)
|
> ISC License (ISC)
|
||||||
>
|
>
|
||||||
|
|
@ -1709,7 +1709,7 @@ Repository: git+https://github.com/css-modules/postcss-modules-values.git
|
||||||
## postcss-selector-parser
|
## postcss-selector-parser
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Ben Briggs, Chris Eppstein
|
By: Ben Briggs, Chris Eppstein
|
||||||
Repository: postcss/postcss-selector-parser
|
Repository: https://github.com/postcss/postcss-selector-parser
|
||||||
|
|
||||||
> Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
|
> Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
|
||||||
>
|
>
|
||||||
|
|
@ -1739,7 +1739,7 @@ Repository: postcss/postcss-selector-parser
|
||||||
## postcss-value-parser
|
## postcss-value-parser
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Bogdan Chadkin
|
By: Bogdan Chadkin
|
||||||
Repository: https://github.com/TrySound/postcss-value-parser.git
|
Repository: https://github.com/TrySound/postcss-value-parser
|
||||||
|
|
||||||
> Copyright (c) Bogdan Chadkin <trysound@yandex.ru>
|
> Copyright (c) Bogdan Chadkin <trysound@yandex.ru>
|
||||||
>
|
>
|
||||||
|
|
@ -1769,7 +1769,7 @@ Repository: https://github.com/TrySound/postcss-value-parser.git
|
||||||
## readdirp
|
## readdirp
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Thorsten Lorenz, Paul Miller
|
By: Thorsten Lorenz, Paul Miller
|
||||||
Repository: git://github.com/paulmillr/readdirp.git
|
Repository: https://github.com/paulmillr/readdirp
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -1798,7 +1798,7 @@ Repository: git://github.com/paulmillr/readdirp.git
|
||||||
## resolve.exports, totalist
|
## resolve.exports, totalist
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Luke Edwards
|
By: Luke Edwards
|
||||||
Repositories: lukeed/resolve.exports, lukeed/totalist
|
Repositories: https://github.com/lukeed/resolve.exports, https://github.com/lukeed/totalist
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1827,7 +1827,7 @@ Repositories: lukeed/resolve.exports, lukeed/totalist
|
||||||
## shebang-command
|
## shebang-command
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Kevin Mårtensson
|
By: Kevin Mårtensson
|
||||||
Repository: kevva/shebang-command
|
Repository: https://github.com/kevva/shebang-command
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -1844,14 +1844,14 @@ Repository: kevva/shebang-command
|
||||||
## sirv
|
## sirv
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Luke Edwards
|
By: Luke Edwards
|
||||||
Repository: lukeed/sirv
|
Repository: https://github.com/lukeed/sirv
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
## statuses
|
## statuses
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson, Jonathan Ong
|
By: Douglas Christopher Wilson, Jonathan Ong
|
||||||
Repository: jshttp/statuses
|
Repository: https://github.com/jshttp/statuses
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1881,14 +1881,14 @@ Repository: jshttp/statuses
|
||||||
## string-hash
|
## string-hash
|
||||||
License: CC0-1.0
|
License: CC0-1.0
|
||||||
By: The Dark Sky Company
|
By: The Dark Sky Company
|
||||||
Repository: git://github.com/darkskyapp/string-hash.git
|
Repository: https://github.com/darkskyapp/string-hash
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
## strip-literal
|
## strip-literal
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Anthony Fu
|
By: Anthony Fu
|
||||||
Repository: git+https://github.com/antfu/strip-literal.git
|
Repository: https://github.com/antfu/strip-literal
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -1917,7 +1917,7 @@ Repository: git+https://github.com/antfu/strip-literal.git
|
||||||
## to-regex-range
|
## to-regex-range
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jon Schlinkert, Rouven Weßling
|
By: Jon Schlinkert, Rouven Weßling
|
||||||
Repository: micromatch/to-regex-range
|
Repository: https://github.com/micromatch/to-regex-range
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -1946,7 +1946,7 @@ Repository: micromatch/to-regex-range
|
||||||
## tsconfck
|
## tsconfck
|
||||||
License: MIT
|
License: MIT
|
||||||
By: dominikg
|
By: dominikg
|
||||||
Repository: git+https://github.com/dominikg/tsconfck.git
|
Repository: https://github.com/dominikg/tsconfck
|
||||||
|
|
||||||
> MIT License
|
> MIT License
|
||||||
>
|
>
|
||||||
|
|
@ -2000,7 +2000,7 @@ Repository: git+https://github.com/dominikg/tsconfck.git
|
||||||
## unpipe
|
## unpipe
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson
|
By: Douglas Christopher Wilson
|
||||||
Repository: stream-utils/unpipe
|
Repository: https://github.com/stream-utils/unpipe
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -2030,7 +2030,7 @@ Repository: stream-utils/unpipe
|
||||||
## util-deprecate
|
## util-deprecate
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Nathan Rajlich
|
By: Nathan Rajlich
|
||||||
Repository: git://github.com/TooTallNate/util-deprecate.git
|
Repository: https://github.com/TooTallNate/util-deprecate
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -2062,7 +2062,7 @@ Repository: git://github.com/TooTallNate/util-deprecate.git
|
||||||
## utils-merge
|
## utils-merge
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Jared Hanson
|
By: Jared Hanson
|
||||||
Repository: git://github.com/jaredhanson/utils-merge.git
|
Repository: https://github.com/jaredhanson/utils-merge
|
||||||
|
|
||||||
> The MIT License (MIT)
|
> The MIT License (MIT)
|
||||||
>
|
>
|
||||||
|
|
@ -2090,7 +2090,7 @@ Repository: git://github.com/jaredhanson/utils-merge.git
|
||||||
## vary
|
## vary
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Douglas Christopher Wilson
|
By: Douglas Christopher Wilson
|
||||||
Repository: jshttp/vary
|
Repository: https://github.com/jshttp/vary
|
||||||
|
|
||||||
> (The MIT License)
|
> (The MIT License)
|
||||||
>
|
>
|
||||||
|
|
@ -2120,7 +2120,7 @@ Repository: jshttp/vary
|
||||||
## ws
|
## ws
|
||||||
License: MIT
|
License: MIT
|
||||||
By: Einar Otto Stangvik
|
By: Einar Otto Stangvik
|
||||||
Repository: git+https://github.com/websockets/ws.git
|
Repository: https://github.com/websockets/ws
|
||||||
|
|
||||||
> Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
|
> Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
|
||||||
> Copyright (c) 2013 Arnout Kazemier and contributors
|
> Copyright (c) 2013 Arnout Kazemier and contributors
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import "@vite/env";
|
import "@vite/env";
|
||||||
|
|
||||||
//#region \0@oxc-project+runtime@0.94.0/helpers/typeof.js
|
//#region \0@oxc-project+runtime@0.96.0/helpers/typeof.js
|
||||||
function _typeof(o) {
|
function _typeof(o) {
|
||||||
"@babel/helpers - typeof";
|
"@babel/helpers - typeof";
|
||||||
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
|
||||||
|
|
@ -11,7 +11,7 @@ function _typeof(o) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
//#region \0@oxc-project+runtime@0.94.0/helpers/toPrimitive.js
|
//#region \0@oxc-project+runtime@0.96.0/helpers/toPrimitive.js
|
||||||
function toPrimitive(t, r) {
|
function toPrimitive(t, r) {
|
||||||
if ("object" != _typeof(t) || !t) return t;
|
if ("object" != _typeof(t) || !t) return t;
|
||||||
var e = t[Symbol.toPrimitive];
|
var e = t[Symbol.toPrimitive];
|
||||||
|
|
@ -24,14 +24,14 @@ function toPrimitive(t, r) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
//#region \0@oxc-project+runtime@0.94.0/helpers/toPropertyKey.js
|
//#region \0@oxc-project+runtime@0.96.0/helpers/toPropertyKey.js
|
||||||
function toPropertyKey(t) {
|
function toPropertyKey(t) {
|
||||||
var i = toPrimitive(t, "string");
|
var i = toPrimitive(t, "string");
|
||||||
return "symbol" == _typeof(i) ? i : i + "";
|
return "symbol" == _typeof(i) ? i : i + "";
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
//#region \0@oxc-project+runtime@0.94.0/helpers/defineProperty.js
|
//#region \0@oxc-project+runtime@0.96.0/helpers/defineProperty.js
|
||||||
function _defineProperty(e, r, t) {
|
function _defineProperty(e, r, t) {
|
||||||
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
||||||
value: t,
|
value: t,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import "./logger.js";
|
import "./logger.js";
|
||||||
import { BuildEnvironment, build, buildEnvironmentOptionsDefaults, builderOptionsDefaults, createBuilder, createToImportMetaURLBasedRelativeRuntime, injectEnvironmentToHooks, onRollupLog, resolveBuildEnvironmentOptions, resolveBuildOutputs, resolveBuildPlugins, resolveBuilderOptions, resolveLibFilename, resolveUserExternal, toOutputFilePathInCss, toOutputFilePathInHtml, toOutputFilePathInJS, toOutputFilePathWithoutRuntime } from "./config.js";
|
import { A as toOutputFilePathInCss, C as onRollupLog, D as resolveBuilderOptions, E as resolveBuildPlugins, M as toOutputFilePathInJS, N as toOutputFilePathWithoutRuntime, O as resolveLibFilename, S as injectEnvironmentToHooks, T as resolveBuildOutputs, _ as build, b as createBuilder, g as BuildEnvironment, j as toOutputFilePathInHtml, k as resolveUserExternal, v as buildEnvironmentOptionsDefaults, w as resolveBuildEnvironmentOptions, x as createToImportMetaURLBasedRelativeRuntime, y as builderOptionsDefaults } from "./config.js";
|
||||||
|
|
||||||
export { createBuilder, resolveBuildPlugins };
|
export { BuildEnvironment, build, buildEnvironmentOptionsDefaults, builderOptionsDefaults, createBuilder, createToImportMetaURLBasedRelativeRuntime, injectEnvironmentToHooks, onRollupLog, resolveBuildEnvironmentOptions, resolveBuildOutputs, resolveBuildPlugins, resolveBuilderOptions, resolveLibFilename, resolveUserExternal, toOutputFilePathInCss, toOutputFilePathInHtml, toOutputFilePathInJS, toOutputFilePathWithoutRuntime };
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { __commonJS, __require } from "./chunk.js";
|
import { n as __require, t as __commonJS } from "./chunk.js";
|
||||||
import { require_lib } from "./lib.js";
|
import { t as require_lib } from "./lib.js";
|
||||||
|
|
||||||
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/fs.js
|
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/fs.js
|
||||||
var require_fs = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/fs.js": ((exports) => {
|
var require_fs = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/fs.js": ((exports) => {
|
||||||
|
|
@ -188,6 +188,7 @@ var require_src$4 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/icss-
|
||||||
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/Parser.js
|
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/Parser.js
|
||||||
var require_Parser = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/Parser.js": ((exports) => {
|
var require_Parser = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/Parser.js": ((exports) => {
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.default = void 0;
|
||||||
var _icssUtils = require_src$4();
|
var _icssUtils = require_src$4();
|
||||||
const importRegexp = /^:import\((.+)\)$/;
|
const importRegexp = /^:import\((.+)\)$/;
|
||||||
var Parser$1 = class {
|
var Parser$1 = class {
|
||||||
|
|
@ -955,6 +956,7 @@ var require_localsConvention = /* @__PURE__ */ __commonJS({ "../../node_modules/
|
||||||
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/FileSystemLoader.js
|
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/FileSystemLoader.js
|
||||||
var require_FileSystemLoader = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/FileSystemLoader.js": ((exports) => {
|
var require_FileSystemLoader = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/FileSystemLoader.js": ((exports) => {
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.default = void 0;
|
||||||
var _postcss$1 = _interopRequireDefault$21(__require("postcss"));
|
var _postcss$1 = _interopRequireDefault$21(__require("postcss"));
|
||||||
var _path = _interopRequireDefault$21(__require("path"));
|
var _path = _interopRequireDefault$21(__require("path"));
|
||||||
var _Parser$1 = _interopRequireDefault$21(require_Parser());
|
var _Parser$1 = _interopRequireDefault$21(require_Parser());
|
||||||
|
|
@ -1746,6 +1748,7 @@ var require_stripComments = /* @__PURE__ */ __commonJS({ "../../node_modules/.pn
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/index.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/index.js
|
||||||
var require_util = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/index.js": ((exports) => {
|
var require_util = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/util/index.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0;
|
||||||
var _unesc$1 = _interopRequireDefault$20(require_unesc());
|
var _unesc$1 = _interopRequireDefault$20(require_unesc());
|
||||||
exports.unesc = _unesc$1["default"];
|
exports.unesc = _unesc$1["default"];
|
||||||
var _getProp = _interopRequireDefault$20(require_getProp());
|
var _getProp = _interopRequireDefault$20(require_getProp());
|
||||||
|
|
@ -1900,6 +1903,7 @@ var require_node$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/post
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/types.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/types.js
|
||||||
var require_types = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/types.js": ((exports) => {
|
var require_types = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/types.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.UNIVERSAL = exports.TAG = exports.STRING = exports.SELECTOR = exports.ROOT = exports.PSEUDO = exports.NESTING = exports.ID = exports.COMMENT = exports.COMBINATOR = exports.CLASS = exports.ATTRIBUTE = void 0;
|
||||||
var TAG = "tag";
|
var TAG = "tag";
|
||||||
exports.TAG = TAG;
|
exports.TAG = TAG;
|
||||||
var STRING = "string";
|
var STRING = "string";
|
||||||
|
|
@ -2372,6 +2376,7 @@ var require_selector = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/po
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
//#region ../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js
|
//#region ../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js
|
||||||
|
/*! https://mths.be/cssesc v3.0.0 by @mathias */
|
||||||
var require_cssesc = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js": ((exports, module) => {
|
var require_cssesc = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js": ((exports, module) => {
|
||||||
var hasOwnProperty$1 = {}.hasOwnProperty;
|
var hasOwnProperty$1 = {}.hasOwnProperty;
|
||||||
var merge = function merge$1(options, defaults) {
|
var merge = function merge$1(options, defaults) {
|
||||||
|
|
@ -2803,6 +2808,7 @@ var require_node = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/util-d
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/attribute.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/attribute.js
|
||||||
var require_attribute = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/attribute.js": ((exports) => {
|
var require_attribute = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/attribute.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports["default"] = void 0;
|
||||||
exports.unescapeValue = unescapeValue;
|
exports.unescapeValue = unescapeValue;
|
||||||
var _cssesc = _interopRequireDefault$9(require_cssesc());
|
var _cssesc = _interopRequireDefault$9(require_cssesc());
|
||||||
var _unesc = _interopRequireDefault$9(require_unesc());
|
var _unesc = _interopRequireDefault$9(require_unesc());
|
||||||
|
|
@ -3249,6 +3255,7 @@ var require_sortAscending = /* @__PURE__ */ __commonJS({ "../../node_modules/.pn
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenTypes.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenTypes.js
|
||||||
var require_tokenTypes = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenTypes.js": ((exports) => {
|
var require_tokenTypes = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenTypes.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0;
|
||||||
var ampersand = 38;
|
var ampersand = 38;
|
||||||
exports.ampersand = ampersand;
|
exports.ampersand = ampersand;
|
||||||
var asterisk = 42;
|
var asterisk = 42;
|
||||||
|
|
@ -3317,6 +3324,7 @@ var require_tokenTypes = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenize.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenize.js
|
||||||
var require_tokenize = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenize.js": ((exports) => {
|
var require_tokenize = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/tokenize.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.FIELDS = void 0;
|
||||||
exports["default"] = tokenize;
|
exports["default"] = tokenize;
|
||||||
var t = _interopRequireWildcard$2(require_tokenTypes());
|
var t = _interopRequireWildcard$2(require_tokenTypes());
|
||||||
var _unescapable, _wordDelimiters;
|
var _unescapable, _wordDelimiters;
|
||||||
|
|
@ -4509,6 +4517,7 @@ var require_processor = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/p
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/constructors.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/constructors.js
|
||||||
var require_constructors = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/constructors.js": ((exports) => {
|
var require_constructors = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/constructors.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;
|
||||||
var _attribute = _interopRequireDefault$3(require_attribute());
|
var _attribute = _interopRequireDefault$3(require_attribute());
|
||||||
var _className = _interopRequireDefault$3(require_className());
|
var _className = _interopRequireDefault$3(require_className());
|
||||||
var _combinator = _interopRequireDefault$3(require_combinator());
|
var _combinator = _interopRequireDefault$3(require_combinator());
|
||||||
|
|
@ -4578,11 +4587,16 @@ var require_constructors = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnp
|
||||||
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/guards.js
|
//#region ../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/guards.js
|
||||||
var require_guards = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/guards.js": ((exports) => {
|
var require_guards = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-selector-parser@7.1.0/node_modules/postcss-selector-parser/dist/selectors/guards.js": ((exports) => {
|
||||||
exports.__esModule = true;
|
exports.__esModule = true;
|
||||||
|
exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;
|
||||||
exports.isContainer = isContainer;
|
exports.isContainer = isContainer;
|
||||||
|
exports.isIdentifier = void 0;
|
||||||
exports.isNamespace = isNamespace;
|
exports.isNamespace = isNamespace;
|
||||||
|
exports.isNesting = void 0;
|
||||||
exports.isNode = isNode;
|
exports.isNode = isNode;
|
||||||
|
exports.isPseudo = void 0;
|
||||||
exports.isPseudoClass = isPseudoClass;
|
exports.isPseudoClass = isPseudoClass;
|
||||||
exports.isPseudoElement = isPseudoElement;
|
exports.isPseudoElement = isPseudoElement;
|
||||||
|
exports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;
|
||||||
var _types$1 = require_types();
|
var _types$1 = require_types();
|
||||||
var _IS_TYPE;
|
var _IS_TYPE;
|
||||||
var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types$1.ATTRIBUTE] = true, _IS_TYPE[_types$1.CLASS] = true, _IS_TYPE[_types$1.COMBINATOR] = true, _IS_TYPE[_types$1.COMMENT] = true, _IS_TYPE[_types$1.ID] = true, _IS_TYPE[_types$1.NESTING] = true, _IS_TYPE[_types$1.PSEUDO] = true, _IS_TYPE[_types$1.ROOT] = true, _IS_TYPE[_types$1.SELECTOR] = true, _IS_TYPE[_types$1.STRING] = true, _IS_TYPE[_types$1.TAG] = true, _IS_TYPE[_types$1.UNIVERSAL] = true, _IS_TYPE);
|
var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types$1.ATTRIBUTE] = true, _IS_TYPE[_types$1.CLASS] = true, _IS_TYPE[_types$1.COMBINATOR] = true, _IS_TYPE[_types$1.COMMENT] = true, _IS_TYPE[_types$1.ID] = true, _IS_TYPE[_types$1.NESTING] = true, _IS_TYPE[_types$1.PSEUDO] = true, _IS_TYPE[_types$1.ROOT] = true, _IS_TYPE[_types$1.SELECTOR] = true, _IS_TYPE[_types$1.STRING] = true, _IS_TYPE[_types$1.TAG] = true, _IS_TYPE[_types$1.UNIVERSAL] = true, _IS_TYPE);
|
||||||
|
|
@ -5370,6 +5384,7 @@ var require_src = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss
|
||||||
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/scoping.js
|
//#region ../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/scoping.js
|
||||||
var require_scoping = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/scoping.js": ((exports) => {
|
var require_scoping = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-modules@6.0.1_postcss@8.5.6/node_modules/postcss-modules/build/scoping.js": ((exports) => {
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.behaviours = void 0;
|
||||||
exports.getDefaultPlugins = getDefaultPlugins;
|
exports.getDefaultPlugins = getDefaultPlugins;
|
||||||
exports.getDefaultScopeBehaviour = getDefaultScopeBehaviour;
|
exports.getDefaultScopeBehaviour = getDefaultScopeBehaviour;
|
||||||
exports.getScopedNameGenerator = getScopedNameGenerator;
|
exports.getScopedNameGenerator = getScopedNameGenerator;
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,4 @@ var __toDynamicImportESM = (isNodeMode) => (mod) => __toESM(mod.default, isNodeM
|
||||||
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
export { __commonJS, __require, __toDynamicImportESM, __toESM };
|
export { __toESM as i, __require as n, __toDynamicImportESM as r, __commonJS as t };
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,4 +1,4 @@
|
||||||
import "./logger.js";
|
import "./logger.js";
|
||||||
import { configDefaults, defineConfig, getDefaultEnvironmentOptions, isResolvedConfig, loadConfigFromFile, resolveBaseUrl, resolveConfig, resolveDevEnvironmentOptions, sortUserPlugins } from "./config.js";
|
import { a as resolveBaseUrl, c as sortUserPlugins, i as loadConfigFromFile, n as getDefaultEnvironmentOptions, o as resolveConfig, r as isResolvedConfig, s as resolveDevEnvironmentOptions, t as defineConfig } from "./config.js";
|
||||||
|
|
||||||
export { resolveConfig };
|
export { defineConfig, getDefaultEnvironmentOptions, isResolvedConfig, loadConfigFromFile, resolveBaseUrl, resolveConfig, resolveDevEnvironmentOptions, sortUserPlugins };
|
||||||
|
|
@ -6755,4 +6755,4 @@ function parse(html, options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
export { parse };
|
export { ERR as ErrorCodes, Parser, Tokenizer, TokenizerMode, defaultTreeAdapter, parse };
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { __commonJS } from "./chunk.js";
|
import { t as __commonJS } from "./chunk.js";
|
||||||
|
|
||||||
//#region ../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js
|
//#region ../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js
|
||||||
var require_parse = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js": ((exports, module) => {
|
var require_parse = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-value-parser@4.2.0/node_modules/postcss-value-parser/lib/parse.js": ((exports, module) => {
|
||||||
|
|
@ -374,4 +374,4 @@ var require_lib = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss
|
||||||
}) });
|
}) });
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
export { require_lib };
|
export { require_lib as t };
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { __commonJS, __toESM } from "./chunk.js";
|
import { i as __toESM, t as __commonJS } from "./chunk.js";
|
||||||
import { readFileSync } from "node:fs";
|
import { readFileSync } from "node:fs";
|
||||||
import path, { resolve } from "node:path";
|
import path, { resolve } from "node:path";
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
@ -127,6 +127,15 @@ const DEFAULT_CONDITIONS = [
|
||||||
const DEFAULT_CLIENT_CONDITIONS = Object.freeze(DEFAULT_CONDITIONS.filter((c) => c !== "node"));
|
const DEFAULT_CLIENT_CONDITIONS = Object.freeze(DEFAULT_CONDITIONS.filter((c) => c !== "node"));
|
||||||
const DEFAULT_SERVER_CONDITIONS = Object.freeze(DEFAULT_CONDITIONS.filter((c) => c !== "browser"));
|
const DEFAULT_SERVER_CONDITIONS = Object.freeze(DEFAULT_CONDITIONS.filter((c) => c !== "browser"));
|
||||||
const DEFAULT_EXTERNAL_CONDITIONS = Object.freeze(["node", "module-sync"]);
|
const DEFAULT_EXTERNAL_CONDITIONS = Object.freeze(["node", "module-sync"]);
|
||||||
|
const DEFAULT_EXTENSIONS = [
|
||||||
|
".mjs",
|
||||||
|
".js",
|
||||||
|
".mts",
|
||||||
|
".ts",
|
||||||
|
".jsx",
|
||||||
|
".tsx",
|
||||||
|
".json"
|
||||||
|
];
|
||||||
/**
|
/**
|
||||||
* The browser versions that are included in the Baseline Widely Available on 2025-05-01.
|
* The browser versions that are included in the Baseline Widely Available on 2025-05-01.
|
||||||
*
|
*
|
||||||
|
|
@ -317,4 +326,4 @@ function printServerUrls(urls, optionsHost, info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
export { CLIENT_DIR, CLIENT_ENTRY, CLIENT_PUBLIC_PATH, CSS_LANGS_RE, DEFAULT_ASSETS_INLINE_LIMIT, DEFAULT_ASSETS_RE, DEFAULT_CLIENT_CONDITIONS, DEFAULT_CLIENT_MAIN_FIELDS, DEFAULT_CONFIG_FILES, DEFAULT_DEV_PORT, DEFAULT_EXTERNAL_CONDITIONS, DEFAULT_PREVIEW_PORT, DEFAULT_SERVER_CONDITIONS, DEFAULT_SERVER_MAIN_FIELDS, DEP_VERSION_RE, DEV_PROD_CONDITION, ENV_ENTRY, ENV_PUBLIC_PATH, ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR, ERR_OPTIMIZE_DEPS_PROCESSING_ERROR, ESBUILD_BASELINE_WIDELY_AVAILABLE_TARGET, FS_PREFIX, JS_TYPES_RE, KNOWN_ASSET_TYPES, LogLevels, METADATA_FILENAME, OPTIMIZABLE_ENTRY_RE, ROLLUP_HOOKS, SPECIAL_QUERY_RE, VERSION, VITE_PACKAGE_DIR, createLogger, defaultAllowedOrigins, loopbackHosts, printServerUrls, require_picocolors, wildcardHosts };
|
export { OPTIMIZABLE_ENTRY_RE as A, ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR as C, JS_TYPES_RE as D, FS_PREFIX as E, defaultAllowedOrigins as F, loopbackHosts as I, wildcardHosts as L, SPECIAL_QUERY_RE as M, VERSION as N, KNOWN_ASSET_TYPES as O, VITE_PACKAGE_DIR as P, require_picocolors as R, ENV_PUBLIC_PATH as S, ESBUILD_BASELINE_WIDELY_AVAILABLE_TARGET as T, DEFAULT_SERVER_CONDITIONS as _, CLIENT_ENTRY as a, DEV_PROD_CONDITION as b, DEFAULT_ASSETS_INLINE_LIMIT as c, DEFAULT_CLIENT_MAIN_FIELDS as d, DEFAULT_CONFIG_FILES as f, DEFAULT_PREVIEW_PORT as g, DEFAULT_EXTERNAL_CONDITIONS as h, CLIENT_DIR as i, ROLLUP_HOOKS as j, METADATA_FILENAME as k, DEFAULT_ASSETS_RE as l, DEFAULT_EXTENSIONS as m, createLogger as n, CLIENT_PUBLIC_PATH as o, DEFAULT_DEV_PORT as p, printServerUrls as r, CSS_LANGS_RE as s, LogLevels as t, DEFAULT_CLIENT_CONDITIONS as u, DEFAULT_SERVER_MAIN_FIELDS as v, ERR_OPTIMIZE_DEPS_PROCESSING_ERROR as w, ENV_ENTRY as x, DEP_VERSION_RE as y };
|
||||||
|
|
@ -8,51 +8,59 @@ interface FetchFunctionOptions {
|
||||||
type FetchResult = CachedFetchResult | ExternalFetchResult | ViteFetchResult;
|
type FetchResult = CachedFetchResult | ExternalFetchResult | ViteFetchResult;
|
||||||
interface CachedFetchResult {
|
interface CachedFetchResult {
|
||||||
/**
|
/**
|
||||||
* If module cached in the runner, we can just confirm
|
* If module cached in the runner, we can just confirm
|
||||||
* it wasn't invalidated on the server side.
|
* it wasn't invalidated on the server side.
|
||||||
*/
|
*/
|
||||||
cache: true;
|
cache: true;
|
||||||
}
|
}
|
||||||
interface ExternalFetchResult {
|
interface ExternalFetchResult {
|
||||||
/**
|
/**
|
||||||
* The path to the externalized module starting with file://,
|
* The path to the externalized module starting with file://,
|
||||||
* by default this will be imported via a dynamic "import"
|
* by default this will be imported via a dynamic "import"
|
||||||
* instead of being transformed by vite and loaded with vite runner
|
* instead of being transformed by vite and loaded with vite runner
|
||||||
*/
|
*/
|
||||||
externalize: string;
|
externalize: string;
|
||||||
/**
|
/**
|
||||||
* Type of the module. Will be used to determine if import statement is correct.
|
* Type of the module. Will be used to determine if import statement is correct.
|
||||||
* For example, if Vite needs to throw an error if variable is not actually exported
|
* For example, if Vite needs to throw an error if variable is not actually exported
|
||||||
*/
|
*/
|
||||||
type: 'module' | 'commonjs' | 'builtin' | 'network';
|
type: "module" | "commonjs" | "builtin" | "network";
|
||||||
}
|
}
|
||||||
interface ViteFetchResult {
|
interface ViteFetchResult {
|
||||||
/**
|
/**
|
||||||
* Code that will be evaluated by vite runner
|
* Code that will be evaluated by vite runner
|
||||||
* by default this will be wrapped in an async function
|
* by default this will be wrapped in an async function
|
||||||
*/
|
*/
|
||||||
code: string;
|
code: string;
|
||||||
/**
|
/**
|
||||||
* File path of the module on disk.
|
* File path of the module on disk.
|
||||||
* This will be resolved as import.meta.url/filename
|
* This will be resolved as import.meta.url/filename
|
||||||
* Will be equal to `null` for virtual modules
|
* Will be equal to `null` for virtual modules
|
||||||
*/
|
*/
|
||||||
file: string | null;
|
file: string | null;
|
||||||
/**
|
/**
|
||||||
* Module ID in the server module graph.
|
* Module ID in the server module graph.
|
||||||
*/
|
*/
|
||||||
id: string;
|
id: string;
|
||||||
/**
|
/**
|
||||||
* Module URL used in the import.
|
* Module URL used in the import.
|
||||||
*/
|
*/
|
||||||
url: string;
|
url: string;
|
||||||
/**
|
/**
|
||||||
* Invalidate module on the client side.
|
* Invalidate module on the client side.
|
||||||
*/
|
*/
|
||||||
invalidate: boolean;
|
invalidate: boolean;
|
||||||
}
|
}
|
||||||
type InvokeMethods = {
|
type InvokeMethods = {
|
||||||
fetchModule: (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
fetchModule: (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
||||||
|
getBuiltins: () => Promise<Array<{
|
||||||
|
type: "string";
|
||||||
|
value: string;
|
||||||
|
} | {
|
||||||
|
type: "RegExp";
|
||||||
|
source: string;
|
||||||
|
flags: string;
|
||||||
|
}>>;
|
||||||
};
|
};
|
||||||
//#endregion
|
//#endregion
|
||||||
//#region src/shared/moduleRunnerTransport.d.ts
|
//#region src/shared/moduleRunnerTransport.d.ts
|
||||||
|
|
@ -61,8 +69,8 @@ type ModuleRunnerTransportHandlers = {
|
||||||
onDisconnection: () => void;
|
onDisconnection: () => void;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* "send and connect" or "invoke" must be implemented
|
* "send and connect" or "invoke" must be implemented
|
||||||
*/
|
*/
|
||||||
interface ModuleRunnerTransport {
|
interface ModuleRunnerTransport {
|
||||||
connect?(handlers: ModuleRunnerTransportHandlers): Promise<void> | void;
|
connect?(handlers: ModuleRunnerTransportHandlers): Promise<void> | void;
|
||||||
disconnect?(): Promise<void> | void;
|
disconnect?(): Promise<void> | void;
|
||||||
|
|
@ -85,4 +93,4 @@ declare const createWebSocketModuleRunnerTransport: (options: {
|
||||||
pingInterval?: number;
|
pingInterval?: number;
|
||||||
}) => Required<Pick<ModuleRunnerTransport, "connect" | "disconnect" | "send">>;
|
}) => Required<Pick<ModuleRunnerTransport, "connect" | "disconnect" | "send">>;
|
||||||
//#endregion
|
//#endregion
|
||||||
export { ExternalFetchResult, FetchFunctionOptions, FetchResult, ModuleRunnerTransport, ModuleRunnerTransportHandlers, NormalizedModuleRunnerTransport, ViteFetchResult, createWebSocketModuleRunnerTransport };
|
export { ExternalFetchResult as a, ViteFetchResult as c, createWebSocketModuleRunnerTransport as i, ModuleRunnerTransportHandlers as n, FetchFunctionOptions as o, NormalizedModuleRunnerTransport as r, FetchResult as s, ModuleRunnerTransport as t };
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import "./logger.js";
|
import "./logger.js";
|
||||||
import { addManuallyIncludedOptimizeDeps, addOptimizedDepInfo, cleanupDepsCacheStaleDirs, createIsOptimizedDepFile, createIsOptimizedDepUrl, depsFromOptimizedDepInfo, depsLogString, discoverProjectDependencies, extractExportsData, getDepsCacheDir, getOptimizedDepPath, initDepsOptimizerMetadata, isDepOptimizationDisabled, loadCachedDepOptimizationMetadata, optimizeDeps, optimizeExplicitEnvironmentDeps, optimizedDepInfoFromFile, optimizedDepInfoFromId, optimizedDepNeedsInterop, runOptimizeDeps, toDiscoveredDependencies } from "./config.js";
|
import { $ as runOptimizeDeps, B as depsLogString, F as addOptimizedDepInfo, G as initDepsOptimizerMetadata, H as extractExportsData, I as cleanupDepsCacheStaleDirs, J as optimizeDeps, K as isDepOptimizationDisabled, L as createIsOptimizedDepFile, P as addManuallyIncludedOptimizeDeps, Q as optimizedDepNeedsInterop, R as createIsOptimizedDepUrl, U as getDepsCacheDir, V as discoverProjectDependencies, W as getOptimizedDepPath, X as optimizedDepInfoFromFile, Y as optimizeExplicitEnvironmentDeps, Z as optimizedDepInfoFromId, et as toDiscoveredDependencies, q as loadCachedDepOptimizationMetadata, z as depsFromOptimizedDepInfo } from "./config.js";
|
||||||
|
|
||||||
export { optimizeDeps };
|
export { addManuallyIncludedOptimizeDeps, addOptimizedDepInfo, cleanupDepsCacheStaleDirs, createIsOptimizedDepFile, createIsOptimizedDepUrl, depsFromOptimizedDepInfo, depsLogString, discoverProjectDependencies, extractExportsData, getDepsCacheDir, getOptimizedDepPath, initDepsOptimizerMetadata, isDepOptimizationDisabled, loadCachedDepOptimizationMetadata, optimizeDeps, optimizeExplicitEnvironmentDeps, optimizedDepInfoFromFile, optimizedDepInfoFromId, optimizedDepNeedsInterop, runOptimizeDeps, toDiscoveredDependencies };
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { __commonJS, __require } from "./chunk.js";
|
import { n as __require, t as __commonJS } from "./chunk.js";
|
||||||
import { require_lib } from "./lib.js";
|
import { t as require_lib } from "./lib.js";
|
||||||
|
|
||||||
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js
|
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js
|
||||||
var require_format_import_prelude = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js": ((exports, module) => {
|
var require_format_import_prelude = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js": ((exports, module) => {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import "./logger.js";
|
import "./logger.js";
|
||||||
import { preview, resolvePreviewOptions } from "./config.js";
|
import { d as resolvePreviewOptions, u as preview } from "./config.js";
|
||||||
|
|
||||||
export { preview };
|
export { preview, resolvePreviewOptions };
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import "./logger.js";
|
import "./logger.js";
|
||||||
import { _createServer, createServer, createServerCloseFn, resolveServerOptions, restartServerWithUrls, serverConfigDefaults } from "./config.js";
|
import { at as _createServer, ct as resolveServerOptions, lt as restartServerWithUrls, ot as createServer, st as createServerCloseFn, ut as serverConfigDefaults } from "./config.js";
|
||||||
|
|
||||||
export { createServer };
|
export { _createServer, createServer, createServerCloseFn, resolveServerOptions, restartServerWithUrls, serverConfigDefaults };
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { __toESM } from "./chunks/chunk.js";
|
import { i as __toESM } from "./chunks/chunk.js";
|
||||||
import { VERSION, createLogger, require_picocolors } from "./chunks/logger.js";
|
import { N as VERSION, R as require_picocolors, n as createLogger } from "./chunks/logger.js";
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { performance } from "node:perf_hooks";
|
import { performance } from "node:perf_hooks";
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,5 +1,5 @@
|
||||||
import { DEFAULT_CLIENT_CONDITIONS, DEFAULT_CLIENT_MAIN_FIELDS, DEFAULT_EXTERNAL_CONDITIONS, DEFAULT_SERVER_CONDITIONS, DEFAULT_SERVER_MAIN_FIELDS, VERSION, createLogger, defaultAllowedOrigins } from "./chunks/logger.js";
|
import { F as defaultAllowedOrigins, N as VERSION, _ as DEFAULT_SERVER_CONDITIONS, d as DEFAULT_CLIENT_MAIN_FIELDS, h as DEFAULT_EXTERNAL_CONDITIONS, n as createLogger, u as DEFAULT_CLIENT_CONDITIONS, v as DEFAULT_SERVER_MAIN_FIELDS } from "./chunks/logger.js";
|
||||||
import { BuildEnvironment, DevEnvironment, build, buildErrorMessage, createBuilder, createFilter, createIdResolver, createRunnableDevEnvironment, createServer, createServerHotChannel, createServerModuleRunner, createServerModuleRunnerTransport, defineConfig, fetchModule, formatPostcssSourceMap, isCSSRequest, isFileLoadingAllowed, isFileServingAllowed, isRunnableDevEnvironment, loadConfigFromFile, loadEnv, mergeAlias, mergeConfig, normalizePath, optimizeDeps, perEnvironmentPlugin, perEnvironmentState, preprocessCSS, preview, resolveConfig, resolveEnvPrefix, rollupVersion, runnerImport, searchForWorkspaceRoot, send, sortUserPlugins, ssrTransform, transformWithEsbuild } from "./chunks/config.js";
|
import { Ct as perEnvironmentPlugin, Dt as mergeConfig, Et as mergeAlias, J as optimizeDeps, Ot as normalizePath, St as perEnvironmentState, Tt as isCSSRequest, _ as build, _t as createServerModuleRunnerTransport, b as createBuilder, bt as resolveEnvPrefix, c as sortUserPlugins, dt as searchForWorkspaceRoot, f as createRunnableDevEnvironment, ft as isFileLoadingAllowed, g as BuildEnvironment, gt as createServerModuleRunner, h as fetchModule, ht as ssrTransform, i as loadConfigFromFile, it as createServerHotChannel, kt as rollupVersion, l as runnerImport, m as DevEnvironment, mt as send, nt as preprocessCSS, o as resolveConfig, ot as createServer, p as isRunnableDevEnvironment, pt as isFileServingAllowed, rt as createIdResolver, t as defineConfig, tt as formatPostcssSourceMap, u as preview, vt as buildErrorMessage, wt as createFilter, xt as transformWithEsbuild, yt as loadEnv } from "./chunks/config.js";
|
||||||
import { parseAst, parseAstAsync } from "rollup/parseAst";
|
import { parseAst, parseAstAsync } from "rollup/parseAst";
|
||||||
import { version as esbuildVersion } from "esbuild";
|
import { version as esbuildVersion } from "esbuild";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { ExternalFetchResult, FetchFunctionOptions, FetchResult, ModuleRunnerTransport, ModuleRunnerTransportHandlers, NormalizedModuleRunnerTransport, ViteFetchResult, createWebSocketModuleRunnerTransport } from "./chunks/moduleRunnerTransport.js";
|
import { a as ExternalFetchResult, c as ViteFetchResult, i as createWebSocketModuleRunnerTransport, n as ModuleRunnerTransportHandlers, o as FetchFunctionOptions, r as NormalizedModuleRunnerTransport, s as FetchResult, t as ModuleRunnerTransport } from "./chunks/moduleRunnerTransport.js";
|
||||||
import { ModuleNamespace, ViteHotContext } from "#types/hot";
|
import { ModuleNamespace, ViteHotContext } from "#types/hot";
|
||||||
import { HotPayload, Update } from "#types/hmrPayload";
|
import { HotPayload, Update } from "#types/hmrPayload";
|
||||||
import { InferCustomEventPayload } from "#types/customEvent";
|
import { InferCustomEventPayload } from "#types/customEvent";
|
||||||
|
|
@ -17,6 +17,7 @@ declare class DecodedMap {
|
||||||
_decoded: undefined | number[][][];
|
_decoded: undefined | number[][][];
|
||||||
_decodedMemo: Stats;
|
_decodedMemo: Stats;
|
||||||
url: string;
|
url: string;
|
||||||
|
file: string;
|
||||||
version: number;
|
version: number;
|
||||||
names: string[];
|
names: string[];
|
||||||
resolvedSources: string[];
|
resolvedSources: string[];
|
||||||
|
|
@ -62,10 +63,10 @@ declare class HMRClient {
|
||||||
private updateQueue;
|
private updateQueue;
|
||||||
private pendingUpdateQueue;
|
private pendingUpdateQueue;
|
||||||
/**
|
/**
|
||||||
* buffer multiple hot updates triggered by the same src change
|
* buffer multiple hot updates triggered by the same src change
|
||||||
* so that they are invoked in the same order they were sent.
|
* so that they are invoked in the same order they were sent.
|
||||||
* (otherwise the order may be inconsistent because of the http request round trip)
|
* (otherwise the order may be inconsistent because of the http request round trip)
|
||||||
*/
|
*/
|
||||||
queueUpdate(payload: Update): Promise<void>;
|
queueUpdate(payload: Update): Promise<void>;
|
||||||
private fetchUpdate;
|
private fetchUpdate;
|
||||||
}
|
}
|
||||||
|
|
@ -73,14 +74,14 @@ declare class HMRClient {
|
||||||
//#region src/shared/ssrTransform.d.ts
|
//#region src/shared/ssrTransform.d.ts
|
||||||
interface DefineImportMetadata {
|
interface DefineImportMetadata {
|
||||||
/**
|
/**
|
||||||
* Imported names before being transformed to `ssrImportKey`
|
* Imported names before being transformed to `ssrImportKey`
|
||||||
*
|
*
|
||||||
* import foo, { bar as baz, qux } from 'hello'
|
* import foo, { bar as baz, qux } from 'hello'
|
||||||
* => ['default', 'bar', 'qux']
|
* => ['default', 'bar', 'qux']
|
||||||
*
|
*
|
||||||
* import * as namespace from 'world
|
* import * as namespace from 'world
|
||||||
* => undefined
|
* => undefined
|
||||||
*/
|
*/
|
||||||
importedNames?: string[];
|
importedNames?: string[];
|
||||||
}
|
}
|
||||||
interface SSRImportMetadata extends DefineImportMetadata {
|
interface SSRImportMetadata extends DefineImportMetadata {
|
||||||
|
|
@ -108,30 +109,33 @@ declare class ModuleRunner {
|
||||||
private readonly transport;
|
private readonly transport;
|
||||||
private readonly resetSourceMapSupport?;
|
private readonly resetSourceMapSupport?;
|
||||||
private readonly concurrentModuleNodePromises;
|
private readonly concurrentModuleNodePromises;
|
||||||
|
private isBuiltin?;
|
||||||
|
private builtinsPromise?;
|
||||||
private closed;
|
private closed;
|
||||||
constructor(options: ModuleRunnerOptions, evaluator?: ModuleEvaluator, debug?: ModuleRunnerDebugger | undefined);
|
constructor(options: ModuleRunnerOptions, evaluator?: ModuleEvaluator, debug?: ModuleRunnerDebugger | undefined);
|
||||||
/**
|
/**
|
||||||
* URL to execute. Accepts file path, server path or id relative to the root.
|
* URL to execute. Accepts file path, server path or id relative to the root.
|
||||||
*/
|
*/
|
||||||
import<T = any>(url: string): Promise<T>;
|
import<T = any>(url: string): Promise<T>;
|
||||||
/**
|
/**
|
||||||
* Clear all caches including HMR listeners.
|
* Clear all caches including HMR listeners.
|
||||||
*/
|
*/
|
||||||
clearCache(): void;
|
clearCache(): void;
|
||||||
/**
|
/**
|
||||||
* Clears all caches, removes all HMR listeners, and resets source map support.
|
* Clears all caches, removes all HMR listeners, and resets source map support.
|
||||||
* This method doesn't stop the HMR connection.
|
* This method doesn't stop the HMR connection.
|
||||||
*/
|
*/
|
||||||
close(): Promise<void>;
|
close(): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* Returns `true` if the runtime has been closed by calling `close()` method.
|
* Returns `true` if the runtime has been closed by calling `close()` method.
|
||||||
*/
|
*/
|
||||||
isClosed(): boolean;
|
isClosed(): boolean;
|
||||||
private processImport;
|
private processImport;
|
||||||
private isCircularModule;
|
private isCircularModule;
|
||||||
private isCircularImport;
|
private isCircularImport;
|
||||||
private cachedRequest;
|
private cachedRequest;
|
||||||
private cachedModule;
|
private cachedModule;
|
||||||
|
private ensureBuiltins;
|
||||||
private getModuleInformation;
|
private getModuleInformation;
|
||||||
protected directRequest(url: string, mod: EvaluatedModuleNode, _callstack: string[]): Promise<any>;
|
protected directRequest(url: string, mod: EvaluatedModuleNode, _callstack: string[]): Promise<any>;
|
||||||
}
|
}
|
||||||
|
|
@ -168,20 +172,20 @@ interface ModuleRunnerContext {
|
||||||
}
|
}
|
||||||
interface ModuleEvaluator {
|
interface ModuleEvaluator {
|
||||||
/**
|
/**
|
||||||
* Number of prefixed lines in the transformed code.
|
* Number of prefixed lines in the transformed code.
|
||||||
*/
|
*/
|
||||||
startOffset?: number;
|
startOffset?: number;
|
||||||
/**
|
/**
|
||||||
* Run code that was transformed by Vite.
|
* Run code that was transformed by Vite.
|
||||||
* @param context Function context
|
* @param context Function context
|
||||||
* @param code Transformed code
|
* @param code Transformed code
|
||||||
* @param module The module node
|
* @param module The module node
|
||||||
*/
|
*/
|
||||||
runInlinedModule(context: ModuleRunnerContext, code: string, module: Readonly<EvaluatedModuleNode>): Promise<any>;
|
runInlinedModule(context: ModuleRunnerContext, code: string, module: Readonly<EvaluatedModuleNode>): Promise<any>;
|
||||||
/**
|
/**
|
||||||
* Run externalized module.
|
* Run externalized module.
|
||||||
* @param file File URL to the external module
|
* @param file File URL to the external module
|
||||||
*/
|
*/
|
||||||
runExternalModule(file: string): Promise<any>;
|
runExternalModule(file: string): Promise<any>;
|
||||||
}
|
}
|
||||||
type ResolvedResult = (ExternalFetchResult | ViteFetchResult) & {
|
type ResolvedResult = (ExternalFetchResult | ViteFetchResult) & {
|
||||||
|
|
@ -191,36 +195,36 @@ type ResolvedResult = (ExternalFetchResult | ViteFetchResult) & {
|
||||||
type FetchFunction = (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
type FetchFunction = (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
||||||
interface ModuleRunnerHmr {
|
interface ModuleRunnerHmr {
|
||||||
/**
|
/**
|
||||||
* Configure HMR logger.
|
* Configure HMR logger.
|
||||||
*/
|
*/
|
||||||
logger?: false | HMRLogger;
|
logger?: false | HMRLogger;
|
||||||
}
|
}
|
||||||
interface ModuleRunnerOptions {
|
interface ModuleRunnerOptions {
|
||||||
/**
|
/**
|
||||||
* A set of methods to communicate with the server.
|
* A set of methods to communicate with the server.
|
||||||
*/
|
*/
|
||||||
transport: ModuleRunnerTransport;
|
transport: ModuleRunnerTransport;
|
||||||
/**
|
/**
|
||||||
* Configure how source maps are resolved. Prefers `node` if `process.setSourceMapsEnabled` is available.
|
* Configure how source maps are resolved. Prefers `node` if `process.setSourceMapsEnabled` is available.
|
||||||
* Otherwise it will use `prepareStackTrace` by default which overrides `Error.prepareStackTrace` method.
|
* Otherwise it will use `prepareStackTrace` by default which overrides `Error.prepareStackTrace` method.
|
||||||
* You can provide an object to configure how file contents and source maps are resolved for files that were not processed by Vite.
|
* You can provide an object to configure how file contents and source maps are resolved for files that were not processed by Vite.
|
||||||
*/
|
*/
|
||||||
sourcemapInterceptor?: false | 'node' | 'prepareStackTrace' | InterceptorOptions;
|
sourcemapInterceptor?: false | "node" | "prepareStackTrace" | InterceptorOptions;
|
||||||
/**
|
/**
|
||||||
* Disable HMR or configure HMR options.
|
* Disable HMR or configure HMR options.
|
||||||
*
|
*
|
||||||
* @default true
|
* @default true
|
||||||
*/
|
*/
|
||||||
hmr?: boolean | ModuleRunnerHmr;
|
hmr?: boolean | ModuleRunnerHmr;
|
||||||
/**
|
/**
|
||||||
* Create import.meta object for the module.
|
* Create import.meta object for the module.
|
||||||
*
|
*
|
||||||
* @default createDefaultImportMeta
|
* @default createDefaultImportMeta
|
||||||
*/
|
*/
|
||||||
createImportMeta?: (modulePath: string) => ModuleRunnerImportMeta | Promise<ModuleRunnerImportMeta>;
|
createImportMeta?: (modulePath: string) => ModuleRunnerImportMeta | Promise<ModuleRunnerImportMeta>;
|
||||||
/**
|
/**
|
||||||
* Custom module cache. If not provided, creates a separate module cache for each ModuleRunner instance.
|
* Custom module cache. If not provided, creates a separate module cache for each ModuleRunner instance.
|
||||||
*/
|
*/
|
||||||
evaluatedModules?: EvaluatedModules;
|
evaluatedModules?: EvaluatedModules;
|
||||||
}
|
}
|
||||||
interface ImportMetaEnv {
|
interface ImportMetaEnv {
|
||||||
|
|
@ -251,40 +255,40 @@ declare class EvaluatedModules {
|
||||||
readonly fileToModulesMap: Map<string, Set<EvaluatedModuleNode>>;
|
readonly fileToModulesMap: Map<string, Set<EvaluatedModuleNode>>;
|
||||||
readonly urlToIdModuleMap: Map<string, EvaluatedModuleNode>;
|
readonly urlToIdModuleMap: Map<string, EvaluatedModuleNode>;
|
||||||
/**
|
/**
|
||||||
* Returns the module node by the resolved module ID. Usually, module ID is
|
* Returns the module node by the resolved module ID. Usually, module ID is
|
||||||
* the file system path with query and/or hash. It can also be a virtual module.
|
* the file system path with query and/or hash. It can also be a virtual module.
|
||||||
*
|
*
|
||||||
* Module runner graph will have 1 to 1 mapping with the server module graph.
|
* Module runner graph will have 1 to 1 mapping with the server module graph.
|
||||||
* @param id Resolved module ID
|
* @param id Resolved module ID
|
||||||
*/
|
*/
|
||||||
getModuleById(id: string): EvaluatedModuleNode | undefined;
|
getModuleById(id: string): EvaluatedModuleNode | undefined;
|
||||||
/**
|
/**
|
||||||
* Returns all modules related to the file system path. Different modules
|
* Returns all modules related to the file system path. Different modules
|
||||||
* might have different query parameters or hash, so it's possible to have
|
* might have different query parameters or hash, so it's possible to have
|
||||||
* multiple modules for the same file.
|
* multiple modules for the same file.
|
||||||
* @param file The file system path of the module
|
* @param file The file system path of the module
|
||||||
*/
|
*/
|
||||||
getModulesByFile(file: string): Set<EvaluatedModuleNode> | undefined;
|
getModulesByFile(file: string): Set<EvaluatedModuleNode> | undefined;
|
||||||
/**
|
/**
|
||||||
* Returns the module node by the URL that was used in the import statement.
|
* Returns the module node by the URL that was used in the import statement.
|
||||||
* Unlike module graph on the server, the URL is not resolved and is used as is.
|
* Unlike module graph on the server, the URL is not resolved and is used as is.
|
||||||
* @param url Server URL that was used in the import statement
|
* @param url Server URL that was used in the import statement
|
||||||
*/
|
*/
|
||||||
getModuleByUrl(url: string): EvaluatedModuleNode | undefined;
|
getModuleByUrl(url: string): EvaluatedModuleNode | undefined;
|
||||||
/**
|
/**
|
||||||
* Ensure that module is in the graph. If the module is already in the graph,
|
* Ensure that module is in the graph. If the module is already in the graph,
|
||||||
* it will return the existing module node. Otherwise, it will create a new
|
* it will return the existing module node. Otherwise, it will create a new
|
||||||
* module node and add it to the graph.
|
* module node and add it to the graph.
|
||||||
* @param id Resolved module ID
|
* @param id Resolved module ID
|
||||||
* @param url URL that was used in the import statement
|
* @param url URL that was used in the import statement
|
||||||
*/
|
*/
|
||||||
ensureModule(id: string, url: string): EvaluatedModuleNode;
|
ensureModule(id: string, url: string): EvaluatedModuleNode;
|
||||||
invalidateModule(node: EvaluatedModuleNode): void;
|
invalidateModule(node: EvaluatedModuleNode): void;
|
||||||
/**
|
/**
|
||||||
* Extracts the inlined source map from the module code and returns the decoded
|
* Extracts the inlined source map from the module code and returns the decoded
|
||||||
* source map. If the source map is not inlined, it will return null.
|
* source map. If the source map is not inlined, it will return null.
|
||||||
* @param id Resolved module ID
|
* @param id Resolved module ID
|
||||||
*/
|
*/
|
||||||
getModuleSourceMapById(id: string): DecodedMap | null;
|
getModuleSourceMapById(id: string): DecodedMap | null;
|
||||||
clear(): void;
|
clear(): void;
|
||||||
}
|
}
|
||||||
|
|
@ -300,8 +304,8 @@ declare class ESModulesEvaluator implements ModuleEvaluator {
|
||||||
//#region src/module-runner/createImportMeta.d.ts
|
//#region src/module-runner/createImportMeta.d.ts
|
||||||
declare function createDefaultImportMeta(modulePath: string): ModuleRunnerImportMeta;
|
declare function createDefaultImportMeta(modulePath: string): ModuleRunnerImportMeta;
|
||||||
/**
|
/**
|
||||||
* Create import.meta object for Node.js.
|
* Create import.meta object for Node.js.
|
||||||
*/
|
*/
|
||||||
declare function createNodeImportMeta(modulePath: string): Promise<ModuleRunnerImportMeta>;
|
declare function createNodeImportMeta(modulePath: string): Promise<ModuleRunnerImportMeta>;
|
||||||
//#endregion
|
//#endregion
|
||||||
export { ESModulesEvaluator, type EvaluatedModuleNode, EvaluatedModules, type FetchFunction, type FetchFunctionOptions, type FetchResult, type HMRLogger, type InterceptorOptions, type ModuleEvaluator, ModuleRunner, type ModuleRunnerContext, type ModuleRunnerHmr, type ModuleRunnerImportMeta, type ModuleRunnerOptions, type ModuleRunnerTransport, type ModuleRunnerTransportHandlers, type ResolvedResult, type SSRImportMetadata, createDefaultImportMeta, createNodeImportMeta, createWebSocketModuleRunnerTransport, normalizeModuleId, ssrDynamicImportKey, ssrExportAllKey, ssrExportNameKey, ssrImportKey, ssrImportMetaKey, ssrModuleExportsKey };
|
export { ESModulesEvaluator, type EvaluatedModuleNode, EvaluatedModules, type FetchFunction, type FetchFunctionOptions, type FetchResult, type HMRLogger, type InterceptorOptions, type ModuleEvaluator, ModuleRunner, type ModuleRunnerContext, type ModuleRunnerHmr, type ModuleRunnerImportMeta, type ModuleRunnerOptions, type ModuleRunnerTransport, type ModuleRunnerTransportHandlers, type ResolvedResult, type SSRImportMetadata, createDefaultImportMeta, createNodeImportMeta, createWebSocketModuleRunnerTransport, normalizeModuleId, ssrDynamicImportKey, ssrExportAllKey, ssrExportNameKey, ssrImportKey, ssrImportMetaKey, ssrModuleExportsKey };
|
||||||
|
|
@ -216,13 +216,16 @@ var DecodedMap = class {
|
||||||
_decoded;
|
_decoded;
|
||||||
_decodedMemo;
|
_decodedMemo;
|
||||||
url;
|
url;
|
||||||
|
file;
|
||||||
version;
|
version;
|
||||||
names = [];
|
names = [];
|
||||||
resolvedSources;
|
resolvedSources;
|
||||||
constructor(map, from) {
|
constructor(map, from) {
|
||||||
this.map = map;
|
this.map = map;
|
||||||
let { mappings, names, sources } = map;
|
let { mappings, names, sources } = map;
|
||||||
this.version = map.version, this.names = names || [], this._encoded = mappings || "", this._decodedMemo = memoizedState(), this.url = from, this.resolvedSources = (sources || []).map((s) => posixResolve(s || "", from));
|
this.version = map.version, this.names = names || [], this._encoded = mappings || "", this._decodedMemo = memoizedState(), this.url = from, this.file = from;
|
||||||
|
let originDir = posixDirname(from);
|
||||||
|
this.resolvedSources = (sources || []).map((s) => posixResolve(originDir, s || ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function memoizedState() {
|
function memoizedState() {
|
||||||
|
|
@ -619,7 +622,12 @@ const createInvokeableTransport = (transport) => {
|
||||||
ws.send(JSON.stringify(data));
|
ws.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}, ssrModuleExportsKey = "__vite_ssr_exports__", ssrImportKey = "__vite_ssr_import__", ssrDynamicImportKey = "__vite_ssr_dynamic_import__", ssrExportAllKey = "__vite_ssr_exportAll__", ssrExportNameKey = "__vite_ssr_exportName__", ssrImportMetaKey = "__vite_ssr_import_meta__", noop = () => {}, silentConsole = {
|
};
|
||||||
|
function createIsBuiltin(builtins) {
|
||||||
|
let plainBuiltinsSet = new Set(builtins.filter((builtin) => typeof builtin == "string")), regexBuiltins = builtins.filter((builtin) => typeof builtin != "string");
|
||||||
|
return (id) => plainBuiltinsSet.has(id) || regexBuiltins.some((regexp) => regexp.test(id));
|
||||||
|
}
|
||||||
|
const ssrModuleExportsKey = "__vite_ssr_exports__", ssrImportKey = "__vite_ssr_import__", ssrDynamicImportKey = "__vite_ssr_dynamic_import__", ssrExportAllKey = "__vite_ssr_exportAll__", ssrExportNameKey = "__vite_ssr_exportName__", ssrImportMetaKey = "__vite_ssr_import_meta__", noop = () => {}, silentConsole = {
|
||||||
debug: noop,
|
debug: noop,
|
||||||
error: noop
|
error: noop
|
||||||
}, hmrLogger = {
|
}, hmrLogger = {
|
||||||
|
|
@ -917,11 +925,17 @@ export async function resolve(specifier, context, nextResolve) {
|
||||||
specifier = parsedSpecifier
|
specifier = parsedSpecifier
|
||||||
context.parentURL = parsedImporter
|
context.parentURL = parsedImporter
|
||||||
}
|
}
|
||||||
|
|
||||||
return nextResolve(specifier, context)
|
return nextResolve(specifier, context)
|
||||||
}
|
}
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
function customizationHookResolve(specifier, context, nextResolve) {
|
||||||
|
if (specifier.startsWith(customizationHookNamespace)) {
|
||||||
|
let data = specifier.slice(42), [parsedSpecifier, parsedImporter] = JSON.parse(data);
|
||||||
|
specifier = parsedSpecifier, context.parentURL = parsedImporter;
|
||||||
|
}
|
||||||
|
return nextResolve(specifier, context);
|
||||||
|
}
|
||||||
async function createImportMetaResolver() {
|
async function createImportMetaResolver() {
|
||||||
let module;
|
let module;
|
||||||
try {
|
try {
|
||||||
|
|
@ -929,17 +943,24 @@ async function createImportMetaResolver() {
|
||||||
} catch {
|
} catch {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (module?.register) {
|
if (module) {
|
||||||
try {
|
if (module.registerHooks) return module.registerHooks({ resolve: customizationHookResolve }), importMetaResolveWithCustomHook;
|
||||||
let hookModuleContent = `data:text/javascript,${encodeURI(customizationHooksModule)}`;
|
if (module.register) {
|
||||||
module.register(hookModuleContent);
|
try {
|
||||||
} catch (e) {
|
let hookModuleContent = `data:text/javascript,${encodeURI(customizationHooksModule)}`;
|
||||||
if ("code" in e && e.code === "ERR_NETWORK_IMPORT_DISALLOWED") return;
|
module.register(hookModuleContent);
|
||||||
throw e;
|
} catch (e) {
|
||||||
|
if ("code" in e && e.code === "ERR_NETWORK_IMPORT_DISALLOWED") return;
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
return importMetaResolveWithCustomHook;
|
||||||
}
|
}
|
||||||
return (specifier, importer) => import.meta.resolve(`${customizationHookNamespace}${JSON.stringify([specifier, importer])}`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function importMetaResolveWithCustomHook(specifier, importer) {
|
||||||
|
return import.meta.resolve(`${customizationHookNamespace}${JSON.stringify([specifier, importer])}`);
|
||||||
|
}
|
||||||
|
`${customizationHookNamespace}`;
|
||||||
const envProxy = new Proxy({}, { get(_, p) {
|
const envProxy = new Proxy({}, { get(_, p) {
|
||||||
throw Error(`[module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env.${String(p)}" instead.`);
|
throw Error(`[module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env.${String(p)}" instead.`);
|
||||||
} });
|
} });
|
||||||
|
|
@ -977,6 +998,8 @@ var ModuleRunner = class {
|
||||||
transport;
|
transport;
|
||||||
resetSourceMapSupport;
|
resetSourceMapSupport;
|
||||||
concurrentModuleNodePromises = /* @__PURE__ */ new Map();
|
concurrentModuleNodePromises = /* @__PURE__ */ new Map();
|
||||||
|
isBuiltin;
|
||||||
|
builtinsPromise;
|
||||||
closed = !1;
|
closed = !1;
|
||||||
constructor(options, evaluator = new ESModulesEvaluator(), debug) {
|
constructor(options, evaluator = new ESModulesEvaluator(), debug) {
|
||||||
if (this.options = options, this.evaluator = evaluator, this.debug = debug, this.evaluatedModules = options.evaluatedModules ?? new EvaluatedModules(), this.transport = normalizeModuleRunnerTransport(options.transport), options.hmr !== !1) {
|
if (this.options = options, this.evaluator = evaluator, this.debug = debug, this.evaluatedModules = options.evaluatedModules ?? new EvaluatedModules(), this.transport = normalizeModuleRunnerTransport(options.transport), options.hmr !== !1) {
|
||||||
|
|
@ -1043,10 +1066,21 @@ var ModuleRunner = class {
|
||||||
}
|
}
|
||||||
return cached;
|
return cached;
|
||||||
}
|
}
|
||||||
|
ensureBuiltins() {
|
||||||
|
if (!this.isBuiltin) return this.builtinsPromise ??= (async () => {
|
||||||
|
try {
|
||||||
|
this.debug?.("[module runner] fetching builtins from server");
|
||||||
|
let builtins = (await this.transport.invoke("getBuiltins", [])).map((builtin) => typeof builtin == "object" && builtin && "type" in builtin ? builtin.type === "string" ? builtin.value : new RegExp(builtin.source, builtin.flags) : builtin);
|
||||||
|
this.isBuiltin = createIsBuiltin(builtins), this.debug?.("[module runner] builtins loaded:", builtins);
|
||||||
|
} finally {
|
||||||
|
this.builtinsPromise = void 0;
|
||||||
|
}
|
||||||
|
})(), this.builtinsPromise;
|
||||||
|
}
|
||||||
async getModuleInformation(url, importer, cachedModule) {
|
async getModuleInformation(url, importer, cachedModule) {
|
||||||
if (this.closed) throw Error("Vite module runner has been closed.");
|
if (this.closed) throw Error("Vite module runner has been closed.");
|
||||||
this.debug?.("[module runner] fetching", url);
|
await this.ensureBuiltins(), this.debug?.("[module runner] fetching", url);
|
||||||
let isCached = !!(typeof cachedModule == "object" && cachedModule.meta), fetchedModule = url.startsWith("data:") ? {
|
let isCached = !!(typeof cachedModule == "object" && cachedModule.meta), fetchedModule = url.startsWith("data:") || this.isBuiltin?.(url) ? {
|
||||||
externalize: url,
|
externalize: url,
|
||||||
type: "builtin"
|
type: "builtin"
|
||||||
} : await this.transport.invoke("fetchModule", [
|
} : await this.transport.invoke("fetchModule", [
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "vite",
|
"name": "vite",
|
||||||
"version": "7.1.12",
|
"version": "7.2.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": "Evan You",
|
"author": "Evan You",
|
||||||
|
|
@ -79,12 +79,12 @@
|
||||||
"fsevents": "~2.3.3"
|
"fsevents": "~2.3.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/parser": "^7.28.4",
|
"@babel/parser": "^7.28.5",
|
||||||
"@jridgewell/remapping": "^2.3.5",
|
"@jridgewell/remapping": "^2.3.5",
|
||||||
"@jridgewell/trace-mapping": "^0.3.31",
|
"@jridgewell/trace-mapping": "^0.3.31",
|
||||||
"@oxc-project/types": "0.90.0",
|
"@oxc-project/types": "0.95.0",
|
||||||
"@polka/compression": "^1.0.0-next.25",
|
"@polka/compression": "^1.0.0-next.25",
|
||||||
"@rolldown/pluginutils": "^1.0.0-beta.43",
|
"@rolldown/pluginutils": "^1.0.0-beta.44",
|
||||||
"@rollup/plugin-alias": "^5.1.1",
|
"@rollup/plugin-alias": "^5.1.1",
|
||||||
"@rollup/plugin-commonjs": "28.0.6",
|
"@rollup/plugin-commonjs": "28.0.6",
|
||||||
"@rollup/plugin-dynamic-import-vars": "2.1.4",
|
"@rollup/plugin-dynamic-import-vars": "2.1.4",
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
"@types/escape-html": "^1.0.4",
|
"@types/escape-html": "^1.0.4",
|
||||||
"@types/pnpapi": "^0.0.5",
|
"@types/pnpapi": "^0.0.5",
|
||||||
"artichokie": "^0.4.2",
|
"artichokie": "^0.4.2",
|
||||||
"baseline-browser-mapping": "^2.8.18",
|
"baseline-browser-mapping": "^2.8.20",
|
||||||
"cac": "^6.7.14",
|
"cac": "^6.7.14",
|
||||||
"chokidar": "^3.6.0",
|
"chokidar": "^3.6.0",
|
||||||
"connect": "^3.7.0",
|
"connect": "^3.7.0",
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
"http-proxy-3": "^1.22.0",
|
"http-proxy-3": "^1.22.0",
|
||||||
"launch-editor-middleware": "^2.11.1",
|
"launch-editor-middleware": "^2.11.1",
|
||||||
"lightningcss": "^1.30.2",
|
"lightningcss": "^1.30.2",
|
||||||
"magic-string": "^0.30.19",
|
"magic-string": "^0.30.21",
|
||||||
"mlly": "^1.8.0",
|
"mlly": "^1.8.0",
|
||||||
"mrmime": "^2.0.1",
|
"mrmime": "^2.0.1",
|
||||||
"nanoid": "^5.1.6",
|
"nanoid": "^5.1.6",
|
||||||
|
|
@ -124,8 +124,8 @@
|
||||||
"postcss-modules": "^6.0.1",
|
"postcss-modules": "^6.0.1",
|
||||||
"premove": "^4.0.0",
|
"premove": "^4.0.0",
|
||||||
"resolve.exports": "^2.0.3",
|
"resolve.exports": "^2.0.3",
|
||||||
"rolldown": "^1.0.0-beta.43",
|
"rolldown": "^1.0.0-beta.46",
|
||||||
"rolldown-plugin-dts": "^0.16.11",
|
"rolldown-plugin-dts": "^0.17.3",
|
||||||
"rollup-plugin-license": "^3.6.0",
|
"rollup-plugin-license": "^3.6.0",
|
||||||
"sass": "^1.93.2",
|
"sass": "^1.93.2",
|
||||||
"sass-embedded": "^1.93.2",
|
"sass-embedded": "^1.93.2",
|
||||||
|
|
@ -191,7 +191,7 @@
|
||||||
"build-types": "pnpm build-types-roll && pnpm build-types-check",
|
"build-types": "pnpm build-types-roll && pnpm build-types-check",
|
||||||
"build-types-roll": "rolldown --config rolldown.dts.config.ts",
|
"build-types-roll": "rolldown --config rolldown.dts.config.ts",
|
||||||
"build-types-check": "tsc --project tsconfig.check.json",
|
"build-types-check": "tsc --project tsconfig.check.json",
|
||||||
"typecheck": "tsc && tsc -p src/node",
|
"typecheck": "tsc && tsc -p src/node && tsc -p src/module-runner && tsc -p src/shared && tsc -p src/node/__tests_dts__",
|
||||||
"lint": "eslint --cache --ext .ts src/**",
|
"lint": "eslint --cache --ext .ts src/**",
|
||||||
"format": "prettier --write --cache --parser typescript \"src/**/*.ts\"",
|
"format": "prettier --write --cache --parser typescript \"src/**/*.ts\"",
|
||||||
"generate-target": "tsx scripts/generateTarget.ts"
|
"generate-target": "tsx scripts/generateTarget.ts"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import type {
|
||||||
} from './hmrPayload'
|
} from './hmrPayload'
|
||||||
|
|
||||||
export interface CustomEventMap {
|
export interface CustomEventMap {
|
||||||
|
// client events
|
||||||
'vite:beforeUpdate': UpdatePayload
|
'vite:beforeUpdate': UpdatePayload
|
||||||
'vite:afterUpdate': UpdatePayload
|
'vite:afterUpdate': UpdatePayload
|
||||||
'vite:beforePrune': PrunePayload
|
'vite:beforePrune': PrunePayload
|
||||||
|
|
@ -14,6 +15,10 @@ export interface CustomEventMap {
|
||||||
'vite:invalidate': InvalidatePayload
|
'vite:invalidate': InvalidatePayload
|
||||||
'vite:ws:connect': WebSocketConnectionPayload
|
'vite:ws:connect': WebSocketConnectionPayload
|
||||||
'vite:ws:disconnect': WebSocketConnectionPayload
|
'vite:ws:disconnect': WebSocketConnectionPayload
|
||||||
|
|
||||||
|
// server events
|
||||||
|
'vite:client:connect': undefined
|
||||||
|
'vite:client:disconnect': undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface WebSocketConnectionPayload {
|
export interface WebSocketConnectionPayload {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
"three": "^0.181.0"
|
"three": "^0.181.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^7.1.12"
|
"vite": "^7.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/aix-ppc64": {
|
"node_modules/@esbuild/aix-ppc64": {
|
||||||
|
|
@ -991,11 +991,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "7.1.12",
|
"version": "7.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz",
|
||||||
"integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==",
|
"integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"fdir": "^6.5.0",
|
"fdir": "^6.5.0",
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,6 @@
|
||||||
"three": "^0.181.0"
|
"three": "^0.181.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^7.1.12"
|
"vite": "^7.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
86
roundURDF.py
86
roundURDF.py
|
|
@ -1,43 +1,43 @@
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import math
|
import math
|
||||||
|
|
||||||
def round_axis(x, y, z):
|
def round_axis(x, y, z):
|
||||||
# Normalize vector
|
# Normalize vector
|
||||||
mag = math.sqrt(x**2 + y**2 + z**2)
|
mag = math.sqrt(x**2 + y**2 + z**2)
|
||||||
if mag == 0:
|
if mag == 0:
|
||||||
return (0, 0, 0)
|
return (0, 0, 0)
|
||||||
x, y, z = x/mag, y/mag, z/mag
|
x, y, z = x/mag, y/mag, z/mag
|
||||||
|
|
||||||
# Compare to cardinal directions
|
# Compare to cardinal directions
|
||||||
directions = {
|
directions = {
|
||||||
(1, 0, 0): 'X+',
|
(1, 0, 0): 'X+',
|
||||||
(-1, 0, 0): 'X-',
|
(-1, 0, 0): 'X-',
|
||||||
(0, 1, 0): 'Y+',
|
(0, 1, 0): 'Y+',
|
||||||
(0, -1, 0): 'Y-',
|
(0, -1, 0): 'Y-',
|
||||||
(0, 0, 1): 'Z+',
|
(0, 0, 1): 'Z+',
|
||||||
(0, 0, -1): 'Z-'
|
(0, 0, -1): 'Z-'
|
||||||
}
|
}
|
||||||
|
|
||||||
best = max(directions.keys(), key=lambda d: x*d[0] + y*d[1] + z*d[2])
|
best = max(directions.keys(), key=lambda d: x*d[0] + y*d[1] + z*d[2])
|
||||||
return best
|
return best
|
||||||
|
|
||||||
def process_urdf(file_path, output_path):
|
def process_urdf(file_path, output_path):
|
||||||
tree = ET.parse(file_path)
|
tree = ET.parse(file_path)
|
||||||
root = tree.getroot()
|
root = tree.getroot()
|
||||||
|
|
||||||
for joint in root.findall('joint'):
|
for joint in root.findall('joint'):
|
||||||
axis_elem = joint.find('axis')
|
axis_elem = joint.find('axis')
|
||||||
if axis_elem is not None:
|
if axis_elem is not None:
|
||||||
axis_str = axis_elem.attrib.get('xyz', '')
|
axis_str = axis_elem.attrib.get('xyz', '')
|
||||||
try:
|
try:
|
||||||
x, y, z = map(float, axis_str.strip().split())
|
x, y, z = map(float, axis_str.strip().split())
|
||||||
rx, ry, rz = round_axis(x, y, z)
|
rx, ry, rz = round_axis(x, y, z)
|
||||||
axis_elem.set('xyz', f"{rx} {ry} {rz}")
|
axis_elem.set('xyz', f"{rx} {ry} {rz}")
|
||||||
except:
|
except:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
tree.write(output_path)
|
tree.write(output_path)
|
||||||
print(f"Rounded axes written to {output_path}")
|
print(f"Rounded axes written to {output_path}")
|
||||||
|
|
||||||
# Example usage
|
# Example usage
|
||||||
process_urdf("./urdf/sample.urdf", "./urdf/output.urdf")
|
process_urdf("./urdf/sample.urdf", "./urdf/output.urdf")
|
||||||
|
|
|
||||||
712
script.js
712
script.js
|
|
@ -1,356 +1,356 @@
|
||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
||||||
import URDFLoader from './urdf/URDFLoader.js';
|
import URDFLoader from './urdf/URDFLoader.js';
|
||||||
|
|
||||||
// Setup scene, camera, renderer
|
// Setup scene, camera, renderer
|
||||||
const canvas = document.getElementById('urdf-canvas');
|
const canvas = document.getElementById('urdf-canvas');
|
||||||
const renderer = new THREE.WebGLRenderer({ canvas, antialias: true });
|
const renderer = new THREE.WebGLRenderer({ canvas, antialias: true });
|
||||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
|
||||||
const scene = new THREE.Scene();
|
const scene = new THREE.Scene();
|
||||||
scene.background = new THREE.Color(0xaaaaaa);
|
scene.background = new THREE.Color(0xaaaaaa);
|
||||||
|
|
||||||
const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 100);
|
const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 100);
|
||||||
camera.position.set(2, 2, 2);
|
camera.position.set(2, 2, 2);
|
||||||
camera.lookAt(0, 0, 0);
|
camera.lookAt(0, 0, 0);
|
||||||
|
|
||||||
// Lights
|
// Lights
|
||||||
scene.add(new THREE.AmbientLight(0xffffff, 0.6));
|
scene.add(new THREE.AmbientLight(0xffffff, 0.6));
|
||||||
const directional = new THREE.DirectionalLight(0xffffff, 0.8);
|
const directional = new THREE.DirectionalLight(0xffffff, 0.8);
|
||||||
directional.position.set(15, 10, 7);
|
directional.position.set(15, 10, 7);
|
||||||
const directional2 = new THREE.DirectionalLight(0xffffff, 0.8);
|
const directional2 = new THREE.DirectionalLight(0xffffff, 0.8);
|
||||||
directional2.position.set(-15, 10, -7);
|
directional2.position.set(-15, 10, -7);
|
||||||
scene.add(directional2);
|
scene.add(directional2);
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
const controls = new OrbitControls(camera, renderer.domElement);
|
const controls = new OrbitControls(camera, renderer.domElement);
|
||||||
controls.target.set(0, 0.5, 0);
|
controls.target.set(0, 0.5, 0);
|
||||||
controls.update();
|
controls.update();
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
scene.add(new THREE.AxesHelper(1));
|
scene.add(new THREE.AxesHelper(1));
|
||||||
const gridHelper = new THREE.GridHelper(2, 10);
|
const gridHelper = new THREE.GridHelper(2, 10);
|
||||||
//gridHelper.rotation.x = Math.PI / 2;
|
//gridHelper.rotation.x = Math.PI / 2;
|
||||||
gridHelper.position.z = 0;
|
gridHelper.position.z = 0;
|
||||||
scene.add(gridHelper);
|
scene.add(gridHelper);
|
||||||
|
|
||||||
// Raycasting
|
// Raycasting
|
||||||
const raycaster = new THREE.Raycaster();
|
const raycaster = new THREE.Raycaster();
|
||||||
const mouse = new THREE.Vector2();
|
const mouse = new THREE.Vector2();
|
||||||
let hoveredJoint = null;
|
let hoveredJoint = null;
|
||||||
let isDragging = false;
|
let isDragging = false;
|
||||||
let lastX = null;
|
let lastX = null;
|
||||||
let worldAxis = null;
|
let worldAxis = null;
|
||||||
|
|
||||||
let draggedJoint = null;
|
let draggedJoint = null;
|
||||||
let arc = null;
|
let arc = null;
|
||||||
const jointAngles = {}; // key: jointName, value: current angle in radians
|
const jointAngles = {}; // key: jointName, value: current angle in radians
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function findJointAncestor(object) {
|
function findJointAncestor(object) {
|
||||||
while (object && object.parent) {
|
while (object && object.parent) {
|
||||||
if (object.type === 'URDFJoint') return object;
|
if (object.type === 'URDFJoint') return object;
|
||||||
object = object.parent;
|
object = object.parent;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createRotationArc(axis, lower, upper, radius = 0.1, segments = 32) {
|
function createRotationArc(axis, lower, upper, radius = 0.1, segments = 32) {
|
||||||
const points = [];
|
const points = [];
|
||||||
console.log(axis);
|
console.log(axis);
|
||||||
console.log(axis.clone());
|
console.log(axis.clone());
|
||||||
// ✅ Ensure axis is normalized
|
// ✅ Ensure axis is normalized
|
||||||
const normalizedAxis = axis.clone().normalize();
|
const normalizedAxis = axis.clone().normalize();
|
||||||
|
|
||||||
// ✅ Find a perpendicular vector
|
// ✅ Find a perpendicular vector
|
||||||
let perp = new THREE.Vector3(0, 1, 0);
|
let perp = new THREE.Vector3(0, 1, 0);
|
||||||
if (Math.abs(normalizedAxis.dot(perp)) > 0.99) {
|
if (Math.abs(normalizedAxis.dot(perp)) > 0.99) {
|
||||||
perp = new THREE.Vector3(1, 0, 0); // fallback if axis is nearly parallel to Y
|
perp = new THREE.Vector3(1, 0, 0); // fallback if axis is nearly parallel to Y
|
||||||
}
|
}
|
||||||
const tangent = perp.cross(normalizedAxis).normalize();
|
const tangent = perp.cross(normalizedAxis).normalize();
|
||||||
|
|
||||||
for (let i = 0; i <= segments; i++) {
|
for (let i = 0; i <= segments; i++) {
|
||||||
const angle = lower + (upper - lower) * (i / segments);
|
const angle = lower + (upper - lower) * (i / segments);
|
||||||
const point = tangent.clone().applyAxisAngle(normalizedAxis, angle).multiplyScalar(radius);
|
const point = tangent.clone().applyAxisAngle(normalizedAxis, angle).multiplyScalar(radius);
|
||||||
points.push(point);
|
points.push(point);
|
||||||
}
|
}
|
||||||
|
|
||||||
const geometry = new THREE.BufferGeometry().setFromPoints(points);
|
const geometry = new THREE.BufferGeometry().setFromPoints(points);
|
||||||
const material = new THREE.LineBasicMaterial({ color: 0xffff00 });
|
const material = new THREE.LineBasicMaterial({ color: 0xffff00 });
|
||||||
return new THREE.Line(geometry, material);
|
return new THREE.Line(geometry, material);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createRotationSector(axis, lower, upper, radius = 0.1, segments = 64) {
|
function createRotationSector(axis, lower, upper, radius = 0.1, segments = 64) {
|
||||||
const motorMargin = 0.4; // hardcoded extra range beyond joint limits
|
const motorMargin = 0.4; // hardcoded extra range beyond joint limits
|
||||||
const motorLower = lower - motorMargin;
|
const motorLower = lower - motorMargin;
|
||||||
const motorUpper = upper + motorMargin;
|
const motorUpper = upper + motorMargin;
|
||||||
|
|
||||||
const redMaterial = new THREE.MeshBasicMaterial({
|
const redMaterial = new THREE.MeshBasicMaterial({
|
||||||
color: 0xff0000,
|
color: 0xff0000,
|
||||||
transparent: true,
|
transparent: true,
|
||||||
opacity: 0.2,
|
opacity: 0.2,
|
||||||
side: THREE.DoubleSide,
|
side: THREE.DoubleSide,
|
||||||
depthTest: false,
|
depthTest: false,
|
||||||
depthWrite: false
|
depthWrite: false
|
||||||
});
|
});
|
||||||
|
|
||||||
const whiteMaterial = new THREE.MeshBasicMaterial({
|
const whiteMaterial = new THREE.MeshBasicMaterial({
|
||||||
color: 0xffffff,
|
color: 0xffffff,
|
||||||
transparent: true,
|
transparent: true,
|
||||||
opacity: 0.6,
|
opacity: 0.6,
|
||||||
side: THREE.DoubleSide,
|
side: THREE.DoubleSide,
|
||||||
depthTest: false,
|
depthTest: false,
|
||||||
depthWrite: false
|
depthWrite: false
|
||||||
});
|
});
|
||||||
|
|
||||||
function createArc(start, end, material) {
|
function createArc(start, end, material) {
|
||||||
const shape = new THREE.Shape();
|
const shape = new THREE.Shape();
|
||||||
shape.moveTo(0, 0);
|
shape.moveTo(0, 0);
|
||||||
for (let i = 0; i <= segments; i++) {
|
for (let i = 0; i <= segments; i++) {
|
||||||
const angle = start + (end - start) * (i / segments);
|
const angle = start + (end - start) * (i / segments);
|
||||||
shape.lineTo(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
shape.lineTo(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
||||||
}
|
}
|
||||||
shape.lineTo(0, 0);
|
shape.lineTo(0, 0);
|
||||||
const geometry = new THREE.ShapeGeometry(shape);
|
const geometry = new THREE.ShapeGeometry(shape);
|
||||||
return new THREE.Mesh(geometry, material);
|
return new THREE.Mesh(geometry, material);
|
||||||
}
|
}
|
||||||
|
|
||||||
const redLeft = createArc(motorLower, lower, redMaterial);
|
const redLeft = createArc(motorLower, lower, redMaterial);
|
||||||
const whiteArc = createArc(lower, upper, whiteMaterial);
|
const whiteArc = createArc(lower, upper, whiteMaterial);
|
||||||
const redRight = createArc(upper, motorUpper, redMaterial);
|
const redRight = createArc(upper, motorUpper, redMaterial);
|
||||||
|
|
||||||
// Orient all arcs to match the axis
|
// Orient all arcs to match the axis
|
||||||
const basis = new THREE.Matrix4();
|
const basis = new THREE.Matrix4();
|
||||||
const up = new THREE.Vector3(0, 0, 1);
|
const up = new THREE.Vector3(0, 0, 1);
|
||||||
const quaternion = new THREE.Quaternion().setFromUnitVectors(up, axis.clone().normalize());
|
const quaternion = new THREE.Quaternion().setFromUnitVectors(up, axis.clone().normalize());
|
||||||
basis.makeRotationFromQuaternion(quaternion);
|
basis.makeRotationFromQuaternion(quaternion);
|
||||||
|
|
||||||
redLeft.applyMatrix4(basis);
|
redLeft.applyMatrix4(basis);
|
||||||
whiteArc.applyMatrix4(basis);
|
whiteArc.applyMatrix4(basis);
|
||||||
redRight.applyMatrix4(basis);
|
redRight.applyMatrix4(basis);
|
||||||
|
|
||||||
const group = new THREE.Group();
|
const group = new THREE.Group();
|
||||||
group.add(redLeft);
|
group.add(redLeft);
|
||||||
group.add(whiteArc);
|
group.add(whiteArc);
|
||||||
group.add(redRight);
|
group.add(redRight);
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function createAngleIndicator(axis, angle, radius = 0.1) {
|
function createAngleIndicator(axis, angle, radius = 0.1) {
|
||||||
const dir = new THREE.Vector3(Math.cos(angle), Math.sin(angle), 0).multiplyScalar(radius);
|
const dir = new THREE.Vector3(Math.cos(angle), Math.sin(angle), 0).multiplyScalar(radius);
|
||||||
|
|
||||||
const geometry = new THREE.BufferGeometry().setFromPoints([
|
const geometry = new THREE.BufferGeometry().setFromPoints([
|
||||||
new THREE.Vector3(0, 0, 0),
|
new THREE.Vector3(0, 0, 0),
|
||||||
dir,
|
dir,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const material = new THREE.LineBasicMaterial({
|
const material = new THREE.LineBasicMaterial({
|
||||||
color: 0xffffff, // white
|
color: 0xffffff, // white
|
||||||
linewidth: 2, // note: linewidth only works in some renderers
|
linewidth: 2, // note: linewidth only works in some renderers
|
||||||
depthTest: false, // ✅ always on top
|
depthTest: false, // ✅ always on top
|
||||||
depthWrite: false
|
depthWrite: false
|
||||||
});
|
});
|
||||||
|
|
||||||
const line = new THREE.Line(geometry, material);
|
const line = new THREE.Line(geometry, material);
|
||||||
|
|
||||||
// Rotate into axis plane
|
// Rotate into axis plane
|
||||||
const up = new THREE.Vector3(0, 0, 1);
|
const up = new THREE.Vector3(0, 0, 1);
|
||||||
const quaternion = new THREE.Quaternion().setFromUnitVectors(up, axis.clone().normalize());
|
const quaternion = new THREE.Quaternion().setFromUnitVectors(up, axis.clone().normalize());
|
||||||
line.applyQuaternion(quaternion);
|
line.applyQuaternion(quaternion);
|
||||||
|
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Load URDF
|
// Load URDF
|
||||||
const loader = new URDFLoader();
|
const loader = new URDFLoader();
|
||||||
loader.packages = { '': './urdf/' };
|
loader.packages = { '': './urdf/' };
|
||||||
|
|
||||||
function findObjectByName(root, name) {
|
function findObjectByName(root, name) {
|
||||||
let result = null;
|
let result = null;
|
||||||
root.traverse(child => {
|
root.traverse(child => {
|
||||||
if (child.name === name) result = child;
|
if (child.name === name) result = child;
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
loader.load('./urdf/sample.urdf', robot => {
|
loader.load('./urdf/sample.urdf', robot => {
|
||||||
//scene.rotation.x = -Math.PI / 2;
|
//scene.rotation.x = -Math.PI / 2;
|
||||||
robot.rotation.x = -Math.PI / 2;
|
robot.rotation.x = -Math.PI / 2;
|
||||||
scene.add(robot);
|
scene.add(robot);
|
||||||
document.getElementById('status').textContent = 'URDF Loaded';
|
document.getElementById('status').textContent = 'URDF Loaded';
|
||||||
|
|
||||||
loader.parseVisual = true;
|
loader.parseVisual = true;
|
||||||
loader.parseCollision = false;
|
loader.parseCollision = false;
|
||||||
|
|
||||||
// Add AxesHelpers to all meshes
|
// Add AxesHelpers to all meshes
|
||||||
robot.traverse(obj => {
|
robot.traverse(obj => {
|
||||||
if (obj.isMesh) obj.add(new THREE.AxesHelper(0.05));
|
if (obj.isMesh) obj.add(new THREE.AxesHelper(0.05));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Setup pointer events
|
// Setup pointer events
|
||||||
canvas.addEventListener('pointermove', event => {
|
canvas.addEventListener('pointermove', event => {
|
||||||
mouse.x = (event.clientX / canvas.clientWidth) * 2 - 1;
|
mouse.x = (event.clientX / canvas.clientWidth) * 2 - 1;
|
||||||
mouse.y = -(event.clientY / canvas.clientHeight) * 2 + 1;
|
mouse.y = -(event.clientY / canvas.clientHeight) * 2 + 1;
|
||||||
|
|
||||||
raycaster.setFromCamera(mouse, camera);
|
raycaster.setFromCamera(mouse, camera);
|
||||||
const intersects = raycaster.intersectObjects(robot.children, true);
|
const intersects = raycaster.intersectObjects(robot.children, true);
|
||||||
|
|
||||||
if (isDragging && draggedJoint && worldAxis) {
|
if (isDragging && draggedJoint && worldAxis) {
|
||||||
const deltaX = event.clientX - lastX;
|
const deltaX = event.clientX - lastX;
|
||||||
lastX = event.clientX;
|
lastX = event.clientX;
|
||||||
const angleDelta = deltaX * 0.005;
|
const angleDelta = deltaX * 0.005;
|
||||||
|
|
||||||
const jointName = draggedJoint.name;
|
const jointName = draggedJoint.name;
|
||||||
const limits = robot.joints[jointName]?.limit;
|
const limits = robot.joints[jointName]?.limit;
|
||||||
const lower = limits?.lower ?? -Math.PI;
|
const lower = limits?.lower ?? -Math.PI;
|
||||||
const upper = limits?.upper ?? Math.PI;
|
const upper = limits?.upper ?? Math.PI;
|
||||||
|
|
||||||
const currentAngle = jointAngles[jointName] ?? 0;
|
const currentAngle = jointAngles[jointName] ?? 0;
|
||||||
const proposedAngle = currentAngle + angleDelta;
|
const proposedAngle = currentAngle + angleDelta;
|
||||||
|
|
||||||
// ✅ Clamp to limits
|
// ✅ Clamp to limits
|
||||||
const clampedAngle = Math.max(lower, Math.min(upper, proposedAngle));
|
const clampedAngle = Math.max(lower, Math.min(upper, proposedAngle));
|
||||||
const actualDelta = clampedAngle - currentAngle;
|
const actualDelta = clampedAngle - currentAngle;
|
||||||
|
|
||||||
// ✅ Apply rotation
|
// ✅ Apply rotation
|
||||||
draggedJoint.rotateOnAxis(worldAxis, actualDelta);
|
draggedJoint.rotateOnAxis(worldAxis, actualDelta);
|
||||||
jointAngles[jointName] = clampedAngle;
|
jointAngles[jointName] = clampedAngle;
|
||||||
|
|
||||||
|
|
||||||
// Remove old indicator
|
// Remove old indicator
|
||||||
if (draggedJoint.userData.gizmo?.indicator) {
|
if (draggedJoint.userData.gizmo?.indicator) {
|
||||||
draggedJoint.parent.remove(draggedJoint.userData.gizmo.indicator);
|
draggedJoint.parent.remove(draggedJoint.userData.gizmo.indicator);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add updated indicator
|
// Add updated indicator
|
||||||
const newIndicator = createAngleIndicator(worldAxis, jointAngles[jointName]);
|
const newIndicator = createAngleIndicator(worldAxis, jointAngles[jointName]);
|
||||||
newIndicator.position.copy(draggedJoint.position);
|
newIndicator.position.copy(draggedJoint.position);
|
||||||
draggedJoint.parent.add(newIndicator);
|
draggedJoint.parent.add(newIndicator);
|
||||||
draggedJoint.userData.gizmo.indicator = newIndicator;
|
draggedJoint.userData.gizmo.indicator = newIndicator;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (intersects.length > 0) {
|
if (intersects.length > 0) {
|
||||||
const target = intersects[0].object;
|
const target = intersects[0].object;
|
||||||
|
|
||||||
// Reset previous highlight
|
// Reset previous highlight
|
||||||
if (
|
if (
|
||||||
hoveredJoint &&
|
hoveredJoint &&
|
||||||
hoveredJoint.material &&
|
hoveredJoint.material &&
|
||||||
'emissive' in hoveredJoint.material &&
|
'emissive' in hoveredJoint.material &&
|
||||||
typeof hoveredJoint.material.emissive.setHex === 'function'
|
typeof hoveredJoint.material.emissive.setHex === 'function'
|
||||||
) {
|
) {
|
||||||
hoveredJoint.material.emissive.setHex(0x000000);
|
hoveredJoint.material.emissive.setHex(0x000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
hoveredJoint = target;
|
hoveredJoint = target;
|
||||||
|
|
||||||
// Highlight new joint
|
// Highlight new joint
|
||||||
if (
|
if (
|
||||||
hoveredJoint.material &&
|
hoveredJoint.material &&
|
||||||
'emissive' in hoveredJoint.material &&
|
'emissive' in hoveredJoint.material &&
|
||||||
typeof hoveredJoint.material.emissive.setHex === 'function'
|
typeof hoveredJoint.material.emissive.setHex === 'function'
|
||||||
) {
|
) {
|
||||||
hoveredJoint.material.emissive.setHex(0x333333);
|
hoveredJoint.material.emissive.setHex(0x333333);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
hoveredJoint &&
|
hoveredJoint &&
|
||||||
hoveredJoint.material &&
|
hoveredJoint.material &&
|
||||||
'emissive' in hoveredJoint.material &&
|
'emissive' in hoveredJoint.material &&
|
||||||
typeof hoveredJoint.material.emissive.setHex === 'function'
|
typeof hoveredJoint.material.emissive.setHex === 'function'
|
||||||
) {
|
) {
|
||||||
hoveredJoint.material.emissive.setHex(0x000000);
|
hoveredJoint.material.emissive.setHex(0x000000);
|
||||||
}
|
}
|
||||||
hoveredJoint = null;
|
hoveredJoint = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
canvas.addEventListener('pointerdown', event => {
|
canvas.addEventListener('pointerdown', event => {
|
||||||
if (!hoveredJoint) return;
|
if (!hoveredJoint) return;
|
||||||
|
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
lastX = event.clientX;
|
lastX = event.clientX;
|
||||||
controls.enabled = false;
|
controls.enabled = false;
|
||||||
|
|
||||||
draggedJoint = findJointAncestor(hoveredJoint);
|
draggedJoint = findJointAncestor(hoveredJoint);
|
||||||
|
|
||||||
|
|
||||||
if (!draggedJoint) return;
|
if (!draggedJoint) return;
|
||||||
|
|
||||||
const jointName = draggedJoint.name;
|
const jointName = draggedJoint.name;
|
||||||
const jointData = robot.joints?.[jointName];
|
const jointData = robot.joints?.[jointName];
|
||||||
|
|
||||||
// ✅ Check if axis is a valid THREE.Vector3
|
// ✅ Check if axis is a valid THREE.Vector3
|
||||||
if (!(jointData?.axis instanceof THREE.Vector3)) {
|
if (!(jointData?.axis instanceof THREE.Vector3)) {
|
||||||
console.warn(`Invalid axis for joint "${jointName}":`, jointData?.axis);
|
console.warn(`Invalid axis for joint "${jointName}":`, jointData?.axis);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const urdfAxis = jointData.axis.clone();
|
const urdfAxis = jointData.axis.clone();
|
||||||
if (urdfAxis.lengthSq() === 0) {
|
if (urdfAxis.lengthSq() === 0) {
|
||||||
console.warn(`Zero-length axis for joint "${jointName}"`);
|
console.warn(`Zero-length axis for joint "${jointName}"`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
worldAxis = urdfAxis.normalize();
|
worldAxis = urdfAxis.normalize();
|
||||||
const limits = robot.joints[jointName]?.limit;
|
const limits = robot.joints[jointName]?.limit;
|
||||||
const lower = limits?.lower ?? -Math.PI;
|
const lower = limits?.lower ?? -Math.PI;
|
||||||
const upper = limits?.upper ?? Math.PI;
|
const upper = limits?.upper ?? Math.PI;
|
||||||
|
|
||||||
const sector = createRotationSector(worldAxis, lower, upper);
|
const sector = createRotationSector(worldAxis, lower, upper);
|
||||||
const indicator = createAngleIndicator(worldAxis, jointAngles[jointName] ?? 0);
|
const indicator = createAngleIndicator(worldAxis, jointAngles[jointName] ?? 0);
|
||||||
|
|
||||||
sector.position.copy(draggedJoint.position);
|
sector.position.copy(draggedJoint.position);
|
||||||
indicator.position.copy(draggedJoint.position);
|
indicator.position.copy(draggedJoint.position);
|
||||||
|
|
||||||
draggedJoint.parent.add(sector);
|
draggedJoint.parent.add(sector);
|
||||||
draggedJoint.parent.add(indicator);
|
draggedJoint.parent.add(indicator);
|
||||||
|
|
||||||
// Store for cleanup
|
// Store for cleanup
|
||||||
draggedJoint.userData.gizmo = { sector, indicator };
|
draggedJoint.userData.gizmo = { sector, indicator };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log(`Dragging joint "${jointName}" on axis`, worldAxis.toArray());
|
console.log(`Dragging joint "${jointName}" on axis`, worldAxis.toArray());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
canvas.addEventListener('pointerup', () => {
|
canvas.addEventListener('pointerup', () => {
|
||||||
isDragging = false;
|
isDragging = false;
|
||||||
controls.enabled = true;
|
controls.enabled = true;
|
||||||
const gizmo = draggedJoint?.userData.gizmo;
|
const gizmo = draggedJoint?.userData.gizmo;
|
||||||
if (gizmo) {
|
if (gizmo) {
|
||||||
draggedJoint.parent.remove(gizmo.sector);
|
draggedJoint.parent.remove(gizmo.sector);
|
||||||
draggedJoint.parent.remove(gizmo.indicator);
|
draggedJoint.parent.remove(gizmo.indicator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
draggedJoint = null;
|
draggedJoint = null;
|
||||||
worldAxis = null;
|
worldAxis = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
animate();
|
animate();
|
||||||
});
|
});
|
||||||
|
|
||||||
function animate() {
|
function animate() {
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
renderer.render(scene, camera);
|
renderer.render(scene, camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,469 +1,469 @@
|
||||||
import { Euler, Object3D, Vector3, Quaternion, Matrix4 } from 'three';
|
import { Euler, Object3D, Vector3, Quaternion, Matrix4 } from 'three';
|
||||||
|
|
||||||
const _tempAxis = new Vector3();
|
const _tempAxis = new Vector3();
|
||||||
const _tempEuler = new Euler();
|
const _tempEuler = new Euler();
|
||||||
const _tempTransform = new Matrix4();
|
const _tempTransform = new Matrix4();
|
||||||
const _tempOrigTransform = new Matrix4();
|
const _tempOrigTransform = new Matrix4();
|
||||||
const _tempQuat = new Quaternion();
|
const _tempQuat = new Quaternion();
|
||||||
const _tempScale = new Vector3(1.0, 1.0, 1.0);
|
const _tempScale = new Vector3(1.0, 1.0, 1.0);
|
||||||
const _tempPosition = new Vector3();
|
const _tempPosition = new Vector3();
|
||||||
|
|
||||||
class URDFBase extends Object3D {
|
class URDFBase extends Object3D {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.urdfNode = null;
|
this.urdfNode = null;
|
||||||
this.urdfName = '';
|
this.urdfName = '';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
copy(source, recursive) {
|
copy(source, recursive) {
|
||||||
|
|
||||||
super.copy(source, recursive);
|
super.copy(source, recursive);
|
||||||
|
|
||||||
this.urdfNode = source.urdfNode;
|
this.urdfNode = source.urdfNode;
|
||||||
this.urdfName = source.urdfName;
|
this.urdfName = source.urdfName;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFCollider extends URDFBase {
|
class URDFCollider extends URDFBase {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.isURDFCollider = true;
|
this.isURDFCollider = true;
|
||||||
this.type = 'URDFCollider';
|
this.type = 'URDFCollider';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFVisual extends URDFBase {
|
class URDFVisual extends URDFBase {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.isURDFVisual = true;
|
this.isURDFVisual = true;
|
||||||
this.type = 'URDFVisual';
|
this.type = 'URDFVisual';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFLink extends URDFBase {
|
class URDFLink extends URDFBase {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.isURDFLink = true;
|
this.isURDFLink = true;
|
||||||
this.type = 'URDFLink';
|
this.type = 'URDFLink';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFJoint extends URDFBase {
|
class URDFJoint extends URDFBase {
|
||||||
|
|
||||||
get jointType() {
|
get jointType() {
|
||||||
|
|
||||||
return this._jointType;
|
return this._jointType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set jointType(v) {
|
set jointType(v) {
|
||||||
|
|
||||||
if (this.jointType === v) return;
|
if (this.jointType === v) return;
|
||||||
this._jointType = v;
|
this._jointType = v;
|
||||||
this.matrixWorldNeedsUpdate = true;
|
this.matrixWorldNeedsUpdate = true;
|
||||||
switch (v) {
|
switch (v) {
|
||||||
|
|
||||||
case 'fixed':
|
case 'fixed':
|
||||||
this.jointValue = [];
|
this.jointValue = [];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'continuous':
|
case 'continuous':
|
||||||
case 'revolute':
|
case 'revolute':
|
||||||
case 'prismatic':
|
case 'prismatic':
|
||||||
this.jointValue = new Array(1).fill(0);
|
this.jointValue = new Array(1).fill(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'planar':
|
case 'planar':
|
||||||
// Planar joints are, 3dof: position XY and rotation Z.
|
// Planar joints are, 3dof: position XY and rotation Z.
|
||||||
this.jointValue = new Array(3).fill(0);
|
this.jointValue = new Array(3).fill(0);
|
||||||
this.axis = new Vector3(0, 0, 1);
|
this.axis = new Vector3(0, 0, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'floating':
|
case 'floating':
|
||||||
this.jointValue = new Array(6).fill(0);
|
this.jointValue = new Array(6).fill(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get angle() {
|
get angle() {
|
||||||
|
|
||||||
return this.jointValue[0];
|
return this.jointValue[0];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
|
|
||||||
this.isURDFJoint = true;
|
this.isURDFJoint = true;
|
||||||
this.type = 'URDFJoint';
|
this.type = 'URDFJoint';
|
||||||
|
|
||||||
this.jointValue = null;
|
this.jointValue = null;
|
||||||
this.jointType = 'fixed';
|
this.jointType = 'fixed';
|
||||||
this.axis = new Vector3(1, 0, 0);
|
this.axis = new Vector3(1, 0, 0);
|
||||||
this.limit = { lower: 0, upper: 0 };
|
this.limit = { lower: 0, upper: 0 };
|
||||||
this.ignoreLimits = false;
|
this.ignoreLimits = false;
|
||||||
|
|
||||||
this.origPosition = null;
|
this.origPosition = null;
|
||||||
this.origQuaternion = null;
|
this.origQuaternion = null;
|
||||||
|
|
||||||
this.mimicJoints = [];
|
this.mimicJoints = [];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Overrides */
|
/* Overrides */
|
||||||
copy(source, recursive) {
|
copy(source, recursive) {
|
||||||
|
|
||||||
super.copy(source, recursive);
|
super.copy(source, recursive);
|
||||||
|
|
||||||
this.jointType = source.jointType;
|
this.jointType = source.jointType;
|
||||||
this.axis = source.axis.clone();
|
this.axis = source.axis.clone();
|
||||||
this.limit.lower = source.limit.lower;
|
this.limit.lower = source.limit.lower;
|
||||||
this.limit.upper = source.limit.upper;
|
this.limit.upper = source.limit.upper;
|
||||||
this.ignoreLimits = false;
|
this.ignoreLimits = false;
|
||||||
|
|
||||||
this.jointValue = [...source.jointValue];
|
this.jointValue = [...source.jointValue];
|
||||||
|
|
||||||
this.origPosition = source.origPosition ? source.origPosition.clone() : null;
|
this.origPosition = source.origPosition ? source.origPosition.clone() : null;
|
||||||
this.origQuaternion = source.origQuaternion ? source.origQuaternion.clone() : null;
|
this.origQuaternion = source.origQuaternion ? source.origQuaternion.clone() : null;
|
||||||
|
|
||||||
this.mimicJoints = [...source.mimicJoints];
|
this.mimicJoints = [...source.mimicJoints];
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Public Functions */
|
/* Public Functions */
|
||||||
/**
|
/**
|
||||||
* @param {...number|null} values The joint value components to set, optionally null for no-op
|
* @param {...number|null} values The joint value components to set, optionally null for no-op
|
||||||
* @returns {boolean} Whether the invocation of this function resulted in an actual change to the joint value
|
* @returns {boolean} Whether the invocation of this function resulted in an actual change to the joint value
|
||||||
*/
|
*/
|
||||||
setJointValue(...values) {
|
setJointValue(...values) {
|
||||||
|
|
||||||
// Parse all incoming values into numbers except null, which we treat as a no-op for that value component.
|
// Parse all incoming values into numbers except null, which we treat as a no-op for that value component.
|
||||||
values = values.map(v => v === null ? null : parseFloat(v));
|
values = values.map(v => v === null ? null : parseFloat(v));
|
||||||
|
|
||||||
if (!this.origPosition || !this.origQuaternion) {
|
if (!this.origPosition || !this.origQuaternion) {
|
||||||
|
|
||||||
this.origPosition = this.position.clone();
|
this.origPosition = this.position.clone();
|
||||||
this.origQuaternion = this.quaternion.clone();
|
this.origQuaternion = this.quaternion.clone();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let didUpdate = false;
|
let didUpdate = false;
|
||||||
|
|
||||||
this.mimicJoints.forEach(joint => {
|
this.mimicJoints.forEach(joint => {
|
||||||
|
|
||||||
didUpdate = joint.updateFromMimickedJoint(...values) || didUpdate;
|
didUpdate = joint.updateFromMimickedJoint(...values) || didUpdate;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (this.jointType) {
|
switch (this.jointType) {
|
||||||
|
|
||||||
case 'fixed': {
|
case 'fixed': {
|
||||||
|
|
||||||
return didUpdate;
|
return didUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
case 'continuous':
|
case 'continuous':
|
||||||
case 'revolute': {
|
case 'revolute': {
|
||||||
|
|
||||||
let angle = values[0];
|
let angle = values[0];
|
||||||
if (angle == null) return didUpdate;
|
if (angle == null) return didUpdate;
|
||||||
if (angle === this.jointValue[0]) return didUpdate;
|
if (angle === this.jointValue[0]) return didUpdate;
|
||||||
|
|
||||||
if (!this.ignoreLimits && this.jointType === 'revolute') {
|
if (!this.ignoreLimits && this.jointType === 'revolute') {
|
||||||
|
|
||||||
angle = Math.min(this.limit.upper, angle);
|
angle = Math.min(this.limit.upper, angle);
|
||||||
angle = Math.max(this.limit.lower, angle);
|
angle = Math.max(this.limit.lower, angle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.quaternion
|
this.quaternion
|
||||||
.setFromAxisAngle(this.axis, angle)
|
.setFromAxisAngle(this.axis, angle)
|
||||||
.premultiply(this.origQuaternion);
|
.premultiply(this.origQuaternion);
|
||||||
|
|
||||||
if (this.jointValue[0] !== angle) {
|
if (this.jointValue[0] !== angle) {
|
||||||
|
|
||||||
this.jointValue[0] = angle;
|
this.jointValue[0] = angle;
|
||||||
this.matrixWorldNeedsUpdate = true;
|
this.matrixWorldNeedsUpdate = true;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return didUpdate;
|
return didUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'prismatic': {
|
case 'prismatic': {
|
||||||
|
|
||||||
let pos = values[0];
|
let pos = values[0];
|
||||||
if (pos == null) return didUpdate;
|
if (pos == null) return didUpdate;
|
||||||
if (pos === this.jointValue[0]) return didUpdate;
|
if (pos === this.jointValue[0]) return didUpdate;
|
||||||
|
|
||||||
if (!this.ignoreLimits) {
|
if (!this.ignoreLimits) {
|
||||||
|
|
||||||
pos = Math.min(this.limit.upper, pos);
|
pos = Math.min(this.limit.upper, pos);
|
||||||
pos = Math.max(this.limit.lower, pos);
|
pos = Math.max(this.limit.lower, pos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.position.copy(this.origPosition);
|
this.position.copy(this.origPosition);
|
||||||
_tempAxis.copy(this.axis).applyEuler(this.rotation);
|
_tempAxis.copy(this.axis).applyEuler(this.rotation);
|
||||||
this.position.addScaledVector(_tempAxis, pos);
|
this.position.addScaledVector(_tempAxis, pos);
|
||||||
|
|
||||||
if (this.jointValue[0] !== pos) {
|
if (this.jointValue[0] !== pos) {
|
||||||
|
|
||||||
this.jointValue[0] = pos;
|
this.jointValue[0] = pos;
|
||||||
this.matrixWorldNeedsUpdate = true;
|
this.matrixWorldNeedsUpdate = true;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return didUpdate;
|
return didUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'floating': {
|
case 'floating': {
|
||||||
|
|
||||||
// no-op if all values are identical to existing value or are null
|
// no-op if all values are identical to existing value or are null
|
||||||
if (this.jointValue.every((value, index) => values[index] === value || values[index] === null)) return didUpdate;
|
if (this.jointValue.every((value, index) => values[index] === value || values[index] === null)) return didUpdate;
|
||||||
// Floating joints have six degrees of freedom: X, Y, Z, R, P, Y.
|
// Floating joints have six degrees of freedom: X, Y, Z, R, P, Y.
|
||||||
this.jointValue[0] = values[0] !== null ? values[0] : this.jointValue[0];
|
this.jointValue[0] = values[0] !== null ? values[0] : this.jointValue[0];
|
||||||
this.jointValue[1] = values[1] !== null ? values[1] : this.jointValue[1];
|
this.jointValue[1] = values[1] !== null ? values[1] : this.jointValue[1];
|
||||||
this.jointValue[2] = values[2] !== null ? values[2] : this.jointValue[2];
|
this.jointValue[2] = values[2] !== null ? values[2] : this.jointValue[2];
|
||||||
this.jointValue[3] = values[3] !== null ? values[3] : this.jointValue[3];
|
this.jointValue[3] = values[3] !== null ? values[3] : this.jointValue[3];
|
||||||
this.jointValue[4] = values[4] !== null ? values[4] : this.jointValue[4];
|
this.jointValue[4] = values[4] !== null ? values[4] : this.jointValue[4];
|
||||||
this.jointValue[5] = values[5] !== null ? values[5] : this.jointValue[5];
|
this.jointValue[5] = values[5] !== null ? values[5] : this.jointValue[5];
|
||||||
|
|
||||||
// Compose transform of joint origin and transform due to joint values
|
// Compose transform of joint origin and transform due to joint values
|
||||||
_tempOrigTransform.compose(this.origPosition, this.origQuaternion, _tempScale);
|
_tempOrigTransform.compose(this.origPosition, this.origQuaternion, _tempScale);
|
||||||
_tempQuat.setFromEuler(
|
_tempQuat.setFromEuler(
|
||||||
_tempEuler.set(
|
_tempEuler.set(
|
||||||
this.jointValue[3],
|
this.jointValue[3],
|
||||||
this.jointValue[4],
|
this.jointValue[4],
|
||||||
this.jointValue[5],
|
this.jointValue[5],
|
||||||
'XYZ',
|
'XYZ',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
_tempPosition.set(this.jointValue[0], this.jointValue[1], this.jointValue[2]);
|
_tempPosition.set(this.jointValue[0], this.jointValue[1], this.jointValue[2]);
|
||||||
_tempTransform.compose(_tempPosition, _tempQuat, _tempScale);
|
_tempTransform.compose(_tempPosition, _tempQuat, _tempScale);
|
||||||
|
|
||||||
// Calcualte new transform
|
// Calcualte new transform
|
||||||
_tempOrigTransform.premultiply(_tempTransform);
|
_tempOrigTransform.premultiply(_tempTransform);
|
||||||
this.position.setFromMatrixPosition(_tempOrigTransform);
|
this.position.setFromMatrixPosition(_tempOrigTransform);
|
||||||
this.rotation.setFromRotationMatrix(_tempOrigTransform);
|
this.rotation.setFromRotationMatrix(_tempOrigTransform);
|
||||||
|
|
||||||
this.matrixWorldNeedsUpdate = true;
|
this.matrixWorldNeedsUpdate = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'planar': {
|
case 'planar': {
|
||||||
|
|
||||||
// no-op if all values are identical to existing value or are null
|
// no-op if all values are identical to existing value or are null
|
||||||
if (this.jointValue.every((value, index) => values[index] === value || values[index] === null)) return didUpdate;
|
if (this.jointValue.every((value, index) => values[index] === value || values[index] === null)) return didUpdate;
|
||||||
|
|
||||||
this.jointValue[0] = values[0] !== null ? values[0] : this.jointValue[0];
|
this.jointValue[0] = values[0] !== null ? values[0] : this.jointValue[0];
|
||||||
this.jointValue[1] = values[1] !== null ? values[1] : this.jointValue[1];
|
this.jointValue[1] = values[1] !== null ? values[1] : this.jointValue[1];
|
||||||
this.jointValue[2] = values[2] !== null ? values[2] : this.jointValue[2];
|
this.jointValue[2] = values[2] !== null ? values[2] : this.jointValue[2];
|
||||||
|
|
||||||
// Compose transform of joint origin and transform due to joint values
|
// Compose transform of joint origin and transform due to joint values
|
||||||
_tempOrigTransform.compose(this.origPosition, this.origQuaternion, _tempScale);
|
_tempOrigTransform.compose(this.origPosition, this.origQuaternion, _tempScale);
|
||||||
_tempQuat.setFromAxisAngle(this.axis, this.jointValue[2]);
|
_tempQuat.setFromAxisAngle(this.axis, this.jointValue[2]);
|
||||||
_tempPosition.set(this.jointValue[0], this.jointValue[1], 0.0);
|
_tempPosition.set(this.jointValue[0], this.jointValue[1], 0.0);
|
||||||
_tempTransform.compose(_tempPosition, _tempQuat, _tempScale);
|
_tempTransform.compose(_tempPosition, _tempQuat, _tempScale);
|
||||||
|
|
||||||
// Calculate new transform
|
// Calculate new transform
|
||||||
_tempOrigTransform.premultiply(_tempTransform);
|
_tempOrigTransform.premultiply(_tempTransform);
|
||||||
this.position.setFromMatrixPosition(_tempOrigTransform);
|
this.position.setFromMatrixPosition(_tempOrigTransform);
|
||||||
this.rotation.setFromRotationMatrix(_tempOrigTransform);
|
this.rotation.setFromRotationMatrix(_tempOrigTransform);
|
||||||
|
|
||||||
this.matrixWorldNeedsUpdate = true;
|
this.matrixWorldNeedsUpdate = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return didUpdate;
|
return didUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFMimicJoint extends URDFJoint {
|
class URDFMimicJoint extends URDFJoint {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.type = 'URDFMimicJoint';
|
this.type = 'URDFMimicJoint';
|
||||||
this.mimicJoint = null;
|
this.mimicJoint = null;
|
||||||
this.offset = 0;
|
this.offset = 0;
|
||||||
this.multiplier = 1;
|
this.multiplier = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFromMimickedJoint(...values) {
|
updateFromMimickedJoint(...values) {
|
||||||
|
|
||||||
const modifiedValues = values.map(x => x * this.multiplier + this.offset);
|
const modifiedValues = values.map(x => x * this.multiplier + this.offset);
|
||||||
return super.setJointValue(...modifiedValues);
|
return super.setJointValue(...modifiedValues);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Overrides */
|
/* Overrides */
|
||||||
copy(source, recursive) {
|
copy(source, recursive) {
|
||||||
|
|
||||||
super.copy(source, recursive);
|
super.copy(source, recursive);
|
||||||
|
|
||||||
this.mimicJoint = source.mimicJoint;
|
this.mimicJoint = source.mimicJoint;
|
||||||
this.offset = source.offset;
|
this.offset = source.offset;
|
||||||
this.multiplier = source.multiplier;
|
this.multiplier = source.multiplier;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class URDFRobot extends URDFLink {
|
class URDFRobot extends URDFLink {
|
||||||
|
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
|
|
||||||
super(...args);
|
super(...args);
|
||||||
this.isURDFRobot = true;
|
this.isURDFRobot = true;
|
||||||
this.urdfNode = null;
|
this.urdfNode = null;
|
||||||
|
|
||||||
this.urdfRobotNode = null;
|
this.urdfRobotNode = null;
|
||||||
this.robotName = null;
|
this.robotName = null;
|
||||||
|
|
||||||
this.links = null;
|
this.links = null;
|
||||||
this.joints = null;
|
this.joints = null;
|
||||||
this.colliders = null;
|
this.colliders = null;
|
||||||
this.visual = null;
|
this.visual = null;
|
||||||
this.frames = null;
|
this.frames = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
copy(source, recursive) {
|
copy(source, recursive) {
|
||||||
|
|
||||||
super.copy(source, recursive);
|
super.copy(source, recursive);
|
||||||
|
|
||||||
this.urdfRobotNode = source.urdfRobotNode;
|
this.urdfRobotNode = source.urdfRobotNode;
|
||||||
this.robotName = source.robotName;
|
this.robotName = source.robotName;
|
||||||
|
|
||||||
this.links = {};
|
this.links = {};
|
||||||
this.joints = {};
|
this.joints = {};
|
||||||
this.colliders = {};
|
this.colliders = {};
|
||||||
this.visual = {};
|
this.visual = {};
|
||||||
|
|
||||||
this.traverse(c => {
|
this.traverse(c => {
|
||||||
|
|
||||||
if (c.isURDFJoint && c.urdfName in source.joints) {
|
if (c.isURDFJoint && c.urdfName in source.joints) {
|
||||||
|
|
||||||
this.joints[c.urdfName] = c;
|
this.joints[c.urdfName] = c;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.isURDFLink && c.urdfName in source.links) {
|
if (c.isURDFLink && c.urdfName in source.links) {
|
||||||
|
|
||||||
this.links[c.urdfName] = c;
|
this.links[c.urdfName] = c;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.isURDFCollider && c.urdfName in source.colliders) {
|
if (c.isURDFCollider && c.urdfName in source.colliders) {
|
||||||
|
|
||||||
this.colliders[c.urdfName] = c;
|
this.colliders[c.urdfName] = c;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.isURDFVisual && c.urdfName in source.visual) {
|
if (c.isURDFVisual && c.urdfName in source.visual) {
|
||||||
|
|
||||||
this.visual[c.urdfName] = c;
|
this.visual[c.urdfName] = c;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Repair mimic joint references once we've re-accumulated all our joint data
|
// Repair mimic joint references once we've re-accumulated all our joint data
|
||||||
for (const joint in this.joints) {
|
for (const joint in this.joints) {
|
||||||
this.joints[joint].mimicJoints = this.joints[joint].mimicJoints.map((mimicJoint) => this.joints[mimicJoint.name]);
|
this.joints[joint].mimicJoints = this.joints[joint].mimicJoints.map((mimicJoint) => this.joints[mimicJoint.name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.frames = {
|
this.frames = {
|
||||||
...this.colliders,
|
...this.colliders,
|
||||||
...this.visual,
|
...this.visual,
|
||||||
...this.links,
|
...this.links,
|
||||||
...this.joints,
|
...this.joints,
|
||||||
};
|
};
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getFrame(name) {
|
getFrame(name) {
|
||||||
|
|
||||||
return this.frames[name];
|
return this.frames[name];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setJointValue(jointName, ...angle) {
|
setJointValue(jointName, ...angle) {
|
||||||
|
|
||||||
const joint = this.joints[jointName];
|
const joint = this.joints[jointName];
|
||||||
if (joint) {
|
if (joint) {
|
||||||
|
|
||||||
return joint.setJointValue(...angle);
|
return joint.setJointValue(...angle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
setJointValues(values) {
|
setJointValues(values) {
|
||||||
|
|
||||||
let didChange = false;
|
let didChange = false;
|
||||||
for (const name in values) {
|
for (const name in values) {
|
||||||
|
|
||||||
const value = values[name];
|
const value = values[name];
|
||||||
if (Array.isArray(value)) {
|
if (Array.isArray(value)) {
|
||||||
|
|
||||||
didChange = this.setJointValue(name, ...value) || didChange;
|
didChange = this.setJointValue(name, ...value) || didChange;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
didChange = this.setJointValue(name, value) || didChange;
|
didChange = this.setJointValue(name, value) || didChange;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return didChange;
|
return didChange;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export { URDFRobot, URDFLink, URDFJoint, URDFMimicJoint, URDFVisual, URDFCollider };
|
export { URDFRobot, URDFLink, URDFJoint, URDFMimicJoint, URDFVisual, URDFCollider };
|
||||||
|
|
@ -1,330 +1,330 @@
|
||||||
import { Raycaster, Vector3, Plane, Vector2 } from 'three';
|
import { Raycaster, Vector3, Plane, Vector2 } from 'three';
|
||||||
|
|
||||||
// Find the nearest parent that is a joint
|
// Find the nearest parent that is a joint
|
||||||
function isJoint(j) {
|
function isJoint(j) {
|
||||||
|
|
||||||
return j.isURDFJoint && j.jointType !== 'fixed';
|
return j.isURDFJoint && j.jointType !== 'fixed';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function findNearestJoint(child) {
|
function findNearestJoint(child) {
|
||||||
|
|
||||||
let curr = child;
|
let curr = child;
|
||||||
while (curr) {
|
while (curr) {
|
||||||
|
|
||||||
if (isJoint(curr)) {
|
if (isJoint(curr)) {
|
||||||
|
|
||||||
return curr;
|
return curr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
curr = curr.parent;
|
curr = curr.parent;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return curr;
|
return curr;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const prevHitPoint = new Vector3();
|
const prevHitPoint = new Vector3();
|
||||||
const newHitPoint = new Vector3();
|
const newHitPoint = new Vector3();
|
||||||
const pivotPoint = new Vector3();
|
const pivotPoint = new Vector3();
|
||||||
const tempVector = new Vector3();
|
const tempVector = new Vector3();
|
||||||
const tempVector2 = new Vector3();
|
const tempVector2 = new Vector3();
|
||||||
const projectedStartPoint = new Vector3();
|
const projectedStartPoint = new Vector3();
|
||||||
const projectedEndPoint = new Vector3();
|
const projectedEndPoint = new Vector3();
|
||||||
const plane = new Plane();
|
const plane = new Plane();
|
||||||
export class URDFDragControls {
|
export class URDFDragControls {
|
||||||
|
|
||||||
constructor(scene) {
|
constructor(scene) {
|
||||||
|
|
||||||
this.enabled = true;
|
this.enabled = true;
|
||||||
this.scene = scene;
|
this.scene = scene;
|
||||||
this.raycaster = new Raycaster();
|
this.raycaster = new Raycaster();
|
||||||
this.initialGrabPoint = new Vector3();
|
this.initialGrabPoint = new Vector3();
|
||||||
|
|
||||||
this.hitDistance = -1;
|
this.hitDistance = -1;
|
||||||
this.hovered = null;
|
this.hovered = null;
|
||||||
this.manipulating = null;
|
this.manipulating = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
raycaster,
|
raycaster,
|
||||||
hovered,
|
hovered,
|
||||||
manipulating,
|
manipulating,
|
||||||
scene,
|
scene,
|
||||||
} = this;
|
} = this;
|
||||||
|
|
||||||
if (manipulating) {
|
if (manipulating) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let hoveredJoint = null;
|
let hoveredJoint = null;
|
||||||
const intersections = raycaster.intersectObject(scene, true);
|
const intersections = raycaster.intersectObject(scene, true);
|
||||||
if (intersections.length !== 0) {
|
if (intersections.length !== 0) {
|
||||||
|
|
||||||
const hit = intersections[0];
|
const hit = intersections[0];
|
||||||
this.hitDistance = hit.distance;
|
this.hitDistance = hit.distance;
|
||||||
hoveredJoint = findNearestJoint(hit.object);
|
hoveredJoint = findNearestJoint(hit.object);
|
||||||
this.initialGrabPoint.copy(hit.point);
|
this.initialGrabPoint.copy(hit.point);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hoveredJoint !== hovered) {
|
if (hoveredJoint !== hovered) {
|
||||||
|
|
||||||
if (hovered) {
|
if (hovered) {
|
||||||
|
|
||||||
this.onUnhover(hovered);
|
this.onUnhover(hovered);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.hovered = hoveredJoint;
|
this.hovered = hoveredJoint;
|
||||||
|
|
||||||
if (hoveredJoint) {
|
if (hoveredJoint) {
|
||||||
|
|
||||||
this.onHover(hoveredJoint);
|
this.onHover(hoveredJoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateJoint(joint, angle) {
|
updateJoint(joint, angle) {
|
||||||
|
|
||||||
joint.setJointValue(angle);
|
joint.setJointValue(angle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onDragStart(joint) {
|
onDragStart(joint) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onDragEnd(joint) {
|
onDragEnd(joint) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onHover(joint) {
|
onHover(joint) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onUnhover(joint) {
|
onUnhover(joint) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getRevoluteDelta(joint, startPoint, endPoint) {
|
getRevoluteDelta(joint, startPoint, endPoint) {
|
||||||
|
|
||||||
// set up the plane
|
// set up the plane
|
||||||
tempVector
|
tempVector
|
||||||
.copy(joint.axis)
|
.copy(joint.axis)
|
||||||
.transformDirection(joint.matrixWorld)
|
.transformDirection(joint.matrixWorld)
|
||||||
.normalize();
|
.normalize();
|
||||||
pivotPoint
|
pivotPoint
|
||||||
.set(0, 0, 0)
|
.set(0, 0, 0)
|
||||||
.applyMatrix4(joint.matrixWorld);
|
.applyMatrix4(joint.matrixWorld);
|
||||||
plane
|
plane
|
||||||
.setFromNormalAndCoplanarPoint(tempVector, pivotPoint);
|
.setFromNormalAndCoplanarPoint(tempVector, pivotPoint);
|
||||||
|
|
||||||
// project the drag points onto the plane
|
// project the drag points onto the plane
|
||||||
plane.projectPoint(startPoint, projectedStartPoint);
|
plane.projectPoint(startPoint, projectedStartPoint);
|
||||||
plane.projectPoint(endPoint, projectedEndPoint);
|
plane.projectPoint(endPoint, projectedEndPoint);
|
||||||
|
|
||||||
// get the directions relative to the pivot
|
// get the directions relative to the pivot
|
||||||
projectedStartPoint.sub(pivotPoint);
|
projectedStartPoint.sub(pivotPoint);
|
||||||
projectedEndPoint.sub(pivotPoint);
|
projectedEndPoint.sub(pivotPoint);
|
||||||
|
|
||||||
tempVector.crossVectors(projectedStartPoint, projectedEndPoint);
|
tempVector.crossVectors(projectedStartPoint, projectedEndPoint);
|
||||||
|
|
||||||
const direction = Math.sign(tempVector.dot(plane.normal));
|
const direction = Math.sign(tempVector.dot(plane.normal));
|
||||||
return direction * projectedEndPoint.angleTo(projectedStartPoint);
|
return direction * projectedEndPoint.angleTo(projectedStartPoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getPrismaticDelta(joint, startPoint, endPoint) {
|
getPrismaticDelta(joint, startPoint, endPoint) {
|
||||||
|
|
||||||
tempVector.subVectors(endPoint, startPoint);
|
tempVector.subVectors(endPoint, startPoint);
|
||||||
plane
|
plane
|
||||||
.normal
|
.normal
|
||||||
.copy(joint.axis)
|
.copy(joint.axis)
|
||||||
.transformDirection(joint.parent.matrixWorld)
|
.transformDirection(joint.parent.matrixWorld)
|
||||||
.normalize();
|
.normalize();
|
||||||
|
|
||||||
return tempVector.dot(plane.normal);
|
return tempVector.dot(plane.normal);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
moveRay(toRay) {
|
moveRay(toRay) {
|
||||||
|
|
||||||
const { raycaster, hitDistance, manipulating } = this;
|
const { raycaster, hitDistance, manipulating } = this;
|
||||||
const { ray } = raycaster;
|
const { ray } = raycaster;
|
||||||
|
|
||||||
if (manipulating) {
|
if (manipulating) {
|
||||||
|
|
||||||
ray.at(hitDistance, prevHitPoint);
|
ray.at(hitDistance, prevHitPoint);
|
||||||
toRay.at(hitDistance, newHitPoint);
|
toRay.at(hitDistance, newHitPoint);
|
||||||
|
|
||||||
let delta = 0;
|
let delta = 0;
|
||||||
if (manipulating.jointType === 'revolute' || manipulating.jointType === 'continuous') {
|
if (manipulating.jointType === 'revolute' || manipulating.jointType === 'continuous') {
|
||||||
|
|
||||||
delta = this.getRevoluteDelta(manipulating, prevHitPoint, newHitPoint);
|
delta = this.getRevoluteDelta(manipulating, prevHitPoint, newHitPoint);
|
||||||
|
|
||||||
} else if (manipulating.jointType === 'prismatic') {
|
} else if (manipulating.jointType === 'prismatic') {
|
||||||
|
|
||||||
delta = this.getPrismaticDelta(manipulating, prevHitPoint, newHitPoint);
|
delta = this.getPrismaticDelta(manipulating, prevHitPoint, newHitPoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delta) {
|
if (delta) {
|
||||||
|
|
||||||
this.updateJoint(manipulating, manipulating.angle + delta);
|
this.updateJoint(manipulating, manipulating.angle + delta);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.raycaster.ray.copy(toRay);
|
this.raycaster.ray.copy(toRay);
|
||||||
this.update();
|
this.update();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setGrabbed(grabbed) {
|
setGrabbed(grabbed) {
|
||||||
|
|
||||||
const { hovered, manipulating } = this;
|
const { hovered, manipulating } = this;
|
||||||
|
|
||||||
if (grabbed) {
|
if (grabbed) {
|
||||||
|
|
||||||
if (manipulating !== null || hovered === null) {
|
if (manipulating !== null || hovered === null) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.manipulating = hovered;
|
this.manipulating = hovered;
|
||||||
this.onDragStart(hovered);
|
this.onDragStart(hovered);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (this.manipulating === null) {
|
if (this.manipulating === null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.onDragEnd(this.manipulating);
|
this.onDragEnd(this.manipulating);
|
||||||
this.manipulating = null;
|
this.manipulating = null;
|
||||||
this.update();
|
this.update();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export class PointerURDFDragControls extends URDFDragControls {
|
export class PointerURDFDragControls extends URDFDragControls {
|
||||||
|
|
||||||
constructor(scene, camera, domElement) {
|
constructor(scene, camera, domElement) {
|
||||||
|
|
||||||
super(scene);
|
super(scene);
|
||||||
this.camera = camera;
|
this.camera = camera;
|
||||||
this.domElement = domElement;
|
this.domElement = domElement;
|
||||||
|
|
||||||
const raycaster = new Raycaster();
|
const raycaster = new Raycaster();
|
||||||
const mouse = new Vector2();
|
const mouse = new Vector2();
|
||||||
|
|
||||||
function updateMouse(e) {
|
function updateMouse(e) {
|
||||||
|
|
||||||
const rect = domElement.getBoundingClientRect();
|
const rect = domElement.getBoundingClientRect();
|
||||||
mouse.x = ((e.clientX - rect.left) / rect.width) * 2 - 1;
|
mouse.x = ((e.clientX - rect.left) / rect.width) * 2 - 1;
|
||||||
mouse.y = -((e.clientY - rect.top) / rect.height) * 2 + 1;
|
mouse.y = -((e.clientY - rect.top) / rect.height) * 2 + 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._mouseDown = e => {
|
this._mouseDown = e => {
|
||||||
|
|
||||||
updateMouse(e);
|
updateMouse(e);
|
||||||
raycaster.setFromCamera(mouse, this.camera);
|
raycaster.setFromCamera(mouse, this.camera);
|
||||||
this.moveRay(raycaster.ray);
|
this.moveRay(raycaster.ray);
|
||||||
this.setGrabbed(true);
|
this.setGrabbed(true);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this._mouseMove = e => {
|
this._mouseMove = e => {
|
||||||
|
|
||||||
updateMouse(e);
|
updateMouse(e);
|
||||||
raycaster.setFromCamera(mouse, this.camera);
|
raycaster.setFromCamera(mouse, this.camera);
|
||||||
this.moveRay(raycaster.ray);
|
this.moveRay(raycaster.ray);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this._mouseUp = e => {
|
this._mouseUp = e => {
|
||||||
|
|
||||||
updateMouse(e);
|
updateMouse(e);
|
||||||
raycaster.setFromCamera(mouse, this.camera);
|
raycaster.setFromCamera(mouse, this.camera);
|
||||||
this.moveRay(raycaster.ray);
|
this.moveRay(raycaster.ray);
|
||||||
this.setGrabbed(false);
|
this.setGrabbed(false);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
domElement.addEventListener('mousedown', this._mouseDown);
|
domElement.addEventListener('mousedown', this._mouseDown);
|
||||||
domElement.addEventListener('mousemove', this._mouseMove);
|
domElement.addEventListener('mousemove', this._mouseMove);
|
||||||
domElement.addEventListener('mouseup', this._mouseUp);
|
domElement.addEventListener('mouseup', this._mouseUp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getRevoluteDelta(joint, startPoint, endPoint) {
|
getRevoluteDelta(joint, startPoint, endPoint) {
|
||||||
|
|
||||||
const { camera, initialGrabPoint } = this;
|
const { camera, initialGrabPoint } = this;
|
||||||
|
|
||||||
// set up the plane
|
// set up the plane
|
||||||
tempVector
|
tempVector
|
||||||
.copy(joint.axis)
|
.copy(joint.axis)
|
||||||
.transformDirection(joint.matrixWorld)
|
.transformDirection(joint.matrixWorld)
|
||||||
.normalize();
|
.normalize();
|
||||||
pivotPoint
|
pivotPoint
|
||||||
.set(0, 0, 0)
|
.set(0, 0, 0)
|
||||||
.applyMatrix4(joint.matrixWorld);
|
.applyMatrix4(joint.matrixWorld);
|
||||||
plane
|
plane
|
||||||
.setFromNormalAndCoplanarPoint(tempVector, pivotPoint);
|
.setFromNormalAndCoplanarPoint(tempVector, pivotPoint);
|
||||||
|
|
||||||
tempVector
|
tempVector
|
||||||
.copy(camera.position)
|
.copy(camera.position)
|
||||||
.sub(initialGrabPoint)
|
.sub(initialGrabPoint)
|
||||||
.normalize();
|
.normalize();
|
||||||
|
|
||||||
// if looking into the plane of rotation
|
// if looking into the plane of rotation
|
||||||
if (Math.abs(tempVector.dot(plane.normal)) > 0.3) {
|
if (Math.abs(tempVector.dot(plane.normal)) > 0.3) {
|
||||||
|
|
||||||
return super.getRevoluteDelta(joint, startPoint, endPoint);
|
return super.getRevoluteDelta(joint, startPoint, endPoint);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// get the up direction
|
// get the up direction
|
||||||
tempVector.set(0, 1, 0).transformDirection(camera.matrixWorld);
|
tempVector.set(0, 1, 0).transformDirection(camera.matrixWorld);
|
||||||
|
|
||||||
// get points projected onto the plane of rotation
|
// get points projected onto the plane of rotation
|
||||||
plane.projectPoint(startPoint, projectedStartPoint);
|
plane.projectPoint(startPoint, projectedStartPoint);
|
||||||
plane.projectPoint(endPoint, projectedEndPoint);
|
plane.projectPoint(endPoint, projectedEndPoint);
|
||||||
|
|
||||||
tempVector.set(0, 0, -1).transformDirection(camera.matrixWorld);
|
tempVector.set(0, 0, -1).transformDirection(camera.matrixWorld);
|
||||||
tempVector.cross(plane.normal);
|
tempVector.cross(plane.normal);
|
||||||
tempVector2.subVectors(endPoint, startPoint);
|
tempVector2.subVectors(endPoint, startPoint);
|
||||||
|
|
||||||
return tempVector.dot(tempVector2);
|
return tempVector.dot(tempVector2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dispose() {
|
dispose() {
|
||||||
|
|
||||||
const { domElement } = this;
|
const { domElement } = this;
|
||||||
domElement.removeEventListener('mousedown', this._mouseDown);
|
domElement.removeEventListener('mousedown', this._mouseDown);
|
||||||
domElement.removeEventListener('mousemove', this._mouseMove);
|
domElement.removeEventListener('mousemove', this._mouseMove);
|
||||||
domElement.removeEventListener('mouseup', this._mouseUp);
|
domElement.removeEventListener('mouseup', this._mouseUp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
1312
urdf/URDFLoader.js
1312
urdf/URDFLoader.js
File diff suppressed because it is too large
Load Diff
890
urdf/output.urdf
890
urdf/output.urdf
|
|
@ -1,446 +1,446 @@
|
||||||
<robot name="robot">
|
<robot name="robot">
|
||||||
<link name="base_footprint" />
|
<link name="base_footprint" />
|
||||||
<joint name="base_joint" type="fixed">
|
<joint name="base_joint" type="fixed">
|
||||||
<parent link="base_footprint" />
|
<parent link="base_footprint" />
|
||||||
<child link="base_link" />
|
<child link="base_link" />
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="base_link">
|
<link name="base_link">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.1 0.05 0.05" />
|
<box size="0.1 0.05 0.05" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="base_link-material">
|
<material name="base_link-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.1 0.05 0.05" />
|
<box size="0.1 0.05 0.05" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_spine_1" type="revolute">
|
<joint name="base_link_to_spine_1" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="spine_1" />
|
<child link="spine_1" />
|
||||||
<origin xyz="0 0 0.033737961440044734" rpy="0 0 0" />
|
<origin xyz="0 0 0.033737961440044734" rpy="0 0 0" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="spine_1">
|
<link name="spine_1">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.1 0.05 0.1" />
|
<box size="0.1 0.05 0.1" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="spine_1-material">
|
<material name="spine_1-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.1 0.05 0.1" />
|
<box size="0.1 0.05 0.1" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
<origin xyz="0 0 0.05" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_upper_arm_right" type="revolute">
|
<joint name="base_link_to_upper_arm_right" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="upper_arm_right" />
|
<child link="upper_arm_right" />
|
||||||
<origin xyz="0.062354968072652533 0 0.13096467297466818" rpy="-3.141592653589793 -0.6586873842445309 -1.548624773543236e-16" />
|
<origin xyz="0.062354968072652533 0 0.13096467297466818" rpy="-3.141592653589793 -0.6586873842445309 -1.548624773543236e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="upper_arm_right">
|
<link name="upper_arm_right">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.06" />
|
<box size="0.03 0.03 0.06" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="upper_arm_right-material">
|
<material name="upper_arm_right-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.06" />
|
<box size="0.03 0.03 0.06" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_lower_arm_right" type="revolute">
|
<joint name="base_link_to_lower_arm_right" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_arm_right" />
|
<child link="lower_arm_right" />
|
||||||
<origin xyz="0.10009022777221713 0 0.08243944985877427" rpy="-3.141592653589793 -0.6586873842445309 -2.496506045944997e-16" />
|
<origin xyz="0.10009022777221713 0 0.08243944985877427" rpy="-3.141592653589793 -0.6586873842445309 -2.496506045944997e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="lower_arm_right">
|
<link name="lower_arm_right">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.05" />
|
<box size="0.03 0.03 0.05" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="lower_arm_right-material">
|
<material name="lower_arm_right-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.05" />
|
<box size="0.03 0.03 0.05" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_hand_right" type="revolute">
|
<joint name="base_link_to_hand_right" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="hand_right" />
|
<child link="hand_right" />
|
||||||
<origin xyz="0.13276109632093022 0 0.03940068352661779" rpy="-3.141592653589793 -0.6586873842445309 -2.496506045944997e-16" />
|
<origin xyz="0.13276109632093022 0 0.03940068352661779" rpy="-3.141592653589793 -0.6586873842445309 -2.496506045944997e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="hand_right">
|
<link name="hand_right">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.03" />
|
<box size="0.03 0.03 0.03" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="hand_right-material">
|
<material name="hand_right-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.03" />
|
<box size="0.03 0.03 0.03" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_upper_arm_left" type="revolute">
|
<joint name="base_link_to_upper_arm_left" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="upper_arm_left" />
|
<child link="upper_arm_left" />
|
||||||
<origin xyz="-0.062354968072652533 0 0.13096467297466818" rpy="-3.141592653589793 0.6586873842445309 -1.548624773543236e-16" />
|
<origin xyz="-0.062354968072652533 0 0.13096467297466818" rpy="-3.141592653589793 0.6586873842445309 -1.548624773543236e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="upper_arm_left">
|
<link name="upper_arm_left">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.06" /></geometry>
|
<geometry><box size="0.03 0.03 0.06" /></geometry>
|
||||||
<material name="upper_arm_left-material">
|
<material name="upper_arm_left-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.06" /></geometry>
|
<geometry><box size="0.03 0.03 0.06" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_lower_arm_left" type="revolute">
|
<joint name="base_link_to_lower_arm_left" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_arm_left" />
|
<child link="lower_arm_left" />
|
||||||
<origin xyz="-0.10009022777221713 0 0.08243944985877427" rpy="-3.141592653589793 0.6586873842445309 -2.496506045944997e-16" />
|
<origin xyz="-0.10009022777221713 0 0.08243944985877427" rpy="-3.141592653589793 0.6586873842445309 -2.496506045944997e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="lower_arm_left">
|
<link name="lower_arm_left">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.05" /></geometry>
|
<geometry><box size="0.03 0.03 0.05" /></geometry>
|
||||||
<material name="lower_arm_left-material">
|
<material name="lower_arm_left-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.05" /></geometry>
|
<geometry><box size="0.03 0.03 0.05" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
<origin xyz="0 0 0.025" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_hand_left" type="revolute">
|
<joint name="base_link_to_hand_left" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="hand_left" />
|
<child link="hand_left" />
|
||||||
<origin xyz="-0.13276109632093022 0 0.03940068352661779" rpy="-3.141592653589793 0.6586873842445309 -2.496506045944997e-16" />
|
<origin xyz="-0.13276109632093022 0 0.03940068352661779" rpy="-3.141592653589793 0.6586873842445309 -2.496506045944997e-16" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
|
|
||||||
<link name="hand_left">
|
<link name="hand_left">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.03" /></geometry>
|
<geometry><box size="0.03 0.03 0.03" /></geometry>
|
||||||
<material name="hand_left-material">
|
<material name="hand_left-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<geometry><box size="0.03 0.03 0.03" /></geometry>
|
<geometry><box size="0.03 0.03 0.03" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
<origin xyz="0 0 0.015" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.0" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.0" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_upper_leg_right" type="revolute">
|
<joint name="base_link_to_upper_leg_right" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="upper_leg_right" />
|
<child link="upper_leg_right" />
|
||||||
<origin xyz="0.027260906368426083 0 -0.0372788919866843" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="0.027260906368426083 0 -0.0372788919866843" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="upper_leg_right">
|
<link name="upper_leg_right">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.04 0.07" />
|
<box size="0.04 0.04 0.07" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="upper_leg_right-material">
|
<material name="upper_leg_right-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.04 0.07" />
|
<box size="0.04 0.04 0.07" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_lower_leg_right" type="revolute">
|
<joint name="base_link_to_lower_leg_right" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_leg_right" />
|
<child link="lower_leg_right" />
|
||||||
<origin xyz="0.027260906368426083 0 -0.11088915657500885" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="0.027260906368426083 0 -0.11088915657500885" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="lower_leg_right">
|
<link name="lower_leg_right">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.04 0.07" />
|
<box size="0.04 0.04 0.07" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="lower_leg_right-material">
|
<material name="lower_leg_right-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.04 0.07" />
|
<box size="0.04 0.04 0.07" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_lower_leg_right1" type="revolute">
|
<joint name="base_link_to_lower_leg_right1" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_leg_right1" />
|
<child link="lower_leg_right1" />
|
||||||
<origin xyz="0.027260906368426083 -0.004866298635659946 -0.17845456205258786" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="0.027260906368426083 -0.004866298635659946 -0.17845456205258786" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="lower_leg_right1">
|
<link name="lower_leg_right1">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.08 0.02" />
|
<box size="0.04 0.08 0.02" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="lower_leg_right1-material">
|
<material name="lower_leg_right1-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.04 0.08 0.02" />
|
<box size="0.04 0.08 0.02" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
<joint name="base_link_to_upper_leg_left" type="revolute">
|
<joint name="base_link_to_upper_leg_left" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="upper_leg_left" />
|
<child link="upper_leg_left" />
|
||||||
<origin xyz="-0.027260906368426083 0 -0.0372788919866843" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="-0.027260906368426083 0 -0.0372788919866843" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="upper_leg_left">
|
<link name="upper_leg_left">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
||||||
<material name="upper_leg_left-material">
|
<material name="upper_leg_left-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_lower_leg_left" type="revolute">
|
<joint name="base_link_to_lower_leg_left" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_leg_left" />
|
<child link="lower_leg_left" />
|
||||||
<origin xyz="-0.027260906368426083 0 -0.11088915657500885" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="-0.027260906368426083 0 -0.11088915657500885" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="lower_leg_left">
|
<link name="lower_leg_left">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
||||||
<material name="lower_leg_left-material">
|
<material name="lower_leg_left-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
<geometry><box size="0.04 0.04 0.07" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
<origin xyz="0 0 0.03" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
<joint name="base_link_to_lower_leg_left1" type="revolute">
|
<joint name="base_link_to_lower_leg_left1" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="lower_leg_left1" />
|
<child link="lower_leg_left1" />
|
||||||
<origin xyz="-0.027260906368426083 -0.004866298635659946 -0.17845456205258786" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
<origin xyz="-0.027260906368426083 -0.004866298635659946 -0.17845456205258786" rpy="3.141592653589793 2.220446049250313e-16 3.141592653589793" />
|
||||||
<axis xyz="-1 0 0" />
|
<axis xyz="-1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" />
|
||||||
</joint>
|
</joint>
|
||||||
<link name="lower_leg_left1">
|
<link name="lower_leg_left1">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.08 0.02" /></geometry>
|
<geometry><box size="0.04 0.08 0.02" /></geometry>
|
||||||
<material name="lower_leg_left1-material">
|
<material name="lower_leg_left1-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<geometry><box size="0.04 0.08 0.02" /></geometry>
|
<geometry><box size="0.04 0.08 0.02" /></geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
<origin xyz="0 0.025 0.01" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_neck" type="revolute">
|
<joint name="base_link_to_neck" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="neck" />
|
<child link="neck" />
|
||||||
<origin xyz="0 0 0.13701911638953843" rpy="0 0 0" />
|
<origin xyz="0 0 0.13701911638953843" rpy="0 0 0" />
|
||||||
<axis xyz="0 0 1" />
|
<axis xyz="0 0 1" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="neck">
|
<link name="neck">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.03" />
|
<box size="0.03 0.03 0.03" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="neck-material">
|
<material name="neck-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.03 0.03 0.03" />
|
<box size="0.03 0.03 0.03" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
<joint name="base_link_to_head" type="revolute">
|
<joint name="base_link_to_head" type="revolute">
|
||||||
<parent link="base_link" />
|
<parent link="base_link" />
|
||||||
<child link="head" />
|
<child link="head" />
|
||||||
<origin xyz="0 0 0.1835254369219812" rpy="0 0 0" />
|
<origin xyz="0 0 0.1835254369219812" rpy="0 0 0" />
|
||||||
<axis xyz="1 0 0" />
|
<axis xyz="1 0 0" />
|
||||||
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
<limit effort="1000.0" lower="-1" upper="1" velocity="0.5" /> </joint>
|
||||||
<link name="head">
|
<link name="head">
|
||||||
<visual>
|
<visual>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.06 0.06 0.06" />
|
<box size="0.06 0.06 0.06" />
|
||||||
</geometry>
|
</geometry>
|
||||||
<material name="head-material">
|
<material name="head-material">
|
||||||
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
<color rgba="0.0021246888847058823 0.04970656597728775 0.48514994004665124 1" />
|
||||||
</material>
|
</material>
|
||||||
</visual>
|
</visual>
|
||||||
<collision>
|
<collision>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<geometry>
|
<geometry>
|
||||||
<box size="0.06 0.06 0.06" />
|
<box size="0.06 0.06 0.06" />
|
||||||
</geometry>
|
</geometry>
|
||||||
</collision>
|
</collision>
|
||||||
<inertial>
|
<inertial>
|
||||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
<mass value="1" />
|
<mass value="1" />
|
||||||
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
<inertia ixx="0.16666666666666666" ixy="0" ixz="0" iyy="0.16666666666666666" iyz="0" izz="0.16666666666666666" />
|
||||||
</inertial>
|
</inertial>
|
||||||
</link>
|
</link>
|
||||||
</robot>
|
</robot>
|
||||||
1012
urdf/sample.urdf
1012
urdf/sample.urdf
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,7 @@
|
||||||
// vite.config.js
|
// vite.config.js
|
||||||
export default {
|
export default {
|
||||||
root: '.',
|
root: '.',
|
||||||
server: {
|
server: {
|
||||||
open: true
|
open: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue