Site
- starting pong game 3d
This commit is contained in:
21
site/index.html
Normal file
21
site/index.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset='utf-8'>
|
||||||
|
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
||||||
|
<title>Page Title</title>
|
||||||
|
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="module" src='main.js'></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
59
site/light.js
Normal file
59
site/light.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import * as THREE from 'three';
|
||||||
|
|
||||||
|
// ------------------- Spot Light ------------------- //
|
||||||
|
function createSpotLight(color, target, scene) {
|
||||||
|
let spotLight = new THREE.SpotLight(color);
|
||||||
|
spotLight.position.set(0, 1, 0);
|
||||||
|
spotLight.angle = Math.PI / 4;
|
||||||
|
spotLight.castShadow = true;
|
||||||
|
spotLight.angle = 0.1;
|
||||||
|
spotLight.penumbra = 0.05;
|
||||||
|
spotLight.decay = 2;
|
||||||
|
spotLight.distance = 50;
|
||||||
|
spotLight.intensity = 10;
|
||||||
|
spotLight.target = target;
|
||||||
|
scene.add(spotLight);
|
||||||
|
return spotLight;
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshSpotLight(scene, spotLight, target) {
|
||||||
|
scene.remove(spotLight);
|
||||||
|
spotLight.dispose();
|
||||||
|
spotLight = createSpotLight(0xffffff, target, scene);
|
||||||
|
scene.add(spotLight);
|
||||||
|
return spotLight;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------- Light Ambient ------------------- //
|
||||||
|
function createLightAmbient(scene) {
|
||||||
|
let lightAmbient = new THREE.AmbientLight(0x404040);
|
||||||
|
lightAmbient.intensity = 5;
|
||||||
|
scene.add(lightAmbient);
|
||||||
|
return lightAmbient;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------- Light Point ------------------- //
|
||||||
|
function createLightPoint(scene) {
|
||||||
|
let lightPoint = new THREE.PointLight(0xffffff, 750, 10000);
|
||||||
|
lightPoint.position.set(0, 15, -1);
|
||||||
|
lightPoint.castShadow = true;
|
||||||
|
scene.add(lightPoint);
|
||||||
|
return lightPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshLightPoint(scene, lightPoint) {
|
||||||
|
scene.remove(lightPoint);
|
||||||
|
lightPoint.dispose();
|
||||||
|
lightPoint = createLightPoint(scene);
|
||||||
|
scene.add(lightPoint);
|
||||||
|
return lightPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export {
|
||||||
|
createSpotLight, refreshSpotLight,
|
||||||
|
createLightAmbient,
|
||||||
|
createLightPoint, refreshLightPoint
|
||||||
|
};
|
96
site/main.js
Normal file
96
site/main.js
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
import * as THREE from 'three';
|
||||||
|
import Stats from 'stats.js';
|
||||||
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
||||||
|
import { createSpotLight, refreshSpotLight, createLightAmbient, createLightPoint, refreshLightPoint } from './light.js';
|
||||||
|
import { createMap } from './map.js';
|
||||||
|
|
||||||
|
let time = Date.now();
|
||||||
|
|
||||||
|
const scene = new THREE.Scene();
|
||||||
|
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||||
|
const renderer = new THREE.WebGLRenderer();
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
document.body.appendChild(renderer.domElement);
|
||||||
|
|
||||||
|
// ------------------- Stats ------------------- //
|
||||||
|
const stats = new Stats();
|
||||||
|
stats.showPanel(0); // 0: fps, 1: ms, 2: mémoire
|
||||||
|
document.body.appendChild(stats.dom);
|
||||||
|
|
||||||
|
// ------------------- Scene ------------------- //
|
||||||
|
scene.background = new THREE.Color(0x1a1a1a);
|
||||||
|
|
||||||
|
// ------------------- Shadow ------------------- //
|
||||||
|
renderer.shadowMap.enabled = true;
|
||||||
|
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
||||||
|
|
||||||
|
// ------------------- Camera ------------------- //
|
||||||
|
camera.position.z = 4;
|
||||||
|
camera.position.y = 3;
|
||||||
|
camera.rotation.x = -(Math.PI / 4);
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------- Ball ------------------- //
|
||||||
|
const geometryBall = new THREE.SphereGeometry(0.1, 32, 32);
|
||||||
|
const materialBall = new THREE.MeshLambertMaterial({ color: 0xffffff });
|
||||||
|
const ball = new THREE.Mesh(geometryBall, materialBall);
|
||||||
|
ball.position.y = 0.1;
|
||||||
|
ball.castShadow = true;
|
||||||
|
scene.add(ball);
|
||||||
|
|
||||||
|
|
||||||
|
let spotLight = createSpotLight(0xffffff, ball, scene);
|
||||||
|
let lightAmbient = createLightAmbient(scene);
|
||||||
|
let lightPoint = createLightPoint(scene);
|
||||||
|
createMap(scene);
|
||||||
|
|
||||||
|
|
||||||
|
// const controls = new OrbitControls(camera, renderer.domElement);
|
||||||
|
// camera.position.set(0, 1, 5);
|
||||||
|
// controls.update();
|
||||||
|
|
||||||
|
|
||||||
|
function animate() {
|
||||||
|
stats.begin();
|
||||||
|
if (Date.now() - time > 10000)
|
||||||
|
{
|
||||||
|
time = Date.now();
|
||||||
|
spotLight = refreshSpotLight(scene, spotLight, ball);
|
||||||
|
lightPoint = refreshLightPoint(scene, lightPoint);
|
||||||
|
}
|
||||||
|
// controls.update();
|
||||||
|
ball.position.x = Math.sin(Date.now() * 0.001) * 2;
|
||||||
|
ball.position.z = Math.cos(Date.now() * 0.001) * 2;
|
||||||
|
renderer.render(scene, camera);
|
||||||
|
stats.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
renderer.setAnimationLoop(animate)
|
||||||
|
document.addEventListener("keydown", onDocumentKeyDown, false);
|
||||||
|
function onDocumentKeyDown(event) {
|
||||||
|
var keyCode = event.which;
|
||||||
|
if (keyCode == 87) {
|
||||||
|
camera.position.z -= 0.1;
|
||||||
|
} else if (keyCode == 83) {
|
||||||
|
camera.position.z += 0.1;
|
||||||
|
} else if (keyCode == 65) {
|
||||||
|
camera.position.x -= 0.1;
|
||||||
|
} else if (keyCode == 68) {
|
||||||
|
camera.position.x += 0.1;
|
||||||
|
} else if (keyCode == 32) {
|
||||||
|
camera.position.set(0, 0, 0);
|
||||||
|
} else if (keyCode == 37) {
|
||||||
|
camera.rotation.y += 0.1;
|
||||||
|
} else if (keyCode == 39) {
|
||||||
|
camera.rotation.y -= 0.1;
|
||||||
|
} else if (keyCode == 38) {
|
||||||
|
camera.position.y += 0.1;
|
||||||
|
} else if (keyCode == 40) {
|
||||||
|
camera.position.y -= 0.1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener("wheel", onDocumentWheel, false);
|
||||||
|
function onDocumentWheel(event) {
|
||||||
|
camera.position.z += event.deltaY * 0.01;
|
||||||
|
}
|
39
site/map.js
Normal file
39
site/map.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import * as THREE from 'three';
|
||||||
|
|
||||||
|
function createMap(scene) {
|
||||||
|
let wallUp;
|
||||||
|
let wallDown;
|
||||||
|
let ground;
|
||||||
|
|
||||||
|
wallUp = createWall(scene, 0, 0.20, -2.5, 0.5);
|
||||||
|
wallDown = createWall(scene, 0, 0.20, 2.3, 0.1);
|
||||||
|
ground = createGround(scene);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createWall(scene, x, y, z, thickness) {
|
||||||
|
const geometryWall = new THREE.BoxGeometry(9, 0.5, thickness);
|
||||||
|
const materialWall = new THREE.MeshLambertMaterial({
|
||||||
|
color: 0x3b3b3b,
|
||||||
|
});
|
||||||
|
const wall = new THREE.Mesh(geometryWall, materialWall);
|
||||||
|
wall.position.set(x, y, z);
|
||||||
|
wall.receiveShadow = true;
|
||||||
|
scene.add(wall);
|
||||||
|
return wall;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createGround(scene) {
|
||||||
|
const geometry = new THREE.PlaneGeometry(9, 4.5, 1);
|
||||||
|
const material = new THREE.MeshLambertMaterial({
|
||||||
|
color: 0x3b3b3b,
|
||||||
|
});
|
||||||
|
const plane = new THREE.Mesh(geometry, material);
|
||||||
|
plane.rotation.x = - (Math.PI / 2);
|
||||||
|
plane.receiveShadow = true;
|
||||||
|
scene.add(plane);
|
||||||
|
return plane;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export { createMap };
|
1
site/node_modules/.bin/esbuild
generated
vendored
Symbolic link
1
site/node_modules/.bin/esbuild
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../esbuild/bin/esbuild
|
1
site/node_modules/.bin/nanoid
generated
vendored
Symbolic link
1
site/node_modules/.bin/nanoid
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../nanoid/bin/nanoid.cjs
|
1
site/node_modules/.bin/rollup
generated
vendored
Symbolic link
1
site/node_modules/.bin/rollup
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../rollup/dist/bin/rollup
|
1
site/node_modules/.bin/stats
generated
vendored
Symbolic link
1
site/node_modules/.bin/stats
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../stats/bin/stats
|
1
site/node_modules/.bin/vite
generated
vendored
Symbolic link
1
site/node_modules/.bin/vite
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../vite/bin/vite.js
|
290
site/node_modules/.package-lock.json
generated
vendored
Normal file
290
site/node_modules/.package-lock.json
generated
vendored
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
{
|
||||||
|
"name": "Three.js_game",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"node_modules/@esbuild/linux-x64": {
|
||||||
|
"version": "0.21.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
|
||||||
|
"integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||||
|
"version": "4.19.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz",
|
||||||
|
"integrity": "sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||||
|
"version": "4.19.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.1.tgz",
|
||||||
|
"integrity": "sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@types/estree": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/commander": {
|
||||||
|
"version": "0.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-0.5.2.tgz",
|
||||||
|
"integrity": "sha512-/IKo89++b1UhClEhWvKk00gKgw6iwvwD8TOPTqqN9AyvjgPCnf9OrjnDNY3dPDOj+K+OhN9SRjYQH0AfX0bROw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/esbuild": {
|
||||||
|
"version": "0.21.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
||||||
|
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
|
||||||
|
"dev": true,
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"esbuild": "bin/esbuild"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@esbuild/aix-ppc64": "0.21.5",
|
||||||
|
"@esbuild/android-arm": "0.21.5",
|
||||||
|
"@esbuild/android-arm64": "0.21.5",
|
||||||
|
"@esbuild/android-x64": "0.21.5",
|
||||||
|
"@esbuild/darwin-arm64": "0.21.5",
|
||||||
|
"@esbuild/darwin-x64": "0.21.5",
|
||||||
|
"@esbuild/freebsd-arm64": "0.21.5",
|
||||||
|
"@esbuild/freebsd-x64": "0.21.5",
|
||||||
|
"@esbuild/linux-arm": "0.21.5",
|
||||||
|
"@esbuild/linux-arm64": "0.21.5",
|
||||||
|
"@esbuild/linux-ia32": "0.21.5",
|
||||||
|
"@esbuild/linux-loong64": "0.21.5",
|
||||||
|
"@esbuild/linux-mips64el": "0.21.5",
|
||||||
|
"@esbuild/linux-ppc64": "0.21.5",
|
||||||
|
"@esbuild/linux-riscv64": "0.21.5",
|
||||||
|
"@esbuild/linux-s390x": "0.21.5",
|
||||||
|
"@esbuild/linux-x64": "0.21.5",
|
||||||
|
"@esbuild/netbsd-x64": "0.21.5",
|
||||||
|
"@esbuild/openbsd-x64": "0.21.5",
|
||||||
|
"@esbuild/sunos-x64": "0.21.5",
|
||||||
|
"@esbuild/win32-arm64": "0.21.5",
|
||||||
|
"@esbuild/win32-ia32": "0.21.5",
|
||||||
|
"@esbuild/win32-x64": "0.21.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/nanoid": {
|
||||||
|
"version": "3.3.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"nanoid": "bin/nanoid.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/picocolors": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
|
},
|
||||||
|
"node_modules/postcss": {
|
||||||
|
"version": "8.4.40",
|
||||||
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
|
||||||
|
"integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/postcss/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"nanoid": "^3.3.7",
|
||||||
|
"picocolors": "^1.0.1",
|
||||||
|
"source-map-js": "^1.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^10 || ^12 || >=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/rollup": {
|
||||||
|
"version": "4.19.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz",
|
||||||
|
"integrity": "sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/estree": "1.0.5"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"rollup": "dist/bin/rollup"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0",
|
||||||
|
"npm": ">=8.0.0"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@rollup/rollup-android-arm-eabi": "4.19.1",
|
||||||
|
"@rollup/rollup-android-arm64": "4.19.1",
|
||||||
|
"@rollup/rollup-darwin-arm64": "4.19.1",
|
||||||
|
"@rollup/rollup-darwin-x64": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-arm-gnueabihf": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-arm-musleabihf": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-arm64-gnu": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-arm64-musl": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-powerpc64le-gnu": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-riscv64-gnu": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-s390x-gnu": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-x64-gnu": "4.19.1",
|
||||||
|
"@rollup/rollup-linux-x64-musl": "4.19.1",
|
||||||
|
"@rollup/rollup-win32-arm64-msvc": "4.19.1",
|
||||||
|
"@rollup/rollup-win32-ia32-msvc": "4.19.1",
|
||||||
|
"@rollup/rollup-win32-x64-msvc": "4.19.1",
|
||||||
|
"fsevents": "~2.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/source-map-js": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/stats": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/stats/-/stats-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-YmKiMSrDaYA8Iu8/mPbZQmQLfzUrCstea60zPLkBMjpUveRh89GLipU/7AuMRAAX3aMmnseSuJtkgpPv29VoqA==",
|
||||||
|
"dependencies": {
|
||||||
|
"commander": "0.5.2"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"stats": "bin/stats"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/stats.js": {
|
||||||
|
"version": "0.17.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
|
||||||
|
"integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/three": {
|
||||||
|
"version": "0.167.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/three/-/three-0.167.0.tgz",
|
||||||
|
"integrity": "sha512-9Y1a66fpjqF3rhq7ivKTaKtjQLZ97Hj/lZ00DmZWaKHaQFH4uzYT1znwRDWQOcgMmCcOloQzo61gDmqO8l9xmA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/vite": {
|
||||||
|
"version": "5.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz",
|
||||||
|
"integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"esbuild": "^0.21.3",
|
||||||
|
"postcss": "^8.4.39",
|
||||||
|
"rollup": "^4.13.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"vite": "bin/vite.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.0.0 || >=20.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "~2.3.3"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/node": "^18.0.0 || >=20.0.0",
|
||||||
|
"less": "*",
|
||||||
|
"lightningcss": "^1.21.0",
|
||||||
|
"sass": "*",
|
||||||
|
"stylus": "*",
|
||||||
|
"sugarss": "*",
|
||||||
|
"terser": "^5.4.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/node": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"less": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"lightningcss": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"sass": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"stylus": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"sugarss": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"terser": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
46
site/node_modules/.vite/deps/_metadata.json
generated
vendored
Normal file
46
site/node_modules/.vite/deps/_metadata.json
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"hash": "95c502b9",
|
||||||
|
"configHash": "f0755339",
|
||||||
|
"lockfileHash": "705b12a6",
|
||||||
|
"browserHash": "ca311342",
|
||||||
|
"optimized": {
|
||||||
|
"three": {
|
||||||
|
"src": "../../three/build/three.module.js",
|
||||||
|
"file": "three.js",
|
||||||
|
"fileHash": "7641604d",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"three/addons/loaders/GLTFLoader.js": {
|
||||||
|
"src": "../../three/examples/jsm/loaders/GLTFLoader.js",
|
||||||
|
"file": "three_addons_loaders_GLTFLoader__js.js",
|
||||||
|
"fileHash": "1d632da7",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"src": "../../stats/index.js",
|
||||||
|
"file": "stats.js",
|
||||||
|
"fileHash": "38b662a6",
|
||||||
|
"needsInterop": true
|
||||||
|
},
|
||||||
|
"stats.js": {
|
||||||
|
"src": "../../stats.js/build/stats.min.js",
|
||||||
|
"file": "stats__js.js",
|
||||||
|
"fileHash": "07a66db3",
|
||||||
|
"needsInterop": true
|
||||||
|
},
|
||||||
|
"three/examples/jsm/controls/OrbitControls.js": {
|
||||||
|
"src": "../../three/examples/jsm/controls/OrbitControls.js",
|
||||||
|
"file": "three_examples_jsm_controls_OrbitControls__js.js",
|
||||||
|
"fileHash": "7ff0d89a",
|
||||||
|
"needsInterop": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"chunk-IS2ZBFBB": {
|
||||||
|
"file": "chunk-IS2ZBFBB.js"
|
||||||
|
},
|
||||||
|
"chunk-BUSYA2B4": {
|
||||||
|
"file": "chunk-BUSYA2B4.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
site/node_modules/.vite/deps/chunk-BUSYA2B4.js
generated
vendored
Normal file
9
site/node_modules/.vite/deps/chunk-BUSYA2B4.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
|
var __commonJS = (cb, mod) => function __require() {
|
||||||
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||||
|
};
|
||||||
|
|
||||||
|
export {
|
||||||
|
__commonJS
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=chunk-BUSYA2B4.js.map
|
7
site/node_modules/.vite/deps/chunk-BUSYA2B4.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/chunk-BUSYA2B4.js.map
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sourcesContent": [],
|
||||||
|
"mappings": "",
|
||||||
|
"names": []
|
||||||
|
}
|
31135
site/node_modules/.vite/deps/chunk-IS2ZBFBB.js
generated
vendored
Normal file
31135
site/node_modules/.vite/deps/chunk-IS2ZBFBB.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
7
site/node_modules/.vite/deps/chunk-IS2ZBFBB.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/chunk-IS2ZBFBB.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3
site/node_modules/.vite/deps/package.json
generated
vendored
Normal file
3
site/node_modules/.vite/deps/package.json
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"type": "module"
|
||||||
|
}
|
1586
site/node_modules/.vite/deps/stats.js
generated
vendored
Normal file
1586
site/node_modules/.vite/deps/stats.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
site/node_modules/.vite/deps/stats.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/stats.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
80
site/node_modules/.vite/deps/stats__js.js
generated
vendored
Normal file
80
site/node_modules/.vite/deps/stats__js.js
generated
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
import {
|
||||||
|
__commonJS
|
||||||
|
} from "./chunk-BUSYA2B4.js";
|
||||||
|
|
||||||
|
// node_modules/stats.js/build/stats.min.js
|
||||||
|
var require_stats_min = __commonJS({
|
||||||
|
"node_modules/stats.js/build/stats.min.js"(exports, module) {
|
||||||
|
(function(f, e) {
|
||||||
|
"object" === typeof exports && "undefined" !== typeof module ? module.exports = e() : "function" === typeof define && define.amd ? define(e) : f.Stats = e();
|
||||||
|
})(exports, function() {
|
||||||
|
var f = function() {
|
||||||
|
function e(a2) {
|
||||||
|
c.appendChild(a2.dom);
|
||||||
|
return a2;
|
||||||
|
}
|
||||||
|
function u(a2) {
|
||||||
|
for (var d = 0; d < c.children.length; d++) c.children[d].style.display = d === a2 ? "block" : "none";
|
||||||
|
l = a2;
|
||||||
|
}
|
||||||
|
var l = 0, c = document.createElement("div");
|
||||||
|
c.style.cssText = "position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000";
|
||||||
|
c.addEventListener("click", function(a2) {
|
||||||
|
a2.preventDefault();
|
||||||
|
u(++l % c.children.length);
|
||||||
|
}, false);
|
||||||
|
var k = (performance || Date).now(), g = k, a = 0, r = e(new f.Panel("FPS", "#0ff", "#002")), h = e(new f.Panel("MS", "#0f0", "#020"));
|
||||||
|
if (self.performance && self.performance.memory) var t = e(new f.Panel("MB", "#f08", "#201"));
|
||||||
|
u(0);
|
||||||
|
return { REVISION: 16, dom: c, addPanel: e, showPanel: u, begin: function() {
|
||||||
|
k = (performance || Date).now();
|
||||||
|
}, end: function() {
|
||||||
|
a++;
|
||||||
|
var c2 = (performance || Date).now();
|
||||||
|
h.update(c2 - k, 200);
|
||||||
|
if (c2 > g + 1e3 && (r.update(1e3 * a / (c2 - g), 100), g = c2, a = 0, t)) {
|
||||||
|
var d = performance.memory;
|
||||||
|
t.update(d.usedJSHeapSize / 1048576, d.jsHeapSizeLimit / 1048576);
|
||||||
|
}
|
||||||
|
return c2;
|
||||||
|
}, update: function() {
|
||||||
|
k = this.end();
|
||||||
|
}, domElement: c, setMode: u };
|
||||||
|
};
|
||||||
|
f.Panel = function(e, f2, l) {
|
||||||
|
var c = Infinity, k = 0, g = Math.round, a = g(window.devicePixelRatio || 1), r = 80 * a, h = 48 * a, t = 3 * a, v = 2 * a, d = 3 * a, m = 15 * a, n = 74 * a, p = 30 * a, q = document.createElement("canvas");
|
||||||
|
q.width = r;
|
||||||
|
q.height = h;
|
||||||
|
q.style.cssText = "width:80px;height:48px";
|
||||||
|
var b = q.getContext("2d");
|
||||||
|
b.font = "bold " + 9 * a + "px Helvetica,Arial,sans-serif";
|
||||||
|
b.textBaseline = "top";
|
||||||
|
b.fillStyle = l;
|
||||||
|
b.fillRect(0, 0, r, h);
|
||||||
|
b.fillStyle = f2;
|
||||||
|
b.fillText(e, t, v);
|
||||||
|
b.fillRect(d, m, n, p);
|
||||||
|
b.fillStyle = l;
|
||||||
|
b.globalAlpha = 0.9;
|
||||||
|
b.fillRect(d, m, n, p);
|
||||||
|
return { dom: q, update: function(h2, w) {
|
||||||
|
c = Math.min(c, h2);
|
||||||
|
k = Math.max(k, h2);
|
||||||
|
b.fillStyle = l;
|
||||||
|
b.globalAlpha = 1;
|
||||||
|
b.fillRect(0, 0, r, m);
|
||||||
|
b.fillStyle = f2;
|
||||||
|
b.fillText(g(h2) + " " + e + " (" + g(c) + "-" + g(k) + ")", t, v);
|
||||||
|
b.drawImage(q, d + a, m, n - a, p, d, m, n - a, p);
|
||||||
|
b.fillRect(d + n - a, m, a, p);
|
||||||
|
b.fillStyle = l;
|
||||||
|
b.globalAlpha = 0.9;
|
||||||
|
b.fillRect(d + n - a, m, a, g((1 - h2 / w) * p));
|
||||||
|
} };
|
||||||
|
};
|
||||||
|
return f;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
export default require_stats_min();
|
||||||
|
//# sourceMappingURL=stats__js.js.map
|
7
site/node_modules/.vite/deps/stats__js.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/stats__js.js.map
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": ["../../stats.js/build/stats.min.js"],
|
||||||
|
"sourcesContent": ["// stats.js - http://github.com/mrdoob/stats.js\n(function(f,e){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=e():\"function\"===typeof define&&define.amd?define(e):f.Stats=e()})(this,function(){var f=function(){function e(a){c.appendChild(a.dom);return a}function u(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?\"block\":\"none\";l=a}var l=0,c=document.createElement(\"div\");c.style.cssText=\"position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000\";c.addEventListener(\"click\",function(a){a.preventDefault();\nu(++l%c.children.length)},!1);var k=(performance||Date).now(),g=k,a=0,r=e(new f.Panel(\"FPS\",\"#0ff\",\"#002\")),h=e(new f.Panel(\"MS\",\"#0f0\",\"#020\"));if(self.performance&&self.performance.memory)var t=e(new f.Panel(\"MB\",\"#f08\",\"#201\"));u(0);return{REVISION:16,dom:c,addPanel:e,showPanel:u,begin:function(){k=(performance||Date).now()},end:function(){a++;var c=(performance||Date).now();h.update(c-k,200);if(c>g+1E3&&(r.update(1E3*a/(c-g),100),g=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/\n1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){k=this.end()},domElement:c,setMode:u}};f.Panel=function(e,f,l){var c=Infinity,k=0,g=Math.round,a=g(window.devicePixelRatio||1),r=80*a,h=48*a,t=3*a,v=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement(\"canvas\");q.width=r;q.height=h;q.style.cssText=\"width:80px;height:48px\";var b=q.getContext(\"2d\");b.font=\"bold \"+9*a+\"px Helvetica,Arial,sans-serif\";b.textBaseline=\"top\";b.fillStyle=l;b.fillRect(0,0,r,h);b.fillStyle=f;b.fillText(e,t,v);\nb.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(h,w){c=Math.min(c,h);k=Math.max(k,h);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=f;b.fillText(g(h)+\" \"+e+\" (\"+g(c)+\"-\"+g(k)+\")\",t,v);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,g((1-h/w)*p))}}};return f});\n"],
|
||||||
|
"mappings": ";;;;;AAAA;AAAA;AACA,KAAC,SAAS,GAAE,GAAE;AAAC,mBAAW,OAAO,WAAS,gBAAc,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,eAAa,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,IAAE,EAAE,QAAM,EAAE;AAAA,IAAC,GAAG,SAAK,WAAU;AAAC,UAAI,IAAE,WAAU;AAAC,iBAAS,EAAEA,IAAE;AAAC,YAAE,YAAYA,GAAE,GAAG;AAAE,iBAAOA;AAAA,QAAC;AAAC,iBAAS,EAAEA,IAAE;AAAC,mBAAQ,IAAE,GAAE,IAAE,EAAE,SAAS,QAAO,IAAI,GAAE,SAAS,CAAC,EAAE,MAAM,UAAQ,MAAIA,KAAE,UAAQ;AAAO,cAAEA;AAAA,QAAC;AAAC,YAAI,IAAE,GAAE,IAAE,SAAS,cAAc,KAAK;AAAE,UAAE,MAAM,UAAQ;AAAuE,UAAE,iBAAiB,SAAQ,SAASA,IAAE;AAAC,UAAAA,GAAE,eAAe;AACngB,YAAE,EAAE,IAAE,EAAE,SAAS,MAAM;AAAA,QAAC,GAAE,KAAE;AAAE,YAAI,KAAG,eAAa,MAAM,IAAI,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,IAAI,EAAE,MAAM,OAAM,QAAO,MAAM,CAAC,GAAE,IAAE,EAAE,IAAI,EAAE,MAAM,MAAK,QAAO,MAAM,CAAC;AAAE,YAAG,KAAK,eAAa,KAAK,YAAY,OAAO,KAAI,IAAE,EAAE,IAAI,EAAE,MAAM,MAAK,QAAO,MAAM,CAAC;AAAE,UAAE,CAAC;AAAE,eAAM,EAAC,UAAS,IAAG,KAAI,GAAE,UAAS,GAAE,WAAU,GAAE,OAAM,WAAU;AAAC,eAAG,eAAa,MAAM,IAAI;AAAA,QAAC,GAAE,KAAI,WAAU;AAAC;AAAI,cAAIC,MAAG,eAAa,MAAM,IAAI;AAAE,YAAE,OAAOA,KAAE,GAAE,GAAG;AAAE,cAAGA,KAAE,IAAE,QAAM,EAAE,OAAO,MAAI,KAAGA,KAAE,IAAG,GAAG,GAAE,IAAEA,IAAE,IAAE,GAAE,IAAG;AAAC,gBAAI,IAAE,YAAY;AAAO,cAAE,OAAO,EAAE,iBACte,SAAQ,EAAE,kBAAgB,OAAO;AAAA,UAAC;AAAC,iBAAOA;AAAA,QAAC,GAAE,QAAO,WAAU;AAAC,cAAE,KAAK,IAAI;AAAA,QAAC,GAAE,YAAW,GAAE,SAAQ,EAAC;AAAA,MAAC;AAAE,QAAE,QAAM,SAAS,GAAEC,IAAE,GAAE;AAAC,YAAI,IAAE,UAAS,IAAE,GAAE,IAAE,KAAK,OAAM,IAAE,EAAE,OAAO,oBAAkB,CAAC,GAAE,IAAE,KAAG,GAAE,IAAE,KAAG,GAAE,IAAE,IAAE,GAAE,IAAE,IAAE,GAAE,IAAE,IAAE,GAAE,IAAE,KAAG,GAAE,IAAE,KAAG,GAAE,IAAE,KAAG,GAAE,IAAE,SAAS,cAAc,QAAQ;AAAE,UAAE,QAAM;AAAE,UAAE,SAAO;AAAE,UAAE,MAAM,UAAQ;AAAyB,YAAI,IAAE,EAAE,WAAW,IAAI;AAAE,UAAE,OAAK,UAAQ,IAAE,IAAE;AAAgC,UAAE,eAAa;AAAM,UAAE,YAAU;AAAE,UAAE,SAAS,GAAE,GAAE,GAAE,CAAC;AAAE,UAAE,YAAUA;AAAE,UAAE,SAAS,GAAE,GAAE,CAAC;AACrf,UAAE,SAAS,GAAE,GAAE,GAAE,CAAC;AAAE,UAAE,YAAU;AAAE,UAAE,cAAY;AAAG,UAAE,SAAS,GAAE,GAAE,GAAE,CAAC;AAAE,eAAM,EAAC,KAAI,GAAE,QAAO,SAASC,IAAE,GAAE;AAAC,cAAE,KAAK,IAAI,GAAEA,EAAC;AAAE,cAAE,KAAK,IAAI,GAAEA,EAAC;AAAE,YAAE,YAAU;AAAE,YAAE,cAAY;AAAE,YAAE,SAAS,GAAE,GAAE,GAAE,CAAC;AAAE,YAAE,YAAUD;AAAE,YAAE,SAAS,EAAEC,EAAC,IAAE,MAAI,IAAE,OAAK,EAAE,CAAC,IAAE,MAAI,EAAE,CAAC,IAAE,KAAI,GAAE,CAAC;AAAE,YAAE,UAAU,GAAE,IAAE,GAAE,GAAE,IAAE,GAAE,GAAE,GAAE,GAAE,IAAE,GAAE,CAAC;AAAE,YAAE,SAAS,IAAE,IAAE,GAAE,GAAE,GAAE,CAAC;AAAE,YAAE,YAAU;AAAE,YAAE,cAAY;AAAG,YAAE,SAAS,IAAE,IAAE,GAAE,GAAE,GAAE,GAAG,IAAEA,KAAE,KAAG,CAAC,CAAC;AAAA,QAAC,EAAC;AAAA,MAAC;AAAE,aAAO;AAAA,IAAC,CAAC;AAAA;AAAA;",
|
||||||
|
"names": ["a", "c", "f", "h"]
|
||||||
|
}
|
842
site/node_modules/.vite/deps/three.js
generated
vendored
Normal file
842
site/node_modules/.vite/deps/three.js
generated
vendored
Normal file
@ -0,0 +1,842 @@
|
|||||||
|
import {
|
||||||
|
ACESFilmicToneMapping,
|
||||||
|
AddEquation,
|
||||||
|
AddOperation,
|
||||||
|
AdditiveAnimationBlendMode,
|
||||||
|
AdditiveBlending,
|
||||||
|
AgXToneMapping,
|
||||||
|
AlphaFormat,
|
||||||
|
AlwaysCompare,
|
||||||
|
AlwaysDepth,
|
||||||
|
AlwaysStencilFunc,
|
||||||
|
AmbientLight,
|
||||||
|
AnimationAction,
|
||||||
|
AnimationClip,
|
||||||
|
AnimationLoader,
|
||||||
|
AnimationMixer,
|
||||||
|
AnimationObjectGroup,
|
||||||
|
AnimationUtils,
|
||||||
|
ArcCurve,
|
||||||
|
ArrayCamera,
|
||||||
|
ArrowHelper,
|
||||||
|
AttachedBindMode,
|
||||||
|
Audio,
|
||||||
|
AudioAnalyser,
|
||||||
|
AudioContext,
|
||||||
|
AudioListener,
|
||||||
|
AudioLoader,
|
||||||
|
AxesHelper,
|
||||||
|
BackSide,
|
||||||
|
BasicDepthPacking,
|
||||||
|
BasicShadowMap,
|
||||||
|
BatchedMesh,
|
||||||
|
Bone,
|
||||||
|
BooleanKeyframeTrack,
|
||||||
|
Box2,
|
||||||
|
Box3,
|
||||||
|
Box3Helper,
|
||||||
|
BoxGeometry,
|
||||||
|
BoxHelper,
|
||||||
|
BufferAttribute,
|
||||||
|
BufferGeometry,
|
||||||
|
BufferGeometryLoader,
|
||||||
|
ByteType,
|
||||||
|
Cache,
|
||||||
|
Camera,
|
||||||
|
CameraHelper,
|
||||||
|
CanvasTexture,
|
||||||
|
CapsuleGeometry,
|
||||||
|
CatmullRomCurve3,
|
||||||
|
CineonToneMapping,
|
||||||
|
CircleGeometry,
|
||||||
|
ClampToEdgeWrapping,
|
||||||
|
Clock,
|
||||||
|
Color,
|
||||||
|
ColorKeyframeTrack,
|
||||||
|
ColorManagement,
|
||||||
|
CompressedArrayTexture,
|
||||||
|
CompressedCubeTexture,
|
||||||
|
CompressedTexture,
|
||||||
|
CompressedTextureLoader,
|
||||||
|
ConeGeometry,
|
||||||
|
ConstantAlphaFactor,
|
||||||
|
ConstantColorFactor,
|
||||||
|
CubeCamera,
|
||||||
|
CubeReflectionMapping,
|
||||||
|
CubeRefractionMapping,
|
||||||
|
CubeTexture,
|
||||||
|
CubeTextureLoader,
|
||||||
|
CubeUVReflectionMapping,
|
||||||
|
CubicBezierCurve,
|
||||||
|
CubicBezierCurve3,
|
||||||
|
CubicInterpolant,
|
||||||
|
CullFaceBack,
|
||||||
|
CullFaceFront,
|
||||||
|
CullFaceFrontBack,
|
||||||
|
CullFaceNone,
|
||||||
|
Curve,
|
||||||
|
CurvePath,
|
||||||
|
CustomBlending,
|
||||||
|
CustomToneMapping,
|
||||||
|
CylinderGeometry,
|
||||||
|
Cylindrical,
|
||||||
|
Data3DTexture,
|
||||||
|
DataArrayTexture,
|
||||||
|
DataTexture,
|
||||||
|
DataTextureLoader,
|
||||||
|
DataUtils,
|
||||||
|
DecrementStencilOp,
|
||||||
|
DecrementWrapStencilOp,
|
||||||
|
DefaultLoadingManager,
|
||||||
|
DepthFormat,
|
||||||
|
DepthStencilFormat,
|
||||||
|
DepthTexture,
|
||||||
|
DetachedBindMode,
|
||||||
|
DirectionalLight,
|
||||||
|
DirectionalLightHelper,
|
||||||
|
DiscreteInterpolant,
|
||||||
|
DisplayP3ColorSpace,
|
||||||
|
DodecahedronGeometry,
|
||||||
|
DoubleSide,
|
||||||
|
DstAlphaFactor,
|
||||||
|
DstColorFactor,
|
||||||
|
DynamicCopyUsage,
|
||||||
|
DynamicDrawUsage,
|
||||||
|
DynamicReadUsage,
|
||||||
|
EdgesGeometry,
|
||||||
|
EllipseCurve,
|
||||||
|
EqualCompare,
|
||||||
|
EqualDepth,
|
||||||
|
EqualStencilFunc,
|
||||||
|
EquirectangularReflectionMapping,
|
||||||
|
EquirectangularRefractionMapping,
|
||||||
|
Euler,
|
||||||
|
EventDispatcher,
|
||||||
|
ExtrudeGeometry,
|
||||||
|
FileLoader,
|
||||||
|
Float16BufferAttribute,
|
||||||
|
Float32BufferAttribute,
|
||||||
|
FloatType,
|
||||||
|
Fog,
|
||||||
|
FogExp2,
|
||||||
|
FramebufferTexture,
|
||||||
|
FrontSide,
|
||||||
|
Frustum,
|
||||||
|
GLBufferAttribute,
|
||||||
|
GLSL1,
|
||||||
|
GLSL3,
|
||||||
|
GreaterCompare,
|
||||||
|
GreaterDepth,
|
||||||
|
GreaterEqualCompare,
|
||||||
|
GreaterEqualDepth,
|
||||||
|
GreaterEqualStencilFunc,
|
||||||
|
GreaterStencilFunc,
|
||||||
|
GridHelper,
|
||||||
|
Group,
|
||||||
|
HalfFloatType,
|
||||||
|
HemisphereLight,
|
||||||
|
HemisphereLightHelper,
|
||||||
|
IcosahedronGeometry,
|
||||||
|
ImageBitmapLoader,
|
||||||
|
ImageLoader,
|
||||||
|
ImageUtils,
|
||||||
|
IncrementStencilOp,
|
||||||
|
IncrementWrapStencilOp,
|
||||||
|
InstancedBufferAttribute,
|
||||||
|
InstancedBufferGeometry,
|
||||||
|
InstancedInterleavedBuffer,
|
||||||
|
InstancedMesh,
|
||||||
|
Int16BufferAttribute,
|
||||||
|
Int32BufferAttribute,
|
||||||
|
Int8BufferAttribute,
|
||||||
|
IntType,
|
||||||
|
InterleavedBuffer,
|
||||||
|
InterleavedBufferAttribute,
|
||||||
|
Interpolant,
|
||||||
|
InterpolateDiscrete,
|
||||||
|
InterpolateLinear,
|
||||||
|
InterpolateSmooth,
|
||||||
|
InvertStencilOp,
|
||||||
|
KeepStencilOp,
|
||||||
|
KeyframeTrack,
|
||||||
|
LOD,
|
||||||
|
LatheGeometry,
|
||||||
|
Layers,
|
||||||
|
LessCompare,
|
||||||
|
LessDepth,
|
||||||
|
LessEqualCompare,
|
||||||
|
LessEqualDepth,
|
||||||
|
LessEqualStencilFunc,
|
||||||
|
LessStencilFunc,
|
||||||
|
Light,
|
||||||
|
LightProbe,
|
||||||
|
Line,
|
||||||
|
Line3,
|
||||||
|
LineBasicMaterial,
|
||||||
|
LineCurve,
|
||||||
|
LineCurve3,
|
||||||
|
LineDashedMaterial,
|
||||||
|
LineLoop,
|
||||||
|
LineSegments,
|
||||||
|
LinearDisplayP3ColorSpace,
|
||||||
|
LinearFilter,
|
||||||
|
LinearInterpolant,
|
||||||
|
LinearMipMapLinearFilter,
|
||||||
|
LinearMipMapNearestFilter,
|
||||||
|
LinearMipmapLinearFilter,
|
||||||
|
LinearMipmapNearestFilter,
|
||||||
|
LinearSRGBColorSpace,
|
||||||
|
LinearToneMapping,
|
||||||
|
LinearTransfer,
|
||||||
|
Loader,
|
||||||
|
LoaderUtils,
|
||||||
|
LoadingManager,
|
||||||
|
LoopOnce,
|
||||||
|
LoopPingPong,
|
||||||
|
LoopRepeat,
|
||||||
|
LuminanceAlphaFormat,
|
||||||
|
LuminanceFormat,
|
||||||
|
MOUSE,
|
||||||
|
Material,
|
||||||
|
MaterialLoader,
|
||||||
|
MathUtils,
|
||||||
|
Matrix2,
|
||||||
|
Matrix3,
|
||||||
|
Matrix4,
|
||||||
|
MaxEquation,
|
||||||
|
Mesh,
|
||||||
|
MeshBasicMaterial,
|
||||||
|
MeshDepthMaterial,
|
||||||
|
MeshDistanceMaterial,
|
||||||
|
MeshLambertMaterial,
|
||||||
|
MeshMatcapMaterial,
|
||||||
|
MeshNormalMaterial,
|
||||||
|
MeshPhongMaterial,
|
||||||
|
MeshPhysicalMaterial,
|
||||||
|
MeshStandardMaterial,
|
||||||
|
MeshToonMaterial,
|
||||||
|
MinEquation,
|
||||||
|
MirroredRepeatWrapping,
|
||||||
|
MixOperation,
|
||||||
|
MultiplyBlending,
|
||||||
|
MultiplyOperation,
|
||||||
|
NearestFilter,
|
||||||
|
NearestMipMapLinearFilter,
|
||||||
|
NearestMipMapNearestFilter,
|
||||||
|
NearestMipmapLinearFilter,
|
||||||
|
NearestMipmapNearestFilter,
|
||||||
|
NeutralToneMapping,
|
||||||
|
NeverCompare,
|
||||||
|
NeverDepth,
|
||||||
|
NeverStencilFunc,
|
||||||
|
NoBlending,
|
||||||
|
NoColorSpace,
|
||||||
|
NoToneMapping,
|
||||||
|
NormalAnimationBlendMode,
|
||||||
|
NormalBlending,
|
||||||
|
NotEqualCompare,
|
||||||
|
NotEqualDepth,
|
||||||
|
NotEqualStencilFunc,
|
||||||
|
NumberKeyframeTrack,
|
||||||
|
Object3D,
|
||||||
|
ObjectLoader,
|
||||||
|
ObjectSpaceNormalMap,
|
||||||
|
OctahedronGeometry,
|
||||||
|
OneFactor,
|
||||||
|
OneMinusConstantAlphaFactor,
|
||||||
|
OneMinusConstantColorFactor,
|
||||||
|
OneMinusDstAlphaFactor,
|
||||||
|
OneMinusDstColorFactor,
|
||||||
|
OneMinusSrcAlphaFactor,
|
||||||
|
OneMinusSrcColorFactor,
|
||||||
|
OrthographicCamera,
|
||||||
|
P3Primaries,
|
||||||
|
PCFShadowMap,
|
||||||
|
PCFSoftShadowMap,
|
||||||
|
PMREMGenerator,
|
||||||
|
Path,
|
||||||
|
PerspectiveCamera,
|
||||||
|
Plane,
|
||||||
|
PlaneGeometry,
|
||||||
|
PlaneHelper,
|
||||||
|
PointLight,
|
||||||
|
PointLightHelper,
|
||||||
|
Points,
|
||||||
|
PointsMaterial,
|
||||||
|
PolarGridHelper,
|
||||||
|
PolyhedronGeometry,
|
||||||
|
PositionalAudio,
|
||||||
|
PropertyBinding,
|
||||||
|
PropertyMixer,
|
||||||
|
QuadraticBezierCurve,
|
||||||
|
QuadraticBezierCurve3,
|
||||||
|
Quaternion,
|
||||||
|
QuaternionKeyframeTrack,
|
||||||
|
QuaternionLinearInterpolant,
|
||||||
|
RED_GREEN_RGTC2_Format,
|
||||||
|
RED_RGTC1_Format,
|
||||||
|
REVISION,
|
||||||
|
RGBADepthPacking,
|
||||||
|
RGBAFormat,
|
||||||
|
RGBAIntegerFormat,
|
||||||
|
RGBA_ASTC_10x10_Format,
|
||||||
|
RGBA_ASTC_10x5_Format,
|
||||||
|
RGBA_ASTC_10x6_Format,
|
||||||
|
RGBA_ASTC_10x8_Format,
|
||||||
|
RGBA_ASTC_12x10_Format,
|
||||||
|
RGBA_ASTC_12x12_Format,
|
||||||
|
RGBA_ASTC_4x4_Format,
|
||||||
|
RGBA_ASTC_5x4_Format,
|
||||||
|
RGBA_ASTC_5x5_Format,
|
||||||
|
RGBA_ASTC_6x5_Format,
|
||||||
|
RGBA_ASTC_6x6_Format,
|
||||||
|
RGBA_ASTC_8x5_Format,
|
||||||
|
RGBA_ASTC_8x6_Format,
|
||||||
|
RGBA_ASTC_8x8_Format,
|
||||||
|
RGBA_BPTC_Format,
|
||||||
|
RGBA_ETC2_EAC_Format,
|
||||||
|
RGBA_PVRTC_2BPPV1_Format,
|
||||||
|
RGBA_PVRTC_4BPPV1_Format,
|
||||||
|
RGBA_S3TC_DXT1_Format,
|
||||||
|
RGBA_S3TC_DXT3_Format,
|
||||||
|
RGBA_S3TC_DXT5_Format,
|
||||||
|
RGBDepthPacking,
|
||||||
|
RGBFormat,
|
||||||
|
RGBIntegerFormat,
|
||||||
|
RGB_BPTC_SIGNED_Format,
|
||||||
|
RGB_BPTC_UNSIGNED_Format,
|
||||||
|
RGB_ETC1_Format,
|
||||||
|
RGB_ETC2_Format,
|
||||||
|
RGB_PVRTC_2BPPV1_Format,
|
||||||
|
RGB_PVRTC_4BPPV1_Format,
|
||||||
|
RGB_S3TC_DXT1_Format,
|
||||||
|
RGDepthPacking,
|
||||||
|
RGFormat,
|
||||||
|
RGIntegerFormat,
|
||||||
|
RawShaderMaterial,
|
||||||
|
Ray,
|
||||||
|
Raycaster,
|
||||||
|
Rec709Primaries,
|
||||||
|
RectAreaLight,
|
||||||
|
RedFormat,
|
||||||
|
RedIntegerFormat,
|
||||||
|
ReinhardToneMapping,
|
||||||
|
RenderTarget,
|
||||||
|
RepeatWrapping,
|
||||||
|
ReplaceStencilOp,
|
||||||
|
ReverseSubtractEquation,
|
||||||
|
RingGeometry,
|
||||||
|
SIGNED_RED_GREEN_RGTC2_Format,
|
||||||
|
SIGNED_RED_RGTC1_Format,
|
||||||
|
SRGBColorSpace,
|
||||||
|
SRGBTransfer,
|
||||||
|
Scene,
|
||||||
|
ShaderChunk,
|
||||||
|
ShaderLib,
|
||||||
|
ShaderMaterial,
|
||||||
|
ShadowMaterial,
|
||||||
|
Shape,
|
||||||
|
ShapeGeometry,
|
||||||
|
ShapePath,
|
||||||
|
ShapeUtils,
|
||||||
|
ShortType,
|
||||||
|
Skeleton,
|
||||||
|
SkeletonHelper,
|
||||||
|
SkinnedMesh,
|
||||||
|
Source,
|
||||||
|
Sphere,
|
||||||
|
SphereGeometry,
|
||||||
|
Spherical,
|
||||||
|
SphericalHarmonics3,
|
||||||
|
SplineCurve,
|
||||||
|
SpotLight,
|
||||||
|
SpotLightHelper,
|
||||||
|
Sprite,
|
||||||
|
SpriteMaterial,
|
||||||
|
SrcAlphaFactor,
|
||||||
|
SrcAlphaSaturateFactor,
|
||||||
|
SrcColorFactor,
|
||||||
|
StaticCopyUsage,
|
||||||
|
StaticDrawUsage,
|
||||||
|
StaticReadUsage,
|
||||||
|
StereoCamera,
|
||||||
|
StreamCopyUsage,
|
||||||
|
StreamDrawUsage,
|
||||||
|
StreamReadUsage,
|
||||||
|
StringKeyframeTrack,
|
||||||
|
SubtractEquation,
|
||||||
|
SubtractiveBlending,
|
||||||
|
TOUCH,
|
||||||
|
TangentSpaceNormalMap,
|
||||||
|
TetrahedronGeometry,
|
||||||
|
Texture,
|
||||||
|
TextureLoader,
|
||||||
|
TextureUtils,
|
||||||
|
TorusGeometry,
|
||||||
|
TorusKnotGeometry,
|
||||||
|
Triangle,
|
||||||
|
TriangleFanDrawMode,
|
||||||
|
TriangleStripDrawMode,
|
||||||
|
TrianglesDrawMode,
|
||||||
|
TubeGeometry,
|
||||||
|
UVMapping,
|
||||||
|
Uint16BufferAttribute,
|
||||||
|
Uint32BufferAttribute,
|
||||||
|
Uint8BufferAttribute,
|
||||||
|
Uint8ClampedBufferAttribute,
|
||||||
|
Uniform,
|
||||||
|
UniformsGroup,
|
||||||
|
UniformsLib,
|
||||||
|
UniformsUtils,
|
||||||
|
UnsignedByteType,
|
||||||
|
UnsignedInt248Type,
|
||||||
|
UnsignedInt5999Type,
|
||||||
|
UnsignedIntType,
|
||||||
|
UnsignedShort4444Type,
|
||||||
|
UnsignedShort5551Type,
|
||||||
|
UnsignedShortType,
|
||||||
|
VSMShadowMap,
|
||||||
|
Vector2,
|
||||||
|
Vector3,
|
||||||
|
Vector4,
|
||||||
|
VectorKeyframeTrack,
|
||||||
|
VideoTexture,
|
||||||
|
WebGL3DRenderTarget,
|
||||||
|
WebGLArrayRenderTarget,
|
||||||
|
WebGLCoordinateSystem,
|
||||||
|
WebGLCubeRenderTarget,
|
||||||
|
WebGLMultipleRenderTargets,
|
||||||
|
WebGLRenderTarget,
|
||||||
|
WebGLRenderer,
|
||||||
|
WebGLUtils,
|
||||||
|
WebGPUCoordinateSystem,
|
||||||
|
WireframeGeometry,
|
||||||
|
WrapAroundEnding,
|
||||||
|
ZeroCurvatureEnding,
|
||||||
|
ZeroFactor,
|
||||||
|
ZeroSlopeEnding,
|
||||||
|
ZeroStencilOp,
|
||||||
|
createCanvasElement
|
||||||
|
} from "./chunk-IS2ZBFBB.js";
|
||||||
|
import "./chunk-BUSYA2B4.js";
|
||||||
|
export {
|
||||||
|
ACESFilmicToneMapping,
|
||||||
|
AddEquation,
|
||||||
|
AddOperation,
|
||||||
|
AdditiveAnimationBlendMode,
|
||||||
|
AdditiveBlending,
|
||||||
|
AgXToneMapping,
|
||||||
|
AlphaFormat,
|
||||||
|
AlwaysCompare,
|
||||||
|
AlwaysDepth,
|
||||||
|
AlwaysStencilFunc,
|
||||||
|
AmbientLight,
|
||||||
|
AnimationAction,
|
||||||
|
AnimationClip,
|
||||||
|
AnimationLoader,
|
||||||
|
AnimationMixer,
|
||||||
|
AnimationObjectGroup,
|
||||||
|
AnimationUtils,
|
||||||
|
ArcCurve,
|
||||||
|
ArrayCamera,
|
||||||
|
ArrowHelper,
|
||||||
|
AttachedBindMode,
|
||||||
|
Audio,
|
||||||
|
AudioAnalyser,
|
||||||
|
AudioContext,
|
||||||
|
AudioListener,
|
||||||
|
AudioLoader,
|
||||||
|
AxesHelper,
|
||||||
|
BackSide,
|
||||||
|
BasicDepthPacking,
|
||||||
|
BasicShadowMap,
|
||||||
|
BatchedMesh,
|
||||||
|
Bone,
|
||||||
|
BooleanKeyframeTrack,
|
||||||
|
Box2,
|
||||||
|
Box3,
|
||||||
|
Box3Helper,
|
||||||
|
BoxGeometry,
|
||||||
|
BoxHelper,
|
||||||
|
BufferAttribute,
|
||||||
|
BufferGeometry,
|
||||||
|
BufferGeometryLoader,
|
||||||
|
ByteType,
|
||||||
|
Cache,
|
||||||
|
Camera,
|
||||||
|
CameraHelper,
|
||||||
|
CanvasTexture,
|
||||||
|
CapsuleGeometry,
|
||||||
|
CatmullRomCurve3,
|
||||||
|
CineonToneMapping,
|
||||||
|
CircleGeometry,
|
||||||
|
ClampToEdgeWrapping,
|
||||||
|
Clock,
|
||||||
|
Color,
|
||||||
|
ColorKeyframeTrack,
|
||||||
|
ColorManagement,
|
||||||
|
CompressedArrayTexture,
|
||||||
|
CompressedCubeTexture,
|
||||||
|
CompressedTexture,
|
||||||
|
CompressedTextureLoader,
|
||||||
|
ConeGeometry,
|
||||||
|
ConstantAlphaFactor,
|
||||||
|
ConstantColorFactor,
|
||||||
|
CubeCamera,
|
||||||
|
CubeReflectionMapping,
|
||||||
|
CubeRefractionMapping,
|
||||||
|
CubeTexture,
|
||||||
|
CubeTextureLoader,
|
||||||
|
CubeUVReflectionMapping,
|
||||||
|
CubicBezierCurve,
|
||||||
|
CubicBezierCurve3,
|
||||||
|
CubicInterpolant,
|
||||||
|
CullFaceBack,
|
||||||
|
CullFaceFront,
|
||||||
|
CullFaceFrontBack,
|
||||||
|
CullFaceNone,
|
||||||
|
Curve,
|
||||||
|
CurvePath,
|
||||||
|
CustomBlending,
|
||||||
|
CustomToneMapping,
|
||||||
|
CylinderGeometry,
|
||||||
|
Cylindrical,
|
||||||
|
Data3DTexture,
|
||||||
|
DataArrayTexture,
|
||||||
|
DataTexture,
|
||||||
|
DataTextureLoader,
|
||||||
|
DataUtils,
|
||||||
|
DecrementStencilOp,
|
||||||
|
DecrementWrapStencilOp,
|
||||||
|
DefaultLoadingManager,
|
||||||
|
DepthFormat,
|
||||||
|
DepthStencilFormat,
|
||||||
|
DepthTexture,
|
||||||
|
DetachedBindMode,
|
||||||
|
DirectionalLight,
|
||||||
|
DirectionalLightHelper,
|
||||||
|
DiscreteInterpolant,
|
||||||
|
DisplayP3ColorSpace,
|
||||||
|
DodecahedronGeometry,
|
||||||
|
DoubleSide,
|
||||||
|
DstAlphaFactor,
|
||||||
|
DstColorFactor,
|
||||||
|
DynamicCopyUsage,
|
||||||
|
DynamicDrawUsage,
|
||||||
|
DynamicReadUsage,
|
||||||
|
EdgesGeometry,
|
||||||
|
EllipseCurve,
|
||||||
|
EqualCompare,
|
||||||
|
EqualDepth,
|
||||||
|
EqualStencilFunc,
|
||||||
|
EquirectangularReflectionMapping,
|
||||||
|
EquirectangularRefractionMapping,
|
||||||
|
Euler,
|
||||||
|
EventDispatcher,
|
||||||
|
ExtrudeGeometry,
|
||||||
|
FileLoader,
|
||||||
|
Float16BufferAttribute,
|
||||||
|
Float32BufferAttribute,
|
||||||
|
FloatType,
|
||||||
|
Fog,
|
||||||
|
FogExp2,
|
||||||
|
FramebufferTexture,
|
||||||
|
FrontSide,
|
||||||
|
Frustum,
|
||||||
|
GLBufferAttribute,
|
||||||
|
GLSL1,
|
||||||
|
GLSL3,
|
||||||
|
GreaterCompare,
|
||||||
|
GreaterDepth,
|
||||||
|
GreaterEqualCompare,
|
||||||
|
GreaterEqualDepth,
|
||||||
|
GreaterEqualStencilFunc,
|
||||||
|
GreaterStencilFunc,
|
||||||
|
GridHelper,
|
||||||
|
Group,
|
||||||
|
HalfFloatType,
|
||||||
|
HemisphereLight,
|
||||||
|
HemisphereLightHelper,
|
||||||
|
IcosahedronGeometry,
|
||||||
|
ImageBitmapLoader,
|
||||||
|
ImageLoader,
|
||||||
|
ImageUtils,
|
||||||
|
IncrementStencilOp,
|
||||||
|
IncrementWrapStencilOp,
|
||||||
|
InstancedBufferAttribute,
|
||||||
|
InstancedBufferGeometry,
|
||||||
|
InstancedInterleavedBuffer,
|
||||||
|
InstancedMesh,
|
||||||
|
Int16BufferAttribute,
|
||||||
|
Int32BufferAttribute,
|
||||||
|
Int8BufferAttribute,
|
||||||
|
IntType,
|
||||||
|
InterleavedBuffer,
|
||||||
|
InterleavedBufferAttribute,
|
||||||
|
Interpolant,
|
||||||
|
InterpolateDiscrete,
|
||||||
|
InterpolateLinear,
|
||||||
|
InterpolateSmooth,
|
||||||
|
InvertStencilOp,
|
||||||
|
KeepStencilOp,
|
||||||
|
KeyframeTrack,
|
||||||
|
LOD,
|
||||||
|
LatheGeometry,
|
||||||
|
Layers,
|
||||||
|
LessCompare,
|
||||||
|
LessDepth,
|
||||||
|
LessEqualCompare,
|
||||||
|
LessEqualDepth,
|
||||||
|
LessEqualStencilFunc,
|
||||||
|
LessStencilFunc,
|
||||||
|
Light,
|
||||||
|
LightProbe,
|
||||||
|
Line,
|
||||||
|
Line3,
|
||||||
|
LineBasicMaterial,
|
||||||
|
LineCurve,
|
||||||
|
LineCurve3,
|
||||||
|
LineDashedMaterial,
|
||||||
|
LineLoop,
|
||||||
|
LineSegments,
|
||||||
|
LinearDisplayP3ColorSpace,
|
||||||
|
LinearFilter,
|
||||||
|
LinearInterpolant,
|
||||||
|
LinearMipMapLinearFilter,
|
||||||
|
LinearMipMapNearestFilter,
|
||||||
|
LinearMipmapLinearFilter,
|
||||||
|
LinearMipmapNearestFilter,
|
||||||
|
LinearSRGBColorSpace,
|
||||||
|
LinearToneMapping,
|
||||||
|
LinearTransfer,
|
||||||
|
Loader,
|
||||||
|
LoaderUtils,
|
||||||
|
LoadingManager,
|
||||||
|
LoopOnce,
|
||||||
|
LoopPingPong,
|
||||||
|
LoopRepeat,
|
||||||
|
LuminanceAlphaFormat,
|
||||||
|
LuminanceFormat,
|
||||||
|
MOUSE,
|
||||||
|
Material,
|
||||||
|
MaterialLoader,
|
||||||
|
MathUtils,
|
||||||
|
Matrix2,
|
||||||
|
Matrix3,
|
||||||
|
Matrix4,
|
||||||
|
MaxEquation,
|
||||||
|
Mesh,
|
||||||
|
MeshBasicMaterial,
|
||||||
|
MeshDepthMaterial,
|
||||||
|
MeshDistanceMaterial,
|
||||||
|
MeshLambertMaterial,
|
||||||
|
MeshMatcapMaterial,
|
||||||
|
MeshNormalMaterial,
|
||||||
|
MeshPhongMaterial,
|
||||||
|
MeshPhysicalMaterial,
|
||||||
|
MeshStandardMaterial,
|
||||||
|
MeshToonMaterial,
|
||||||
|
MinEquation,
|
||||||
|
MirroredRepeatWrapping,
|
||||||
|
MixOperation,
|
||||||
|
MultiplyBlending,
|
||||||
|
MultiplyOperation,
|
||||||
|
NearestFilter,
|
||||||
|
NearestMipMapLinearFilter,
|
||||||
|
NearestMipMapNearestFilter,
|
||||||
|
NearestMipmapLinearFilter,
|
||||||
|
NearestMipmapNearestFilter,
|
||||||
|
NeutralToneMapping,
|
||||||
|
NeverCompare,
|
||||||
|
NeverDepth,
|
||||||
|
NeverStencilFunc,
|
||||||
|
NoBlending,
|
||||||
|
NoColorSpace,
|
||||||
|
NoToneMapping,
|
||||||
|
NormalAnimationBlendMode,
|
||||||
|
NormalBlending,
|
||||||
|
NotEqualCompare,
|
||||||
|
NotEqualDepth,
|
||||||
|
NotEqualStencilFunc,
|
||||||
|
NumberKeyframeTrack,
|
||||||
|
Object3D,
|
||||||
|
ObjectLoader,
|
||||||
|
ObjectSpaceNormalMap,
|
||||||
|
OctahedronGeometry,
|
||||||
|
OneFactor,
|
||||||
|
OneMinusConstantAlphaFactor,
|
||||||
|
OneMinusConstantColorFactor,
|
||||||
|
OneMinusDstAlphaFactor,
|
||||||
|
OneMinusDstColorFactor,
|
||||||
|
OneMinusSrcAlphaFactor,
|
||||||
|
OneMinusSrcColorFactor,
|
||||||
|
OrthographicCamera,
|
||||||
|
P3Primaries,
|
||||||
|
PCFShadowMap,
|
||||||
|
PCFSoftShadowMap,
|
||||||
|
PMREMGenerator,
|
||||||
|
Path,
|
||||||
|
PerspectiveCamera,
|
||||||
|
Plane,
|
||||||
|
PlaneGeometry,
|
||||||
|
PlaneHelper,
|
||||||
|
PointLight,
|
||||||
|
PointLightHelper,
|
||||||
|
Points,
|
||||||
|
PointsMaterial,
|
||||||
|
PolarGridHelper,
|
||||||
|
PolyhedronGeometry,
|
||||||
|
PositionalAudio,
|
||||||
|
PropertyBinding,
|
||||||
|
PropertyMixer,
|
||||||
|
QuadraticBezierCurve,
|
||||||
|
QuadraticBezierCurve3,
|
||||||
|
Quaternion,
|
||||||
|
QuaternionKeyframeTrack,
|
||||||
|
QuaternionLinearInterpolant,
|
||||||
|
RED_GREEN_RGTC2_Format,
|
||||||
|
RED_RGTC1_Format,
|
||||||
|
REVISION,
|
||||||
|
RGBADepthPacking,
|
||||||
|
RGBAFormat,
|
||||||
|
RGBAIntegerFormat,
|
||||||
|
RGBA_ASTC_10x10_Format,
|
||||||
|
RGBA_ASTC_10x5_Format,
|
||||||
|
RGBA_ASTC_10x6_Format,
|
||||||
|
RGBA_ASTC_10x8_Format,
|
||||||
|
RGBA_ASTC_12x10_Format,
|
||||||
|
RGBA_ASTC_12x12_Format,
|
||||||
|
RGBA_ASTC_4x4_Format,
|
||||||
|
RGBA_ASTC_5x4_Format,
|
||||||
|
RGBA_ASTC_5x5_Format,
|
||||||
|
RGBA_ASTC_6x5_Format,
|
||||||
|
RGBA_ASTC_6x6_Format,
|
||||||
|
RGBA_ASTC_8x5_Format,
|
||||||
|
RGBA_ASTC_8x6_Format,
|
||||||
|
RGBA_ASTC_8x8_Format,
|
||||||
|
RGBA_BPTC_Format,
|
||||||
|
RGBA_ETC2_EAC_Format,
|
||||||
|
RGBA_PVRTC_2BPPV1_Format,
|
||||||
|
RGBA_PVRTC_4BPPV1_Format,
|
||||||
|
RGBA_S3TC_DXT1_Format,
|
||||||
|
RGBA_S3TC_DXT3_Format,
|
||||||
|
RGBA_S3TC_DXT5_Format,
|
||||||
|
RGBDepthPacking,
|
||||||
|
RGBFormat,
|
||||||
|
RGBIntegerFormat,
|
||||||
|
RGB_BPTC_SIGNED_Format,
|
||||||
|
RGB_BPTC_UNSIGNED_Format,
|
||||||
|
RGB_ETC1_Format,
|
||||||
|
RGB_ETC2_Format,
|
||||||
|
RGB_PVRTC_2BPPV1_Format,
|
||||||
|
RGB_PVRTC_4BPPV1_Format,
|
||||||
|
RGB_S3TC_DXT1_Format,
|
||||||
|
RGDepthPacking,
|
||||||
|
RGFormat,
|
||||||
|
RGIntegerFormat,
|
||||||
|
RawShaderMaterial,
|
||||||
|
Ray,
|
||||||
|
Raycaster,
|
||||||
|
Rec709Primaries,
|
||||||
|
RectAreaLight,
|
||||||
|
RedFormat,
|
||||||
|
RedIntegerFormat,
|
||||||
|
ReinhardToneMapping,
|
||||||
|
RenderTarget,
|
||||||
|
RepeatWrapping,
|
||||||
|
ReplaceStencilOp,
|
||||||
|
ReverseSubtractEquation,
|
||||||
|
RingGeometry,
|
||||||
|
SIGNED_RED_GREEN_RGTC2_Format,
|
||||||
|
SIGNED_RED_RGTC1_Format,
|
||||||
|
SRGBColorSpace,
|
||||||
|
SRGBTransfer,
|
||||||
|
Scene,
|
||||||
|
ShaderChunk,
|
||||||
|
ShaderLib,
|
||||||
|
ShaderMaterial,
|
||||||
|
ShadowMaterial,
|
||||||
|
Shape,
|
||||||
|
ShapeGeometry,
|
||||||
|
ShapePath,
|
||||||
|
ShapeUtils,
|
||||||
|
ShortType,
|
||||||
|
Skeleton,
|
||||||
|
SkeletonHelper,
|
||||||
|
SkinnedMesh,
|
||||||
|
Source,
|
||||||
|
Sphere,
|
||||||
|
SphereGeometry,
|
||||||
|
Spherical,
|
||||||
|
SphericalHarmonics3,
|
||||||
|
SplineCurve,
|
||||||
|
SpotLight,
|
||||||
|
SpotLightHelper,
|
||||||
|
Sprite,
|
||||||
|
SpriteMaterial,
|
||||||
|
SrcAlphaFactor,
|
||||||
|
SrcAlphaSaturateFactor,
|
||||||
|
SrcColorFactor,
|
||||||
|
StaticCopyUsage,
|
||||||
|
StaticDrawUsage,
|
||||||
|
StaticReadUsage,
|
||||||
|
StereoCamera,
|
||||||
|
StreamCopyUsage,
|
||||||
|
StreamDrawUsage,
|
||||||
|
StreamReadUsage,
|
||||||
|
StringKeyframeTrack,
|
||||||
|
SubtractEquation,
|
||||||
|
SubtractiveBlending,
|
||||||
|
TOUCH,
|
||||||
|
TangentSpaceNormalMap,
|
||||||
|
TetrahedronGeometry,
|
||||||
|
Texture,
|
||||||
|
TextureLoader,
|
||||||
|
TextureUtils,
|
||||||
|
TorusGeometry,
|
||||||
|
TorusKnotGeometry,
|
||||||
|
Triangle,
|
||||||
|
TriangleFanDrawMode,
|
||||||
|
TriangleStripDrawMode,
|
||||||
|
TrianglesDrawMode,
|
||||||
|
TubeGeometry,
|
||||||
|
UVMapping,
|
||||||
|
Uint16BufferAttribute,
|
||||||
|
Uint32BufferAttribute,
|
||||||
|
Uint8BufferAttribute,
|
||||||
|
Uint8ClampedBufferAttribute,
|
||||||
|
Uniform,
|
||||||
|
UniformsGroup,
|
||||||
|
UniformsLib,
|
||||||
|
UniformsUtils,
|
||||||
|
UnsignedByteType,
|
||||||
|
UnsignedInt248Type,
|
||||||
|
UnsignedInt5999Type,
|
||||||
|
UnsignedIntType,
|
||||||
|
UnsignedShort4444Type,
|
||||||
|
UnsignedShort5551Type,
|
||||||
|
UnsignedShortType,
|
||||||
|
VSMShadowMap,
|
||||||
|
Vector2,
|
||||||
|
Vector3,
|
||||||
|
Vector4,
|
||||||
|
VectorKeyframeTrack,
|
||||||
|
VideoTexture,
|
||||||
|
WebGL3DRenderTarget,
|
||||||
|
WebGLArrayRenderTarget,
|
||||||
|
WebGLCoordinateSystem,
|
||||||
|
WebGLCubeRenderTarget,
|
||||||
|
WebGLMultipleRenderTargets,
|
||||||
|
WebGLRenderTarget,
|
||||||
|
WebGLRenderer,
|
||||||
|
WebGLUtils,
|
||||||
|
WebGPUCoordinateSystem,
|
||||||
|
WireframeGeometry,
|
||||||
|
WrapAroundEnding,
|
||||||
|
ZeroCurvatureEnding,
|
||||||
|
ZeroFactor,
|
||||||
|
ZeroSlopeEnding,
|
||||||
|
ZeroStencilOp,
|
||||||
|
createCanvasElement
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=three.js.map
|
7
site/node_modules/.vite/deps/three.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/three.js.map
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sourcesContent": [],
|
||||||
|
"mappings": "",
|
||||||
|
"names": []
|
||||||
|
}
|
2614
site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js
generated
vendored
Normal file
2614
site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/three_addons_loaders_GLTFLoader__js.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
791
site/node_modules/.vite/deps/three_examples_jsm_controls_OrbitControls__js.js
generated
vendored
Normal file
791
site/node_modules/.vite/deps/three_examples_jsm_controls_OrbitControls__js.js
generated
vendored
Normal file
@ -0,0 +1,791 @@
|
|||||||
|
import {
|
||||||
|
EventDispatcher,
|
||||||
|
MOUSE,
|
||||||
|
MathUtils,
|
||||||
|
Plane,
|
||||||
|
Quaternion,
|
||||||
|
Ray,
|
||||||
|
Spherical,
|
||||||
|
TOUCH,
|
||||||
|
Vector2,
|
||||||
|
Vector3
|
||||||
|
} from "./chunk-IS2ZBFBB.js";
|
||||||
|
import "./chunk-BUSYA2B4.js";
|
||||||
|
|
||||||
|
// node_modules/three/examples/jsm/controls/OrbitControls.js
|
||||||
|
var _changeEvent = { type: "change" };
|
||||||
|
var _startEvent = { type: "start" };
|
||||||
|
var _endEvent = { type: "end" };
|
||||||
|
var _ray = new Ray();
|
||||||
|
var _plane = new Plane();
|
||||||
|
var TILT_LIMIT = Math.cos(70 * MathUtils.DEG2RAD);
|
||||||
|
var OrbitControls = class extends EventDispatcher {
|
||||||
|
constructor(object, domElement) {
|
||||||
|
super();
|
||||||
|
this.object = object;
|
||||||
|
this.domElement = domElement;
|
||||||
|
this.domElement.style.touchAction = "none";
|
||||||
|
this.enabled = true;
|
||||||
|
this.target = new Vector3();
|
||||||
|
this.cursor = new Vector3();
|
||||||
|
this.minDistance = 0;
|
||||||
|
this.maxDistance = Infinity;
|
||||||
|
this.minZoom = 0;
|
||||||
|
this.maxZoom = Infinity;
|
||||||
|
this.minTargetRadius = 0;
|
||||||
|
this.maxTargetRadius = Infinity;
|
||||||
|
this.minPolarAngle = 0;
|
||||||
|
this.maxPolarAngle = Math.PI;
|
||||||
|
this.minAzimuthAngle = -Infinity;
|
||||||
|
this.maxAzimuthAngle = Infinity;
|
||||||
|
this.enableDamping = false;
|
||||||
|
this.dampingFactor = 0.05;
|
||||||
|
this.enableZoom = true;
|
||||||
|
this.zoomSpeed = 1;
|
||||||
|
this.enableRotate = true;
|
||||||
|
this.rotateSpeed = 1;
|
||||||
|
this.enablePan = true;
|
||||||
|
this.panSpeed = 1;
|
||||||
|
this.screenSpacePanning = true;
|
||||||
|
this.keyPanSpeed = 7;
|
||||||
|
this.zoomToCursor = false;
|
||||||
|
this.autoRotate = false;
|
||||||
|
this.autoRotateSpeed = 2;
|
||||||
|
this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" };
|
||||||
|
this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };
|
||||||
|
this.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };
|
||||||
|
this.target0 = this.target.clone();
|
||||||
|
this.position0 = this.object.position.clone();
|
||||||
|
this.zoom0 = this.object.zoom;
|
||||||
|
this._domElementKeyEvents = null;
|
||||||
|
this.getPolarAngle = function() {
|
||||||
|
return spherical.phi;
|
||||||
|
};
|
||||||
|
this.getAzimuthalAngle = function() {
|
||||||
|
return spherical.theta;
|
||||||
|
};
|
||||||
|
this.getDistance = function() {
|
||||||
|
return this.object.position.distanceTo(this.target);
|
||||||
|
};
|
||||||
|
this.listenToKeyEvents = function(domElement2) {
|
||||||
|
domElement2.addEventListener("keydown", onKeyDown);
|
||||||
|
this._domElementKeyEvents = domElement2;
|
||||||
|
};
|
||||||
|
this.stopListenToKeyEvents = function() {
|
||||||
|
this._domElementKeyEvents.removeEventListener("keydown", onKeyDown);
|
||||||
|
this._domElementKeyEvents = null;
|
||||||
|
};
|
||||||
|
this.saveState = function() {
|
||||||
|
scope.target0.copy(scope.target);
|
||||||
|
scope.position0.copy(scope.object.position);
|
||||||
|
scope.zoom0 = scope.object.zoom;
|
||||||
|
};
|
||||||
|
this.reset = function() {
|
||||||
|
scope.target.copy(scope.target0);
|
||||||
|
scope.object.position.copy(scope.position0);
|
||||||
|
scope.object.zoom = scope.zoom0;
|
||||||
|
scope.object.updateProjectionMatrix();
|
||||||
|
scope.dispatchEvent(_changeEvent);
|
||||||
|
scope.update();
|
||||||
|
state = STATE.NONE;
|
||||||
|
};
|
||||||
|
this.update = function() {
|
||||||
|
const offset = new Vector3();
|
||||||
|
const quat = new Quaternion().setFromUnitVectors(object.up, new Vector3(0, 1, 0));
|
||||||
|
const quatInverse = quat.clone().invert();
|
||||||
|
const lastPosition = new Vector3();
|
||||||
|
const lastQuaternion = new Quaternion();
|
||||||
|
const lastTargetPosition = new Vector3();
|
||||||
|
const twoPI = 2 * Math.PI;
|
||||||
|
return function update(deltaTime = null) {
|
||||||
|
const position = scope.object.position;
|
||||||
|
offset.copy(position).sub(scope.target);
|
||||||
|
offset.applyQuaternion(quat);
|
||||||
|
spherical.setFromVector3(offset);
|
||||||
|
if (scope.autoRotate && state === STATE.NONE) {
|
||||||
|
rotateLeft(getAutoRotationAngle(deltaTime));
|
||||||
|
}
|
||||||
|
if (scope.enableDamping) {
|
||||||
|
spherical.theta += sphericalDelta.theta * scope.dampingFactor;
|
||||||
|
spherical.phi += sphericalDelta.phi * scope.dampingFactor;
|
||||||
|
} else {
|
||||||
|
spherical.theta += sphericalDelta.theta;
|
||||||
|
spherical.phi += sphericalDelta.phi;
|
||||||
|
}
|
||||||
|
let min = scope.minAzimuthAngle;
|
||||||
|
let max = scope.maxAzimuthAngle;
|
||||||
|
if (isFinite(min) && isFinite(max)) {
|
||||||
|
if (min < -Math.PI) min += twoPI;
|
||||||
|
else if (min > Math.PI) min -= twoPI;
|
||||||
|
if (max < -Math.PI) max += twoPI;
|
||||||
|
else if (max > Math.PI) max -= twoPI;
|
||||||
|
if (min <= max) {
|
||||||
|
spherical.theta = Math.max(min, Math.min(max, spherical.theta));
|
||||||
|
} else {
|
||||||
|
spherical.theta = spherical.theta > (min + max) / 2 ? Math.max(min, spherical.theta) : Math.min(max, spherical.theta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi));
|
||||||
|
spherical.makeSafe();
|
||||||
|
if (scope.enableDamping === true) {
|
||||||
|
scope.target.addScaledVector(panOffset, scope.dampingFactor);
|
||||||
|
} else {
|
||||||
|
scope.target.add(panOffset);
|
||||||
|
}
|
||||||
|
scope.target.sub(scope.cursor);
|
||||||
|
scope.target.clampLength(scope.minTargetRadius, scope.maxTargetRadius);
|
||||||
|
scope.target.add(scope.cursor);
|
||||||
|
let zoomChanged = false;
|
||||||
|
if (scope.zoomToCursor && performCursorZoom || scope.object.isOrthographicCamera) {
|
||||||
|
spherical.radius = clampDistance(spherical.radius);
|
||||||
|
} else {
|
||||||
|
const prevRadius = spherical.radius;
|
||||||
|
spherical.radius = clampDistance(spherical.radius * scale);
|
||||||
|
zoomChanged = prevRadius != spherical.radius;
|
||||||
|
}
|
||||||
|
offset.setFromSpherical(spherical);
|
||||||
|
offset.applyQuaternion(quatInverse);
|
||||||
|
position.copy(scope.target).add(offset);
|
||||||
|
scope.object.lookAt(scope.target);
|
||||||
|
if (scope.enableDamping === true) {
|
||||||
|
sphericalDelta.theta *= 1 - scope.dampingFactor;
|
||||||
|
sphericalDelta.phi *= 1 - scope.dampingFactor;
|
||||||
|
panOffset.multiplyScalar(1 - scope.dampingFactor);
|
||||||
|
} else {
|
||||||
|
sphericalDelta.set(0, 0, 0);
|
||||||
|
panOffset.set(0, 0, 0);
|
||||||
|
}
|
||||||
|
if (scope.zoomToCursor && performCursorZoom) {
|
||||||
|
let newRadius = null;
|
||||||
|
if (scope.object.isPerspectiveCamera) {
|
||||||
|
const prevRadius = offset.length();
|
||||||
|
newRadius = clampDistance(prevRadius * scale);
|
||||||
|
const radiusDelta = prevRadius - newRadius;
|
||||||
|
scope.object.position.addScaledVector(dollyDirection, radiusDelta);
|
||||||
|
scope.object.updateMatrixWorld();
|
||||||
|
zoomChanged = !!radiusDelta;
|
||||||
|
} else if (scope.object.isOrthographicCamera) {
|
||||||
|
const mouseBefore = new Vector3(mouse.x, mouse.y, 0);
|
||||||
|
mouseBefore.unproject(scope.object);
|
||||||
|
const prevZoom = scope.object.zoom;
|
||||||
|
scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / scale));
|
||||||
|
scope.object.updateProjectionMatrix();
|
||||||
|
zoomChanged = prevZoom !== scope.object.zoom;
|
||||||
|
const mouseAfter = new Vector3(mouse.x, mouse.y, 0);
|
||||||
|
mouseAfter.unproject(scope.object);
|
||||||
|
scope.object.position.sub(mouseAfter).add(mouseBefore);
|
||||||
|
scope.object.updateMatrixWorld();
|
||||||
|
newRadius = offset.length();
|
||||||
|
} else {
|
||||||
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.");
|
||||||
|
scope.zoomToCursor = false;
|
||||||
|
}
|
||||||
|
if (newRadius !== null) {
|
||||||
|
if (this.screenSpacePanning) {
|
||||||
|
scope.target.set(0, 0, -1).transformDirection(scope.object.matrix).multiplyScalar(newRadius).add(scope.object.position);
|
||||||
|
} else {
|
||||||
|
_ray.origin.copy(scope.object.position);
|
||||||
|
_ray.direction.set(0, 0, -1).transformDirection(scope.object.matrix);
|
||||||
|
if (Math.abs(scope.object.up.dot(_ray.direction)) < TILT_LIMIT) {
|
||||||
|
object.lookAt(scope.target);
|
||||||
|
} else {
|
||||||
|
_plane.setFromNormalAndCoplanarPoint(scope.object.up, scope.target);
|
||||||
|
_ray.intersectPlane(_plane, scope.target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (scope.object.isOrthographicCamera) {
|
||||||
|
const prevZoom = scope.object.zoom;
|
||||||
|
scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / scale));
|
||||||
|
if (prevZoom !== scope.object.zoom) {
|
||||||
|
scope.object.updateProjectionMatrix();
|
||||||
|
zoomChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scale = 1;
|
||||||
|
performCursorZoom = false;
|
||||||
|
if (zoomChanged || lastPosition.distanceToSquared(scope.object.position) > EPS || 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS || lastTargetPosition.distanceToSquared(scope.target) > EPS) {
|
||||||
|
scope.dispatchEvent(_changeEvent);
|
||||||
|
lastPosition.copy(scope.object.position);
|
||||||
|
lastQuaternion.copy(scope.object.quaternion);
|
||||||
|
lastTargetPosition.copy(scope.target);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
}();
|
||||||
|
this.dispose = function() {
|
||||||
|
scope.domElement.removeEventListener("contextmenu", onContextMenu);
|
||||||
|
scope.domElement.removeEventListener("pointerdown", onPointerDown);
|
||||||
|
scope.domElement.removeEventListener("pointercancel", onPointerUp);
|
||||||
|
scope.domElement.removeEventListener("wheel", onMouseWheel);
|
||||||
|
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
||||||
|
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
||||||
|
const document2 = scope.domElement.getRootNode();
|
||||||
|
document2.removeEventListener("keydown", interceptControlDown, { capture: true });
|
||||||
|
if (scope._domElementKeyEvents !== null) {
|
||||||
|
scope._domElementKeyEvents.removeEventListener("keydown", onKeyDown);
|
||||||
|
scope._domElementKeyEvents = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const scope = this;
|
||||||
|
const STATE = {
|
||||||
|
NONE: -1,
|
||||||
|
ROTATE: 0,
|
||||||
|
DOLLY: 1,
|
||||||
|
PAN: 2,
|
||||||
|
TOUCH_ROTATE: 3,
|
||||||
|
TOUCH_PAN: 4,
|
||||||
|
TOUCH_DOLLY_PAN: 5,
|
||||||
|
TOUCH_DOLLY_ROTATE: 6
|
||||||
|
};
|
||||||
|
let state = STATE.NONE;
|
||||||
|
const EPS = 1e-6;
|
||||||
|
const spherical = new Spherical();
|
||||||
|
const sphericalDelta = new Spherical();
|
||||||
|
let scale = 1;
|
||||||
|
const panOffset = new Vector3();
|
||||||
|
const rotateStart = new Vector2();
|
||||||
|
const rotateEnd = new Vector2();
|
||||||
|
const rotateDelta = new Vector2();
|
||||||
|
const panStart = new Vector2();
|
||||||
|
const panEnd = new Vector2();
|
||||||
|
const panDelta = new Vector2();
|
||||||
|
const dollyStart = new Vector2();
|
||||||
|
const dollyEnd = new Vector2();
|
||||||
|
const dollyDelta = new Vector2();
|
||||||
|
const dollyDirection = new Vector3();
|
||||||
|
const mouse = new Vector2();
|
||||||
|
let performCursorZoom = false;
|
||||||
|
const pointers = [];
|
||||||
|
const pointerPositions = {};
|
||||||
|
let controlActive = false;
|
||||||
|
function getAutoRotationAngle(deltaTime) {
|
||||||
|
if (deltaTime !== null) {
|
||||||
|
return 2 * Math.PI / 60 * scope.autoRotateSpeed * deltaTime;
|
||||||
|
} else {
|
||||||
|
return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function getZoomScale(delta) {
|
||||||
|
const normalizedDelta = Math.abs(delta * 0.01);
|
||||||
|
return Math.pow(0.95, scope.zoomSpeed * normalizedDelta);
|
||||||
|
}
|
||||||
|
function rotateLeft(angle) {
|
||||||
|
sphericalDelta.theta -= angle;
|
||||||
|
}
|
||||||
|
function rotateUp(angle) {
|
||||||
|
sphericalDelta.phi -= angle;
|
||||||
|
}
|
||||||
|
const panLeft = function() {
|
||||||
|
const v = new Vector3();
|
||||||
|
return function panLeft2(distance, objectMatrix) {
|
||||||
|
v.setFromMatrixColumn(objectMatrix, 0);
|
||||||
|
v.multiplyScalar(-distance);
|
||||||
|
panOffset.add(v);
|
||||||
|
};
|
||||||
|
}();
|
||||||
|
const panUp = function() {
|
||||||
|
const v = new Vector3();
|
||||||
|
return function panUp2(distance, objectMatrix) {
|
||||||
|
if (scope.screenSpacePanning === true) {
|
||||||
|
v.setFromMatrixColumn(objectMatrix, 1);
|
||||||
|
} else {
|
||||||
|
v.setFromMatrixColumn(objectMatrix, 0);
|
||||||
|
v.crossVectors(scope.object.up, v);
|
||||||
|
}
|
||||||
|
v.multiplyScalar(distance);
|
||||||
|
panOffset.add(v);
|
||||||
|
};
|
||||||
|
}();
|
||||||
|
const pan = function() {
|
||||||
|
const offset = new Vector3();
|
||||||
|
return function pan2(deltaX, deltaY) {
|
||||||
|
const element = scope.domElement;
|
||||||
|
if (scope.object.isPerspectiveCamera) {
|
||||||
|
const position = scope.object.position;
|
||||||
|
offset.copy(position).sub(scope.target);
|
||||||
|
let targetDistance = offset.length();
|
||||||
|
targetDistance *= Math.tan(scope.object.fov / 2 * Math.PI / 180);
|
||||||
|
panLeft(2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix);
|
||||||
|
panUp(2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix);
|
||||||
|
} else if (scope.object.isOrthographicCamera) {
|
||||||
|
panLeft(deltaX * (scope.object.right - scope.object.left) / scope.object.zoom / element.clientWidth, scope.object.matrix);
|
||||||
|
panUp(deltaY * (scope.object.top - scope.object.bottom) / scope.object.zoom / element.clientHeight, scope.object.matrix);
|
||||||
|
} else {
|
||||||
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.");
|
||||||
|
scope.enablePan = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}();
|
||||||
|
function dollyOut(dollyScale) {
|
||||||
|
if (scope.object.isPerspectiveCamera || scope.object.isOrthographicCamera) {
|
||||||
|
scale /= dollyScale;
|
||||||
|
} else {
|
||||||
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.");
|
||||||
|
scope.enableZoom = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function dollyIn(dollyScale) {
|
||||||
|
if (scope.object.isPerspectiveCamera || scope.object.isOrthographicCamera) {
|
||||||
|
scale *= dollyScale;
|
||||||
|
} else {
|
||||||
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.");
|
||||||
|
scope.enableZoom = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function updateZoomParameters(x, y) {
|
||||||
|
if (!scope.zoomToCursor) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
performCursorZoom = true;
|
||||||
|
const rect = scope.domElement.getBoundingClientRect();
|
||||||
|
const dx = x - rect.left;
|
||||||
|
const dy = y - rect.top;
|
||||||
|
const w = rect.width;
|
||||||
|
const h = rect.height;
|
||||||
|
mouse.x = dx / w * 2 - 1;
|
||||||
|
mouse.y = -(dy / h) * 2 + 1;
|
||||||
|
dollyDirection.set(mouse.x, mouse.y, 1).unproject(scope.object).sub(scope.object.position).normalize();
|
||||||
|
}
|
||||||
|
function clampDistance(dist) {
|
||||||
|
return Math.max(scope.minDistance, Math.min(scope.maxDistance, dist));
|
||||||
|
}
|
||||||
|
function handleMouseDownRotate(event) {
|
||||||
|
rotateStart.set(event.clientX, event.clientY);
|
||||||
|
}
|
||||||
|
function handleMouseDownDolly(event) {
|
||||||
|
updateZoomParameters(event.clientX, event.clientX);
|
||||||
|
dollyStart.set(event.clientX, event.clientY);
|
||||||
|
}
|
||||||
|
function handleMouseDownPan(event) {
|
||||||
|
panStart.set(event.clientX, event.clientY);
|
||||||
|
}
|
||||||
|
function handleMouseMoveRotate(event) {
|
||||||
|
rotateEnd.set(event.clientX, event.clientY);
|
||||||
|
rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
|
||||||
|
const element = scope.domElement;
|
||||||
|
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight);
|
||||||
|
rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
|
||||||
|
rotateStart.copy(rotateEnd);
|
||||||
|
scope.update();
|
||||||
|
}
|
||||||
|
function handleMouseMoveDolly(event) {
|
||||||
|
dollyEnd.set(event.clientX, event.clientY);
|
||||||
|
dollyDelta.subVectors(dollyEnd, dollyStart);
|
||||||
|
if (dollyDelta.y > 0) {
|
||||||
|
dollyOut(getZoomScale(dollyDelta.y));
|
||||||
|
} else if (dollyDelta.y < 0) {
|
||||||
|
dollyIn(getZoomScale(dollyDelta.y));
|
||||||
|
}
|
||||||
|
dollyStart.copy(dollyEnd);
|
||||||
|
scope.update();
|
||||||
|
}
|
||||||
|
function handleMouseMovePan(event) {
|
||||||
|
panEnd.set(event.clientX, event.clientY);
|
||||||
|
panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
|
||||||
|
pan(panDelta.x, panDelta.y);
|
||||||
|
panStart.copy(panEnd);
|
||||||
|
scope.update();
|
||||||
|
}
|
||||||
|
function handleMouseWheel(event) {
|
||||||
|
updateZoomParameters(event.clientX, event.clientY);
|
||||||
|
if (event.deltaY < 0) {
|
||||||
|
dollyIn(getZoomScale(event.deltaY));
|
||||||
|
} else if (event.deltaY > 0) {
|
||||||
|
dollyOut(getZoomScale(event.deltaY));
|
||||||
|
}
|
||||||
|
scope.update();
|
||||||
|
}
|
||||||
|
function handleKeyDown(event) {
|
||||||
|
let needsUpdate = false;
|
||||||
|
switch (event.code) {
|
||||||
|
case scope.keys.UP:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
rotateUp(2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight);
|
||||||
|
} else {
|
||||||
|
pan(0, scope.keyPanSpeed);
|
||||||
|
}
|
||||||
|
needsUpdate = true;
|
||||||
|
break;
|
||||||
|
case scope.keys.BOTTOM:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
rotateUp(-2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight);
|
||||||
|
} else {
|
||||||
|
pan(0, -scope.keyPanSpeed);
|
||||||
|
}
|
||||||
|
needsUpdate = true;
|
||||||
|
break;
|
||||||
|
case scope.keys.LEFT:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
rotateLeft(2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight);
|
||||||
|
} else {
|
||||||
|
pan(scope.keyPanSpeed, 0);
|
||||||
|
}
|
||||||
|
needsUpdate = true;
|
||||||
|
break;
|
||||||
|
case scope.keys.RIGHT:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
rotateLeft(-2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight);
|
||||||
|
} else {
|
||||||
|
pan(-scope.keyPanSpeed, 0);
|
||||||
|
}
|
||||||
|
needsUpdate = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (needsUpdate) {
|
||||||
|
event.preventDefault();
|
||||||
|
scope.update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleTouchStartRotate(event) {
|
||||||
|
if (pointers.length === 1) {
|
||||||
|
rotateStart.set(event.pageX, event.pageY);
|
||||||
|
} else {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const x = 0.5 * (event.pageX + position.x);
|
||||||
|
const y = 0.5 * (event.pageY + position.y);
|
||||||
|
rotateStart.set(x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleTouchStartPan(event) {
|
||||||
|
if (pointers.length === 1) {
|
||||||
|
panStart.set(event.pageX, event.pageY);
|
||||||
|
} else {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const x = 0.5 * (event.pageX + position.x);
|
||||||
|
const y = 0.5 * (event.pageY + position.y);
|
||||||
|
panStart.set(x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleTouchStartDolly(event) {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const dx = event.pageX - position.x;
|
||||||
|
const dy = event.pageY - position.y;
|
||||||
|
const distance = Math.sqrt(dx * dx + dy * dy);
|
||||||
|
dollyStart.set(0, distance);
|
||||||
|
}
|
||||||
|
function handleTouchStartDollyPan(event) {
|
||||||
|
if (scope.enableZoom) handleTouchStartDolly(event);
|
||||||
|
if (scope.enablePan) handleTouchStartPan(event);
|
||||||
|
}
|
||||||
|
function handleTouchStartDollyRotate(event) {
|
||||||
|
if (scope.enableZoom) handleTouchStartDolly(event);
|
||||||
|
if (scope.enableRotate) handleTouchStartRotate(event);
|
||||||
|
}
|
||||||
|
function handleTouchMoveRotate(event) {
|
||||||
|
if (pointers.length == 1) {
|
||||||
|
rotateEnd.set(event.pageX, event.pageY);
|
||||||
|
} else {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const x = 0.5 * (event.pageX + position.x);
|
||||||
|
const y = 0.5 * (event.pageY + position.y);
|
||||||
|
rotateEnd.set(x, y);
|
||||||
|
}
|
||||||
|
rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
|
||||||
|
const element = scope.domElement;
|
||||||
|
rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight);
|
||||||
|
rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
|
||||||
|
rotateStart.copy(rotateEnd);
|
||||||
|
}
|
||||||
|
function handleTouchMovePan(event) {
|
||||||
|
if (pointers.length === 1) {
|
||||||
|
panEnd.set(event.pageX, event.pageY);
|
||||||
|
} else {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const x = 0.5 * (event.pageX + position.x);
|
||||||
|
const y = 0.5 * (event.pageY + position.y);
|
||||||
|
panEnd.set(x, y);
|
||||||
|
}
|
||||||
|
panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
|
||||||
|
pan(panDelta.x, panDelta.y);
|
||||||
|
panStart.copy(panEnd);
|
||||||
|
}
|
||||||
|
function handleTouchMoveDolly(event) {
|
||||||
|
const position = getSecondPointerPosition(event);
|
||||||
|
const dx = event.pageX - position.x;
|
||||||
|
const dy = event.pageY - position.y;
|
||||||
|
const distance = Math.sqrt(dx * dx + dy * dy);
|
||||||
|
dollyEnd.set(0, distance);
|
||||||
|
dollyDelta.set(0, Math.pow(dollyEnd.y / dollyStart.y, scope.zoomSpeed));
|
||||||
|
dollyOut(dollyDelta.y);
|
||||||
|
dollyStart.copy(dollyEnd);
|
||||||
|
const centerX = (event.pageX + position.x) * 0.5;
|
||||||
|
const centerY = (event.pageY + position.y) * 0.5;
|
||||||
|
updateZoomParameters(centerX, centerY);
|
||||||
|
}
|
||||||
|
function handleTouchMoveDollyPan(event) {
|
||||||
|
if (scope.enableZoom) handleTouchMoveDolly(event);
|
||||||
|
if (scope.enablePan) handleTouchMovePan(event);
|
||||||
|
}
|
||||||
|
function handleTouchMoveDollyRotate(event) {
|
||||||
|
if (scope.enableZoom) handleTouchMoveDolly(event);
|
||||||
|
if (scope.enableRotate) handleTouchMoveRotate(event);
|
||||||
|
}
|
||||||
|
function onPointerDown(event) {
|
||||||
|
if (scope.enabled === false) return;
|
||||||
|
if (pointers.length === 0) {
|
||||||
|
scope.domElement.setPointerCapture(event.pointerId);
|
||||||
|
scope.domElement.addEventListener("pointermove", onPointerMove);
|
||||||
|
scope.domElement.addEventListener("pointerup", onPointerUp);
|
||||||
|
}
|
||||||
|
if (isTrackingPointer(event)) return;
|
||||||
|
addPointer(event);
|
||||||
|
if (event.pointerType === "touch") {
|
||||||
|
onTouchStart(event);
|
||||||
|
} else {
|
||||||
|
onMouseDown(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onPointerMove(event) {
|
||||||
|
if (scope.enabled === false) return;
|
||||||
|
if (event.pointerType === "touch") {
|
||||||
|
onTouchMove(event);
|
||||||
|
} else {
|
||||||
|
onMouseMove(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onPointerUp(event) {
|
||||||
|
removePointer(event);
|
||||||
|
switch (pointers.length) {
|
||||||
|
case 0:
|
||||||
|
scope.domElement.releasePointerCapture(event.pointerId);
|
||||||
|
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
||||||
|
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
||||||
|
scope.dispatchEvent(_endEvent);
|
||||||
|
state = STATE.NONE;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
const pointerId = pointers[0];
|
||||||
|
const position = pointerPositions[pointerId];
|
||||||
|
onTouchStart({ pointerId, pageX: position.x, pageY: position.y });
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onMouseDown(event) {
|
||||||
|
let mouseAction;
|
||||||
|
switch (event.button) {
|
||||||
|
case 0:
|
||||||
|
mouseAction = scope.mouseButtons.LEFT;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
mouseAction = scope.mouseButtons.MIDDLE;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
mouseAction = scope.mouseButtons.RIGHT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mouseAction = -1;
|
||||||
|
}
|
||||||
|
switch (mouseAction) {
|
||||||
|
case MOUSE.DOLLY:
|
||||||
|
if (scope.enableZoom === false) return;
|
||||||
|
handleMouseDownDolly(event);
|
||||||
|
state = STATE.DOLLY;
|
||||||
|
break;
|
||||||
|
case MOUSE.ROTATE:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
if (scope.enablePan === false) return;
|
||||||
|
handleMouseDownPan(event);
|
||||||
|
state = STATE.PAN;
|
||||||
|
} else {
|
||||||
|
if (scope.enableRotate === false) return;
|
||||||
|
handleMouseDownRotate(event);
|
||||||
|
state = STATE.ROTATE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MOUSE.PAN:
|
||||||
|
if (event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
|
if (scope.enableRotate === false) return;
|
||||||
|
handleMouseDownRotate(event);
|
||||||
|
state = STATE.ROTATE;
|
||||||
|
} else {
|
||||||
|
if (scope.enablePan === false) return;
|
||||||
|
handleMouseDownPan(event);
|
||||||
|
state = STATE.PAN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state = STATE.NONE;
|
||||||
|
}
|
||||||
|
if (state !== STATE.NONE) {
|
||||||
|
scope.dispatchEvent(_startEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onMouseMove(event) {
|
||||||
|
switch (state) {
|
||||||
|
case STATE.ROTATE:
|
||||||
|
if (scope.enableRotate === false) return;
|
||||||
|
handleMouseMoveRotate(event);
|
||||||
|
break;
|
||||||
|
case STATE.DOLLY:
|
||||||
|
if (scope.enableZoom === false) return;
|
||||||
|
handleMouseMoveDolly(event);
|
||||||
|
break;
|
||||||
|
case STATE.PAN:
|
||||||
|
if (scope.enablePan === false) return;
|
||||||
|
handleMouseMovePan(event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onMouseWheel(event) {
|
||||||
|
if (scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE) return;
|
||||||
|
event.preventDefault();
|
||||||
|
scope.dispatchEvent(_startEvent);
|
||||||
|
handleMouseWheel(customWheelEvent(event));
|
||||||
|
scope.dispatchEvent(_endEvent);
|
||||||
|
}
|
||||||
|
function customWheelEvent(event) {
|
||||||
|
const mode = event.deltaMode;
|
||||||
|
const newEvent = {
|
||||||
|
clientX: event.clientX,
|
||||||
|
clientY: event.clientY,
|
||||||
|
deltaY: event.deltaY
|
||||||
|
};
|
||||||
|
switch (mode) {
|
||||||
|
case 1:
|
||||||
|
newEvent.deltaY *= 16;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
newEvent.deltaY *= 100;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (event.ctrlKey && !controlActive) {
|
||||||
|
newEvent.deltaY *= 10;
|
||||||
|
}
|
||||||
|
return newEvent;
|
||||||
|
}
|
||||||
|
function interceptControlDown(event) {
|
||||||
|
if (event.key === "Control") {
|
||||||
|
controlActive = true;
|
||||||
|
const document2 = scope.domElement.getRootNode();
|
||||||
|
document2.addEventListener("keyup", interceptControlUp, { passive: true, capture: true });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function interceptControlUp(event) {
|
||||||
|
if (event.key === "Control") {
|
||||||
|
controlActive = false;
|
||||||
|
const document2 = scope.domElement.getRootNode();
|
||||||
|
document2.removeEventListener("keyup", interceptControlUp, { passive: true, capture: true });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onKeyDown(event) {
|
||||||
|
if (scope.enabled === false || scope.enablePan === false) return;
|
||||||
|
handleKeyDown(event);
|
||||||
|
}
|
||||||
|
function onTouchStart(event) {
|
||||||
|
trackPointer(event);
|
||||||
|
switch (pointers.length) {
|
||||||
|
case 1:
|
||||||
|
switch (scope.touches.ONE) {
|
||||||
|
case TOUCH.ROTATE:
|
||||||
|
if (scope.enableRotate === false) return;
|
||||||
|
handleTouchStartRotate(event);
|
||||||
|
state = STATE.TOUCH_ROTATE;
|
||||||
|
break;
|
||||||
|
case TOUCH.PAN:
|
||||||
|
if (scope.enablePan === false) return;
|
||||||
|
handleTouchStartPan(event);
|
||||||
|
state = STATE.TOUCH_PAN;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state = STATE.NONE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (scope.touches.TWO) {
|
||||||
|
case TOUCH.DOLLY_PAN:
|
||||||
|
if (scope.enableZoom === false && scope.enablePan === false) return;
|
||||||
|
handleTouchStartDollyPan(event);
|
||||||
|
state = STATE.TOUCH_DOLLY_PAN;
|
||||||
|
break;
|
||||||
|
case TOUCH.DOLLY_ROTATE:
|
||||||
|
if (scope.enableZoom === false && scope.enableRotate === false) return;
|
||||||
|
handleTouchStartDollyRotate(event);
|
||||||
|
state = STATE.TOUCH_DOLLY_ROTATE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state = STATE.NONE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state = STATE.NONE;
|
||||||
|
}
|
||||||
|
if (state !== STATE.NONE) {
|
||||||
|
scope.dispatchEvent(_startEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onTouchMove(event) {
|
||||||
|
trackPointer(event);
|
||||||
|
switch (state) {
|
||||||
|
case STATE.TOUCH_ROTATE:
|
||||||
|
if (scope.enableRotate === false) return;
|
||||||
|
handleTouchMoveRotate(event);
|
||||||
|
scope.update();
|
||||||
|
break;
|
||||||
|
case STATE.TOUCH_PAN:
|
||||||
|
if (scope.enablePan === false) return;
|
||||||
|
handleTouchMovePan(event);
|
||||||
|
scope.update();
|
||||||
|
break;
|
||||||
|
case STATE.TOUCH_DOLLY_PAN:
|
||||||
|
if (scope.enableZoom === false && scope.enablePan === false) return;
|
||||||
|
handleTouchMoveDollyPan(event);
|
||||||
|
scope.update();
|
||||||
|
break;
|
||||||
|
case STATE.TOUCH_DOLLY_ROTATE:
|
||||||
|
if (scope.enableZoom === false && scope.enableRotate === false) return;
|
||||||
|
handleTouchMoveDollyRotate(event);
|
||||||
|
scope.update();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state = STATE.NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onContextMenu(event) {
|
||||||
|
if (scope.enabled === false) return;
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
function addPointer(event) {
|
||||||
|
pointers.push(event.pointerId);
|
||||||
|
}
|
||||||
|
function removePointer(event) {
|
||||||
|
delete pointerPositions[event.pointerId];
|
||||||
|
for (let i = 0; i < pointers.length; i++) {
|
||||||
|
if (pointers[i] == event.pointerId) {
|
||||||
|
pointers.splice(i, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function isTrackingPointer(event) {
|
||||||
|
for (let i = 0; i < pointers.length; i++) {
|
||||||
|
if (pointers[i] == event.pointerId) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function trackPointer(event) {
|
||||||
|
let position = pointerPositions[event.pointerId];
|
||||||
|
if (position === void 0) {
|
||||||
|
position = new Vector2();
|
||||||
|
pointerPositions[event.pointerId] = position;
|
||||||
|
}
|
||||||
|
position.set(event.pageX, event.pageY);
|
||||||
|
}
|
||||||
|
function getSecondPointerPosition(event) {
|
||||||
|
const pointerId = event.pointerId === pointers[0] ? pointers[1] : pointers[0];
|
||||||
|
return pointerPositions[pointerId];
|
||||||
|
}
|
||||||
|
scope.domElement.addEventListener("contextmenu", onContextMenu);
|
||||||
|
scope.domElement.addEventListener("pointerdown", onPointerDown);
|
||||||
|
scope.domElement.addEventListener("pointercancel", onPointerUp);
|
||||||
|
scope.domElement.addEventListener("wheel", onMouseWheel, { passive: false });
|
||||||
|
const document = scope.domElement.getRootNode();
|
||||||
|
document.addEventListener("keydown", interceptControlDown, { passive: true, capture: true });
|
||||||
|
this.update();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export {
|
||||||
|
OrbitControls
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=three_examples_jsm_controls_OrbitControls__js.js.map
|
7
site/node_modules/.vite/deps/three_examples_jsm_controls_OrbitControls__js.js.map
generated
vendored
Normal file
7
site/node_modules/.vite/deps/three_examples_jsm_controls_OrbitControls__js.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3
site/node_modules/.vite/deps_temp_660bb8bb/package.json
generated
vendored
Normal file
3
site/node_modules/.vite/deps_temp_660bb8bb/package.json
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"type": "module"
|
||||||
|
}
|
3
site/node_modules/.vite/deps_temp_fde627c8/package.json
generated
vendored
Normal file
3
site/node_modules/.vite/deps_temp_fde627c8/package.json
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"type": "module"
|
||||||
|
}
|
3
site/node_modules/@esbuild/linux-x64/README.md
generated
vendored
Normal file
3
site/node_modules/@esbuild/linux-x64/README.md
generated
vendored
Normal file
@ -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.
|
BIN
site/node_modules/@esbuild/linux-x64/bin/esbuild
generated
vendored
Executable file
BIN
site/node_modules/@esbuild/linux-x64/bin/esbuild
generated
vendored
Executable file
Binary file not shown.
20
site/node_modules/@esbuild/linux-x64/package.json
generated
vendored
Normal file
20
site/node_modules/@esbuild/linux-x64/package.json
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "@esbuild/linux-x64",
|
||||||
|
"version": "0.21.5",
|
||||||
|
"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": ">=12"
|
||||||
|
},
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
]
|
||||||
|
}
|
3
site/node_modules/@rollup/rollup-linux-x64-gnu/README.md
generated
vendored
Normal file
3
site/node_modules/@rollup/rollup-linux-x64-gnu/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# `@rollup/rollup-linux-x64-gnu`
|
||||||
|
|
||||||
|
This is the **x86_64-unknown-linux-gnu** binary for `rollup`
|
22
site/node_modules/@rollup/rollup-linux-x64-gnu/package.json
generated
vendored
Normal file
22
site/node_modules/@rollup/rollup-linux-x64-gnu/package.json
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "@rollup/rollup-linux-x64-gnu",
|
||||||
|
"version": "4.19.1",
|
||||||
|
"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": "rollup/rollup",
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"main": "./rollup.linux-x64-gnu.node"
|
||||||
|
}
|
BIN
site/node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node
generated
vendored
Normal file
BIN
site/node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node
generated
vendored
Normal file
Binary file not shown.
3
site/node_modules/@rollup/rollup-linux-x64-musl/README.md
generated
vendored
Normal file
3
site/node_modules/@rollup/rollup-linux-x64-musl/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# `@rollup/rollup-linux-x64-musl`
|
||||||
|
|
||||||
|
This is the **x86_64-unknown-linux-musl** binary for `rollup`
|
22
site/node_modules/@rollup/rollup-linux-x64-musl/package.json
generated
vendored
Normal file
22
site/node_modules/@rollup/rollup-linux-x64-musl/package.json
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "@rollup/rollup-linux-x64-musl",
|
||||||
|
"version": "4.19.1",
|
||||||
|
"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": "rollup/rollup",
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"main": "./rollup.linux-x64-musl.node"
|
||||||
|
}
|
BIN
site/node_modules/@rollup/rollup-linux-x64-musl/rollup.linux-x64-musl.node
generated
vendored
Normal file
BIN
site/node_modules/@rollup/rollup-linux-x64-musl/rollup.linux-x64-musl.node
generated
vendored
Normal file
Binary file not shown.
21
site/node_modules/@types/estree/LICENSE
generated
vendored
Normal file
21
site/node_modules/@types/estree/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE
|
15
site/node_modules/@types/estree/README.md
generated
vendored
Normal file
15
site/node_modules/@types/estree/README.md
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Installation
|
||||||
|
> `npm install --save @types/estree`
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
This package contains type definitions for estree (https://github.com/estree/estree).
|
||||||
|
|
||||||
|
# Details
|
||||||
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
|
||||||
|
|
||||||
|
### Additional Details
|
||||||
|
* Last updated: Mon, 06 Nov 2023 22:41:05 GMT
|
||||||
|
* Dependencies: none
|
||||||
|
|
||||||
|
# Credits
|
||||||
|
These definitions were written by [RReverser](https://github.com/RReverser).
|
167
site/node_modules/@types/estree/flow.d.ts
generated
vendored
Normal file
167
site/node_modules/@types/estree/flow.d.ts
generated
vendored
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
declare namespace ESTree {
|
||||||
|
interface FlowTypeAnnotation extends Node {}
|
||||||
|
|
||||||
|
interface FlowBaseTypeAnnotation extends FlowTypeAnnotation {}
|
||||||
|
|
||||||
|
interface FlowLiteralTypeAnnotation extends FlowTypeAnnotation, Literal {}
|
||||||
|
|
||||||
|
interface FlowDeclaration extends Declaration {}
|
||||||
|
|
||||||
|
interface AnyTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
|
||||||
|
interface ArrayTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
elementType: FlowTypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BooleanLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
||||||
|
|
||||||
|
interface BooleanTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
|
||||||
|
interface ClassImplements extends Node {
|
||||||
|
id: Identifier;
|
||||||
|
typeParameters?: TypeParameterInstantiation | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ClassProperty {
|
||||||
|
key: Expression;
|
||||||
|
value?: Expression | null;
|
||||||
|
typeAnnotation?: TypeAnnotation | null;
|
||||||
|
computed: boolean;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeclareClass extends FlowDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
typeParameters?: TypeParameterDeclaration | null;
|
||||||
|
body: ObjectTypeAnnotation;
|
||||||
|
extends: InterfaceExtends[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeclareFunction extends FlowDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeclareModule extends FlowDeclaration {
|
||||||
|
id: Literal | Identifier;
|
||||||
|
body: BlockStatement;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeclareVariable extends FlowDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FunctionTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
params: FunctionTypeParam[];
|
||||||
|
returnType: FlowTypeAnnotation;
|
||||||
|
rest?: FunctionTypeParam | null;
|
||||||
|
typeParameters?: TypeParameterDeclaration | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FunctionTypeParam {
|
||||||
|
name: Identifier;
|
||||||
|
typeAnnotation: FlowTypeAnnotation;
|
||||||
|
optional: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GenericTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
id: Identifier | QualifiedTypeIdentifier;
|
||||||
|
typeParameters?: TypeParameterInstantiation | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface InterfaceExtends extends Node {
|
||||||
|
id: Identifier | QualifiedTypeIdentifier;
|
||||||
|
typeParameters?: TypeParameterInstantiation | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface InterfaceDeclaration extends FlowDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
typeParameters?: TypeParameterDeclaration | null;
|
||||||
|
extends: InterfaceExtends[];
|
||||||
|
body: ObjectTypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IntersectionTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
types: FlowTypeAnnotation[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MixedTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
|
||||||
|
interface NullableTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
typeAnnotation: TypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NumberLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
||||||
|
|
||||||
|
interface NumberTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
|
||||||
|
interface StringLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
||||||
|
|
||||||
|
interface StringTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
|
||||||
|
interface TupleTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
types: FlowTypeAnnotation[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeofTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
argument: FlowTypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeAlias extends FlowDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
typeParameters?: TypeParameterDeclaration | null;
|
||||||
|
right: FlowTypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeAnnotation extends Node {
|
||||||
|
typeAnnotation: FlowTypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeCastExpression extends Expression {
|
||||||
|
expression: Expression;
|
||||||
|
typeAnnotation: TypeAnnotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeParameterDeclaration extends Node {
|
||||||
|
params: Identifier[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TypeParameterInstantiation extends Node {
|
||||||
|
params: FlowTypeAnnotation[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ObjectTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
properties: ObjectTypeProperty[];
|
||||||
|
indexers: ObjectTypeIndexer[];
|
||||||
|
callProperties: ObjectTypeCallProperty[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ObjectTypeCallProperty extends Node {
|
||||||
|
value: FunctionTypeAnnotation;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ObjectTypeIndexer extends Node {
|
||||||
|
id: Identifier;
|
||||||
|
key: FlowTypeAnnotation;
|
||||||
|
value: FlowTypeAnnotation;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ObjectTypeProperty extends Node {
|
||||||
|
key: Expression;
|
||||||
|
value: FlowTypeAnnotation;
|
||||||
|
optional: boolean;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface QualifiedTypeIdentifier extends Node {
|
||||||
|
qualification: Identifier | QualifiedTypeIdentifier;
|
||||||
|
id: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface UnionTypeAnnotation extends FlowTypeAnnotation {
|
||||||
|
types: FlowTypeAnnotation[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface VoidTypeAnnotation extends FlowBaseTypeAnnotation {}
|
||||||
|
}
|
683
site/node_modules/@types/estree/index.d.ts
generated
vendored
Normal file
683
site/node_modules/@types/estree/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,683 @@
|
|||||||
|
// This definition file follows a somewhat unusual format. ESTree allows
|
||||||
|
// runtime type checks based on the `type` parameter. In order to explain this
|
||||||
|
// to typescript we want to use discriminated union types:
|
||||||
|
// https://github.com/Microsoft/TypeScript/pull/9163
|
||||||
|
//
|
||||||
|
// For ESTree this is a bit tricky because the high level interfaces like
|
||||||
|
// Node or Function are pulling double duty. We want to pass common fields down
|
||||||
|
// to the interfaces that extend them (like Identifier or
|
||||||
|
// ArrowFunctionExpression), but you can't extend a type union or enforce
|
||||||
|
// common fields on them. So we've split the high level interfaces into two
|
||||||
|
// types, a base type which passes down inherited fields, and a type union of
|
||||||
|
// all types which extend the base type. Only the type union is exported, and
|
||||||
|
// the union is how other types refer to the collection of inheriting types.
|
||||||
|
//
|
||||||
|
// This makes the definitions file here somewhat more difficult to maintain,
|
||||||
|
// but it has the notable advantage of making ESTree much easier to use as
|
||||||
|
// an end user.
|
||||||
|
|
||||||
|
export interface BaseNodeWithoutComments {
|
||||||
|
// Every leaf interface that extends BaseNode must specify a type property.
|
||||||
|
// The type property should be a string literal. For example, Identifier
|
||||||
|
// has: `type: "Identifier"`
|
||||||
|
type: string;
|
||||||
|
loc?: SourceLocation | null | undefined;
|
||||||
|
range?: [number, number] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BaseNode extends BaseNodeWithoutComments {
|
||||||
|
leadingComments?: Comment[] | undefined;
|
||||||
|
trailingComments?: Comment[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface NodeMap {
|
||||||
|
AssignmentProperty: AssignmentProperty;
|
||||||
|
CatchClause: CatchClause;
|
||||||
|
Class: Class;
|
||||||
|
ClassBody: ClassBody;
|
||||||
|
Expression: Expression;
|
||||||
|
Function: Function;
|
||||||
|
Identifier: Identifier;
|
||||||
|
Literal: Literal;
|
||||||
|
MethodDefinition: MethodDefinition;
|
||||||
|
ModuleDeclaration: ModuleDeclaration;
|
||||||
|
ModuleSpecifier: ModuleSpecifier;
|
||||||
|
Pattern: Pattern;
|
||||||
|
PrivateIdentifier: PrivateIdentifier;
|
||||||
|
Program: Program;
|
||||||
|
Property: Property;
|
||||||
|
PropertyDefinition: PropertyDefinition;
|
||||||
|
SpreadElement: SpreadElement;
|
||||||
|
Statement: Statement;
|
||||||
|
Super: Super;
|
||||||
|
SwitchCase: SwitchCase;
|
||||||
|
TemplateElement: TemplateElement;
|
||||||
|
VariableDeclarator: VariableDeclarator;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Node = NodeMap[keyof NodeMap];
|
||||||
|
|
||||||
|
export interface Comment extends BaseNodeWithoutComments {
|
||||||
|
type: "Line" | "Block";
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SourceLocation {
|
||||||
|
source?: string | null | undefined;
|
||||||
|
start: Position;
|
||||||
|
end: Position;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Position {
|
||||||
|
/** >= 1 */
|
||||||
|
line: number;
|
||||||
|
/** >= 0 */
|
||||||
|
column: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Program extends BaseNode {
|
||||||
|
type: "Program";
|
||||||
|
sourceType: "script" | "module";
|
||||||
|
body: Array<Directive | Statement | ModuleDeclaration>;
|
||||||
|
comments?: Comment[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Directive extends BaseNode {
|
||||||
|
type: "ExpressionStatement";
|
||||||
|
expression: Literal;
|
||||||
|
directive: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BaseFunction extends BaseNode {
|
||||||
|
params: Pattern[];
|
||||||
|
generator?: boolean | undefined;
|
||||||
|
async?: boolean | undefined;
|
||||||
|
// The body is either BlockStatement or Expression because arrow functions
|
||||||
|
// can have a body that's either. FunctionDeclarations and
|
||||||
|
// FunctionExpressions have only BlockStatement bodies.
|
||||||
|
body: BlockStatement | Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Function = FunctionDeclaration | FunctionExpression | ArrowFunctionExpression;
|
||||||
|
|
||||||
|
export type Statement =
|
||||||
|
| ExpressionStatement
|
||||||
|
| BlockStatement
|
||||||
|
| StaticBlock
|
||||||
|
| EmptyStatement
|
||||||
|
| DebuggerStatement
|
||||||
|
| WithStatement
|
||||||
|
| ReturnStatement
|
||||||
|
| LabeledStatement
|
||||||
|
| BreakStatement
|
||||||
|
| ContinueStatement
|
||||||
|
| IfStatement
|
||||||
|
| SwitchStatement
|
||||||
|
| ThrowStatement
|
||||||
|
| TryStatement
|
||||||
|
| WhileStatement
|
||||||
|
| DoWhileStatement
|
||||||
|
| ForStatement
|
||||||
|
| ForInStatement
|
||||||
|
| ForOfStatement
|
||||||
|
| Declaration;
|
||||||
|
|
||||||
|
export interface BaseStatement extends BaseNode {}
|
||||||
|
|
||||||
|
export interface EmptyStatement extends BaseStatement {
|
||||||
|
type: "EmptyStatement";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BlockStatement extends BaseStatement {
|
||||||
|
type: "BlockStatement";
|
||||||
|
body: Statement[];
|
||||||
|
innerComments?: Comment[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StaticBlock extends Omit<BlockStatement, "type"> {
|
||||||
|
type: "StaticBlock";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExpressionStatement extends BaseStatement {
|
||||||
|
type: "ExpressionStatement";
|
||||||
|
expression: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IfStatement extends BaseStatement {
|
||||||
|
type: "IfStatement";
|
||||||
|
test: Expression;
|
||||||
|
consequent: Statement;
|
||||||
|
alternate?: Statement | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LabeledStatement extends BaseStatement {
|
||||||
|
type: "LabeledStatement";
|
||||||
|
label: Identifier;
|
||||||
|
body: Statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BreakStatement extends BaseStatement {
|
||||||
|
type: "BreakStatement";
|
||||||
|
label?: Identifier | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ContinueStatement extends BaseStatement {
|
||||||
|
type: "ContinueStatement";
|
||||||
|
label?: Identifier | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WithStatement extends BaseStatement {
|
||||||
|
type: "WithStatement";
|
||||||
|
object: Expression;
|
||||||
|
body: Statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SwitchStatement extends BaseStatement {
|
||||||
|
type: "SwitchStatement";
|
||||||
|
discriminant: Expression;
|
||||||
|
cases: SwitchCase[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ReturnStatement extends BaseStatement {
|
||||||
|
type: "ReturnStatement";
|
||||||
|
argument?: Expression | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ThrowStatement extends BaseStatement {
|
||||||
|
type: "ThrowStatement";
|
||||||
|
argument: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TryStatement extends BaseStatement {
|
||||||
|
type: "TryStatement";
|
||||||
|
block: BlockStatement;
|
||||||
|
handler?: CatchClause | null | undefined;
|
||||||
|
finalizer?: BlockStatement | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WhileStatement extends BaseStatement {
|
||||||
|
type: "WhileStatement";
|
||||||
|
test: Expression;
|
||||||
|
body: Statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DoWhileStatement extends BaseStatement {
|
||||||
|
type: "DoWhileStatement";
|
||||||
|
body: Statement;
|
||||||
|
test: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ForStatement extends BaseStatement {
|
||||||
|
type: "ForStatement";
|
||||||
|
init?: VariableDeclaration | Expression | null | undefined;
|
||||||
|
test?: Expression | null | undefined;
|
||||||
|
update?: Expression | null | undefined;
|
||||||
|
body: Statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BaseForXStatement extends BaseStatement {
|
||||||
|
left: VariableDeclaration | Pattern;
|
||||||
|
right: Expression;
|
||||||
|
body: Statement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ForInStatement extends BaseForXStatement {
|
||||||
|
type: "ForInStatement";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DebuggerStatement extends BaseStatement {
|
||||||
|
type: "DebuggerStatement";
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration;
|
||||||
|
|
||||||
|
export interface BaseDeclaration extends BaseStatement {}
|
||||||
|
|
||||||
|
export interface MaybeNamedFunctionDeclaration extends BaseFunction, BaseDeclaration {
|
||||||
|
type: "FunctionDeclaration";
|
||||||
|
/** It is null when a function declaration is a part of the `export default function` statement */
|
||||||
|
id: Identifier | null;
|
||||||
|
body: BlockStatement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FunctionDeclaration extends MaybeNamedFunctionDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface VariableDeclaration extends BaseDeclaration {
|
||||||
|
type: "VariableDeclaration";
|
||||||
|
declarations: VariableDeclarator[];
|
||||||
|
kind: "var" | "let" | "const";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface VariableDeclarator extends BaseNode {
|
||||||
|
type: "VariableDeclarator";
|
||||||
|
id: Pattern;
|
||||||
|
init?: Expression | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExpressionMap {
|
||||||
|
ArrayExpression: ArrayExpression;
|
||||||
|
ArrowFunctionExpression: ArrowFunctionExpression;
|
||||||
|
AssignmentExpression: AssignmentExpression;
|
||||||
|
AwaitExpression: AwaitExpression;
|
||||||
|
BinaryExpression: BinaryExpression;
|
||||||
|
CallExpression: CallExpression;
|
||||||
|
ChainExpression: ChainExpression;
|
||||||
|
ClassExpression: ClassExpression;
|
||||||
|
ConditionalExpression: ConditionalExpression;
|
||||||
|
FunctionExpression: FunctionExpression;
|
||||||
|
Identifier: Identifier;
|
||||||
|
ImportExpression: ImportExpression;
|
||||||
|
Literal: Literal;
|
||||||
|
LogicalExpression: LogicalExpression;
|
||||||
|
MemberExpression: MemberExpression;
|
||||||
|
MetaProperty: MetaProperty;
|
||||||
|
NewExpression: NewExpression;
|
||||||
|
ObjectExpression: ObjectExpression;
|
||||||
|
SequenceExpression: SequenceExpression;
|
||||||
|
TaggedTemplateExpression: TaggedTemplateExpression;
|
||||||
|
TemplateLiteral: TemplateLiteral;
|
||||||
|
ThisExpression: ThisExpression;
|
||||||
|
UnaryExpression: UnaryExpression;
|
||||||
|
UpdateExpression: UpdateExpression;
|
||||||
|
YieldExpression: YieldExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Expression = ExpressionMap[keyof ExpressionMap];
|
||||||
|
|
||||||
|
export interface BaseExpression extends BaseNode {}
|
||||||
|
|
||||||
|
export type ChainElement = SimpleCallExpression | MemberExpression;
|
||||||
|
|
||||||
|
export interface ChainExpression extends BaseExpression {
|
||||||
|
type: "ChainExpression";
|
||||||
|
expression: ChainElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ThisExpression extends BaseExpression {
|
||||||
|
type: "ThisExpression";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArrayExpression extends BaseExpression {
|
||||||
|
type: "ArrayExpression";
|
||||||
|
elements: Array<Expression | SpreadElement | null>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ObjectExpression extends BaseExpression {
|
||||||
|
type: "ObjectExpression";
|
||||||
|
properties: Array<Property | SpreadElement>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PrivateIdentifier extends BaseNode {
|
||||||
|
type: "PrivateIdentifier";
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Property extends BaseNode {
|
||||||
|
type: "Property";
|
||||||
|
key: Expression | PrivateIdentifier;
|
||||||
|
value: Expression | Pattern; // Could be an AssignmentProperty
|
||||||
|
kind: "init" | "get" | "set";
|
||||||
|
method: boolean;
|
||||||
|
shorthand: boolean;
|
||||||
|
computed: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PropertyDefinition extends BaseNode {
|
||||||
|
type: "PropertyDefinition";
|
||||||
|
key: Expression | PrivateIdentifier;
|
||||||
|
value?: Expression | null | undefined;
|
||||||
|
computed: boolean;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FunctionExpression extends BaseFunction, BaseExpression {
|
||||||
|
id?: Identifier | null | undefined;
|
||||||
|
type: "FunctionExpression";
|
||||||
|
body: BlockStatement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SequenceExpression extends BaseExpression {
|
||||||
|
type: "SequenceExpression";
|
||||||
|
expressions: Expression[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UnaryExpression extends BaseExpression {
|
||||||
|
type: "UnaryExpression";
|
||||||
|
operator: UnaryOperator;
|
||||||
|
prefix: true;
|
||||||
|
argument: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BinaryExpression extends BaseExpression {
|
||||||
|
type: "BinaryExpression";
|
||||||
|
operator: BinaryOperator;
|
||||||
|
left: Expression;
|
||||||
|
right: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AssignmentExpression extends BaseExpression {
|
||||||
|
type: "AssignmentExpression";
|
||||||
|
operator: AssignmentOperator;
|
||||||
|
left: Pattern | MemberExpression;
|
||||||
|
right: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UpdateExpression extends BaseExpression {
|
||||||
|
type: "UpdateExpression";
|
||||||
|
operator: UpdateOperator;
|
||||||
|
argument: Expression;
|
||||||
|
prefix: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LogicalExpression extends BaseExpression {
|
||||||
|
type: "LogicalExpression";
|
||||||
|
operator: LogicalOperator;
|
||||||
|
left: Expression;
|
||||||
|
right: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ConditionalExpression extends BaseExpression {
|
||||||
|
type: "ConditionalExpression";
|
||||||
|
test: Expression;
|
||||||
|
alternate: Expression;
|
||||||
|
consequent: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BaseCallExpression extends BaseExpression {
|
||||||
|
callee: Expression | Super;
|
||||||
|
arguments: Array<Expression | SpreadElement>;
|
||||||
|
}
|
||||||
|
export type CallExpression = SimpleCallExpression | NewExpression;
|
||||||
|
|
||||||
|
export interface SimpleCallExpression extends BaseCallExpression {
|
||||||
|
type: "CallExpression";
|
||||||
|
optional: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface NewExpression extends BaseCallExpression {
|
||||||
|
type: "NewExpression";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MemberExpression extends BaseExpression, BasePattern {
|
||||||
|
type: "MemberExpression";
|
||||||
|
object: Expression | Super;
|
||||||
|
property: Expression | PrivateIdentifier;
|
||||||
|
computed: boolean;
|
||||||
|
optional: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
|
||||||
|
|
||||||
|
export interface BasePattern extends BaseNode {}
|
||||||
|
|
||||||
|
export interface SwitchCase extends BaseNode {
|
||||||
|
type: "SwitchCase";
|
||||||
|
test?: Expression | null | undefined;
|
||||||
|
consequent: Statement[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CatchClause extends BaseNode {
|
||||||
|
type: "CatchClause";
|
||||||
|
param: Pattern | null;
|
||||||
|
body: BlockStatement;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Identifier extends BaseNode, BaseExpression, BasePattern {
|
||||||
|
type: "Identifier";
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Literal = SimpleLiteral | RegExpLiteral | BigIntLiteral;
|
||||||
|
|
||||||
|
export interface SimpleLiteral extends BaseNode, BaseExpression {
|
||||||
|
type: "Literal";
|
||||||
|
value: string | boolean | number | null;
|
||||||
|
raw?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RegExpLiteral extends BaseNode, BaseExpression {
|
||||||
|
type: "Literal";
|
||||||
|
value?: RegExp | null | undefined;
|
||||||
|
regex: {
|
||||||
|
pattern: string;
|
||||||
|
flags: string;
|
||||||
|
};
|
||||||
|
raw?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BigIntLiteral extends BaseNode, BaseExpression {
|
||||||
|
type: "Literal";
|
||||||
|
value?: bigint | null | undefined;
|
||||||
|
bigint: string;
|
||||||
|
raw?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete";
|
||||||
|
|
||||||
|
export type BinaryOperator =
|
||||||
|
| "=="
|
||||||
|
| "!="
|
||||||
|
| "==="
|
||||||
|
| "!=="
|
||||||
|
| "<"
|
||||||
|
| "<="
|
||||||
|
| ">"
|
||||||
|
| ">="
|
||||||
|
| "<<"
|
||||||
|
| ">>"
|
||||||
|
| ">>>"
|
||||||
|
| "+"
|
||||||
|
| "-"
|
||||||
|
| "*"
|
||||||
|
| "/"
|
||||||
|
| "%"
|
||||||
|
| "**"
|
||||||
|
| "|"
|
||||||
|
| "^"
|
||||||
|
| "&"
|
||||||
|
| "in"
|
||||||
|
| "instanceof";
|
||||||
|
|
||||||
|
export type LogicalOperator = "||" | "&&" | "??";
|
||||||
|
|
||||||
|
export type AssignmentOperator =
|
||||||
|
| "="
|
||||||
|
| "+="
|
||||||
|
| "-="
|
||||||
|
| "*="
|
||||||
|
| "/="
|
||||||
|
| "%="
|
||||||
|
| "**="
|
||||||
|
| "<<="
|
||||||
|
| ">>="
|
||||||
|
| ">>>="
|
||||||
|
| "|="
|
||||||
|
| "^="
|
||||||
|
| "&="
|
||||||
|
| "||="
|
||||||
|
| "&&="
|
||||||
|
| "??=";
|
||||||
|
|
||||||
|
export type UpdateOperator = "++" | "--";
|
||||||
|
|
||||||
|
export interface ForOfStatement extends BaseForXStatement {
|
||||||
|
type: "ForOfStatement";
|
||||||
|
await: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Super extends BaseNode {
|
||||||
|
type: "Super";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SpreadElement extends BaseNode {
|
||||||
|
type: "SpreadElement";
|
||||||
|
argument: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArrowFunctionExpression extends BaseExpression, BaseFunction {
|
||||||
|
type: "ArrowFunctionExpression";
|
||||||
|
expression: boolean;
|
||||||
|
body: BlockStatement | Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface YieldExpression extends BaseExpression {
|
||||||
|
type: "YieldExpression";
|
||||||
|
argument?: Expression | null | undefined;
|
||||||
|
delegate: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TemplateLiteral extends BaseExpression {
|
||||||
|
type: "TemplateLiteral";
|
||||||
|
quasis: TemplateElement[];
|
||||||
|
expressions: Expression[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TaggedTemplateExpression extends BaseExpression {
|
||||||
|
type: "TaggedTemplateExpression";
|
||||||
|
tag: Expression;
|
||||||
|
quasi: TemplateLiteral;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TemplateElement extends BaseNode {
|
||||||
|
type: "TemplateElement";
|
||||||
|
tail: boolean;
|
||||||
|
value: {
|
||||||
|
/** It is null when the template literal is tagged and the text has an invalid escape (e.g. - tag`\unicode and \u{55}`) */
|
||||||
|
cooked?: string | null | undefined;
|
||||||
|
raw: string;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AssignmentProperty extends Property {
|
||||||
|
value: Pattern;
|
||||||
|
kind: "init";
|
||||||
|
method: boolean; // false
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ObjectPattern extends BasePattern {
|
||||||
|
type: "ObjectPattern";
|
||||||
|
properties: Array<AssignmentProperty | RestElement>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArrayPattern extends BasePattern {
|
||||||
|
type: "ArrayPattern";
|
||||||
|
elements: Array<Pattern | null>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RestElement extends BasePattern {
|
||||||
|
type: "RestElement";
|
||||||
|
argument: Pattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AssignmentPattern extends BasePattern {
|
||||||
|
type: "AssignmentPattern";
|
||||||
|
left: Pattern;
|
||||||
|
right: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Class = ClassDeclaration | ClassExpression;
|
||||||
|
export interface BaseClass extends BaseNode {
|
||||||
|
superClass?: Expression | null | undefined;
|
||||||
|
body: ClassBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ClassBody extends BaseNode {
|
||||||
|
type: "ClassBody";
|
||||||
|
body: Array<MethodDefinition | PropertyDefinition | StaticBlock>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MethodDefinition extends BaseNode {
|
||||||
|
type: "MethodDefinition";
|
||||||
|
key: Expression | PrivateIdentifier;
|
||||||
|
value: FunctionExpression;
|
||||||
|
kind: "constructor" | "method" | "get" | "set";
|
||||||
|
computed: boolean;
|
||||||
|
static: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MaybeNamedClassDeclaration extends BaseClass, BaseDeclaration {
|
||||||
|
type: "ClassDeclaration";
|
||||||
|
/** It is null when a class declaration is a part of the `export default class` statement */
|
||||||
|
id: Identifier | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ClassDeclaration extends MaybeNamedClassDeclaration {
|
||||||
|
id: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ClassExpression extends BaseClass, BaseExpression {
|
||||||
|
type: "ClassExpression";
|
||||||
|
id?: Identifier | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MetaProperty extends BaseExpression {
|
||||||
|
type: "MetaProperty";
|
||||||
|
meta: Identifier;
|
||||||
|
property: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ModuleDeclaration =
|
||||||
|
| ImportDeclaration
|
||||||
|
| ExportNamedDeclaration
|
||||||
|
| ExportDefaultDeclaration
|
||||||
|
| ExportAllDeclaration;
|
||||||
|
export interface BaseModuleDeclaration extends BaseNode {}
|
||||||
|
|
||||||
|
export type ModuleSpecifier = ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier;
|
||||||
|
export interface BaseModuleSpecifier extends BaseNode {
|
||||||
|
local: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportDeclaration extends BaseModuleDeclaration {
|
||||||
|
type: "ImportDeclaration";
|
||||||
|
specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>;
|
||||||
|
source: Literal;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportSpecifier extends BaseModuleSpecifier {
|
||||||
|
type: "ImportSpecifier";
|
||||||
|
imported: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportExpression extends BaseExpression {
|
||||||
|
type: "ImportExpression";
|
||||||
|
source: Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportDefaultSpecifier extends BaseModuleSpecifier {
|
||||||
|
type: "ImportDefaultSpecifier";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ImportNamespaceSpecifier extends BaseModuleSpecifier {
|
||||||
|
type: "ImportNamespaceSpecifier";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExportNamedDeclaration extends BaseModuleDeclaration {
|
||||||
|
type: "ExportNamedDeclaration";
|
||||||
|
declaration?: Declaration | null | undefined;
|
||||||
|
specifiers: ExportSpecifier[];
|
||||||
|
source?: Literal | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExportSpecifier extends BaseModuleSpecifier {
|
||||||
|
type: "ExportSpecifier";
|
||||||
|
exported: Identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExportDefaultDeclaration extends BaseModuleDeclaration {
|
||||||
|
type: "ExportDefaultDeclaration";
|
||||||
|
declaration: MaybeNamedFunctionDeclaration | MaybeNamedClassDeclaration | Expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ExportAllDeclaration extends BaseModuleDeclaration {
|
||||||
|
type: "ExportAllDeclaration";
|
||||||
|
exported: Identifier | null;
|
||||||
|
source: Literal;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AwaitExpression extends BaseExpression {
|
||||||
|
type: "AwaitExpression";
|
||||||
|
argument: Expression;
|
||||||
|
}
|
26
site/node_modules/@types/estree/package.json
generated
vendored
Normal file
26
site/node_modules/@types/estree/package.json
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "@types/estree",
|
||||||
|
"version": "1.0.5",
|
||||||
|
"description": "TypeScript definitions for estree",
|
||||||
|
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree",
|
||||||
|
"license": "MIT",
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "RReverser",
|
||||||
|
"githubUsername": "RReverser",
|
||||||
|
"url": "https://github.com/RReverser"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"main": "",
|
||||||
|
"types": "index.d.ts",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||||
|
"directory": "types/estree"
|
||||||
|
},
|
||||||
|
"scripts": {},
|
||||||
|
"dependencies": {},
|
||||||
|
"typesPublisherContentHash": "6f0eeaffe488ce594e73f8df619c677d752a279b51edbc744e4aebb20db4b3a7",
|
||||||
|
"typeScriptVersion": "4.5",
|
||||||
|
"nonNpm": true
|
||||||
|
}
|
4
site/node_modules/commander/.npmignore
generated
vendored
Normal file
4
site/node_modules/commander/.npmignore
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
support
|
||||||
|
test
|
||||||
|
examples
|
||||||
|
*.sock
|
4
site/node_modules/commander/.travis.yml
generated
vendored
Normal file
4
site/node_modules/commander/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- 0.4
|
||||||
|
- 0.6
|
107
site/node_modules/commander/History.md
generated
vendored
Normal file
107
site/node_modules/commander/History.md
generated
vendored
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
0.6.1 / 2012-06-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added: append (yes or no) on confirmation
|
||||||
|
* Added: allow node.js v0.7.x
|
||||||
|
|
||||||
|
0.6.0 / 2012-04-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added `.prompt(obj, callback)` support. Closes #49
|
||||||
|
* Added default support to .choose(). Closes #41
|
||||||
|
* Fixed the choice example
|
||||||
|
|
||||||
|
0.5.1 / 2011-12-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed `password()` for recent nodes. Closes #36
|
||||||
|
|
||||||
|
0.5.0 / 2011-12-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added sub-command option support [itay]
|
||||||
|
|
||||||
|
0.4.3 / 2011-12-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed custom help ordering. Closes #32
|
||||||
|
|
||||||
|
0.4.2 / 2011-11-24
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added travis support
|
||||||
|
* Fixed: line-buffered input automatically trimmed. Closes #31
|
||||||
|
|
||||||
|
0.4.1 / 2011-11-18
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Removed listening for "close" on --help
|
||||||
|
|
||||||
|
0.4.0 / 2011-11-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added support for `--`. Closes #24
|
||||||
|
|
||||||
|
0.3.3 / 2011-11-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed: wait for close event when writing help info [Jerry Hamlet]
|
||||||
|
|
||||||
|
0.3.2 / 2011-11-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed long flag definitions with values [felixge]
|
||||||
|
|
||||||
|
0.3.1 / 2011-10-31
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Changed `--version` short flag to `-V` from `-v`
|
||||||
|
* Changed `.version()` so it's configurable [felixge]
|
||||||
|
|
||||||
|
0.3.0 / 2011-10-31
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added support for long flags only. Closes #18
|
||||||
|
|
||||||
|
0.2.1 / 2011-10-24
|
||||||
|
==================
|
||||||
|
|
||||||
|
* "node": ">= 0.4.x < 0.7.0". Closes #20
|
||||||
|
|
||||||
|
0.2.0 / 2011-09-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
|
||||||
|
|
||||||
|
0.1.0 / 2011-08-24
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added support for custom `--help` output
|
||||||
|
|
||||||
|
0.0.5 / 2011-08-18
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Changed: when the user enters nothing prompt for password again
|
||||||
|
* Fixed issue with passwords beginning with numbers [NuckChorris]
|
||||||
|
|
||||||
|
0.0.4 / 2011-08-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed `Commander#args`
|
||||||
|
|
||||||
|
0.0.3 / 2011-08-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added default option value support
|
||||||
|
|
||||||
|
0.0.2 / 2011-08-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added mask support to `Command#password(str[, mask], fn)`
|
||||||
|
* Added `Command#password(str, fn)`
|
||||||
|
|
||||||
|
0.0.1 / 2010-01-03
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Initial release
|
7
site/node_modules/commander/Makefile
generated
vendored
Normal file
7
site/node_modules/commander/Makefile
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
TESTS = $(shell find test/test.*.js)
|
||||||
|
|
||||||
|
test:
|
||||||
|
@./test/run $(TESTS)
|
||||||
|
|
||||||
|
.PHONY: test
|
262
site/node_modules/commander/Readme.md
generated
vendored
Normal file
262
site/node_modules/commander/Readme.md
generated
vendored
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
# Commander.js
|
||||||
|
|
||||||
|
The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/visionmedia/commander).
|
||||||
|
|
||||||
|
[](http://travis-ci.org/visionmedia/commander.js)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
$ npm install commander
|
||||||
|
|
||||||
|
## Option parsing
|
||||||
|
|
||||||
|
Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
|
||||||
|
|
||||||
|
```js
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var program = require('commander');
|
||||||
|
|
||||||
|
program
|
||||||
|
.version('0.0.1')
|
||||||
|
.option('-p, --peppers', 'Add peppers')
|
||||||
|
.option('-P, --pineapple', 'Add pineapple')
|
||||||
|
.option('-b, --bbq', 'Add bbq sauce')
|
||||||
|
.option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
|
||||||
|
.parse(process.argv);
|
||||||
|
|
||||||
|
console.log('you ordered a pizza with:');
|
||||||
|
if (program.peppers) console.log(' - peppers');
|
||||||
|
if (program.pineapple) console.log(' - pineappe');
|
||||||
|
if (program.bbq) console.log(' - bbq');
|
||||||
|
console.log(' - %s cheese', program.cheese);
|
||||||
|
```
|
||||||
|
|
||||||
|
Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
|
||||||
|
|
||||||
|
## Automated --help
|
||||||
|
|
||||||
|
The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./examples/pizza --help
|
||||||
|
|
||||||
|
Usage: pizza [options]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
|
||||||
|
-V, --version output the version number
|
||||||
|
-p, --peppers Add peppers
|
||||||
|
-P, --pineapple Add pineappe
|
||||||
|
-b, --bbq Add bbq sauce
|
||||||
|
-c, --cheese <type> Add the specified type of cheese [marble]
|
||||||
|
-h, --help output usage information
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Coercion
|
||||||
|
|
||||||
|
```js
|
||||||
|
function range(val) {
|
||||||
|
return val.split('..').map(Number);
|
||||||
|
}
|
||||||
|
|
||||||
|
function list(val) {
|
||||||
|
return val.split(',');
|
||||||
|
}
|
||||||
|
|
||||||
|
program
|
||||||
|
.version('0.0.1')
|
||||||
|
.usage('[options] <file ...>')
|
||||||
|
.option('-i, --integer <n>', 'An integer argument', parseInt)
|
||||||
|
.option('-f, --float <n>', 'A float argument', parseFloat)
|
||||||
|
.option('-r, --range <a>..<b>', 'A range', range)
|
||||||
|
.option('-l, --list <items>', 'A list', list)
|
||||||
|
.option('-o, --optional [value]', 'An optional value')
|
||||||
|
.parse(process.argv);
|
||||||
|
|
||||||
|
console.log(' int: %j', program.integer);
|
||||||
|
console.log(' float: %j', program.float);
|
||||||
|
console.log(' optional: %j', program.optional);
|
||||||
|
program.range = program.range || [];
|
||||||
|
console.log(' range: %j..%j', program.range[0], program.range[1]);
|
||||||
|
console.log(' list: %j', program.list);
|
||||||
|
console.log(' args: %j', program.args);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Custom help
|
||||||
|
|
||||||
|
You can display arbitrary `-h, --help` information
|
||||||
|
by listening for "--help". Commander will automatically
|
||||||
|
exit once you are done so that the remainder of your program
|
||||||
|
does not execute causing undesired behaviours, for example
|
||||||
|
in the following executable "stuff" will not output when
|
||||||
|
`--help` is used.
|
||||||
|
|
||||||
|
```js
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var program = require('../');
|
||||||
|
|
||||||
|
function list(val) {
|
||||||
|
return val.split(',').map(Number);
|
||||||
|
}
|
||||||
|
|
||||||
|
program
|
||||||
|
.version('0.0.1')
|
||||||
|
.option('-f, --foo', 'enable some foo')
|
||||||
|
.option('-b, --bar', 'enable some bar')
|
||||||
|
.option('-B, --baz', 'enable some baz');
|
||||||
|
|
||||||
|
// must be before .parse() since
|
||||||
|
// node's emit() is immediate
|
||||||
|
|
||||||
|
program.on('--help', function(){
|
||||||
|
console.log(' Examples:');
|
||||||
|
console.log('');
|
||||||
|
console.log(' $ custom-help --help');
|
||||||
|
console.log(' $ custom-help -h');
|
||||||
|
console.log('');
|
||||||
|
});
|
||||||
|
|
||||||
|
program.parse(process.argv);
|
||||||
|
|
||||||
|
console.log('stuff');
|
||||||
|
```
|
||||||
|
|
||||||
|
yielding the following help output:
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Usage: custom-help [options]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
|
||||||
|
-h, --help output usage information
|
||||||
|
-V, --version output the version number
|
||||||
|
-f, --foo enable some foo
|
||||||
|
-b, --bar enable some bar
|
||||||
|
-B, --baz enable some baz
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
$ custom-help --help
|
||||||
|
$ custom-help -h
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## .prompt(msg, fn)
|
||||||
|
|
||||||
|
Single-line prompt:
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.prompt('name: ', function(name){
|
||||||
|
console.log('hi %s', name);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Multi-line prompt:
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.prompt('description:', function(name){
|
||||||
|
console.log('hi %s', name);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Coercion:
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.prompt('Age: ', Number, function(age){
|
||||||
|
console.log('age: %j', age);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.prompt('Birthdate: ', Date, function(date){
|
||||||
|
console.log('date: %s', date);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## .password(msg[, mask], fn)
|
||||||
|
|
||||||
|
Prompt for password without echoing:
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.password('Password: ', function(pass){
|
||||||
|
console.log('got "%s"', pass);
|
||||||
|
process.stdin.destroy();
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Prompt for password with mask char "*":
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.password('Password: ', '*', function(pass){
|
||||||
|
console.log('got "%s"', pass);
|
||||||
|
process.stdin.destroy();
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## .confirm(msg, fn)
|
||||||
|
|
||||||
|
Confirm with the given `msg`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
program.confirm('continue? ', function(ok){
|
||||||
|
console.log(' got %j', ok);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## .choose(list, fn)
|
||||||
|
|
||||||
|
Let the user choose from a `list`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var list = ['tobi', 'loki', 'jane', 'manny', 'luna'];
|
||||||
|
|
||||||
|
console.log('Choose the coolest pet:');
|
||||||
|
program.choose(list, function(i){
|
||||||
|
console.log('you chose %d "%s"', i, list[i]);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [API documentation](http://visionmedia.github.com/commander.js/)
|
||||||
|
- [ascii tables](https://github.com/LearnBoost/cli-table)
|
||||||
|
- [progress bars](https://github.com/visionmedia/node-progress)
|
||||||
|
- [more progress bars](https://github.com/substack/node-multimeter)
|
||||||
|
- [examples](https://github.com/visionmedia/commander.js/tree/master/examples)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
2
site/node_modules/commander/index.js
generated
vendored
Normal file
2
site/node_modules/commander/index.js
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
module.exports = require('./lib/commander');
|
1026
site/node_modules/commander/lib/commander.js
generated
vendored
Normal file
1026
site/node_modules/commander/lib/commander.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13
site/node_modules/commander/package.json
generated
vendored
Normal file
13
site/node_modules/commander/package.json
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "commander"
|
||||||
|
, "version": "0.5.2"
|
||||||
|
, "description": "the complete solution for node.js command-line programs"
|
||||||
|
, "keywords": ["command", "option", "parser", "prompt", "stdin"]
|
||||||
|
, "author": "TJ Holowaychuk <tj@vision-media.ca>"
|
||||||
|
, "repository": { "type": "git", "url": "https://github.com/visionmedia/commander.js.git" }
|
||||||
|
, "dependencies": {}
|
||||||
|
, "devDependencies": { "should": ">= 0.0.1" }
|
||||||
|
, "scripts": { "test": "make test" }
|
||||||
|
, "main": "index"
|
||||||
|
, "engines": { "node": ">= 0.4.x" }
|
||||||
|
}
|
21
site/node_modules/esbuild/LICENSE.md
generated
vendored
Normal file
21
site/node_modules/esbuild/LICENSE.md
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Evan Wallace
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
3
site/node_modules/esbuild/README.md
generated
vendored
Normal file
3
site/node_modules/esbuild/README.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# esbuild
|
||||||
|
|
||||||
|
This is a JavaScript bundler and minifier. See https://github.com/evanw/esbuild and the [JavaScript API documentation](https://esbuild.github.io/api/) for details.
|
BIN
site/node_modules/esbuild/bin/esbuild
generated
vendored
Executable file
BIN
site/node_modules/esbuild/bin/esbuild
generated
vendored
Executable file
Binary file not shown.
285
site/node_modules/esbuild/install.js
generated
vendored
Normal file
285
site/node_modules/esbuild/install.js
generated
vendored
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
"use strict";
|
||||||
|
var __create = Object.create;
|
||||||
|
var __defProp = Object.defineProperty;
|
||||||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
|
var __getProtoOf = Object.getPrototypeOf;
|
||||||
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||||
|
var __copyProps = (to, from, except, desc) => {
|
||||||
|
if (from && typeof from === "object" || typeof from === "function") {
|
||||||
|
for (let key of __getOwnPropNames(from))
|
||||||
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||||
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||||
|
}
|
||||||
|
return to;
|
||||||
|
};
|
||||||
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||||||
|
// If the importer is in node compatibility mode or this is not an ESM
|
||||||
|
// file that has been converted to a CommonJS file using a Babel-
|
||||||
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
||||||
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
||||||
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||||||
|
mod
|
||||||
|
));
|
||||||
|
|
||||||
|
// lib/npm/node-platform.ts
|
||||||
|
var fs = require("fs");
|
||||||
|
var os = require("os");
|
||||||
|
var path = require("path");
|
||||||
|
var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
|
||||||
|
var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild";
|
||||||
|
var knownWindowsPackages = {
|
||||||
|
"win32 arm64 LE": "@esbuild/win32-arm64",
|
||||||
|
"win32 ia32 LE": "@esbuild/win32-ia32",
|
||||||
|
"win32 x64 LE": "@esbuild/win32-x64"
|
||||||
|
};
|
||||||
|
var knownUnixlikePackages = {
|
||||||
|
"aix ppc64 BE": "@esbuild/aix-ppc64",
|
||||||
|
"android arm64 LE": "@esbuild/android-arm64",
|
||||||
|
"darwin arm64 LE": "@esbuild/darwin-arm64",
|
||||||
|
"darwin x64 LE": "@esbuild/darwin-x64",
|
||||||
|
"freebsd arm64 LE": "@esbuild/freebsd-arm64",
|
||||||
|
"freebsd x64 LE": "@esbuild/freebsd-x64",
|
||||||
|
"linux arm LE": "@esbuild/linux-arm",
|
||||||
|
"linux arm64 LE": "@esbuild/linux-arm64",
|
||||||
|
"linux ia32 LE": "@esbuild/linux-ia32",
|
||||||
|
"linux mips64el LE": "@esbuild/linux-mips64el",
|
||||||
|
"linux ppc64 LE": "@esbuild/linux-ppc64",
|
||||||
|
"linux riscv64 LE": "@esbuild/linux-riscv64",
|
||||||
|
"linux s390x BE": "@esbuild/linux-s390x",
|
||||||
|
"linux x64 LE": "@esbuild/linux-x64",
|
||||||
|
"linux loong64 LE": "@esbuild/linux-loong64",
|
||||||
|
"netbsd x64 LE": "@esbuild/netbsd-x64",
|
||||||
|
"openbsd x64 LE": "@esbuild/openbsd-x64",
|
||||||
|
"sunos x64 LE": "@esbuild/sunos-x64"
|
||||||
|
};
|
||||||
|
var knownWebAssemblyFallbackPackages = {
|
||||||
|
"android arm LE": "@esbuild/android-arm",
|
||||||
|
"android x64 LE": "@esbuild/android-x64"
|
||||||
|
};
|
||||||
|
function pkgAndSubpathForCurrentPlatform() {
|
||||||
|
let pkg;
|
||||||
|
let subpath;
|
||||||
|
let isWASM = false;
|
||||||
|
let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
|
||||||
|
if (platformKey in knownWindowsPackages) {
|
||||||
|
pkg = knownWindowsPackages[platformKey];
|
||||||
|
subpath = "esbuild.exe";
|
||||||
|
} else if (platformKey in knownUnixlikePackages) {
|
||||||
|
pkg = knownUnixlikePackages[platformKey];
|
||||||
|
subpath = "bin/esbuild";
|
||||||
|
} else if (platformKey in knownWebAssemblyFallbackPackages) {
|
||||||
|
pkg = knownWebAssemblyFallbackPackages[platformKey];
|
||||||
|
subpath = "bin/esbuild";
|
||||||
|
isWASM = true;
|
||||||
|
} else {
|
||||||
|
throw new Error(`Unsupported platform: ${platformKey}`);
|
||||||
|
}
|
||||||
|
return { pkg, subpath, isWASM };
|
||||||
|
}
|
||||||
|
function downloadedBinPath(pkg, subpath) {
|
||||||
|
const esbuildLibDir = path.dirname(require.resolve("esbuild"));
|
||||||
|
return path.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path.basename(subpath)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// lib/npm/node-install.ts
|
||||||
|
var fs2 = require("fs");
|
||||||
|
var os2 = require("os");
|
||||||
|
var path2 = require("path");
|
||||||
|
var zlib = require("zlib");
|
||||||
|
var https = require("https");
|
||||||
|
var child_process = require("child_process");
|
||||||
|
var versionFromPackageJSON = require(path2.join(__dirname, "package.json")).version;
|
||||||
|
var toPath = path2.join(__dirname, "bin", "esbuild");
|
||||||
|
var isToPathJS = true;
|
||||||
|
function validateBinaryVersion(...command) {
|
||||||
|
command.push("--version");
|
||||||
|
let stdout;
|
||||||
|
try {
|
||||||
|
stdout = child_process.execFileSync(command.shift(), command, {
|
||||||
|
// Without this, this install script strangely crashes with the error
|
||||||
|
// "EACCES: permission denied, write" but only on Ubuntu Linux when node is
|
||||||
|
// installed from the Snap Store. This is not a problem when you download
|
||||||
|
// the official version of node. The problem appears to be that stderr
|
||||||
|
// (i.e. file descriptor 2) isn't writable?
|
||||||
|
//
|
||||||
|
// More info:
|
||||||
|
// - https://snapcraft.io/ (what the Snap Store is)
|
||||||
|
// - https://nodejs.org/dist/ (download the official version of node)
|
||||||
|
// - https://github.com/evanw/esbuild/issues/1711#issuecomment-1027554035
|
||||||
|
//
|
||||||
|
stdio: "pipe"
|
||||||
|
}).toString().trim();
|
||||||
|
} catch (err) {
|
||||||
|
if (os2.platform() === "darwin" && /_SecTrustEvaluateWithError/.test(err + "")) {
|
||||||
|
let os3 = "this version of macOS";
|
||||||
|
try {
|
||||||
|
os3 = "macOS " + child_process.execFileSync("sw_vers", ["-productVersion"]).toString().trim();
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
throw new Error(`The "esbuild" package cannot be installed because ${os3} is too outdated.
|
||||||
|
|
||||||
|
The Go compiler (which esbuild relies on) no longer supports ${os3},
|
||||||
|
which means the "esbuild" binary executable can't be run. You can either:
|
||||||
|
|
||||||
|
* Update your version of macOS to one that the Go compiler supports
|
||||||
|
* Use the "esbuild-wasm" package instead of the "esbuild" package
|
||||||
|
* Build esbuild yourself using an older version of the Go compiler
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
if (stdout !== versionFromPackageJSON) {
|
||||||
|
throw new Error(`Expected ${JSON.stringify(versionFromPackageJSON)} but got ${JSON.stringify(stdout)}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function isYarn() {
|
||||||
|
const { npm_config_user_agent } = process.env;
|
||||||
|
if (npm_config_user_agent) {
|
||||||
|
return /\byarn\//.test(npm_config_user_agent);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function fetch(url) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
https.get(url, (res) => {
|
||||||
|
if ((res.statusCode === 301 || res.statusCode === 302) && res.headers.location)
|
||||||
|
return fetch(res.headers.location).then(resolve, reject);
|
||||||
|
if (res.statusCode !== 200)
|
||||||
|
return reject(new Error(`Server responded with ${res.statusCode}`));
|
||||||
|
let chunks = [];
|
||||||
|
res.on("data", (chunk) => chunks.push(chunk));
|
||||||
|
res.on("end", () => resolve(Buffer.concat(chunks)));
|
||||||
|
}).on("error", reject);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function extractFileFromTarGzip(buffer, subpath) {
|
||||||
|
try {
|
||||||
|
buffer = zlib.unzipSync(buffer);
|
||||||
|
} catch (err) {
|
||||||
|
throw new Error(`Invalid gzip data in archive: ${err && err.message || err}`);
|
||||||
|
}
|
||||||
|
let str = (i, n) => String.fromCharCode(...buffer.subarray(i, i + n)).replace(/\0.*$/, "");
|
||||||
|
let offset = 0;
|
||||||
|
subpath = `package/${subpath}`;
|
||||||
|
while (offset < buffer.length) {
|
||||||
|
let name = str(offset, 100);
|
||||||
|
let size = parseInt(str(offset + 124, 12), 8);
|
||||||
|
offset += 512;
|
||||||
|
if (!isNaN(size)) {
|
||||||
|
if (name === subpath) return buffer.subarray(offset, offset + size);
|
||||||
|
offset += size + 511 & ~511;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error(`Could not find ${JSON.stringify(subpath)} in archive`);
|
||||||
|
}
|
||||||
|
function installUsingNPM(pkg, subpath, binPath) {
|
||||||
|
const env = { ...process.env, npm_config_global: void 0 };
|
||||||
|
const esbuildLibDir = path2.dirname(require.resolve("esbuild"));
|
||||||
|
const installDir = path2.join(esbuildLibDir, "npm-install");
|
||||||
|
fs2.mkdirSync(installDir);
|
||||||
|
try {
|
||||||
|
fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
|
||||||
|
child_process.execSync(
|
||||||
|
`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${versionFromPackageJSON}`,
|
||||||
|
{ cwd: installDir, stdio: "pipe", env }
|
||||||
|
);
|
||||||
|
const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
|
||||||
|
fs2.renameSync(installedBinPath, binPath);
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
removeRecursive(installDir);
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function removeRecursive(dir) {
|
||||||
|
for (const entry of fs2.readdirSync(dir)) {
|
||||||
|
const entryPath = path2.join(dir, entry);
|
||||||
|
let stats;
|
||||||
|
try {
|
||||||
|
stats = fs2.lstatSync(entryPath);
|
||||||
|
} catch {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (stats.isDirectory()) removeRecursive(entryPath);
|
||||||
|
else fs2.unlinkSync(entryPath);
|
||||||
|
}
|
||||||
|
fs2.rmdirSync(dir);
|
||||||
|
}
|
||||||
|
function applyManualBinaryPathOverride(overridePath) {
|
||||||
|
const pathString = JSON.stringify(overridePath);
|
||||||
|
fs2.writeFileSync(toPath, `#!/usr/bin/env node
|
||||||
|
require('child_process').execFileSync(${pathString}, process.argv.slice(2), { stdio: 'inherit' });
|
||||||
|
`);
|
||||||
|
const libMain = path2.join(__dirname, "lib", "main.js");
|
||||||
|
const code = fs2.readFileSync(libMain, "utf8");
|
||||||
|
fs2.writeFileSync(libMain, `var ESBUILD_BINARY_PATH = ${pathString};
|
||||||
|
${code}`);
|
||||||
|
}
|
||||||
|
function maybeOptimizePackage(binPath) {
|
||||||
|
if (os2.platform() !== "win32" && !isYarn()) {
|
||||||
|
const tempPath = path2.join(__dirname, "bin-esbuild");
|
||||||
|
try {
|
||||||
|
fs2.linkSync(binPath, tempPath);
|
||||||
|
fs2.renameSync(tempPath, toPath);
|
||||||
|
isToPathJS = false;
|
||||||
|
fs2.unlinkSync(tempPath);
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
|
||||||
|
const url = `https://registry.npmjs.org/${pkg}/-/${pkg.replace("@esbuild/", "")}-${versionFromPackageJSON}.tgz`;
|
||||||
|
console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
|
||||||
|
try {
|
||||||
|
fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
|
||||||
|
fs2.chmodSync(binPath, 493);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`[esbuild] Failed to download ${JSON.stringify(url)}: ${e && e.message || e}`);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function checkAndPreparePackage() {
|
||||||
|
if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {
|
||||||
|
if (!fs2.existsSync(ESBUILD_BINARY_PATH)) {
|
||||||
|
console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);
|
||||||
|
} else {
|
||||||
|
applyManualBinaryPathOverride(ESBUILD_BINARY_PATH);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const { pkg, subpath } = pkgAndSubpathForCurrentPlatform();
|
||||||
|
let binPath;
|
||||||
|
try {
|
||||||
|
binPath = require.resolve(`${pkg}/${subpath}`);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`[esbuild] Failed to find package "${pkg}" on the file system
|
||||||
|
|
||||||
|
This can happen if you use the "--no-optional" flag. The "optionalDependencies"
|
||||||
|
package.json feature is used by esbuild to install the correct binary executable
|
||||||
|
for your current platform. This install script will now attempt to work around
|
||||||
|
this. If that fails, you need to remove the "--no-optional" flag to use esbuild.
|
||||||
|
`);
|
||||||
|
binPath = downloadedBinPath(pkg, subpath);
|
||||||
|
try {
|
||||||
|
console.error(`[esbuild] Trying to install package "${pkg}" using npm`);
|
||||||
|
installUsingNPM(pkg, subpath, binPath);
|
||||||
|
} catch (e2) {
|
||||||
|
console.error(`[esbuild] Failed to install package "${pkg}" using npm: ${e2 && e2.message || e2}`);
|
||||||
|
try {
|
||||||
|
await downloadDirectlyFromNPM(pkg, subpath, binPath);
|
||||||
|
} catch (e3) {
|
||||||
|
throw new Error(`Failed to install package "${pkg}"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
maybeOptimizePackage(binPath);
|
||||||
|
}
|
||||||
|
checkAndPreparePackage().then(() => {
|
||||||
|
if (isToPathJS) {
|
||||||
|
validateBinaryVersion(process.execPath, toPath);
|
||||||
|
} else {
|
||||||
|
validateBinaryVersion(toPath);
|
||||||
|
}
|
||||||
|
});
|
705
site/node_modules/esbuild/lib/main.d.ts
generated
vendored
Normal file
705
site/node_modules/esbuild/lib/main.d.ts
generated
vendored
Normal file
@ -0,0 +1,705 @@
|
|||||||
|
export type Platform = 'browser' | 'node' | 'neutral'
|
||||||
|
export type Format = 'iife' | 'cjs' | 'esm'
|
||||||
|
export type Loader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'default' | 'empty' | 'file' | 'js' | 'json' | 'jsx' | 'local-css' | 'text' | 'ts' | 'tsx'
|
||||||
|
export type LogLevel = 'verbose' | 'debug' | 'info' | 'warning' | 'error' | 'silent'
|
||||||
|
export type Charset = 'ascii' | 'utf8'
|
||||||
|
export type Drop = 'console' | 'debugger'
|
||||||
|
|
||||||
|
interface CommonOptions {
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#sourcemap */
|
||||||
|
sourcemap?: boolean | 'linked' | 'inline' | 'external' | 'both'
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#legal-comments */
|
||||||
|
legalComments?: 'none' | 'inline' | 'eof' | 'linked' | 'external'
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#source-root */
|
||||||
|
sourceRoot?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#sources-content */
|
||||||
|
sourcesContent?: boolean
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#format */
|
||||||
|
format?: Format
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#global-name */
|
||||||
|
globalName?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#target */
|
||||||
|
target?: string | string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#supported */
|
||||||
|
supported?: Record<string, boolean>
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#platform */
|
||||||
|
platform?: Platform
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||||
|
mangleProps?: RegExp
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||||
|
reserveProps?: RegExp
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||||
|
mangleQuoted?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||||
|
mangleCache?: Record<string, string | false>
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#drop */
|
||||||
|
drop?: Drop[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#drop-labels */
|
||||||
|
dropLabels?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||||
|
minify?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||||
|
minifyWhitespace?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||||
|
minifyIdentifiers?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||||
|
minifySyntax?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#line-limit */
|
||||||
|
lineLimit?: number
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#charset */
|
||||||
|
charset?: Charset
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#tree-shaking */
|
||||||
|
treeShaking?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#ignore-annotations */
|
||||||
|
ignoreAnnotations?: boolean
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx */
|
||||||
|
jsx?: 'transform' | 'preserve' | 'automatic'
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx-factory */
|
||||||
|
jsxFactory?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx-fragment */
|
||||||
|
jsxFragment?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx-import-source */
|
||||||
|
jsxImportSource?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx-development */
|
||||||
|
jsxDev?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#jsx-side-effects */
|
||||||
|
jsxSideEffects?: boolean
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#define */
|
||||||
|
define?: { [key: string]: string }
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#pure */
|
||||||
|
pure?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#keep-names */
|
||||||
|
keepNames?: boolean
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#color */
|
||||||
|
color?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#log-level */
|
||||||
|
logLevel?: LogLevel
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#log-limit */
|
||||||
|
logLimit?: number
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#log-override */
|
||||||
|
logOverride?: Record<string, LogLevel>
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#tsconfig-raw */
|
||||||
|
tsconfigRaw?: string | TsconfigRaw
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TsconfigRaw {
|
||||||
|
compilerOptions?: {
|
||||||
|
alwaysStrict?: boolean
|
||||||
|
baseUrl?: string
|
||||||
|
experimentalDecorators?: boolean
|
||||||
|
importsNotUsedAsValues?: 'remove' | 'preserve' | 'error'
|
||||||
|
jsx?: 'preserve' | 'react-native' | 'react' | 'react-jsx' | 'react-jsxdev'
|
||||||
|
jsxFactory?: string
|
||||||
|
jsxFragmentFactory?: string
|
||||||
|
jsxImportSource?: string
|
||||||
|
paths?: Record<string, string[]>
|
||||||
|
preserveValueImports?: boolean
|
||||||
|
strict?: boolean
|
||||||
|
target?: string
|
||||||
|
useDefineForClassFields?: boolean
|
||||||
|
verbatimModuleSyntax?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BuildOptions extends CommonOptions {
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#bundle */
|
||||||
|
bundle?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#splitting */
|
||||||
|
splitting?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#preserve-symlinks */
|
||||||
|
preserveSymlinks?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#outfile */
|
||||||
|
outfile?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#metafile */
|
||||||
|
metafile?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#outdir */
|
||||||
|
outdir?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#outbase */
|
||||||
|
outbase?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#external */
|
||||||
|
external?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#packages */
|
||||||
|
packages?: 'external'
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#alias */
|
||||||
|
alias?: Record<string, string>
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#loader */
|
||||||
|
loader?: { [ext: string]: Loader }
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#resolve-extensions */
|
||||||
|
resolveExtensions?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#main-fields */
|
||||||
|
mainFields?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#conditions */
|
||||||
|
conditions?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#write */
|
||||||
|
write?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#allow-overwrite */
|
||||||
|
allowOverwrite?: boolean
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#tsconfig */
|
||||||
|
tsconfig?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#out-extension */
|
||||||
|
outExtension?: { [ext: string]: string }
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#public-path */
|
||||||
|
publicPath?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#entry-names */
|
||||||
|
entryNames?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#chunk-names */
|
||||||
|
chunkNames?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#asset-names */
|
||||||
|
assetNames?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#inject */
|
||||||
|
inject?: string[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#banner */
|
||||||
|
banner?: { [type: string]: string }
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#footer */
|
||||||
|
footer?: { [type: string]: string }
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#entry-points */
|
||||||
|
entryPoints?: string[] | Record<string, string> | { in: string, out: string }[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#stdin */
|
||||||
|
stdin?: StdinOptions
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/ */
|
||||||
|
plugins?: Plugin[]
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#working-directory */
|
||||||
|
absWorkingDir?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#node-paths */
|
||||||
|
nodePaths?: string[]; // The "NODE_PATH" variable from Node.js
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StdinOptions {
|
||||||
|
contents: string | Uint8Array
|
||||||
|
resolveDir?: string
|
||||||
|
sourcefile?: string
|
||||||
|
loader?: Loader
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Message {
|
||||||
|
id: string
|
||||||
|
pluginName: string
|
||||||
|
text: string
|
||||||
|
location: Location | null
|
||||||
|
notes: Note[]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Optional user-specified data that is passed through unmodified. You can
|
||||||
|
* use this to stash the original error, for example.
|
||||||
|
*/
|
||||||
|
detail: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Note {
|
||||||
|
text: string
|
||||||
|
location: Location | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Location {
|
||||||
|
file: string
|
||||||
|
namespace: string
|
||||||
|
/** 1-based */
|
||||||
|
line: number
|
||||||
|
/** 0-based, in bytes */
|
||||||
|
column: number
|
||||||
|
/** in bytes */
|
||||||
|
length: number
|
||||||
|
lineText: string
|
||||||
|
suggestion: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OutputFile {
|
||||||
|
path: string
|
||||||
|
contents: Uint8Array
|
||||||
|
hash: string
|
||||||
|
/** "contents" as text (changes automatically with "contents") */
|
||||||
|
readonly text: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BuildResult<ProvidedOptions extends BuildOptions = BuildOptions> {
|
||||||
|
errors: Message[]
|
||||||
|
warnings: Message[]
|
||||||
|
/** Only when "write: false" */
|
||||||
|
outputFiles: OutputFile[] | (ProvidedOptions['write'] extends false ? never : undefined)
|
||||||
|
/** Only when "metafile: true" */
|
||||||
|
metafile: Metafile | (ProvidedOptions['metafile'] extends true ? never : undefined)
|
||||||
|
/** Only when "mangleCache" is present */
|
||||||
|
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BuildFailure extends Error {
|
||||||
|
errors: Message[]
|
||||||
|
warnings: Message[]
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#serve-arguments */
|
||||||
|
export interface ServeOptions {
|
||||||
|
port?: number
|
||||||
|
host?: string
|
||||||
|
servedir?: string
|
||||||
|
keyfile?: string
|
||||||
|
certfile?: string
|
||||||
|
fallback?: string
|
||||||
|
onRequest?: (args: ServeOnRequestArgs) => void
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ServeOnRequestArgs {
|
||||||
|
remoteAddress: string
|
||||||
|
method: string
|
||||||
|
path: string
|
||||||
|
status: number
|
||||||
|
/** The time to generate the response, not to send it */
|
||||||
|
timeInMS: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#serve-return-values */
|
||||||
|
export interface ServeResult {
|
||||||
|
port: number
|
||||||
|
host: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransformOptions extends CommonOptions {
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#sourcefile */
|
||||||
|
sourcefile?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#loader */
|
||||||
|
loader?: Loader
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#banner */
|
||||||
|
banner?: string
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#footer */
|
||||||
|
footer?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransformResult<ProvidedOptions extends TransformOptions = TransformOptions> {
|
||||||
|
code: string
|
||||||
|
map: string
|
||||||
|
warnings: Message[]
|
||||||
|
/** Only when "mangleCache" is present */
|
||||||
|
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
||||||
|
/** Only when "legalComments" is "external" */
|
||||||
|
legalComments: string | (ProvidedOptions['legalComments'] extends 'external' ? never : undefined)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransformFailure extends Error {
|
||||||
|
errors: Message[]
|
||||||
|
warnings: Message[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Plugin {
|
||||||
|
name: string
|
||||||
|
setup: (build: PluginBuild) => (void | Promise<void>)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PluginBuild {
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#build-options */
|
||||||
|
initialOptions: BuildOptions
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#resolve */
|
||||||
|
resolve(path: string, options?: ResolveOptions): Promise<ResolveResult>
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-start */
|
||||||
|
onStart(callback: () =>
|
||||||
|
(OnStartResult | null | void | Promise<OnStartResult | null | void>)): void
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-end */
|
||||||
|
onEnd(callback: (result: BuildResult) =>
|
||||||
|
(OnEndResult | null | void | Promise<OnEndResult | null | void>)): void
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-resolve */
|
||||||
|
onResolve(options: OnResolveOptions, callback: (args: OnResolveArgs) =>
|
||||||
|
(OnResolveResult | null | undefined | Promise<OnResolveResult | null | undefined>)): void
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-load */
|
||||||
|
onLoad(options: OnLoadOptions, callback: (args: OnLoadArgs) =>
|
||||||
|
(OnLoadResult | null | undefined | Promise<OnLoadResult | null | undefined>)): void
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-dispose */
|
||||||
|
onDispose(callback: () => void): void
|
||||||
|
|
||||||
|
// This is a full copy of the esbuild library in case you need it
|
||||||
|
esbuild: {
|
||||||
|
context: typeof context,
|
||||||
|
build: typeof build,
|
||||||
|
buildSync: typeof buildSync,
|
||||||
|
transform: typeof transform,
|
||||||
|
transformSync: typeof transformSync,
|
||||||
|
formatMessages: typeof formatMessages,
|
||||||
|
formatMessagesSync: typeof formatMessagesSync,
|
||||||
|
analyzeMetafile: typeof analyzeMetafile,
|
||||||
|
analyzeMetafileSync: typeof analyzeMetafileSync,
|
||||||
|
initialize: typeof initialize,
|
||||||
|
version: typeof version,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#resolve-options */
|
||||||
|
export interface ResolveOptions {
|
||||||
|
pluginName?: string
|
||||||
|
importer?: string
|
||||||
|
namespace?: string
|
||||||
|
resolveDir?: string
|
||||||
|
kind?: ImportKind
|
||||||
|
pluginData?: any
|
||||||
|
with?: Record<string, string>
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#resolve-results */
|
||||||
|
export interface ResolveResult {
|
||||||
|
errors: Message[]
|
||||||
|
warnings: Message[]
|
||||||
|
|
||||||
|
path: string
|
||||||
|
external: boolean
|
||||||
|
sideEffects: boolean
|
||||||
|
namespace: string
|
||||||
|
suffix: string
|
||||||
|
pluginData: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OnStartResult {
|
||||||
|
errors?: PartialMessage[]
|
||||||
|
warnings?: PartialMessage[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OnEndResult {
|
||||||
|
errors?: PartialMessage[]
|
||||||
|
warnings?: PartialMessage[]
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-options */
|
||||||
|
export interface OnResolveOptions {
|
||||||
|
filter: RegExp
|
||||||
|
namespace?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-arguments */
|
||||||
|
export interface OnResolveArgs {
|
||||||
|
path: string
|
||||||
|
importer: string
|
||||||
|
namespace: string
|
||||||
|
resolveDir: string
|
||||||
|
kind: ImportKind
|
||||||
|
pluginData: any
|
||||||
|
with: Record<string, string>
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ImportKind =
|
||||||
|
| 'entry-point'
|
||||||
|
|
||||||
|
// JS
|
||||||
|
| 'import-statement'
|
||||||
|
| 'require-call'
|
||||||
|
| 'dynamic-import'
|
||||||
|
| 'require-resolve'
|
||||||
|
|
||||||
|
// CSS
|
||||||
|
| 'import-rule'
|
||||||
|
| 'composes-from'
|
||||||
|
| 'url-token'
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-results */
|
||||||
|
export interface OnResolveResult {
|
||||||
|
pluginName?: string
|
||||||
|
|
||||||
|
errors?: PartialMessage[]
|
||||||
|
warnings?: PartialMessage[]
|
||||||
|
|
||||||
|
path?: string
|
||||||
|
external?: boolean
|
||||||
|
sideEffects?: boolean
|
||||||
|
namespace?: string
|
||||||
|
suffix?: string
|
||||||
|
pluginData?: any
|
||||||
|
|
||||||
|
watchFiles?: string[]
|
||||||
|
watchDirs?: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-load-options */
|
||||||
|
export interface OnLoadOptions {
|
||||||
|
filter: RegExp
|
||||||
|
namespace?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-load-arguments */
|
||||||
|
export interface OnLoadArgs {
|
||||||
|
path: string
|
||||||
|
namespace: string
|
||||||
|
suffix: string
|
||||||
|
pluginData: any
|
||||||
|
with: Record<string, string>
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/plugins/#on-load-results */
|
||||||
|
export interface OnLoadResult {
|
||||||
|
pluginName?: string
|
||||||
|
|
||||||
|
errors?: PartialMessage[]
|
||||||
|
warnings?: PartialMessage[]
|
||||||
|
|
||||||
|
contents?: string | Uint8Array
|
||||||
|
resolveDir?: string
|
||||||
|
loader?: Loader
|
||||||
|
pluginData?: any
|
||||||
|
|
||||||
|
watchFiles?: string[]
|
||||||
|
watchDirs?: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PartialMessage {
|
||||||
|
id?: string
|
||||||
|
pluginName?: string
|
||||||
|
text?: string
|
||||||
|
location?: Partial<Location> | null
|
||||||
|
notes?: PartialNote[]
|
||||||
|
detail?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PartialNote {
|
||||||
|
text?: string
|
||||||
|
location?: Partial<Location> | null
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#metafile */
|
||||||
|
export interface Metafile {
|
||||||
|
inputs: {
|
||||||
|
[path: string]: {
|
||||||
|
bytes: number
|
||||||
|
imports: {
|
||||||
|
path: string
|
||||||
|
kind: ImportKind
|
||||||
|
external?: boolean
|
||||||
|
original?: string
|
||||||
|
with?: Record<string, string>
|
||||||
|
}[]
|
||||||
|
format?: 'cjs' | 'esm'
|
||||||
|
with?: Record<string, string>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
outputs: {
|
||||||
|
[path: string]: {
|
||||||
|
bytes: number
|
||||||
|
inputs: {
|
||||||
|
[path: string]: {
|
||||||
|
bytesInOutput: number
|
||||||
|
}
|
||||||
|
}
|
||||||
|
imports: {
|
||||||
|
path: string
|
||||||
|
kind: ImportKind | 'file-loader'
|
||||||
|
external?: boolean
|
||||||
|
}[]
|
||||||
|
exports: string[]
|
||||||
|
entryPoint?: string
|
||||||
|
cssBundle?: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FormatMessagesOptions {
|
||||||
|
kind: 'error' | 'warning'
|
||||||
|
color?: boolean
|
||||||
|
terminalWidth?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AnalyzeMetafileOptions {
|
||||||
|
color?: boolean
|
||||||
|
verbose?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WatchOptions {
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BuildContext<ProvidedOptions extends BuildOptions = BuildOptions> {
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#rebuild */
|
||||||
|
rebuild(): Promise<BuildResult<ProvidedOptions>>
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#watch */
|
||||||
|
watch(options?: WatchOptions): Promise<void>
|
||||||
|
|
||||||
|
/** Documentation: https://esbuild.github.io/api/#serve */
|
||||||
|
serve(options?: ServeOptions): Promise<ServeResult>
|
||||||
|
|
||||||
|
cancel(): Promise<void>
|
||||||
|
dispose(): Promise<void>
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is a TypeScript type-level function which replaces any keys in "In"
|
||||||
|
// that aren't in "Out" with "never". We use this to reject properties with
|
||||||
|
// typos in object literals. See: https://stackoverflow.com/questions/49580725
|
||||||
|
type SameShape<Out, In extends Out> = In & { [Key in Exclude<keyof In, keyof Out>]: never }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function invokes the "esbuild" command-line tool for you. It returns a
|
||||||
|
* promise that either resolves with a "BuildResult" object or rejects with a
|
||||||
|
* "BuildFailure" object.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: yes
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#build
|
||||||
|
*/
|
||||||
|
export declare function build<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildResult<T>>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the advanced long-running form of "build" that supports additional
|
||||||
|
* features such as watch mode and a local development server.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: no
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#build
|
||||||
|
*/
|
||||||
|
export declare function context<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildContext<T>>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function transforms a single JavaScript file. It can be used to minify
|
||||||
|
* JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
|
||||||
|
* to older JavaScript. It returns a promise that is either resolved with a
|
||||||
|
* "TransformResult" object or rejected with a "TransformFailure" object.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: yes
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#transform
|
||||||
|
*/
|
||||||
|
export declare function transform<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): Promise<TransformResult<T>>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts log messages to formatted message strings suitable for printing in
|
||||||
|
* the terminal. This allows you to reuse the built-in behavior of esbuild's
|
||||||
|
* log message formatter. This is a batch-oriented API for efficiency.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: yes
|
||||||
|
*/
|
||||||
|
export declare function formatMessages(messages: PartialMessage[], options: FormatMessagesOptions): Promise<string[]>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pretty-prints an analysis of the metafile JSON to a string. This is just for
|
||||||
|
* convenience to be able to match esbuild's pretty-printing exactly. If you want
|
||||||
|
* to customize it, you can just inspect the data in the metafile yourself.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: yes
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#analyze
|
||||||
|
*/
|
||||||
|
export declare function analyzeMetafile(metafile: Metafile | string, options?: AnalyzeMetafileOptions): Promise<string>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A synchronous version of "build".
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: no
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#build
|
||||||
|
*/
|
||||||
|
export declare function buildSync<T extends BuildOptions>(options: SameShape<BuildOptions, T>): BuildResult<T>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A synchronous version of "transform".
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: no
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#transform
|
||||||
|
*/
|
||||||
|
export declare function transformSync<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): TransformResult<T>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A synchronous version of "formatMessages".
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: no
|
||||||
|
*/
|
||||||
|
export declare function formatMessagesSync(messages: PartialMessage[], options: FormatMessagesOptions): string[]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A synchronous version of "analyzeMetafile".
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: no
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#analyze
|
||||||
|
*/
|
||||||
|
export declare function analyzeMetafileSync(metafile: Metafile | string, options?: AnalyzeMetafileOptions): string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This configures the browser-based version of esbuild. It is necessary to
|
||||||
|
* call this first and wait for the returned promise to be resolved before
|
||||||
|
* making other API calls when using esbuild in the browser.
|
||||||
|
*
|
||||||
|
* - Works in node: yes
|
||||||
|
* - Works in browser: yes ("options" is required)
|
||||||
|
*
|
||||||
|
* Documentation: https://esbuild.github.io/api/#browser
|
||||||
|
*/
|
||||||
|
export declare function initialize(options: InitializeOptions): Promise<void>
|
||||||
|
|
||||||
|
export interface InitializeOptions {
|
||||||
|
/**
|
||||||
|
* The URL of the "esbuild.wasm" file. This must be provided when running
|
||||||
|
* esbuild in the browser.
|
||||||
|
*/
|
||||||
|
wasmURL?: string | URL
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The result of calling "new WebAssembly.Module(buffer)" where "buffer"
|
||||||
|
* is a typed array or ArrayBuffer containing the binary code of the
|
||||||
|
* "esbuild.wasm" file.
|
||||||
|
*
|
||||||
|
* You can use this as an alternative to "wasmURL" for environments where it's
|
||||||
|
* not possible to download the WebAssembly module.
|
||||||
|
*/
|
||||||
|
wasmModule?: WebAssembly.Module
|
||||||
|
|
||||||
|
/**
|
||||||
|
* By default esbuild runs the WebAssembly-based browser API in a web worker
|
||||||
|
* to avoid blocking the UI thread. This can be disabled by setting "worker"
|
||||||
|
* to false.
|
||||||
|
*/
|
||||||
|
worker?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export let version: string
|
||||||
|
|
||||||
|
// Call this function to terminate esbuild's child process. The child process
|
||||||
|
// is not terminated and re-created after each API call because it's more
|
||||||
|
// efficient to keep it around when there are multiple API calls.
|
||||||
|
//
|
||||||
|
// In node this happens automatically before the parent node process exits. So
|
||||||
|
// you only need to call this if you know you will not make any more esbuild
|
||||||
|
// API calls and you want to clean up resources.
|
||||||
|
//
|
||||||
|
// Unlike node, Deno lacks the necessary APIs to clean up child processes
|
||||||
|
// automatically. You must manually call stop() in Deno when you're done
|
||||||
|
// using esbuild or Deno will continue running forever.
|
||||||
|
//
|
||||||
|
// Another reason you might want to call this is if you are using esbuild from
|
||||||
|
// within a Deno test. Deno fails tests that create a child process without
|
||||||
|
// killing it before the test ends, so you have to call this function (and
|
||||||
|
// await the returned promise) in every Deno test that uses esbuild.
|
||||||
|
export declare function stop(): Promise<void>
|
||||||
|
|
||||||
|
// Note: These declarations exist to avoid type errors when you omit "dom" from
|
||||||
|
// "lib" in your "tsconfig.json" file. TypeScript confusingly declares the
|
||||||
|
// global "WebAssembly" type in "lib.dom.d.ts" even though it has nothing to do
|
||||||
|
// with the browser DOM and is present in many non-browser JavaScript runtimes
|
||||||
|
// (e.g. node and deno). Declaring it here allows esbuild's API to be used in
|
||||||
|
// these scenarios.
|
||||||
|
//
|
||||||
|
// There's an open issue about getting this problem corrected (although these
|
||||||
|
// declarations will need to remain even if this is fixed for backward
|
||||||
|
// compatibility with older TypeScript versions):
|
||||||
|
//
|
||||||
|
// https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/826
|
||||||
|
//
|
||||||
|
declare global {
|
||||||
|
namespace WebAssembly {
|
||||||
|
interface Module {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
interface URL {
|
||||||
|
}
|
||||||
|
}
|
2239
site/node_modules/esbuild/lib/main.js
generated
vendored
Normal file
2239
site/node_modules/esbuild/lib/main.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
46
site/node_modules/esbuild/package.json
generated
vendored
Normal file
46
site/node_modules/esbuild/package.json
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"name": "esbuild",
|
||||||
|
"version": "0.21.5",
|
||||||
|
"description": "An extremely fast JavaScript and CSS bundler and minifier.",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/evanw/esbuild.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "node install.js"
|
||||||
|
},
|
||||||
|
"main": "lib/main.js",
|
||||||
|
"types": "lib/main.d.ts",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"esbuild": "bin/esbuild"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@esbuild/aix-ppc64": "0.21.5",
|
||||||
|
"@esbuild/android-arm": "0.21.5",
|
||||||
|
"@esbuild/android-arm64": "0.21.5",
|
||||||
|
"@esbuild/android-x64": "0.21.5",
|
||||||
|
"@esbuild/darwin-arm64": "0.21.5",
|
||||||
|
"@esbuild/darwin-x64": "0.21.5",
|
||||||
|
"@esbuild/freebsd-arm64": "0.21.5",
|
||||||
|
"@esbuild/freebsd-x64": "0.21.5",
|
||||||
|
"@esbuild/linux-arm": "0.21.5",
|
||||||
|
"@esbuild/linux-arm64": "0.21.5",
|
||||||
|
"@esbuild/linux-ia32": "0.21.5",
|
||||||
|
"@esbuild/linux-loong64": "0.21.5",
|
||||||
|
"@esbuild/linux-mips64el": "0.21.5",
|
||||||
|
"@esbuild/linux-ppc64": "0.21.5",
|
||||||
|
"@esbuild/linux-riscv64": "0.21.5",
|
||||||
|
"@esbuild/linux-s390x": "0.21.5",
|
||||||
|
"@esbuild/linux-x64": "0.21.5",
|
||||||
|
"@esbuild/netbsd-x64": "0.21.5",
|
||||||
|
"@esbuild/openbsd-x64": "0.21.5",
|
||||||
|
"@esbuild/sunos-x64": "0.21.5",
|
||||||
|
"@esbuild/win32-arm64": "0.21.5",
|
||||||
|
"@esbuild/win32-ia32": "0.21.5",
|
||||||
|
"@esbuild/win32-x64": "0.21.5"
|
||||||
|
},
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
20
site/node_modules/nanoid/LICENSE
generated
vendored
Normal file
20
site/node_modules/nanoid/LICENSE
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
39
site/node_modules/nanoid/README.md
generated
vendored
Normal file
39
site/node_modules/nanoid/README.md
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Nano ID
|
||||||
|
|
||||||
|
<img src="https://ai.github.io/nanoid/logo.svg" align="right"
|
||||||
|
alt="Nano ID logo by Anton Lovchikov" width="180" height="94">
|
||||||
|
|
||||||
|
**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md)
|
||||||
|
|
||||||
|
A tiny, secure, URL-friendly, unique string ID generator for JavaScript.
|
||||||
|
|
||||||
|
> “An amazing level of senseless perfectionism,
|
||||||
|
> which is simply impossible not to respect.”
|
||||||
|
|
||||||
|
* **Small.** 130 bytes (minified and gzipped). No dependencies.
|
||||||
|
[Size Limit] controls the size.
|
||||||
|
* **Fast.** It is 2 times faster than UUID.
|
||||||
|
* **Safe.** It uses hardware random generator. Can be used in clusters.
|
||||||
|
* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`).
|
||||||
|
So ID size was reduced from 36 to 21 symbols.
|
||||||
|
* **Portable.** Nano ID was ported
|
||||||
|
to [20 programming languages](#other-programming-languages).
|
||||||
|
|
||||||
|
```js
|
||||||
|
import { nanoid } from 'nanoid'
|
||||||
|
model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
|
||||||
|
```
|
||||||
|
|
||||||
|
Supports modern browsers, IE [with Babel], Node.js and React Native.
|
||||||
|
|
||||||
|
[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/
|
||||||
|
[with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/
|
||||||
|
[Size Limit]: https://github.com/ai/size-limit
|
||||||
|
|
||||||
|
<a href="https://evilmartians.com/?utm_source=nanoid">
|
||||||
|
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
|
||||||
|
alt="Sponsored by Evil Martians" width="236" height="54">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
## Docs
|
||||||
|
Read full docs **[here](https://github.com/ai/nanoid#readme)**.
|
34
site/node_modules/nanoid/async/index.browser.cjs
generated
vendored
Normal file
34
site/node_modules/nanoid/async/index.browser.cjs
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes))
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
|
||||||
|
let step = -~((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return async (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = crypto.getRandomValues(new Uint8Array(step))
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let nanoid = async (size = 21) => {
|
||||||
|
let id = ''
|
||||||
|
let bytes = crypto.getRandomValues(new Uint8Array(size))
|
||||||
|
while (size--) {
|
||||||
|
let byte = bytes[size] & 63
|
||||||
|
if (byte < 36) {
|
||||||
|
id += byte.toString(36)
|
||||||
|
} else if (byte < 62) {
|
||||||
|
id += (byte - 26).toString(36).toUpperCase()
|
||||||
|
} else if (byte < 63) {
|
||||||
|
id += '_'
|
||||||
|
} else {
|
||||||
|
id += '-'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
module.exports = { nanoid, customAlphabet, random }
|
34
site/node_modules/nanoid/async/index.browser.js
generated
vendored
Normal file
34
site/node_modules/nanoid/async/index.browser.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes))
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
|
||||||
|
let step = -~((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return async (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = crypto.getRandomValues(new Uint8Array(step))
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let nanoid = async (size = 21) => {
|
||||||
|
let id = ''
|
||||||
|
let bytes = crypto.getRandomValues(new Uint8Array(size))
|
||||||
|
while (size--) {
|
||||||
|
let byte = bytes[size] & 63
|
||||||
|
if (byte < 36) {
|
||||||
|
id += byte.toString(36)
|
||||||
|
} else if (byte < 62) {
|
||||||
|
id += (byte - 26).toString(36).toUpperCase()
|
||||||
|
} else if (byte < 63) {
|
||||||
|
id += '_'
|
||||||
|
} else {
|
||||||
|
id += '-'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
export { nanoid, customAlphabet, random }
|
35
site/node_modules/nanoid/async/index.cjs
generated
vendored
Normal file
35
site/node_modules/nanoid/async/index.cjs
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
let crypto = require('crypto')
|
||||||
|
let { urlAlphabet } = require('../url-alphabet/index.cjs')
|
||||||
|
let random = bytes =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err)
|
||||||
|
} else {
|
||||||
|
resolve(buf)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
|
||||||
|
let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
let tick = (id, size = defaultSize) =>
|
||||||
|
random(step).then(bytes => {
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
return tick(id, size)
|
||||||
|
})
|
||||||
|
return size => tick('', size)
|
||||||
|
}
|
||||||
|
let nanoid = (size = 21) =>
|
||||||
|
random(size).then(bytes => {
|
||||||
|
let id = ''
|
||||||
|
while (size--) {
|
||||||
|
id += urlAlphabet[bytes[size] & 63]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
})
|
||||||
|
module.exports = { nanoid, customAlphabet, random }
|
56
site/node_modules/nanoid/async/index.d.ts
generated
vendored
Normal file
56
site/node_modules/nanoid/async/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/**
|
||||||
|
* Generate secure URL-friendly unique ID. The non-blocking version.
|
||||||
|
*
|
||||||
|
* By default, the ID will have 21 symbols to have a collision probability
|
||||||
|
* similar to UUID v4.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { nanoid } from 'nanoid/async'
|
||||||
|
* nanoid().then(id => {
|
||||||
|
* model.id = id
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param size Size of the ID. The default size is 21.
|
||||||
|
* @returns A promise with a random string.
|
||||||
|
*/
|
||||||
|
export function nanoid(size?: number): Promise<string>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A low-level function.
|
||||||
|
* Generate secure unique ID with custom alphabet. The non-blocking version.
|
||||||
|
*
|
||||||
|
* Alphabet must contain 256 symbols or less. Otherwise, the generator
|
||||||
|
* will not be secure.
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate the ID.
|
||||||
|
* @param defaultSize Size of the ID. The default size is 21.
|
||||||
|
* @returns A function that returns a promise with a random string.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customAlphabet } from 'nanoid/async'
|
||||||
|
* const nanoid = customAlphabet('0123456789абвгдеё', 5)
|
||||||
|
* nanoid().then(id => {
|
||||||
|
* model.id = id //=> "8ё56а"
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export function customAlphabet(
|
||||||
|
alphabet: string,
|
||||||
|
defaultSize?: number
|
||||||
|
): (size?: number) => Promise<string>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate an array of random bytes collected from hardware noise.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { random } from 'nanoid/async'
|
||||||
|
* random(5).then(bytes => {
|
||||||
|
* bytes //=> [10, 67, 212, 67, 89]
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param bytes Size of the array.
|
||||||
|
* @returns A promise with a random bytes array.
|
||||||
|
*/
|
||||||
|
export function random(bytes: number): Promise<Uint8Array>
|
35
site/node_modules/nanoid/async/index.js
generated
vendored
Normal file
35
site/node_modules/nanoid/async/index.js
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import crypto from 'crypto'
|
||||||
|
import { urlAlphabet } from '../url-alphabet/index.js'
|
||||||
|
let random = bytes =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err)
|
||||||
|
} else {
|
||||||
|
resolve(buf)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
|
||||||
|
let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
let tick = (id, size = defaultSize) =>
|
||||||
|
random(step).then(bytes => {
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
return tick(id, size)
|
||||||
|
})
|
||||||
|
return size => tick('', size)
|
||||||
|
}
|
||||||
|
let nanoid = (size = 21) =>
|
||||||
|
random(size).then(bytes => {
|
||||||
|
let id = ''
|
||||||
|
while (size--) {
|
||||||
|
id += urlAlphabet[bytes[size] & 63]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
})
|
||||||
|
export { nanoid, customAlphabet, random }
|
26
site/node_modules/nanoid/async/index.native.js
generated
vendored
Normal file
26
site/node_modules/nanoid/async/index.native.js
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { getRandomBytesAsync } from 'expo-random'
|
||||||
|
import { urlAlphabet } from '../url-alphabet/index.js'
|
||||||
|
let random = getRandomBytesAsync
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
|
||||||
|
let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
let tick = (id, size = defaultSize) =>
|
||||||
|
random(step).then(bytes => {
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
return tick(id, size)
|
||||||
|
})
|
||||||
|
return size => tick('', size)
|
||||||
|
}
|
||||||
|
let nanoid = (size = 21) =>
|
||||||
|
random(size).then(bytes => {
|
||||||
|
let id = ''
|
||||||
|
while (size--) {
|
||||||
|
id += urlAlphabet[bytes[size] & 63]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
})
|
||||||
|
export { nanoid, customAlphabet, random }
|
12
site/node_modules/nanoid/async/package.json
generated
vendored
Normal file
12
site/node_modules/nanoid/async/package.json
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"type": "module",
|
||||||
|
"main": "index.cjs",
|
||||||
|
"module": "index.js",
|
||||||
|
"react-native": {
|
||||||
|
"./index.js": "./index.native.js"
|
||||||
|
},
|
||||||
|
"browser": {
|
||||||
|
"./index.js": "./index.browser.js",
|
||||||
|
"./index.cjs": "./index.browser.cjs"
|
||||||
|
}
|
||||||
|
}
|
55
site/node_modules/nanoid/bin/nanoid.cjs
generated
vendored
Executable file
55
site/node_modules/nanoid/bin/nanoid.cjs
generated
vendored
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
let { nanoid, customAlphabet } = require('..')
|
||||||
|
|
||||||
|
function print(msg) {
|
||||||
|
process.stdout.write(msg + '\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
function error(msg) {
|
||||||
|
process.stderr.write(msg + '\n')
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.argv.includes('--help') || process.argv.includes('-h')) {
|
||||||
|
print(`
|
||||||
|
Usage
|
||||||
|
$ nanoid [options]
|
||||||
|
|
||||||
|
Options
|
||||||
|
-s, --size Generated ID size
|
||||||
|
-a, --alphabet Alphabet to use
|
||||||
|
-h, --help Show this help
|
||||||
|
|
||||||
|
Examples
|
||||||
|
$ nanoid --s 15
|
||||||
|
S9sBF77U6sDB8Yg
|
||||||
|
|
||||||
|
$ nanoid --size 10 --alphabet abc
|
||||||
|
bcabababca`)
|
||||||
|
process.exit()
|
||||||
|
}
|
||||||
|
|
||||||
|
let alphabet, size
|
||||||
|
for (let i = 2; i < process.argv.length; i++) {
|
||||||
|
let arg = process.argv[i]
|
||||||
|
if (arg === '--size' || arg === '-s') {
|
||||||
|
size = Number(process.argv[i + 1])
|
||||||
|
i += 1
|
||||||
|
if (Number.isNaN(size) || size <= 0) {
|
||||||
|
error('Size must be positive integer')
|
||||||
|
}
|
||||||
|
} else if (arg === '--alphabet' || arg === '-a') {
|
||||||
|
alphabet = process.argv[i + 1]
|
||||||
|
i += 1
|
||||||
|
} else {
|
||||||
|
error('Unknown argument ' + arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (alphabet) {
|
||||||
|
let customNanoid = customAlphabet(alphabet, size)
|
||||||
|
print(customNanoid())
|
||||||
|
} else {
|
||||||
|
print(nanoid(size))
|
||||||
|
}
|
34
site/node_modules/nanoid/index.browser.cjs
generated
vendored
Normal file
34
site/node_modules/nanoid/index.browser.cjs
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
let { urlAlphabet } = require('./url-alphabet/index.cjs')
|
||||||
|
let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))
|
||||||
|
let customRandom = (alphabet, defaultSize, getRandom) => {
|
||||||
|
let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
|
||||||
|
let step = -~((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = getRandom(step)
|
||||||
|
let j = step
|
||||||
|
while (j--) {
|
||||||
|
id += alphabet[bytes[j] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let customAlphabet = (alphabet, size = 21) =>
|
||||||
|
customRandom(alphabet, size, random)
|
||||||
|
let nanoid = (size = 21) =>
|
||||||
|
crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
|
||||||
|
byte &= 63
|
||||||
|
if (byte < 36) {
|
||||||
|
id += byte.toString(36)
|
||||||
|
} else if (byte < 62) {
|
||||||
|
id += (byte - 26).toString(36).toUpperCase()
|
||||||
|
} else if (byte > 62) {
|
||||||
|
id += '-'
|
||||||
|
} else {
|
||||||
|
id += '_'
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}, '')
|
||||||
|
module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random }
|
34
site/node_modules/nanoid/index.browser.js
generated
vendored
Normal file
34
site/node_modules/nanoid/index.browser.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import { urlAlphabet } from './url-alphabet/index.js'
|
||||||
|
let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))
|
||||||
|
let customRandom = (alphabet, defaultSize, getRandom) => {
|
||||||
|
let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1
|
||||||
|
let step = -~((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = getRandom(step)
|
||||||
|
let j = step
|
||||||
|
while (j--) {
|
||||||
|
id += alphabet[bytes[j] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let customAlphabet = (alphabet, size = 21) =>
|
||||||
|
customRandom(alphabet, size, random)
|
||||||
|
let nanoid = (size = 21) =>
|
||||||
|
crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
|
||||||
|
byte &= 63
|
||||||
|
if (byte < 36) {
|
||||||
|
id += byte.toString(36)
|
||||||
|
} else if (byte < 62) {
|
||||||
|
id += (byte - 26).toString(36).toUpperCase()
|
||||||
|
} else if (byte > 62) {
|
||||||
|
id += '-'
|
||||||
|
} else {
|
||||||
|
id += '_'
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}, '')
|
||||||
|
export { nanoid, customAlphabet, customRandom, urlAlphabet, random }
|
45
site/node_modules/nanoid/index.cjs
generated
vendored
Normal file
45
site/node_modules/nanoid/index.cjs
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
let crypto = require('crypto')
|
||||||
|
let { urlAlphabet } = require('./url-alphabet/index.cjs')
|
||||||
|
const POOL_SIZE_MULTIPLIER = 128
|
||||||
|
let pool, poolOffset
|
||||||
|
let fillPool = bytes => {
|
||||||
|
if (!pool || pool.length < bytes) {
|
||||||
|
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)
|
||||||
|
crypto.randomFillSync(pool)
|
||||||
|
poolOffset = 0
|
||||||
|
} else if (poolOffset + bytes > pool.length) {
|
||||||
|
crypto.randomFillSync(pool)
|
||||||
|
poolOffset = 0
|
||||||
|
}
|
||||||
|
poolOffset += bytes
|
||||||
|
}
|
||||||
|
let random = bytes => {
|
||||||
|
fillPool((bytes -= 0))
|
||||||
|
return pool.subarray(poolOffset - bytes, poolOffset)
|
||||||
|
}
|
||||||
|
let customRandom = (alphabet, defaultSize, getRandom) => {
|
||||||
|
let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
|
||||||
|
let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = getRandom(step)
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let customAlphabet = (alphabet, size = 21) =>
|
||||||
|
customRandom(alphabet, size, random)
|
||||||
|
let nanoid = (size = 21) => {
|
||||||
|
fillPool((size -= 0))
|
||||||
|
let id = ''
|
||||||
|
for (let i = poolOffset - size; i < poolOffset; i++) {
|
||||||
|
id += urlAlphabet[pool[i] & 63]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random }
|
91
site/node_modules/nanoid/index.d.cts
generated
vendored
Normal file
91
site/node_modules/nanoid/index.d.cts
generated
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/**
|
||||||
|
* Generate secure URL-friendly unique ID.
|
||||||
|
*
|
||||||
|
* By default, the ID will have 21 symbols to have a collision probability
|
||||||
|
* similar to UUID v4.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { nanoid } from 'nanoid'
|
||||||
|
* model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param size Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string.
|
||||||
|
*/
|
||||||
|
export function nanoid(size?: number): string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate secure unique ID with custom alphabet.
|
||||||
|
*
|
||||||
|
* Alphabet must contain 256 symbols or less. Otherwise, the generator
|
||||||
|
* will not be secure.
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate the ID.
|
||||||
|
* @param defaultSize Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string generator.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const { customAlphabet } = require('nanoid')
|
||||||
|
* const nanoid = customAlphabet('0123456789абвгдеё', 5)
|
||||||
|
* nanoid() //=> "8ё56а"
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export function customAlphabet(
|
||||||
|
alphabet: string,
|
||||||
|
defaultSize?: number
|
||||||
|
): (size?: number) => string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate unique ID with custom random generator and alphabet.
|
||||||
|
*
|
||||||
|
* Alphabet must contain 256 symbols or less. Otherwise, the generator
|
||||||
|
* will not be secure.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customRandom } from 'nanoid/format'
|
||||||
|
*
|
||||||
|
* const nanoid = customRandom('abcdef', 5, size => {
|
||||||
|
* const random = []
|
||||||
|
* for (let i = 0; i < size; i++) {
|
||||||
|
* random.push(randomByte())
|
||||||
|
* }
|
||||||
|
* return random
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* nanoid() //=> "fbaef"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate a random string.
|
||||||
|
* @param size Size of the random string.
|
||||||
|
* @param random A random bytes generator.
|
||||||
|
* @returns A random string generator.
|
||||||
|
*/
|
||||||
|
export function customRandom(
|
||||||
|
alphabet: string,
|
||||||
|
size: number,
|
||||||
|
random: (bytes: number) => Uint8Array
|
||||||
|
): () => string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL safe symbols.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { urlAlphabet } from 'nanoid'
|
||||||
|
* const nanoid = customAlphabet(urlAlphabet, 10)
|
||||||
|
* nanoid() //=> "Uakgb_J5m9"
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export const urlAlphabet: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate an array of random bytes collected from hardware noise.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customRandom, random } from 'nanoid'
|
||||||
|
* const nanoid = customRandom("abcdef", 5, random)
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param bytes Size of the array.
|
||||||
|
* @returns An array of random bytes.
|
||||||
|
*/
|
||||||
|
export function random(bytes: number): Uint8Array
|
91
site/node_modules/nanoid/index.d.ts
generated
vendored
Normal file
91
site/node_modules/nanoid/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/**
|
||||||
|
* Generate secure URL-friendly unique ID.
|
||||||
|
*
|
||||||
|
* By default, the ID will have 21 symbols to have a collision probability
|
||||||
|
* similar to UUID v4.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { nanoid } from 'nanoid'
|
||||||
|
* model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param size Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string.
|
||||||
|
*/
|
||||||
|
export function nanoid(size?: number): string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate secure unique ID with custom alphabet.
|
||||||
|
*
|
||||||
|
* Alphabet must contain 256 symbols or less. Otherwise, the generator
|
||||||
|
* will not be secure.
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate the ID.
|
||||||
|
* @param defaultSize Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string generator.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const { customAlphabet } = require('nanoid')
|
||||||
|
* const nanoid = customAlphabet('0123456789абвгдеё', 5)
|
||||||
|
* nanoid() //=> "8ё56а"
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export function customAlphabet(
|
||||||
|
alphabet: string,
|
||||||
|
defaultSize?: number
|
||||||
|
): (size?: number) => string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate unique ID with custom random generator and alphabet.
|
||||||
|
*
|
||||||
|
* Alphabet must contain 256 symbols or less. Otherwise, the generator
|
||||||
|
* will not be secure.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customRandom } from 'nanoid/format'
|
||||||
|
*
|
||||||
|
* const nanoid = customRandom('abcdef', 5, size => {
|
||||||
|
* const random = []
|
||||||
|
* for (let i = 0; i < size; i++) {
|
||||||
|
* random.push(randomByte())
|
||||||
|
* }
|
||||||
|
* return random
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* nanoid() //=> "fbaef"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate a random string.
|
||||||
|
* @param size Size of the random string.
|
||||||
|
* @param random A random bytes generator.
|
||||||
|
* @returns A random string generator.
|
||||||
|
*/
|
||||||
|
export function customRandom(
|
||||||
|
alphabet: string,
|
||||||
|
size: number,
|
||||||
|
random: (bytes: number) => Uint8Array
|
||||||
|
): () => string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL safe symbols.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { urlAlphabet } from 'nanoid'
|
||||||
|
* const nanoid = customAlphabet(urlAlphabet, 10)
|
||||||
|
* nanoid() //=> "Uakgb_J5m9"
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export const urlAlphabet: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate an array of random bytes collected from hardware noise.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customRandom, random } from 'nanoid'
|
||||||
|
* const nanoid = customRandom("abcdef", 5, random)
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param bytes Size of the array.
|
||||||
|
* @returns An array of random bytes.
|
||||||
|
*/
|
||||||
|
export function random(bytes: number): Uint8Array
|
45
site/node_modules/nanoid/index.js
generated
vendored
Normal file
45
site/node_modules/nanoid/index.js
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import crypto from 'crypto'
|
||||||
|
import { urlAlphabet } from './url-alphabet/index.js'
|
||||||
|
const POOL_SIZE_MULTIPLIER = 128
|
||||||
|
let pool, poolOffset
|
||||||
|
let fillPool = bytes => {
|
||||||
|
if (!pool || pool.length < bytes) {
|
||||||
|
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)
|
||||||
|
crypto.randomFillSync(pool)
|
||||||
|
poolOffset = 0
|
||||||
|
} else if (poolOffset + bytes > pool.length) {
|
||||||
|
crypto.randomFillSync(pool)
|
||||||
|
poolOffset = 0
|
||||||
|
}
|
||||||
|
poolOffset += bytes
|
||||||
|
}
|
||||||
|
let random = bytes => {
|
||||||
|
fillPool((bytes -= 0))
|
||||||
|
return pool.subarray(poolOffset - bytes, poolOffset)
|
||||||
|
}
|
||||||
|
let customRandom = (alphabet, defaultSize, getRandom) => {
|
||||||
|
let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1
|
||||||
|
let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
while (true) {
|
||||||
|
let bytes = getRandom(step)
|
||||||
|
let i = step
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[bytes[i] & mask] || ''
|
||||||
|
if (id.length === size) return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let customAlphabet = (alphabet, size = 21) =>
|
||||||
|
customRandom(alphabet, size, random)
|
||||||
|
let nanoid = (size = 21) => {
|
||||||
|
fillPool((size -= 0))
|
||||||
|
let id = ''
|
||||||
|
for (let i = poolOffset - size; i < poolOffset; i++) {
|
||||||
|
id += urlAlphabet[pool[i] & 63]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
export { nanoid, customAlphabet, customRandom, urlAlphabet, random }
|
1
site/node_modules/nanoid/nanoid.js
generated
vendored
Normal file
1
site/node_modules/nanoid/nanoid.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?"_":"-"),"");
|
21
site/node_modules/nanoid/non-secure/index.cjs
generated
vendored
Normal file
21
site/node_modules/nanoid/non-secure/index.cjs
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
let urlAlphabet =
|
||||||
|
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
let i = size
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[(Math.random() * alphabet.length) | 0]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let nanoid = (size = 21) => {
|
||||||
|
let id = ''
|
||||||
|
let i = size
|
||||||
|
while (i--) {
|
||||||
|
id += urlAlphabet[(Math.random() * 64) | 0]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
module.exports = { nanoid, customAlphabet }
|
33
site/node_modules/nanoid/non-secure/index.d.ts
generated
vendored
Normal file
33
site/node_modules/nanoid/non-secure/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* Generate URL-friendly unique ID. This method uses the non-secure
|
||||||
|
* predictable random generator with bigger collision probability.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { nanoid } from 'nanoid/non-secure'
|
||||||
|
* model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param size Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string.
|
||||||
|
*/
|
||||||
|
export function nanoid(size?: number): string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a unique ID based on a custom alphabet.
|
||||||
|
* This method uses the non-secure predictable random generator
|
||||||
|
* with bigger collision probability.
|
||||||
|
*
|
||||||
|
* @param alphabet Alphabet used to generate the ID.
|
||||||
|
* @param defaultSize Size of the ID. The default size is 21.
|
||||||
|
* @returns A random string generator.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* import { customAlphabet } from 'nanoid/non-secure'
|
||||||
|
* const nanoid = customAlphabet('0123456789абвгдеё', 5)
|
||||||
|
* model.id = //=> "8ё56а"
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export function customAlphabet(
|
||||||
|
alphabet: string,
|
||||||
|
defaultSize?: number
|
||||||
|
): (size?: number) => string
|
21
site/node_modules/nanoid/non-secure/index.js
generated
vendored
Normal file
21
site/node_modules/nanoid/non-secure/index.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
let urlAlphabet =
|
||||||
|
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
|
||||||
|
let customAlphabet = (alphabet, defaultSize = 21) => {
|
||||||
|
return (size = defaultSize) => {
|
||||||
|
let id = ''
|
||||||
|
let i = size
|
||||||
|
while (i--) {
|
||||||
|
id += alphabet[(Math.random() * alphabet.length) | 0]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let nanoid = (size = 21) => {
|
||||||
|
let id = ''
|
||||||
|
let i = size
|
||||||
|
while (i--) {
|
||||||
|
id += urlAlphabet[(Math.random() * 64) | 0]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
export { nanoid, customAlphabet }
|
6
site/node_modules/nanoid/non-secure/package.json
generated
vendored
Normal file
6
site/node_modules/nanoid/non-secure/package.json
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "module",
|
||||||
|
"main": "index.cjs",
|
||||||
|
"module": "index.js",
|
||||||
|
"react-native": "index.js"
|
||||||
|
}
|
88
site/node_modules/nanoid/package.json
generated
vendored
Normal file
88
site/node_modules/nanoid/package.json
generated
vendored
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"name": "nanoid",
|
||||||
|
"version": "3.3.7",
|
||||||
|
"description": "A tiny (116 bytes), secure URL-friendly unique string ID generator",
|
||||||
|
"keywords": [
|
||||||
|
"uuid",
|
||||||
|
"random",
|
||||||
|
"id",
|
||||||
|
"url"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"author": "Andrey Sitnik <andrey@sitnik.ru>",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": "ai/nanoid",
|
||||||
|
"browser": {
|
||||||
|
"./index.js": "./index.browser.js",
|
||||||
|
"./async/index.js": "./async/index.browser.js",
|
||||||
|
"./async/index.cjs": "./async/index.browser.cjs",
|
||||||
|
"./index.cjs": "./index.browser.cjs"
|
||||||
|
},
|
||||||
|
"react-native": "index.js",
|
||||||
|
"bin": "./bin/nanoid.cjs",
|
||||||
|
"sideEffects": false,
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"type": "module",
|
||||||
|
"main": "index.cjs",
|
||||||
|
"module": "index.js",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"browser": "./index.browser.js",
|
||||||
|
"require": {
|
||||||
|
"types": "./index.d.cts",
|
||||||
|
"default": "./index.cjs"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"default": "./index.js"
|
||||||
|
},
|
||||||
|
"default": "./index.js"
|
||||||
|
},
|
||||||
|
"./package.json": "./package.json",
|
||||||
|
"./async/package.json": "./async/package.json",
|
||||||
|
"./async": {
|
||||||
|
"browser": "./async/index.browser.js",
|
||||||
|
"require": {
|
||||||
|
"types": "./index.d.cts",
|
||||||
|
"default": "./async/index.cjs"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"default": "./async/index.js"
|
||||||
|
},
|
||||||
|
"default": "./async/index.js"
|
||||||
|
},
|
||||||
|
"./non-secure/package.json": "./non-secure/package.json",
|
||||||
|
"./non-secure": {
|
||||||
|
"require": {
|
||||||
|
"types": "./index.d.cts",
|
||||||
|
"default": "./non-secure/index.cjs"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"default": "./non-secure/index.js"
|
||||||
|
},
|
||||||
|
"default": "./non-secure/index.js"
|
||||||
|
},
|
||||||
|
"./url-alphabet/package.json": "./url-alphabet/package.json",
|
||||||
|
"./url-alphabet": {
|
||||||
|
"require": {
|
||||||
|
"types": "./index.d.cts",
|
||||||
|
"default": "./url-alphabet/index.cjs"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"default": "./url-alphabet/index.js"
|
||||||
|
},
|
||||||
|
"default": "./url-alphabet/index.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
site/node_modules/nanoid/url-alphabet/index.cjs
generated
vendored
Normal file
3
site/node_modules/nanoid/url-alphabet/index.cjs
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
let urlAlphabet =
|
||||||
|
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
|
||||||
|
module.exports = { urlAlphabet }
|
3
site/node_modules/nanoid/url-alphabet/index.js
generated
vendored
Normal file
3
site/node_modules/nanoid/url-alphabet/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
let urlAlphabet =
|
||||||
|
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
|
||||||
|
export { urlAlphabet }
|
6
site/node_modules/nanoid/url-alphabet/package.json
generated
vendored
Normal file
6
site/node_modules/nanoid/url-alphabet/package.json
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "module",
|
||||||
|
"main": "index.cjs",
|
||||||
|
"module": "index.js",
|
||||||
|
"react-native": "index.js"
|
||||||
|
}
|
15
site/node_modules/picocolors/LICENSE
generated
vendored
Normal file
15
site/node_modules/picocolors/LICENSE
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
ISC License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
|
copyright notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM 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 PERFORMANCE OF THIS SOFTWARE.
|
21
site/node_modules/picocolors/README.md
generated
vendored
Normal file
21
site/node_modules/picocolors/README.md
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# picocolors
|
||||||
|
|
||||||
|
The tiniest and the fastest library for terminal output formatting with ANSI colors.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import pc from "picocolors"
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
pc.green(`How are ${pc.italic(`you`)} doing?`)
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **No dependencies.**
|
||||||
|
- **14 times** smaller and **2 times** faster than chalk.
|
||||||
|
- Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist.
|
||||||
|
- Node.js v6+ & browsers support. Support for both CJS and ESM projects.
|
||||||
|
- TypeScript type declarations included.
|
||||||
|
- [`NO_COLOR`](https://no-color.org/) friendly.
|
||||||
|
|
||||||
|
## Docs
|
||||||
|
Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub.
|
25
site/node_modules/picocolors/package.json
generated
vendored
Normal file
25
site/node_modules/picocolors/package.json
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "picocolors",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"main": "./picocolors.js",
|
||||||
|
"types": "./picocolors.d.ts",
|
||||||
|
"browser": {
|
||||||
|
"./picocolors.js": "./picocolors.browser.js"
|
||||||
|
},
|
||||||
|
"sideEffects": false,
|
||||||
|
"description": "The tiniest and the fastest library for terminal output formatting with ANSI colors",
|
||||||
|
"files": [
|
||||||
|
"picocolors.*",
|
||||||
|
"types.ts"
|
||||||
|
],
|
||||||
|
"keywords": [
|
||||||
|
"terminal",
|
||||||
|
"colors",
|
||||||
|
"formatting",
|
||||||
|
"cli",
|
||||||
|
"console"
|
||||||
|
],
|
||||||
|
"author": "Alexey Raspopov",
|
||||||
|
"repository": "alexeyraspopov/picocolors",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
4
site/node_modules/picocolors/picocolors.browser.js
generated
vendored
Normal file
4
site/node_modules/picocolors/picocolors.browser.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
var x=String;
|
||||||
|
var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};
|
||||||
|
module.exports=create();
|
||||||
|
module.exports.createColors = create;
|
5
site/node_modules/picocolors/picocolors.d.ts
generated
vendored
Normal file
5
site/node_modules/picocolors/picocolors.d.ts
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { Colors } from "./types"
|
||||||
|
|
||||||
|
declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors }
|
||||||
|
|
||||||
|
export = picocolors
|
65
site/node_modules/picocolors/picocolors.js
generated
vendored
Normal file
65
site/node_modules/picocolors/picocolors.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
let argv = process.argv || [],
|
||||||
|
env = process.env
|
||||||
|
let isColorSupported =
|
||||||
|
!("NO_COLOR" in env || argv.includes("--no-color")) &&
|
||||||
|
("FORCE_COLOR" in env ||
|
||||||
|
argv.includes("--color") ||
|
||||||
|
process.platform === "win32" ||
|
||||||
|
(require != null && require("tty").isatty(1) && env.TERM !== "dumb") ||
|
||||||
|
"CI" in env)
|
||||||
|
|
||||||
|
let formatter =
|
||||||
|
(open, close, replace = open) =>
|
||||||
|
input => {
|
||||||
|
let string = "" + input
|
||||||
|
let index = string.indexOf(close, open.length)
|
||||||
|
return ~index
|
||||||
|
? open + replaceClose(string, close, replace, index) + close
|
||||||
|
: open + string + close
|
||||||
|
}
|
||||||
|
|
||||||
|
let replaceClose = (string, close, replace, index) => {
|
||||||
|
let result = ""
|
||||||
|
let cursor = 0
|
||||||
|
do {
|
||||||
|
result += string.substring(cursor, index) + replace
|
||||||
|
cursor = index + close.length
|
||||||
|
index = string.indexOf(close, cursor)
|
||||||
|
} while (~index)
|
||||||
|
return result + string.substring(cursor)
|
||||||
|
}
|
||||||
|
|
||||||
|
let createColors = (enabled = isColorSupported) => {
|
||||||
|
let init = enabled ? formatter : () => String
|
||||||
|
return {
|
||||||
|
isColorSupported: enabled,
|
||||||
|
reset: init("\x1b[0m", "\x1b[0m"),
|
||||||
|
bold: init("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
|
||||||
|
dim: init("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
|
||||||
|
italic: init("\x1b[3m", "\x1b[23m"),
|
||||||
|
underline: init("\x1b[4m", "\x1b[24m"),
|
||||||
|
inverse: init("\x1b[7m", "\x1b[27m"),
|
||||||
|
hidden: init("\x1b[8m", "\x1b[28m"),
|
||||||
|
strikethrough: init("\x1b[9m", "\x1b[29m"),
|
||||||
|
black: init("\x1b[30m", "\x1b[39m"),
|
||||||
|
red: init("\x1b[31m", "\x1b[39m"),
|
||||||
|
green: init("\x1b[32m", "\x1b[39m"),
|
||||||
|
yellow: init("\x1b[33m", "\x1b[39m"),
|
||||||
|
blue: init("\x1b[34m", "\x1b[39m"),
|
||||||
|
magenta: init("\x1b[35m", "\x1b[39m"),
|
||||||
|
cyan: init("\x1b[36m", "\x1b[39m"),
|
||||||
|
white: init("\x1b[37m", "\x1b[39m"),
|
||||||
|
gray: init("\x1b[90m", "\x1b[39m"),
|
||||||
|
bgBlack: init("\x1b[40m", "\x1b[49m"),
|
||||||
|
bgRed: init("\x1b[41m", "\x1b[49m"),
|
||||||
|
bgGreen: init("\x1b[42m", "\x1b[49m"),
|
||||||
|
bgYellow: init("\x1b[43m", "\x1b[49m"),
|
||||||
|
bgBlue: init("\x1b[44m", "\x1b[49m"),
|
||||||
|
bgMagenta: init("\x1b[45m", "\x1b[49m"),
|
||||||
|
bgCyan: init("\x1b[46m", "\x1b[49m"),
|
||||||
|
bgWhite: init("\x1b[47m", "\x1b[49m"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = createColors()
|
||||||
|
module.exports.createColors = createColors
|
30
site/node_modules/picocolors/types.ts
generated
vendored
Normal file
30
site/node_modules/picocolors/types.ts
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
export type Formatter = (input: string | number | null | undefined) => string
|
||||||
|
|
||||||
|
export interface Colors {
|
||||||
|
isColorSupported: boolean
|
||||||
|
reset: Formatter
|
||||||
|
bold: Formatter
|
||||||
|
dim: Formatter
|
||||||
|
italic: Formatter
|
||||||
|
underline: Formatter
|
||||||
|
inverse: Formatter
|
||||||
|
hidden: Formatter
|
||||||
|
strikethrough: Formatter
|
||||||
|
black: Formatter
|
||||||
|
red: Formatter
|
||||||
|
green: Formatter
|
||||||
|
yellow: Formatter
|
||||||
|
blue: Formatter
|
||||||
|
magenta: Formatter
|
||||||
|
cyan: Formatter
|
||||||
|
white: Formatter
|
||||||
|
gray: Formatter
|
||||||
|
bgBlack: Formatter
|
||||||
|
bgRed: Formatter
|
||||||
|
bgGreen: Formatter
|
||||||
|
bgYellow: Formatter
|
||||||
|
bgBlue: Formatter
|
||||||
|
bgMagenta: Formatter
|
||||||
|
bgCyan: Formatter
|
||||||
|
bgWhite: Formatter
|
||||||
|
}
|
20
site/node_modules/postcss/LICENSE
generated
vendored
Normal file
20
site/node_modules/postcss/LICENSE
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
28
site/node_modules/postcss/README.md
generated
vendored
Normal file
28
site/node_modules/postcss/README.md
generated
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# PostCSS
|
||||||
|
|
||||||
|
<img align="right" width="95" height="95"
|
||||||
|
alt="Philosopher’s stone, logo of PostCSS"
|
||||||
|
src="https://postcss.org/logo.svg">
|
||||||
|
|
||||||
|
PostCSS is a tool for transforming styles with JS plugins.
|
||||||
|
These plugins can lint your CSS, support variables and mixins,
|
||||||
|
transpile future CSS syntax, inline images, and more.
|
||||||
|
|
||||||
|
PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba,
|
||||||
|
and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins is one of the most popular CSS tools.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<img src="https://cdn.evilmartians.com/badges/logo-no-label.svg" alt="" width="22" height="16" /> Made at <b><a href="https://evilmartians.com/devtools?utm_source=postcss&utm_campaign=devtools-button&utm_medium=github">Evil Martians</a></b>, product consulting for <b>developer tools</b>.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree
|
||||||
|
[Evil Martians]: https://evilmartians.com/?utm_source=postcss
|
||||||
|
[Autoprefixer]: https://github.com/postcss/autoprefixer
|
||||||
|
[Stylelint]: https://stylelint.io/
|
||||||
|
[plugins]: https://github.com/postcss/postcss#plugins
|
||||||
|
|
||||||
|
|
||||||
|
## Docs
|
||||||
|
Read full docs **[here](https://postcss.org/)**.
|
140
site/node_modules/postcss/lib/at-rule.d.ts
generated
vendored
Normal file
140
site/node_modules/postcss/lib/at-rule.d.ts
generated
vendored
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
import Container, {
|
||||||
|
ContainerProps,
|
||||||
|
ContainerWithChildren
|
||||||
|
} from './container.js'
|
||||||
|
|
||||||
|
declare namespace AtRule {
|
||||||
|
export interface AtRuleRaws extends Record<string, unknown> {
|
||||||
|
/**
|
||||||
|
* The space symbols after the last child of the node to the end of the node.
|
||||||
|
*/
|
||||||
|
after?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The space between the at-rule name and its parameters.
|
||||||
|
*/
|
||||||
|
afterName?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The space symbols before the node. It also stores `*`
|
||||||
|
* and `_` symbols before the declaration (IE hack).
|
||||||
|
*/
|
||||||
|
before?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The symbols between the last parameter and `{` for rules.
|
||||||
|
*/
|
||||||
|
between?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The rule’s selector with comments.
|
||||||
|
*/
|
||||||
|
params?: {
|
||||||
|
raw: string
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains `true` if the last child has an (optional) semicolon.
|
||||||
|
*/
|
||||||
|
semicolon?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AtRuleProps extends ContainerProps {
|
||||||
|
/** Name of the at-rule. */
|
||||||
|
name: string
|
||||||
|
/** Parameters following the name of the at-rule. */
|
||||||
|
params?: number | string
|
||||||
|
/** Information used to generate byte-to-byte equal node string as it was in the origin input. */
|
||||||
|
raws?: AtRuleRaws
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
export { AtRule_ as default }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an at-rule.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* Once (root, { AtRule }) {
|
||||||
|
* let media = new AtRule({ name: 'media', params: 'print' })
|
||||||
|
* media.append(…)
|
||||||
|
* root.append(media)
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* If it’s followed in the CSS by a `{}` block, this node will have
|
||||||
|
* a nodes property representing its children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('@charset "UTF-8"; @media print {}')
|
||||||
|
*
|
||||||
|
* const charset = root.first
|
||||||
|
* charset.type //=> 'atrule'
|
||||||
|
* charset.nodes //=> undefined
|
||||||
|
*
|
||||||
|
* const media = root.last
|
||||||
|
* media.nodes //=> []
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare class AtRule_ extends Container {
|
||||||
|
/**
|
||||||
|
* The at-rule’s name immediately follows the `@`.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('@media print {}')
|
||||||
|
* const media = root.first
|
||||||
|
* media.name //=> 'media'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get name(): string
|
||||||
|
set name(value: string)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array containing the layer’s children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('@layer example { a { color: black } }')
|
||||||
|
* const layer = root.first
|
||||||
|
* layer.nodes.length //=> 1
|
||||||
|
* layer.nodes[0].selector //=> 'a'
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Can be `undefinded` if the at-rule has no body.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('@layer a, b, c;')
|
||||||
|
* const layer = root.first
|
||||||
|
* layer.nodes //=> undefined
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
nodes: Container['nodes']
|
||||||
|
/**
|
||||||
|
* The at-rule’s parameters, the values that follow the at-rule’s name
|
||||||
|
* but precede any `{}` block.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('@media print, screen {}')
|
||||||
|
* const media = root.first
|
||||||
|
* media.params //=> 'print, screen'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get params(): string
|
||||||
|
set params(value: string)
|
||||||
|
parent: ContainerWithChildren | undefined
|
||||||
|
|
||||||
|
raws: AtRule.AtRuleRaws
|
||||||
|
|
||||||
|
type: 'atrule'
|
||||||
|
|
||||||
|
constructor(defaults?: AtRule.AtRuleProps)
|
||||||
|
assign(overrides: AtRule.AtRuleProps | object): this
|
||||||
|
clone(overrides?: Partial<AtRule.AtRuleProps>): AtRule
|
||||||
|
cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): AtRule
|
||||||
|
cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): AtRule
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class AtRule extends AtRule_ {}
|
||||||
|
|
||||||
|
export = AtRule
|
25
site/node_modules/postcss/lib/at-rule.js
generated
vendored
Normal file
25
site/node_modules/postcss/lib/at-rule.js
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
let Container = require('./container')
|
||||||
|
|
||||||
|
class AtRule extends Container {
|
||||||
|
constructor(defaults) {
|
||||||
|
super(defaults)
|
||||||
|
this.type = 'atrule'
|
||||||
|
}
|
||||||
|
|
||||||
|
append(...children) {
|
||||||
|
if (!this.proxyOf.nodes) this.nodes = []
|
||||||
|
return super.append(...children)
|
||||||
|
}
|
||||||
|
|
||||||
|
prepend(...children) {
|
||||||
|
if (!this.proxyOf.nodes) this.nodes = []
|
||||||
|
return super.prepend(...children)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = AtRule
|
||||||
|
AtRule.default = AtRule
|
||||||
|
|
||||||
|
Container.registerAtRule(AtRule)
|
68
site/node_modules/postcss/lib/comment.d.ts
generated
vendored
Normal file
68
site/node_modules/postcss/lib/comment.d.ts
generated
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
import Container from './container.js'
|
||||||
|
import Node, { NodeProps } from './node.js'
|
||||||
|
|
||||||
|
declare namespace Comment {
|
||||||
|
export interface CommentRaws extends Record<string, unknown> {
|
||||||
|
/**
|
||||||
|
* The space symbols before the node.
|
||||||
|
*/
|
||||||
|
before?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The space symbols between `/*` and the comment’s text.
|
||||||
|
*/
|
||||||
|
left?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The space symbols between the comment’s text.
|
||||||
|
*/
|
||||||
|
right?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CommentProps extends NodeProps {
|
||||||
|
/** Information used to generate byte-to-byte equal node string as it was in the origin input. */
|
||||||
|
raws?: CommentRaws
|
||||||
|
/** Content of the comment. */
|
||||||
|
text: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
export { Comment_ as default }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It represents a class that handles
|
||||||
|
* [CSS comments](https://developer.mozilla.org/en-US/docs/Web/CSS/Comments)
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* Once (root, { Comment }) {
|
||||||
|
* const note = new Comment({ text: 'Note: …' })
|
||||||
|
* root.append(note)
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Remember that CSS comments inside selectors, at-rule parameters,
|
||||||
|
* or declaration values will be stored in the `raws` properties
|
||||||
|
* explained above.
|
||||||
|
*/
|
||||||
|
declare class Comment_ extends Node {
|
||||||
|
parent: Container | undefined
|
||||||
|
raws: Comment.CommentRaws
|
||||||
|
/**
|
||||||
|
* The comment's text.
|
||||||
|
*/
|
||||||
|
get text(): string
|
||||||
|
set text(value: string)
|
||||||
|
|
||||||
|
type: 'comment'
|
||||||
|
|
||||||
|
constructor(defaults?: Comment.CommentProps)
|
||||||
|
assign(overrides: Comment.CommentProps | object): this
|
||||||
|
clone(overrides?: Partial<Comment.CommentProps>): Comment
|
||||||
|
cloneAfter(overrides?: Partial<Comment.CommentProps>): Comment
|
||||||
|
cloneBefore(overrides?: Partial<Comment.CommentProps>): Comment
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Comment extends Comment_ {}
|
||||||
|
|
||||||
|
export = Comment
|
13
site/node_modules/postcss/lib/comment.js
generated
vendored
Normal file
13
site/node_modules/postcss/lib/comment.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
let Node = require('./node')
|
||||||
|
|
||||||
|
class Comment extends Node {
|
||||||
|
constructor(defaults) {
|
||||||
|
super(defaults)
|
||||||
|
this.type = 'comment'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Comment
|
||||||
|
Comment.default = Comment
|
490
site/node_modules/postcss/lib/container.d.ts
generated
vendored
Normal file
490
site/node_modules/postcss/lib/container.d.ts
generated
vendored
Normal file
@ -0,0 +1,490 @@
|
|||||||
|
import AtRule from './at-rule.js'
|
||||||
|
import Comment from './comment.js'
|
||||||
|
import Declaration from './declaration.js'
|
||||||
|
import Node, { ChildNode, ChildProps, NodeProps } from './node.js'
|
||||||
|
import Rule from './rule.js'
|
||||||
|
|
||||||
|
declare namespace Container {
|
||||||
|
export class ContainerWithChildren<
|
||||||
|
Child extends Node = ChildNode
|
||||||
|
> extends Container_<Child> {
|
||||||
|
nodes: Child[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ValueOptions {
|
||||||
|
/**
|
||||||
|
* String that’s used to narrow down values and speed up the regexp search.
|
||||||
|
*/
|
||||||
|
fast?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array of property names.
|
||||||
|
*/
|
||||||
|
props?: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ContainerProps extends NodeProps {
|
||||||
|
nodes?: (ChildNode | ChildProps)[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
export { Container_ as default }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `Root`, `AtRule`, and `Rule` container nodes
|
||||||
|
* inherit some common methods to help work with their children.
|
||||||
|
*
|
||||||
|
* Note that all containers can store any content. If you write a rule inside
|
||||||
|
* a rule, PostCSS will parse it.
|
||||||
|
*/
|
||||||
|
declare abstract class Container_<Child extends Node = ChildNode> extends Node {
|
||||||
|
/**
|
||||||
|
* An array containing the container’s children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black }')
|
||||||
|
* root.nodes.length //=> 1
|
||||||
|
* root.nodes[0].selector //=> 'a'
|
||||||
|
* root.nodes[0].nodes[0].prop //=> 'color'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
nodes: Child[] | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts new nodes to the end of the container.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const decl1 = new Declaration({ prop: 'color', value: 'black' })
|
||||||
|
* const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
|
||||||
|
* rule.append(decl1, decl2)
|
||||||
|
*
|
||||||
|
* root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
|
||||||
|
* root.append({ selector: 'a' }) // rule
|
||||||
|
* rule.append({ prop: 'color', value: 'black' }) // declaration
|
||||||
|
* rule.append({ text: 'Comment' }) // comment
|
||||||
|
*
|
||||||
|
* root.append('a {}')
|
||||||
|
* root.first.append('color: black; z-index: 1')
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param nodes New nodes.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
append(
|
||||||
|
...nodes: (
|
||||||
|
| ChildProps
|
||||||
|
| ChildProps[]
|
||||||
|
| Node
|
||||||
|
| Node[]
|
||||||
|
| string
|
||||||
|
| string[]
|
||||||
|
| undefined
|
||||||
|
)[]
|
||||||
|
): this
|
||||||
|
|
||||||
|
assign(overrides: Container.ContainerProps | object): this
|
||||||
|
clone(overrides?: Partial<Container.ContainerProps>): Container<Child>
|
||||||
|
cloneAfter(overrides?: Partial<Container.ContainerProps>): Container<Child>
|
||||||
|
cloneBefore(overrides?: Partial<Container.ContainerProps>): Container<Child>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterates through the container’s immediate children,
|
||||||
|
* calling `callback` for each child.
|
||||||
|
*
|
||||||
|
* Returning `false` in the callback will break iteration.
|
||||||
|
*
|
||||||
|
* This method only iterates through the container’s immediate children.
|
||||||
|
* If you need to recursively iterate through all the container’s descendant
|
||||||
|
* nodes, use `Container#walk`.
|
||||||
|
*
|
||||||
|
* Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe
|
||||||
|
* if you are mutating the array of child nodes during iteration.
|
||||||
|
* PostCSS will adjust the current index to match the mutations.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black; z-index: 1 }')
|
||||||
|
* const rule = root.first
|
||||||
|
*
|
||||||
|
* for (const decl of rule.nodes) {
|
||||||
|
* decl.cloneBefore({ prop: '-webkit-' + decl.prop })
|
||||||
|
* // Cycle will be infinite, because cloneBefore moves the current node
|
||||||
|
* // to the next index
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* rule.each(decl => {
|
||||||
|
* decl.cloneBefore({ prop: '-webkit-' + decl.prop })
|
||||||
|
* // Will be executed only for color and z-index
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
each(
|
||||||
|
callback: (node: Child, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns `true` if callback returns `true`
|
||||||
|
* for all of the container’s children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const noPrefixes = rule.every(i => i.prop[0] !== '-')
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param condition Iterator returns true or false.
|
||||||
|
* @return Is every child pass condition.
|
||||||
|
*/
|
||||||
|
every(
|
||||||
|
condition: (node: Child, index: number, nodes: Child[]) => boolean
|
||||||
|
): boolean
|
||||||
|
/**
|
||||||
|
* Returns a `child`’s index within the `Container#nodes` array.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.index( rule.nodes[2] ) //=> 2
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param child Child of the current container.
|
||||||
|
* @return Child index.
|
||||||
|
*/
|
||||||
|
index(child: Child | number): number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Insert new node after old node within the container.
|
||||||
|
*
|
||||||
|
* @param oldNode Child or child’s index.
|
||||||
|
* @param newNode New node.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
insertAfter(
|
||||||
|
oldNode: Child | number,
|
||||||
|
newNode:
|
||||||
|
| Child
|
||||||
|
| Child[]
|
||||||
|
| ChildProps
|
||||||
|
| ChildProps[]
|
||||||
|
| string
|
||||||
|
| string[]
|
||||||
|
| undefined
|
||||||
|
): this
|
||||||
|
/**
|
||||||
|
* Insert new node before old node within the container.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }))
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param oldNode Child or child’s index.
|
||||||
|
* @param newNode New node.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
insertBefore(
|
||||||
|
oldNode: Child | number,
|
||||||
|
newNode:
|
||||||
|
| Child
|
||||||
|
| Child[]
|
||||||
|
| ChildProps
|
||||||
|
| ChildProps[]
|
||||||
|
| string
|
||||||
|
| string[]
|
||||||
|
| undefined
|
||||||
|
): this
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the container’s descendant nodes, calling callback
|
||||||
|
* for each comment node.
|
||||||
|
*
|
||||||
|
* Like `Container#each`, this method is safe
|
||||||
|
* to use if you are mutating arrays during iteration.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* root.walkComments(comment => {
|
||||||
|
* comment.remove()
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts new nodes to the start of the container.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const decl1 = new Declaration({ prop: 'color', value: 'black' })
|
||||||
|
* const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
|
||||||
|
* rule.prepend(decl1, decl2)
|
||||||
|
*
|
||||||
|
* root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
|
||||||
|
* root.append({ selector: 'a' }) // rule
|
||||||
|
* rule.append({ prop: 'color', value: 'black' }) // declaration
|
||||||
|
* rule.append({ text: 'Comment' }) // comment
|
||||||
|
*
|
||||||
|
* root.append('a {}')
|
||||||
|
* root.first.append('color: black; z-index: 1')
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param nodes New nodes.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
prepend(
|
||||||
|
...nodes: (
|
||||||
|
| ChildProps
|
||||||
|
| ChildProps[]
|
||||||
|
| Node
|
||||||
|
| Node[]
|
||||||
|
| string
|
||||||
|
| string[]
|
||||||
|
| undefined
|
||||||
|
)[]
|
||||||
|
): this
|
||||||
|
/**
|
||||||
|
* Add child to the end of the node.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.push(new Declaration({ prop: 'color', value: 'black' }))
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param child New node.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
push(child: Child): this
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all children from the container
|
||||||
|
* and cleans their parent properties.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.removeAll()
|
||||||
|
* rule.nodes.length //=> 0
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
removeAll(): this
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes node from the container and cleans the parent properties
|
||||||
|
* from the node and its children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.nodes.length //=> 5
|
||||||
|
* rule.removeChild(decl)
|
||||||
|
* rule.nodes.length //=> 4
|
||||||
|
* decl.parent //=> undefined
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param child Child or child’s index.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
removeChild(child: Child | number): this
|
||||||
|
|
||||||
|
replaceValues(
|
||||||
|
pattern: RegExp | string,
|
||||||
|
replaced: { (substring: string, ...args: any[]): string } | string
|
||||||
|
): this
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Passes all declaration values within the container that match pattern
|
||||||
|
* through callback, replacing those values with the returned result
|
||||||
|
* of callback.
|
||||||
|
*
|
||||||
|
* This method is useful if you are using a custom unit or function
|
||||||
|
* and need to iterate through all values.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* root.replaceValues(/\d+rem/, { fast: 'rem' }, string => {
|
||||||
|
* return 15 * parseInt(string) + 'px'
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param pattern Replace pattern.
|
||||||
|
* @param {object} opts Options to speed up the search.
|
||||||
|
* @param callback String to replace pattern or callback
|
||||||
|
* that returns a new value. The callback
|
||||||
|
* will receive the same arguments
|
||||||
|
* as those passed to a function parameter
|
||||||
|
* of `String#replace`.
|
||||||
|
* @return This node for methods chain.
|
||||||
|
*/
|
||||||
|
replaceValues(
|
||||||
|
pattern: RegExp | string,
|
||||||
|
options: Container.ValueOptions,
|
||||||
|
replaced: { (substring: string, ...args: any[]): string } | string
|
||||||
|
): this
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns `true` if callback returns `true` for (at least) one
|
||||||
|
* of the container’s children.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const hasPrefix = rule.some(i => i.prop[0] === '-')
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param condition Iterator returns true or false.
|
||||||
|
* @return Is some child pass condition.
|
||||||
|
*/
|
||||||
|
some(
|
||||||
|
condition: (node: Child, index: number, nodes: Child[]) => boolean
|
||||||
|
): boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the container’s descendant nodes, calling callback
|
||||||
|
* for each node.
|
||||||
|
*
|
||||||
|
* Like container.each(), this method is safe to use
|
||||||
|
* if you are mutating arrays during iteration.
|
||||||
|
*
|
||||||
|
* If you only need to iterate through the container’s immediate children,
|
||||||
|
* use `Container#each`.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* root.walk(node => {
|
||||||
|
* // Traverses all descendant nodes.
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
walk(
|
||||||
|
callback: (node: ChildNode, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the container’s descendant nodes, calling callback
|
||||||
|
* for each at-rule node.
|
||||||
|
*
|
||||||
|
* If you pass a filter, iteration will only happen over at-rules
|
||||||
|
* that have matching names.
|
||||||
|
*
|
||||||
|
* Like `Container#each`, this method is safe
|
||||||
|
* to use if you are mutating arrays during iteration.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* root.walkAtRules(rule => {
|
||||||
|
* if (isOld(rule.name)) rule.remove()
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* let first = false
|
||||||
|
* root.walkAtRules('charset', rule => {
|
||||||
|
* if (!first) {
|
||||||
|
* first = true
|
||||||
|
* } else {
|
||||||
|
* rule.remove()
|
||||||
|
* }
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param name String or regular expression to filter at-rules by name.
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
walkAtRules(
|
||||||
|
nameFilter: RegExp | string,
|
||||||
|
callback: (atRule: AtRule, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
walkAtRules(
|
||||||
|
callback: (atRule: AtRule, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
walkComments(
|
||||||
|
callback: (comment: Comment, indexed: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
walkComments(
|
||||||
|
callback: (comment: Comment, indexed: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the container’s descendant nodes, calling callback
|
||||||
|
* for each declaration node.
|
||||||
|
*
|
||||||
|
* If you pass a filter, iteration will only happen over declarations
|
||||||
|
* with matching properties.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* root.walkDecls(decl => {
|
||||||
|
* checkPropertySupport(decl.prop)
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* root.walkDecls('border-radius', decl => {
|
||||||
|
* decl.remove()
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* root.walkDecls(/^background/, decl => {
|
||||||
|
* decl.value = takeFirstColorFromGradient(decl.value)
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Like `Container#each`, this method is safe
|
||||||
|
* to use if you are mutating arrays during iteration.
|
||||||
|
*
|
||||||
|
* @param prop String or regular expression to filter declarations
|
||||||
|
* by property name.
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
walkDecls(
|
||||||
|
propFilter: RegExp | string,
|
||||||
|
callback: (decl: Declaration, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
walkDecls(
|
||||||
|
callback: (decl: Declaration, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the container’s descendant nodes, calling callback
|
||||||
|
* for each rule node.
|
||||||
|
*
|
||||||
|
* If you pass a filter, iteration will only happen over rules
|
||||||
|
* with matching selectors.
|
||||||
|
*
|
||||||
|
* Like `Container#each`, this method is safe
|
||||||
|
* to use if you are mutating arrays during iteration.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const selectors = []
|
||||||
|
* root.walkRules(rule => {
|
||||||
|
* selectors.push(rule.selector)
|
||||||
|
* })
|
||||||
|
* console.log(`Your CSS uses ${ selectors.length } selectors`)
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param selector String or regular expression to filter rules by selector.
|
||||||
|
* @param callback Iterator receives each node and index.
|
||||||
|
* @return Returns `false` if iteration was broke.
|
||||||
|
*/
|
||||||
|
walkRules(
|
||||||
|
selectorFilter: RegExp | string,
|
||||||
|
callback: (rule: Rule, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
walkRules(
|
||||||
|
callback: (rule: Rule, index: number) => false | void
|
||||||
|
): false | undefined
|
||||||
|
/**
|
||||||
|
* The container’s first child.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.first === rules.nodes[0]
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get first(): Child | undefined
|
||||||
|
/**
|
||||||
|
* The container’s last child.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* rule.last === rule.nodes[rule.nodes.length - 1]
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get last(): Child | undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Container<
|
||||||
|
Child extends Node = ChildNode
|
||||||
|
> extends Container_<Child> {}
|
||||||
|
|
||||||
|
export = Container
|
445
site/node_modules/postcss/lib/container.js
generated
vendored
Normal file
445
site/node_modules/postcss/lib/container.js
generated
vendored
Normal file
@ -0,0 +1,445 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
let { isClean, my } = require('./symbols')
|
||||||
|
let Declaration = require('./declaration')
|
||||||
|
let Comment = require('./comment')
|
||||||
|
let Node = require('./node')
|
||||||
|
|
||||||
|
let parse, Rule, AtRule, Root
|
||||||
|
|
||||||
|
function cleanSource(nodes) {
|
||||||
|
return nodes.map(i => {
|
||||||
|
if (i.nodes) i.nodes = cleanSource(i.nodes)
|
||||||
|
delete i.source
|
||||||
|
return i
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function markTreeDirty(node) {
|
||||||
|
node[isClean] = false
|
||||||
|
if (node.proxyOf.nodes) {
|
||||||
|
for (let i of node.proxyOf.nodes) {
|
||||||
|
markTreeDirty(i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Container extends Node {
|
||||||
|
append(...children) {
|
||||||
|
for (let child of children) {
|
||||||
|
let nodes = this.normalize(child, this.last)
|
||||||
|
for (let node of nodes) this.proxyOf.nodes.push(node)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanRaws(keepBetween) {
|
||||||
|
super.cleanRaws(keepBetween)
|
||||||
|
if (this.nodes) {
|
||||||
|
for (let node of this.nodes) node.cleanRaws(keepBetween)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
each(callback) {
|
||||||
|
if (!this.proxyOf.nodes) return undefined
|
||||||
|
let iterator = this.getIterator()
|
||||||
|
|
||||||
|
let index, result
|
||||||
|
while (this.indexes[iterator] < this.proxyOf.nodes.length) {
|
||||||
|
index = this.indexes[iterator]
|
||||||
|
result = callback(this.proxyOf.nodes[index], index)
|
||||||
|
if (result === false) break
|
||||||
|
|
||||||
|
this.indexes[iterator] += 1
|
||||||
|
}
|
||||||
|
|
||||||
|
delete this.indexes[iterator]
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
every(condition) {
|
||||||
|
return this.nodes.every(condition)
|
||||||
|
}
|
||||||
|
|
||||||
|
getIterator() {
|
||||||
|
if (!this.lastEach) this.lastEach = 0
|
||||||
|
if (!this.indexes) this.indexes = {}
|
||||||
|
|
||||||
|
this.lastEach += 1
|
||||||
|
let iterator = this.lastEach
|
||||||
|
this.indexes[iterator] = 0
|
||||||
|
|
||||||
|
return iterator
|
||||||
|
}
|
||||||
|
|
||||||
|
getProxyProcessor() {
|
||||||
|
return {
|
||||||
|
get(node, prop) {
|
||||||
|
if (prop === 'proxyOf') {
|
||||||
|
return node
|
||||||
|
} else if (!node[prop]) {
|
||||||
|
return node[prop]
|
||||||
|
} else if (
|
||||||
|
prop === 'each' ||
|
||||||
|
(typeof prop === 'string' && prop.startsWith('walk'))
|
||||||
|
) {
|
||||||
|
return (...args) => {
|
||||||
|
return node[prop](
|
||||||
|
...args.map(i => {
|
||||||
|
if (typeof i === 'function') {
|
||||||
|
return (child, index) => i(child.toProxy(), index)
|
||||||
|
} else {
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else if (prop === 'every' || prop === 'some') {
|
||||||
|
return cb => {
|
||||||
|
return node[prop]((child, ...other) =>
|
||||||
|
cb(child.toProxy(), ...other)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else if (prop === 'root') {
|
||||||
|
return () => node.root().toProxy()
|
||||||
|
} else if (prop === 'nodes') {
|
||||||
|
return node.nodes.map(i => i.toProxy())
|
||||||
|
} else if (prop === 'first' || prop === 'last') {
|
||||||
|
return node[prop].toProxy()
|
||||||
|
} else {
|
||||||
|
return node[prop]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
set(node, prop, value) {
|
||||||
|
if (node[prop] === value) return true
|
||||||
|
node[prop] = value
|
||||||
|
if (prop === 'name' || prop === 'params' || prop === 'selector') {
|
||||||
|
node.markDirty()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
index(child) {
|
||||||
|
if (typeof child === 'number') return child
|
||||||
|
if (child.proxyOf) child = child.proxyOf
|
||||||
|
return this.proxyOf.nodes.indexOf(child)
|
||||||
|
}
|
||||||
|
|
||||||
|
insertAfter(exist, add) {
|
||||||
|
let existIndex = this.index(exist)
|
||||||
|
let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()
|
||||||
|
existIndex = this.index(exist)
|
||||||
|
for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)
|
||||||
|
|
||||||
|
let index
|
||||||
|
for (let id in this.indexes) {
|
||||||
|
index = this.indexes[id]
|
||||||
|
if (existIndex < index) {
|
||||||
|
this.indexes[id] = index + nodes.length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
insertBefore(exist, add) {
|
||||||
|
let existIndex = this.index(exist)
|
||||||
|
let type = existIndex === 0 ? 'prepend' : false
|
||||||
|
let nodes = this.normalize(
|
||||||
|
add,
|
||||||
|
this.proxyOf.nodes[existIndex],
|
||||||
|
type
|
||||||
|
).reverse()
|
||||||
|
existIndex = this.index(exist)
|
||||||
|
for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)
|
||||||
|
|
||||||
|
let index
|
||||||
|
for (let id in this.indexes) {
|
||||||
|
index = this.indexes[id]
|
||||||
|
if (existIndex <= index) {
|
||||||
|
this.indexes[id] = index + nodes.length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
normalize(nodes, sample) {
|
||||||
|
if (typeof nodes === 'string') {
|
||||||
|
nodes = cleanSource(parse(nodes).nodes)
|
||||||
|
} else if (typeof nodes === 'undefined') {
|
||||||
|
nodes = []
|
||||||
|
} else if (Array.isArray(nodes)) {
|
||||||
|
nodes = nodes.slice(0)
|
||||||
|
for (let i of nodes) {
|
||||||
|
if (i.parent) i.parent.removeChild(i, 'ignore')
|
||||||
|
}
|
||||||
|
} else if (nodes.type === 'root' && this.type !== 'document') {
|
||||||
|
nodes = nodes.nodes.slice(0)
|
||||||
|
for (let i of nodes) {
|
||||||
|
if (i.parent) i.parent.removeChild(i, 'ignore')
|
||||||
|
}
|
||||||
|
} else if (nodes.type) {
|
||||||
|
nodes = [nodes]
|
||||||
|
} else if (nodes.prop) {
|
||||||
|
if (typeof nodes.value === 'undefined') {
|
||||||
|
throw new Error('Value field is missed in node creation')
|
||||||
|
} else if (typeof nodes.value !== 'string') {
|
||||||
|
nodes.value = String(nodes.value)
|
||||||
|
}
|
||||||
|
nodes = [new Declaration(nodes)]
|
||||||
|
} else if (nodes.selector) {
|
||||||
|
nodes = [new Rule(nodes)]
|
||||||
|
} else if (nodes.name) {
|
||||||
|
nodes = [new AtRule(nodes)]
|
||||||
|
} else if (nodes.text) {
|
||||||
|
nodes = [new Comment(nodes)]
|
||||||
|
} else {
|
||||||
|
throw new Error('Unknown node type in node creation')
|
||||||
|
}
|
||||||
|
|
||||||
|
let processed = nodes.map(i => {
|
||||||
|
/* c8 ignore next */
|
||||||
|
if (!i[my]) Container.rebuild(i)
|
||||||
|
i = i.proxyOf
|
||||||
|
if (i.parent) i.parent.removeChild(i)
|
||||||
|
if (i[isClean]) markTreeDirty(i)
|
||||||
|
if (typeof i.raws.before === 'undefined') {
|
||||||
|
if (sample && typeof sample.raws.before !== 'undefined') {
|
||||||
|
i.raws.before = sample.raws.before.replace(/\S/g, '')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i.parent = this.proxyOf
|
||||||
|
return i
|
||||||
|
})
|
||||||
|
|
||||||
|
return processed
|
||||||
|
}
|
||||||
|
|
||||||
|
prepend(...children) {
|
||||||
|
children = children.reverse()
|
||||||
|
for (let child of children) {
|
||||||
|
let nodes = this.normalize(child, this.first, 'prepend').reverse()
|
||||||
|
for (let node of nodes) this.proxyOf.nodes.unshift(node)
|
||||||
|
for (let id in this.indexes) {
|
||||||
|
this.indexes[id] = this.indexes[id] + nodes.length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
push(child) {
|
||||||
|
child.parent = this
|
||||||
|
this.proxyOf.nodes.push(child)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
removeAll() {
|
||||||
|
for (let node of this.proxyOf.nodes) node.parent = undefined
|
||||||
|
this.proxyOf.nodes = []
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
removeChild(child) {
|
||||||
|
child = this.index(child)
|
||||||
|
this.proxyOf.nodes[child].parent = undefined
|
||||||
|
this.proxyOf.nodes.splice(child, 1)
|
||||||
|
|
||||||
|
let index
|
||||||
|
for (let id in this.indexes) {
|
||||||
|
index = this.indexes[id]
|
||||||
|
if (index >= child) {
|
||||||
|
this.indexes[id] = index - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
replaceValues(pattern, opts, callback) {
|
||||||
|
if (!callback) {
|
||||||
|
callback = opts
|
||||||
|
opts = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.walkDecls(decl => {
|
||||||
|
if (opts.props && !opts.props.includes(decl.prop)) return
|
||||||
|
if (opts.fast && !decl.value.includes(opts.fast)) return
|
||||||
|
|
||||||
|
decl.value = decl.value.replace(pattern, callback)
|
||||||
|
})
|
||||||
|
|
||||||
|
this.markDirty()
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
some(condition) {
|
||||||
|
return this.nodes.some(condition)
|
||||||
|
}
|
||||||
|
|
||||||
|
walk(callback) {
|
||||||
|
return this.each((child, i) => {
|
||||||
|
let result
|
||||||
|
try {
|
||||||
|
result = callback(child, i)
|
||||||
|
} catch (e) {
|
||||||
|
throw child.addToError(e)
|
||||||
|
}
|
||||||
|
if (result !== false && child.walk) {
|
||||||
|
result = child.walk(callback)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
walkAtRules(name, callback) {
|
||||||
|
if (!callback) {
|
||||||
|
callback = name
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'atrule') {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (name instanceof RegExp) {
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'atrule' && name.test(child.name)) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'atrule' && child.name === name) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
walkComments(callback) {
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'comment') {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
walkDecls(prop, callback) {
|
||||||
|
if (!callback) {
|
||||||
|
callback = prop
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'decl') {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (prop instanceof RegExp) {
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'decl' && prop.test(child.prop)) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'decl' && child.prop === prop) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
walkRules(selector, callback) {
|
||||||
|
if (!callback) {
|
||||||
|
callback = selector
|
||||||
|
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'rule') {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (selector instanceof RegExp) {
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'rule' && selector.test(child.selector)) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return this.walk((child, i) => {
|
||||||
|
if (child.type === 'rule' && child.selector === selector) {
|
||||||
|
return callback(child, i)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
get first() {
|
||||||
|
if (!this.proxyOf.nodes) return undefined
|
||||||
|
return this.proxyOf.nodes[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
get last() {
|
||||||
|
if (!this.proxyOf.nodes) return undefined
|
||||||
|
return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Container.registerParse = dependant => {
|
||||||
|
parse = dependant
|
||||||
|
}
|
||||||
|
|
||||||
|
Container.registerRule = dependant => {
|
||||||
|
Rule = dependant
|
||||||
|
}
|
||||||
|
|
||||||
|
Container.registerAtRule = dependant => {
|
||||||
|
AtRule = dependant
|
||||||
|
}
|
||||||
|
|
||||||
|
Container.registerRoot = dependant => {
|
||||||
|
Root = dependant
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Container
|
||||||
|
Container.default = Container
|
||||||
|
|
||||||
|
/* c8 ignore start */
|
||||||
|
Container.rebuild = node => {
|
||||||
|
if (node.type === 'atrule') {
|
||||||
|
Object.setPrototypeOf(node, AtRule.prototype)
|
||||||
|
} else if (node.type === 'rule') {
|
||||||
|
Object.setPrototypeOf(node, Rule.prototype)
|
||||||
|
} else if (node.type === 'decl') {
|
||||||
|
Object.setPrototypeOf(node, Declaration.prototype)
|
||||||
|
} else if (node.type === 'comment') {
|
||||||
|
Object.setPrototypeOf(node, Comment.prototype)
|
||||||
|
} else if (node.type === 'root') {
|
||||||
|
Object.setPrototypeOf(node, Root.prototype)
|
||||||
|
}
|
||||||
|
|
||||||
|
node[my] = true
|
||||||
|
|
||||||
|
if (node.nodes) {
|
||||||
|
node.nodes.forEach(child => {
|
||||||
|
Container.rebuild(child)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* c8 ignore stop */
|
248
site/node_modules/postcss/lib/css-syntax-error.d.ts
generated
vendored
Normal file
248
site/node_modules/postcss/lib/css-syntax-error.d.ts
generated
vendored
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
import { FilePosition } from './input.js'
|
||||||
|
|
||||||
|
declare namespace CssSyntaxError {
|
||||||
|
/**
|
||||||
|
* A position that is part of a range.
|
||||||
|
*/
|
||||||
|
export interface RangePosition {
|
||||||
|
/**
|
||||||
|
* The column number in the input.
|
||||||
|
*/
|
||||||
|
column: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The line number in the input.
|
||||||
|
*/
|
||||||
|
line: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
export { CssSyntaxError_ as default }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The CSS parser throws this error for broken CSS.
|
||||||
|
*
|
||||||
|
* Custom parsers can throw this error for broken custom syntax using
|
||||||
|
* the `Node#error` method.
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original error location.
|
||||||
|
* If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,
|
||||||
|
* PostCSS will show the original position in the Sass file.
|
||||||
|
*
|
||||||
|
* If you need the position in the PostCSS input
|
||||||
|
* (e.g., to debug the previous compiler), use `error.input.file`.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* // Raising error from plugin
|
||||||
|
* throw node.error('Unknown variable', { plugin: 'postcss-vars' })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* // Catching and checking syntax error
|
||||||
|
* try {
|
||||||
|
* postcss.parse('a{')
|
||||||
|
* } catch (error) {
|
||||||
|
* if (error.name === 'CssSyntaxError') {
|
||||||
|
* error //=> CssSyntaxError
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare class CssSyntaxError_ extends Error {
|
||||||
|
/**
|
||||||
|
* Source column of the error.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.column //=> 1
|
||||||
|
* error.input.column //=> 4
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original location.
|
||||||
|
* If you need the position in the PostCSS input, use `error.input.column`.
|
||||||
|
*/
|
||||||
|
column?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source column of the error's end, exclusive. Provided if the error pertains
|
||||||
|
* to a range.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.endColumn //=> 1
|
||||||
|
* error.input.endColumn //=> 4
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original location.
|
||||||
|
* If you need the position in the PostCSS input, use `error.input.endColumn`.
|
||||||
|
*/
|
||||||
|
endColumn?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source line of the error's end, exclusive. Provided if the error pertains
|
||||||
|
* to a range.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.endLine //=> 3
|
||||||
|
* error.input.endLine //=> 4
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original location.
|
||||||
|
* If you need the position in the PostCSS input, use `error.input.endLine`.
|
||||||
|
*/
|
||||||
|
endLine?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Absolute path to the broken file.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.file //=> 'a.sass'
|
||||||
|
* error.input.file //=> 'a.css'
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original location.
|
||||||
|
* If you need the position in the PostCSS input, use `error.input.file`.
|
||||||
|
*/
|
||||||
|
file?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Input object with PostCSS internal information
|
||||||
|
* about input file. If input has source map
|
||||||
|
* from previous tool, PostCSS will use origin
|
||||||
|
* (for example, Sass) source. You can use this
|
||||||
|
* object to get PostCSS input source.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.input.file //=> 'a.css'
|
||||||
|
* error.file //=> 'a.sass'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
input?: FilePosition
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source line of the error.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.line //=> 2
|
||||||
|
* error.input.line //=> 4
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* PostCSS will use the input source map to detect the original location.
|
||||||
|
* If you need the position in the PostCSS input, use `error.input.line`.
|
||||||
|
*/
|
||||||
|
line?: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Full error text in the GNU error format
|
||||||
|
* with plugin, file, line and column.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.message //=> 'a.css:1:1: Unclosed block'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
message: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Always equal to `'CssSyntaxError'`. You should always check error type
|
||||||
|
* by `error.name === 'CssSyntaxError'`
|
||||||
|
* instead of `error instanceof CssSyntaxError`,
|
||||||
|
* because npm could have several PostCSS versions.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* if (error.name === 'CssSyntaxError') {
|
||||||
|
* error //=> CssSyntaxError
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
name: 'CssSyntaxError'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin name, if error came from plugin.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.plugin //=> 'postcss-vars'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
plugin?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error message.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.message //=> 'Unclosed block'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
reason: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source code of the broken file.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.source //=> 'a { b {} }'
|
||||||
|
* error.input.source //=> 'a b { }'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
source?: string
|
||||||
|
|
||||||
|
stack: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a CSS syntax error. Can be instantiated for a single position
|
||||||
|
* or for a range.
|
||||||
|
* @param message Error message.
|
||||||
|
* @param lineOrStartPos If for a single position, the line number, or if for
|
||||||
|
* a range, the inclusive start position of the error.
|
||||||
|
* @param columnOrEndPos If for a single position, the column number, or if for
|
||||||
|
* a range, the exclusive end position of the error.
|
||||||
|
* @param source Source code of the broken file.
|
||||||
|
* @param file Absolute path to the broken file.
|
||||||
|
* @param plugin PostCSS plugin name, if error came from plugin.
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
message: string,
|
||||||
|
lineOrStartPos?: CssSyntaxError.RangePosition | number,
|
||||||
|
columnOrEndPos?: CssSyntaxError.RangePosition | number,
|
||||||
|
source?: string,
|
||||||
|
file?: string,
|
||||||
|
plugin?: string
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a few lines of CSS source that caused the error.
|
||||||
|
*
|
||||||
|
* If the CSS has an input source map without `sourceContent`,
|
||||||
|
* this method will return an empty string.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.showSourceCode() //=> " 4 | }
|
||||||
|
* // 5 | a {
|
||||||
|
* // > 6 | bad
|
||||||
|
* // | ^
|
||||||
|
* // 7 | }
|
||||||
|
* // 8 | b {"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param color Whether arrow will be colored red by terminal
|
||||||
|
* color codes. By default, PostCSS will detect
|
||||||
|
* color support by `process.stdout.isTTY`
|
||||||
|
* and `process.env.NODE_DISABLE_COLORS`.
|
||||||
|
* @return Few lines of CSS source that caused the error.
|
||||||
|
*/
|
||||||
|
showSourceCode(color?: boolean): string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns error position, message and source code of the broken part.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block
|
||||||
|
* // > 1 | a {
|
||||||
|
* // | ^"
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @return Error position, message and source code.
|
||||||
|
*/
|
||||||
|
toString(): string
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class CssSyntaxError extends CssSyntaxError_ {}
|
||||||
|
|
||||||
|
export = CssSyntaxError
|
100
site/node_modules/postcss/lib/css-syntax-error.js
generated
vendored
Normal file
100
site/node_modules/postcss/lib/css-syntax-error.js
generated
vendored
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
let pico = require('picocolors')
|
||||||
|
|
||||||
|
let terminalHighlight = require('./terminal-highlight')
|
||||||
|
|
||||||
|
class CssSyntaxError extends Error {
|
||||||
|
constructor(message, line, column, source, file, plugin) {
|
||||||
|
super(message)
|
||||||
|
this.name = 'CssSyntaxError'
|
||||||
|
this.reason = message
|
||||||
|
|
||||||
|
if (file) {
|
||||||
|
this.file = file
|
||||||
|
}
|
||||||
|
if (source) {
|
||||||
|
this.source = source
|
||||||
|
}
|
||||||
|
if (plugin) {
|
||||||
|
this.plugin = plugin
|
||||||
|
}
|
||||||
|
if (typeof line !== 'undefined' && typeof column !== 'undefined') {
|
||||||
|
if (typeof line === 'number') {
|
||||||
|
this.line = line
|
||||||
|
this.column = column
|
||||||
|
} else {
|
||||||
|
this.line = line.line
|
||||||
|
this.column = line.column
|
||||||
|
this.endLine = column.line
|
||||||
|
this.endColumn = column.column
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setMessage()
|
||||||
|
|
||||||
|
if (Error.captureStackTrace) {
|
||||||
|
Error.captureStackTrace(this, CssSyntaxError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setMessage() {
|
||||||
|
this.message = this.plugin ? this.plugin + ': ' : ''
|
||||||
|
this.message += this.file ? this.file : '<css input>'
|
||||||
|
if (typeof this.line !== 'undefined') {
|
||||||
|
this.message += ':' + this.line + ':' + this.column
|
||||||
|
}
|
||||||
|
this.message += ': ' + this.reason
|
||||||
|
}
|
||||||
|
|
||||||
|
showSourceCode(color) {
|
||||||
|
if (!this.source) return ''
|
||||||
|
|
||||||
|
let css = this.source
|
||||||
|
if (color == null) color = pico.isColorSupported
|
||||||
|
if (terminalHighlight) {
|
||||||
|
if (color) css = terminalHighlight(css)
|
||||||
|
}
|
||||||
|
|
||||||
|
let lines = css.split(/\r?\n/)
|
||||||
|
let start = Math.max(this.line - 3, 0)
|
||||||
|
let end = Math.min(this.line + 2, lines.length)
|
||||||
|
|
||||||
|
let maxWidth = String(end).length
|
||||||
|
|
||||||
|
let mark, aside
|
||||||
|
if (color) {
|
||||||
|
let { bold, gray, red } = pico.createColors(true)
|
||||||
|
mark = text => bold(red(text))
|
||||||
|
aside = text => gray(text)
|
||||||
|
} else {
|
||||||
|
mark = aside = str => str
|
||||||
|
}
|
||||||
|
|
||||||
|
return lines
|
||||||
|
.slice(start, end)
|
||||||
|
.map((line, index) => {
|
||||||
|
let number = start + 1 + index
|
||||||
|
let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '
|
||||||
|
if (number === this.line) {
|
||||||
|
let spacing =
|
||||||
|
aside(gutter.replace(/\d/g, ' ')) +
|
||||||
|
line.slice(0, this.column - 1).replace(/[^\t]/g, ' ')
|
||||||
|
return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^')
|
||||||
|
}
|
||||||
|
return ' ' + aside(gutter) + line
|
||||||
|
})
|
||||||
|
.join('\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
toString() {
|
||||||
|
let code = this.showSourceCode()
|
||||||
|
if (code) {
|
||||||
|
code = '\n\n' + code + '\n'
|
||||||
|
}
|
||||||
|
return this.name + ': ' + this.message + code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = CssSyntaxError
|
||||||
|
CssSyntaxError.default = CssSyntaxError
|
152
site/node_modules/postcss/lib/declaration.d.ts
generated
vendored
Normal file
152
site/node_modules/postcss/lib/declaration.d.ts
generated
vendored
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
import { ContainerWithChildren } from './container.js'
|
||||||
|
import Node from './node.js'
|
||||||
|
|
||||||
|
declare namespace Declaration {
|
||||||
|
export interface DeclarationRaws extends Record<string, unknown> {
|
||||||
|
/**
|
||||||
|
* The space symbols before the node. It also stores `*`
|
||||||
|
* and `_` symbols before the declaration (IE hack).
|
||||||
|
*/
|
||||||
|
before?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The symbols between the property and value for declarations.
|
||||||
|
*/
|
||||||
|
between?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The content of the important statement, if it is not just `!important`.
|
||||||
|
*/
|
||||||
|
important?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Declaration value with comments.
|
||||||
|
*/
|
||||||
|
value?: {
|
||||||
|
raw: string
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DeclarationProps {
|
||||||
|
/** Whether the declaration has an `!important` annotation. */
|
||||||
|
important?: boolean
|
||||||
|
/** Name of the declaration. */
|
||||||
|
prop: string
|
||||||
|
/** Information used to generate byte-to-byte equal node string as it was in the origin input. */
|
||||||
|
raws?: DeclarationRaws
|
||||||
|
/** Value of the declaration. */
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
export { Declaration_ as default }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It represents a class that handles
|
||||||
|
* [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations)
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* Once (root, { Declaration }) {
|
||||||
|
* const color = new Declaration({ prop: 'color', value: 'black' })
|
||||||
|
* root.append(color)
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black }')
|
||||||
|
* const decl = root.first?.first
|
||||||
|
*
|
||||||
|
* decl.type //=> 'decl'
|
||||||
|
* decl.toString() //=> ' color: black'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare class Declaration_ extends Node {
|
||||||
|
/**
|
||||||
|
* It represents a specificity of the declaration.
|
||||||
|
*
|
||||||
|
* If true, the CSS declaration will have an
|
||||||
|
* [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important)
|
||||||
|
* specifier.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black !important; color: red }')
|
||||||
|
*
|
||||||
|
* root.first.first.important //=> true
|
||||||
|
* root.first.last.important //=> undefined
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get important(): boolean
|
||||||
|
set important(value: boolean)
|
||||||
|
|
||||||
|
parent: ContainerWithChildren | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The property name for a CSS declaration.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black }')
|
||||||
|
* const decl = root.first.first
|
||||||
|
*
|
||||||
|
* decl.prop //=> 'color'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get prop(): string
|
||||||
|
set prop(value: string)
|
||||||
|
|
||||||
|
raws: Declaration.DeclarationRaws
|
||||||
|
|
||||||
|
type: 'decl'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The property value for a CSS declaration.
|
||||||
|
*
|
||||||
|
* Any CSS comments inside the value string will be filtered out.
|
||||||
|
* CSS comments present in the source value will be available in
|
||||||
|
* the `raws` property.
|
||||||
|
*
|
||||||
|
* Assigning new `value` would ignore the comments in `raws`
|
||||||
|
* property while compiling node to string.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('a { color: black }')
|
||||||
|
* const decl = root.first.first
|
||||||
|
*
|
||||||
|
* decl.value //=> 'black'
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get value(): string
|
||||||
|
set value(value: string)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It represents a getter that returns `true` if a declaration starts with
|
||||||
|
* `--` or `$`, which are used to declare variables in CSS and SASS/SCSS.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse(':root { --one: 1 }')
|
||||||
|
* const one = root.first.first
|
||||||
|
*
|
||||||
|
* one.variable //=> true
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* const root = postcss.parse('$one: 1')
|
||||||
|
* const one = root.first
|
||||||
|
*
|
||||||
|
* one.variable //=> true
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
get variable(): boolean
|
||||||
|
set varaible(value: string)
|
||||||
|
|
||||||
|
constructor(defaults?: Declaration.DeclarationProps)
|
||||||
|
assign(overrides: Declaration.DeclarationProps | object): this
|
||||||
|
clone(overrides?: Partial<Declaration.DeclarationProps>): Declaration
|
||||||
|
cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): Declaration
|
||||||
|
cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): Declaration
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Declaration extends Declaration_ {}
|
||||||
|
|
||||||
|
export = Declaration
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user