Refactor: Implement SmartCube renderer, improve UI styling, and fix gaps
This commit is contained in:
24
.gitignore
vendored
24
.gitignore
vendored
@@ -1,24 +1,2 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
.agent/
|
||||
|
||||
1
dist/assets/Cube.worker-BFklK0dH.js
vendored
Normal file
1
dist/assets/Cube.worker-BFklK0dH.js
vendored
Normal file
File diff suppressed because one or more lines are too long
72
dist/assets/index-D2BDE6sW.js
vendored
Normal file
72
dist/assets/index-D2BDE6sW.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/assets/index-GD5U86y_.css
vendored
Normal file
1
dist/assets/index-GD5U86y_.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-gradient: radial-gradient(circle at center, #2b2b2b 0%, #000000 100%);--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--text-color: #ffffff;--text-strong: #ffffff;--text-secondary: rgba(255, 255, 255, .85);--text-muted: rgba(255, 255, 255, .7);--accent-cyan: #00f2fe;--accent-purple: #4facfe;--primary-accent: #00f2fe;--title-glow: rgba(0, 255, 255, .2);--toggle-btn-border: rgba(255, 255, 255, .2);--panel-bg: rgba(255, 255, 255, .05);--panel-border: rgba(255, 255, 255, .1);--panel-shadow: 0 4px 15px rgba(0, 0, 0, .2)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;min-width:320px;height:100vh;flex-direction:column;background:var(--bg-gradient);background-attachment:fixed;color:var(--text-color);overflow:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{width:100%;height:100vh;display:flex;flex-direction:column;align-items:center}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.smart-cube-container[data-v-dec8c361]{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;overflow:hidden;background:transparent;perspective:1000px}.scene[data-v-dec8c361]{position:relative;width:0;height:0;transform-style:preserve-3d}.cube[data-v-dec8c361]{position:relative;transform-style:preserve-3d}.cubie[data-v-dec8c361]{position:absolute;width:100px;height:100px;margin-left:-50px;margin-top:-50px;transform-style:preserve-3d}.sticker[data-v-dec8c361]{position:absolute;width:98px;height:98px;top:1px;left:1px;border-radius:8px;box-shadow:inset 0 0 10px #00000080;border:1px solid rgba(0,0,0,.2);backface-visibility:hidden}.sticker.up[data-v-dec8c361]{transform:rotateX(90deg) translateZ(50px)}.sticker.down[data-v-dec8c361]{transform:rotateX(-90deg) translateZ(50px)}.sticker.front[data-v-dec8c361]{transform:translateZ(50px)}.sticker.back[data-v-dec8c361]{transform:rotateY(180deg) translateZ(50px)}.sticker.left[data-v-dec8c361]{transform:rotateY(-90deg) translateZ(50px)}.sticker.right[data-v-dec8c361]{transform:rotateY(90deg) translateZ(50px)}.white[data-v-dec8c361]{background:#e0e0e0}.yellow[data-v-dec8c361]{background:#ffd500}.green[data-v-dec8c361]{background:#009e60}.blue[data-v-dec8c361]{background:#0051ba}.orange[data-v-dec8c361]{background:#ff5800}.red[data-v-dec8c361]{background:#c41e3a}.black[data-v-dec8c361]{background:#111;display:none}.navbar[data-v-bc85c255]{display:flex;justify-content:space-between;align-items:center;padding:0 20px;height:50px;width:100%;box-sizing:border-box;position:absolute;top:0;left:0;z-index:100;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:none}.logo-container[data-v-bc85c255]{display:flex;align-items:center;gap:10px}.logo-text[data-v-bc85c255]{font-size:1.2rem;font-weight:700;color:#fff;text-shadow:0 0 10px rgba(0,242,254,.5)}.nav-container[data-v-bc85c255]{display:flex;gap:15px;align-items:center}.nav-btn[data-v-bc85c255]{background:transparent;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;padding:8px;border-radius:50%;transition:all .3s ease}.nav-btn[data-v-bc85c255]:hover{background:#fff3}.app-footer[data-v-651f6ae4]{width:100%;padding:0 20px;height:40px;display:flex;align-items:center;justify-content:center;position:absolute;bottom:0;left:0;z-index:10;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-top:none;box-shadow:none;color:var(--text-muted);box-sizing:border-box}.footer-content[data-v-651f6ae4]{display:flex;align-items:center;gap:10px}p[data-v-651f6ae4]{font-size:.8rem;letter-spacing:.5px;margin:0}.app-content[data-v-c7d7a511]{flex:1;display:flex;justify-content:center;align-items:center;width:100%;padding:0;position:relative;z-index:1;user-select:none;-webkit-user-select:none}
|
||||
55
dist/assets/rubic-cube-6wQ3YEkf.svg
vendored
Normal file
55
dist/assets/rubic-cube-6wQ3YEkf.svg
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<style>
|
||||
.face { stroke: #000; stroke-width: 6; stroke-linejoin: round; }
|
||||
.top { fill: #ffffff; }
|
||||
.left { fill: #009e60; }
|
||||
.right { fill: #c41e3a; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Top Face -->
|
||||
<g class="face top">
|
||||
<path d="M256 80 L309.33 106.67 L256 133.33 L202.67 106.67 Z" />
|
||||
<path d="M309.33 106.67 L362.67 133.33 L309.33 160 L256 133.33 Z" />
|
||||
<path d="M362.67 133.33 L416 160 L362.67 186.67 L309.33 160 Z" />
|
||||
|
||||
<path d="M202.67 106.67 L256 133.33 L202.67 160 L149.33 133.33 Z" />
|
||||
<path d="M256 133.33 L309.33 160 L256 186.67 L202.67 160 Z" />
|
||||
<path d="M309.33 160 L362.67 186.67 L309.33 213.33 L256 186.67 Z" />
|
||||
|
||||
<path d="M149.33 133.33 L202.67 160 L149.33 186.67 L96 160 Z" />
|
||||
<path d="M202.67 160 L256 186.67 L202.67 213.33 L149.33 186.67 Z" />
|
||||
<path d="M256 186.67 L309.33 213.33 L256 240 L202.67 213.33 Z" />
|
||||
</g>
|
||||
|
||||
<!-- Left Face -->
|
||||
<g class="face left">
|
||||
<path d="M96 160 L149.33 186.67 L149.33 248 L96 221.33 Z" />
|
||||
<path d="M149.33 186.67 L202.67 213.33 L202.67 274.67 L149.33 248 Z" />
|
||||
<path d="M202.67 213.33 L256 240 L256 301.33 L202.67 274.67 Z" />
|
||||
|
||||
<path d="M96 221.33 L149.33 248 L149.33 309.33 L96 282.67 Z" />
|
||||
<path d="M149.33 248 L202.67 274.67 L202.67 336 L149.33 309.33 Z" />
|
||||
<path d="M202.67 274.67 L256 301.33 L256 362.67 L202.67 336 Z" />
|
||||
|
||||
<path d="M96 282.67 L149.33 309.33 L149.33 370.67 L96 344 Z" />
|
||||
<path d="M149.33 309.33 L202.67 336 L202.67 397.33 L149.33 370.67 Z" />
|
||||
<path d="M202.67 336 L256 362.67 L256 424 L202.67 397.33 Z" />
|
||||
</g>
|
||||
|
||||
<!-- Right Face -->
|
||||
<g class="face right">
|
||||
<path d="M256 240 L309.33 213.33 L309.33 274.67 L256 301.33 Z" />
|
||||
<path d="M309.33 213.33 L362.67 186.67 L362.67 248 L309.33 274.67 Z" />
|
||||
<path d="M362.67 186.67 L416 160 L416 221.33 L362.67 248 Z" />
|
||||
|
||||
<path d="M256 301.33 L309.33 274.67 L309.33 336 L256 362.67 Z" />
|
||||
<path d="M309.33 274.67 L362.67 248 L362.67 309.33 L309.33 336 Z" />
|
||||
<path d="M362.67 248 L416 221.33 L416 282.67 L362.67 309.33 Z" />
|
||||
|
||||
<path d="M256 362.67 L309.33 336 L309.33 397.33 L256 424 Z" />
|
||||
<path d="M309.33 336 L362.67 309.33 L362.67 370.67 L309.33 397.33 Z" />
|
||||
<path d="M362.67 309.33 L416 282.67 L416 344 L362.67 370.67 Z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
14
dist/index.html
vendored
Normal file
14
dist/index.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/assets/rubic-cube-6wQ3YEkf.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Rubic Cube</title>
|
||||
<script type="module" crossorigin src="/assets/index-D2BDE6sW.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-GD5U86y_.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||
1
node_modules/.bin/esbuild
generated
vendored
Symbolic link
1
node_modules/.bin/esbuild
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../esbuild/bin/esbuild
|
||||
1
node_modules/.bin/nanoid
generated
vendored
Symbolic link
1
node_modules/.bin/nanoid
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../nanoid/bin/nanoid.cjs
|
||||
1
node_modules/.bin/parser
generated
vendored
Symbolic link
1
node_modules/.bin/parser
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../@babel/parser/bin/babel-parser.js
|
||||
1
node_modules/.bin/rollup
generated
vendored
Symbolic link
1
node_modules/.bin/rollup
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../rollup/dist/bin/rollup
|
||||
1
node_modules/.bin/vite
generated
vendored
Symbolic link
1
node_modules/.bin/vite
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../vite/bin/vite.js
|
||||
520
node_modules/.package-lock.json
generated
vendored
Normal file
520
node_modules/.package-lock.json
generated
vendored
Normal file
@@ -0,0 +1,520 @@
|
||||
{
|
||||
"name": "rubic-cube",
|
||||
"version": "0.0.26",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
|
||||
"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.10"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
|
||||
"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.25.9",
|
||||
"@babel/helper-validator-identifier": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.25.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
|
||||
"integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@gkucmierz/utils": {
|
||||
"version": "1.28.3",
|
||||
"resolved": "https://registry.npmjs.org/@gkucmierz/utils/-/utils-1.28.3.tgz",
|
||||
"integrity": "sha512-4qbEGTrHnj0pdeY72MHbuOzM9hugZiyhTMfy7ZijkBQN+fMGVc7OJ7CM02t1KBQDFl2bQNb7AF9KZCm3wn09YQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
|
||||
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz",
|
||||
"integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
|
||||
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.3.tgz",
|
||||
"integrity": "sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vite": "^5.0.0 || ^6.0.0",
|
||||
"vue": "^3.2.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
|
||||
"integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.25.3",
|
||||
"@vue/shared": "3.5.13",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
|
||||
"integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.5.13",
|
||||
"@vue/shared": "3.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
|
||||
"integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.25.3",
|
||||
"@vue/compiler-core": "3.5.13",
|
||||
"@vue/compiler-dom": "3.5.13",
|
||||
"@vue/compiler-ssr": "3.5.13",
|
||||
"@vue/shared": "3.5.13",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.11",
|
||||
"postcss": "^8.4.48",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
|
||||
"integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.13",
|
||||
"@vue/shared": "3.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
|
||||
"integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
|
||||
"integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.5.13",
|
||||
"@vue/shared": "3.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
|
||||
"integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.5.13",
|
||||
"@vue/runtime-core": "3.5.13",
|
||||
"@vue/shared": "3.5.13",
|
||||
"csstype": "^3.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
|
||||
"integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.5.13",
|
||||
"@vue/shared": "3.5.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
|
||||
"integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||
"license": "BSD-2-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.25.1",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
|
||||
"integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.25.1",
|
||||
"@esbuild/android-arm": "0.25.1",
|
||||
"@esbuild/android-arm64": "0.25.1",
|
||||
"@esbuild/android-x64": "0.25.1",
|
||||
"@esbuild/darwin-arm64": "0.25.1",
|
||||
"@esbuild/darwin-x64": "0.25.1",
|
||||
"@esbuild/freebsd-arm64": "0.25.1",
|
||||
"@esbuild/freebsd-x64": "0.25.1",
|
||||
"@esbuild/linux-arm": "0.25.1",
|
||||
"@esbuild/linux-arm64": "0.25.1",
|
||||
"@esbuild/linux-ia32": "0.25.1",
|
||||
"@esbuild/linux-loong64": "0.25.1",
|
||||
"@esbuild/linux-mips64el": "0.25.1",
|
||||
"@esbuild/linux-ppc64": "0.25.1",
|
||||
"@esbuild/linux-riscv64": "0.25.1",
|
||||
"@esbuild/linux-s390x": "0.25.1",
|
||||
"@esbuild/linux-x64": "0.25.1",
|
||||
"@esbuild/netbsd-arm64": "0.25.1",
|
||||
"@esbuild/netbsd-x64": "0.25.1",
|
||||
"@esbuild/openbsd-arm64": "0.25.1",
|
||||
"@esbuild/openbsd-x64": "0.25.1",
|
||||
"@esbuild/sunos-x64": "0.25.1",
|
||||
"@esbuild/win32-arm64": "0.25.1",
|
||||
"@esbuild/win32-ia32": "0.25.1",
|
||||
"@esbuild/win32-x64": "0.25.1"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/lucide-vue-next": {
|
||||
"version": "0.564.0",
|
||||
"resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.564.0.tgz",
|
||||
"integrity": "sha512-Zf51QMPVsRPpAmlVdzzp3vUofPMgxxRd/33O+7YsTCC2Aw9J5bSnJg2ZToMZ7SHkXkeDfvpWRZuRSU0+nK2okQ==",
|
||||
"license": "ISC",
|
||||
"peerDependencies": {
|
||||
"vue": ">=3.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.17",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
|
||||
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/matrix-js": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/matrix-js/-/matrix-js-1.8.0.tgz",
|
||||
"integrity": "sha512-2PHn6veiSf7aS/VBhdgrUVYCjVBkaAwFtIuXUnrHduKbSNpFHYzkdPYPgKI95idqFMKKEieYoMglimo2YGIapQ=="
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.11",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
|
||||
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
||||
"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.1.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
|
||||
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
|
||||
"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.8",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.36.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz",
|
||||
"integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.6"
|
||||
},
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.36.0",
|
||||
"@rollup/rollup-android-arm64": "4.36.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.36.0",
|
||||
"@rollup/rollup-darwin-x64": "4.36.0",
|
||||
"@rollup/rollup-freebsd-arm64": "4.36.0",
|
||||
"@rollup/rollup-freebsd-x64": "4.36.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.36.0",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.36.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.36.0",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.36.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.36.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.36.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.36.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.36.0",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/rubiks-js": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rubiks-js/-/rubiks-js-1.0.0.tgz",
|
||||
"integrity": "sha512-ABxwGyAHaqhUK6R93B+tEDMQ/yVKD390blE5q1RW1vgPjNNwIsCvdOw8TxxQ6DMPgk86Xx/J+qPKH99Xd8Zogg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz",
|
||||
"integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
"postcss": "^8.5.3",
|
||||
"rollup": "^4.30.1"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.0.0 || ^20.0.0 || >=22.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 || >=22.0.0",
|
||||
"jiti": ">=1.21.0",
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"sass-embedded": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.16.0",
|
||||
"tsx": "^4.8.1",
|
||||
"yaml": "^2.4.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"jiti": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"lightningcss": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"sass-embedded": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
},
|
||||
"tsx": {
|
||||
"optional": true
|
||||
},
|
||||
"yaml": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
|
||||
"integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.13",
|
||||
"@vue/compiler-sfc": "3.5.13",
|
||||
"@vue/runtime-dom": "3.5.13",
|
||||
"@vue/server-renderer": "3.5.13",
|
||||
"@vue/shared": "3.5.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
627
node_modules/.vite/deps/@gkucmierz_utils.js
generated
vendored
Normal file
627
node_modules/.vite/deps/@gkucmierz_utils.js
generated
vendored
Normal file
@@ -0,0 +1,627 @@
|
||||
import {
|
||||
mod,
|
||||
modBI
|
||||
} from "./chunk-Y44FVENP.js";
|
||||
import {
|
||||
__privateAdd,
|
||||
__privateGet
|
||||
} from "./chunk-HPRLEMBT.js";
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/SetCnt.mjs
|
||||
var _map;
|
||||
var SetCnt = class {
|
||||
constructor(iter) {
|
||||
__privateAdd(this, _map, /* @__PURE__ */ new Map());
|
||||
for (const el of iter ?? []) {
|
||||
this.add(el);
|
||||
}
|
||||
}
|
||||
add(el) {
|
||||
const cnt = this.cnt(el);
|
||||
__privateGet(this, _map).set(el, cnt + 1);
|
||||
return this;
|
||||
}
|
||||
has(el) {
|
||||
return __privateGet(this, _map).has(el);
|
||||
}
|
||||
delete(el) {
|
||||
if (!__privateGet(this, _map).has(el)) return false;
|
||||
const cnt = this.cnt(el);
|
||||
if (cnt === 1) return this.deleteAll(el);
|
||||
__privateGet(this, _map).set(el, cnt - 1);
|
||||
return true;
|
||||
}
|
||||
deleteAll(el) {
|
||||
__privateGet(this, _map).delete(el);
|
||||
return true;
|
||||
}
|
||||
cnt(el) {
|
||||
return __privateGet(this, _map).get(el) ?? 0;
|
||||
}
|
||||
*[Symbol.iterator]() {
|
||||
for (const el of __privateGet(this, _map)) {
|
||||
yield el;
|
||||
}
|
||||
}
|
||||
entries() {
|
||||
return this;
|
||||
}
|
||||
*values() {
|
||||
for (const [el, cnt] of __privateGet(this, _map)) {
|
||||
yield el;
|
||||
}
|
||||
}
|
||||
*keys() {
|
||||
for (const [el, cnt] of __privateGet(this, _map)) {
|
||||
yield cnt;
|
||||
}
|
||||
}
|
||||
};
|
||||
_map = new WeakMap();
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/base64.mjs
|
||||
var toBase64 = (string) => {
|
||||
const codeUnits = new Uint16Array(string.length);
|
||||
for (let i = 0; i < codeUnits.length; i++) {
|
||||
codeUnits[i] = string.charCodeAt(i);
|
||||
}
|
||||
return btoa(String.fromCharCode(...new Uint8Array(codeUnits.buffer)));
|
||||
};
|
||||
var fromBase64 = (encoded) => {
|
||||
const binary = atob(encoded);
|
||||
const bytes = new Uint8Array(binary.length);
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
bytes[i] = binary.charCodeAt(i);
|
||||
}
|
||||
return String.fromCharCode(...new Uint16Array(bytes.buffer));
|
||||
};
|
||||
var toUrl = {
|
||||
"+": "-",
|
||||
"/": "_"
|
||||
};
|
||||
var toBase64Url = (string) => {
|
||||
return toBase64(string).replace(/[\+\/]/g, (c) => toUrl[c]);
|
||||
};
|
||||
var fromUrl = {
|
||||
"-": "+",
|
||||
"_": "/"
|
||||
};
|
||||
var fromBase64Url = (encoded) => {
|
||||
return fromBase64(encoded.replace(/[\-\_]/g, (c) => fromUrl[c]));
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/bijective-numeration.mjs
|
||||
var num2bijective = (num, alpha = "12") => {
|
||||
const len = alpha.length;
|
||||
let c = 0;
|
||||
let x = 1;
|
||||
while (num >= x) {
|
||||
c++;
|
||||
num -= x;
|
||||
x *= len;
|
||||
}
|
||||
const res = [];
|
||||
for (let i = 0; i < c; i++) {
|
||||
const rem = num % len;
|
||||
res.unshift(alpha.charAt(num % len));
|
||||
num = (num - rem) / len;
|
||||
}
|
||||
return res.join("");
|
||||
};
|
||||
var bijective2num = (str, alpha = "12") => {
|
||||
const map = new Map([...alpha].map((c, i) => [c, i]));
|
||||
let res = 0;
|
||||
const len = alpha.length;
|
||||
return [...str].reduce((res2, c) => {
|
||||
return res2 * len + map.get(c) + 1;
|
||||
}, 0);
|
||||
};
|
||||
var num2bijectiveBI = (num, alpha = "12") => {
|
||||
const len = BigInt(alpha.length);
|
||||
let c = 0n;
|
||||
let x = 1n;
|
||||
while (num >= x) {
|
||||
c++;
|
||||
num -= x;
|
||||
x *= len;
|
||||
}
|
||||
const res = [];
|
||||
for (let i = 0n; i < c; i++) {
|
||||
const rem = num % len;
|
||||
res.unshift(alpha.charAt(Number(num % len)));
|
||||
num = (num - rem) / len;
|
||||
}
|
||||
return res.join("");
|
||||
};
|
||||
var bijective2numBI = (str, alpha = "12") => {
|
||||
const map = new Map([...alpha].map((c, i) => [c, BigInt(i)]));
|
||||
let res = 0n;
|
||||
const len = BigInt(alpha.length);
|
||||
return [...str].reduce((res2, c) => {
|
||||
return res2 * len + map.get(c) + 1n;
|
||||
}, 0n);
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/binary-search.mjs
|
||||
var binarySearchArr = (arr, target) => {
|
||||
let [a, b] = [0, arr.length];
|
||||
let lm;
|
||||
while (b - a > 0) {
|
||||
const mid = (a + b) / 2 | 0;
|
||||
const val = arr[mid];
|
||||
if (target < val) {
|
||||
b = mid;
|
||||
} else if (val < target) {
|
||||
a = mid;
|
||||
} else {
|
||||
return mid;
|
||||
}
|
||||
if (lm === mid) break;
|
||||
lm = mid;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
var binarySearchLE = (arr, target) => {
|
||||
let [a, b] = [0, arr.length];
|
||||
let lm;
|
||||
while (b - a > 0) {
|
||||
const mid = (a + b) / 2 | 0;
|
||||
const val = arr[mid];
|
||||
if (target < val) {
|
||||
b = mid;
|
||||
} else if (val <= target) {
|
||||
a = mid;
|
||||
}
|
||||
if (lm === mid) return mid;
|
||||
lm = mid;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
var binarySearchGE = (arr, target) => {
|
||||
let [a, b] = [0, arr.length];
|
||||
let lm;
|
||||
while (b - a > 0) {
|
||||
const mid = (a + b) / 2 | 0;
|
||||
const val = arr[mid];
|
||||
if (target > val) {
|
||||
a = mid;
|
||||
} else if (val >= target) {
|
||||
b = mid;
|
||||
}
|
||||
if (lm === mid) return mid + 1;
|
||||
lm = mid;
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
var binarySearchRangeIncl = (arr, target) => {
|
||||
return [
|
||||
binarySearchGE(arr, target),
|
||||
binarySearchLE(arr, target)
|
||||
];
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/copy-case.mjs
|
||||
var copyCase = (word, from) => {
|
||||
const isLower = (w) => w.toLowerCase() === w;
|
||||
const isUpper = (w) => w.toUpperCase() === w;
|
||||
if (isLower(from)) return word.toLowerCase();
|
||||
if (isUpper(from)) return word.toUpperCase();
|
||||
if (isUpper(from[0]) && isLower(from.slice(1))) {
|
||||
return word[0].toUpperCase() + word.slice(1).toLowerCase();
|
||||
}
|
||||
return word;
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/egcd.mjs
|
||||
var egcd = (a, b) => {
|
||||
let [x, y] = [0, 1];
|
||||
let [u, v] = [1, 0];
|
||||
while (a !== 0) {
|
||||
const [q, r] = [b / a | 0, b % a];
|
||||
const [m, n] = [x - u * q, y - v * q];
|
||||
[b, a, x, y, u, v] = [a, r, u, v, m, n];
|
||||
}
|
||||
return [b, x, y];
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/factors.mjs
|
||||
var factors = (n) => {
|
||||
if (n < 2) return [];
|
||||
const res = [];
|
||||
let max = Math.floor(Math.sqrt(n));
|
||||
for (let i = 2; i <= max; ++i) {
|
||||
if (n % i === 0) {
|
||||
res.push(i);
|
||||
n /= i;
|
||||
max = Math.floor(Math.sqrt(n));
|
||||
i = (Math.min(...res) || 2) - 1;
|
||||
}
|
||||
}
|
||||
res.push(n);
|
||||
return res;
|
||||
};
|
||||
var factorsBI = (n) => {
|
||||
if (n < 2n) return [];
|
||||
const res = [];
|
||||
for (let i = 2n; i * i <= n; ++i) {
|
||||
if (n % i === 0n) {
|
||||
res.push(i);
|
||||
n /= i;
|
||||
i = 1n;
|
||||
}
|
||||
}
|
||||
res.push(n);
|
||||
return res;
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/gcd.mjs
|
||||
var getGCD = (ZERO) => {
|
||||
return (a, b) => {
|
||||
if (a < ZERO) a = -a;
|
||||
if (b < ZERO) b = -b;
|
||||
if (b > a) {
|
||||
[a, b] = [b, a];
|
||||
}
|
||||
while (true) {
|
||||
if (b === ZERO) return a;
|
||||
a %= b;
|
||||
if (a === ZERO) return b;
|
||||
b %= a;
|
||||
}
|
||||
};
|
||||
};
|
||||
var gcd = getGCD(0);
|
||||
var gcdBI = getGCD(0n);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/get-type.mjs
|
||||
var getType = (val) => {
|
||||
const str = Object.prototype.toString.call(val);
|
||||
return str.slice(8, -1).toLowerCase();
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/gpn.mjs
|
||||
var getGpn = (zero, one, two, three) => {
|
||||
const gk = (k) => k * (three * k - one) / two;
|
||||
return (n) => {
|
||||
const m = (n + one) / two | zero;
|
||||
return n % two === zero ? gk(-m) : gk(m);
|
||||
};
|
||||
};
|
||||
var gpn = getGpn(0, 1, 2, 3);
|
||||
var gpnBI = getGpn(0n, 1n, 2n, 3n);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/heap.mjs
|
||||
var Heap = (valFn = (n) => n) => {
|
||||
const arr = [-1];
|
||||
const up = (idx) => {
|
||||
while (idx > 1) {
|
||||
const ni = idx / 2 | 0;
|
||||
if (valFn(arr[idx]) < valFn(arr[ni])) {
|
||||
[arr[idx], arr[ni]] = [arr[ni], arr[idx]];
|
||||
}
|
||||
idx = ni;
|
||||
}
|
||||
return idx;
|
||||
};
|
||||
return {
|
||||
add: (el) => up(arr.push(el) - 1),
|
||||
take: () => {
|
||||
const len = arr.length;
|
||||
if (len <= 1) return [][0];
|
||||
let idx = 1;
|
||||
const res = arr[idx];
|
||||
while (idx < len) {
|
||||
const ia = idx * 2;
|
||||
const ib = idx * 2 + 1;
|
||||
if (ia >= len) break;
|
||||
if (ib >= len || valFn(arr[ia]) < valFn(arr[ib])) {
|
||||
arr[idx] = arr[ia];
|
||||
idx = ia;
|
||||
} else {
|
||||
arr[idx] = arr[ib];
|
||||
idx = ib;
|
||||
}
|
||||
}
|
||||
if (idx === arr.length - 1) {
|
||||
arr.pop();
|
||||
} else {
|
||||
arr[idx] = arr.pop();
|
||||
up(idx);
|
||||
}
|
||||
return res;
|
||||
},
|
||||
size: () => arr.length - 1,
|
||||
data: () => arr.slice(1)
|
||||
};
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/square-root.mjs
|
||||
var squareRoot = (n) => n ** 0.5;
|
||||
var squareRootBI = (n) => {
|
||||
if (n === 0n) return 0n;
|
||||
if (n < 4n) return 1n;
|
||||
if (n < 9n) return 2n;
|
||||
if (n < 16n) return 3n;
|
||||
let res = BigInt(n.toString().substr(0, n.toString().length / 2));
|
||||
let last;
|
||||
while (true) {
|
||||
last = res;
|
||||
res = (res + n / res) / 2n;
|
||||
const p = res * res;
|
||||
if (p === n) return res;
|
||||
if (last === res) return res;
|
||||
const next = p + res * 2n - 1n;
|
||||
if (n > next) return res;
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/herons-formula.mjs
|
||||
var getHeronsFormula = (four, sq) => (a, b, c) => {
|
||||
return sq((a + b + c) * (-a + b + c) * (a - b + c) * (a + b - c)) / four;
|
||||
};
|
||||
var heronsFormula = getHeronsFormula(4, (n) => n ** 0.5);
|
||||
var heronsFormulaBI = getHeronsFormula(4n, squareRootBI);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/lcm.mjs
|
||||
var getLcm = (gcd2) => {
|
||||
return (a, b) => a * b / gcd2(a, b);
|
||||
};
|
||||
var lcm = getLcm(gcd);
|
||||
var lcmBI = getLcm(gcdBI);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/list-node.mjs
|
||||
var ListNode = class _ListNode {
|
||||
constructor(val = 0, next = null) {
|
||||
this.val = val;
|
||||
this.next = next;
|
||||
}
|
||||
toArr() {
|
||||
const ret = [];
|
||||
let node = this;
|
||||
const set = /* @__PURE__ */ new Set();
|
||||
while (node) {
|
||||
if (set.has(node)) throw Error("Cyclic reference detected");
|
||||
set.add(node);
|
||||
ret.push(node.val);
|
||||
node = node.next;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
static fromArr(iter) {
|
||||
const head = new _ListNode();
|
||||
let node = head;
|
||||
for (let val of iter) {
|
||||
node.next = new _ListNode(val);
|
||||
node = node.next;
|
||||
}
|
||||
return head.next;
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/matrix.mjs
|
||||
var matrixAsArray = (matrix) => {
|
||||
const [h, w] = [matrix.length, matrix[0].length];
|
||||
return new Proxy([], {
|
||||
get(target, prop, receiver) {
|
||||
if (prop === "length") return h * w;
|
||||
const idx = +prop;
|
||||
const col = idx % w;
|
||||
const row = (idx - col) / w;
|
||||
return matrix[row][col];
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/memoize.mjs
|
||||
var memoize = (fn) => {
|
||||
const maps = [];
|
||||
const getLeafMap = (args) => {
|
||||
if (!maps[args.length]) maps[args.length] = /* @__PURE__ */ new Map();
|
||||
const map = maps[args.length];
|
||||
const leaf = args.reduce((map2, arg) => {
|
||||
if (map2.has(arg)) return map2.get(arg);
|
||||
const tmp = /* @__PURE__ */ new Map();
|
||||
map2.set(arg, tmp);
|
||||
return tmp;
|
||||
}, map);
|
||||
return leaf;
|
||||
};
|
||||
const zero = {
|
||||
called: false,
|
||||
ret: null
|
||||
};
|
||||
return function() {
|
||||
const args = [...arguments];
|
||||
if (args.length === 0) {
|
||||
if (zero.called) return zero.ret;
|
||||
zero.called = true;
|
||||
return zero.ret = fn();
|
||||
}
|
||||
const [firstArg, ...restArgs] = args;
|
||||
const map = getLeafMap(restArgs);
|
||||
if (map.has(firstArg)) return map.get(firstArg);
|
||||
const ret = fn(...args);
|
||||
map.set(firstArg, ret);
|
||||
return ret;
|
||||
};
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/phi.mjs
|
||||
var getPhiEuler = (factors2) => {
|
||||
return (n) => {
|
||||
return [...new Set(factors2(n))].reduce((res, f) => res - res / f, n);
|
||||
};
|
||||
};
|
||||
var phi = getPhiEuler(factors);
|
||||
var phiBI = getPhiEuler(factorsBI);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/pow-mod.mjs
|
||||
var getPowMod = (ZERO, ONE, TWO, floor) => {
|
||||
return (base, exponent, modulus = null) => {
|
||||
if (modulus === null) return base ** exponent;
|
||||
if (modulus === ONE) return ZERO;
|
||||
let result = ONE;
|
||||
base = base % modulus;
|
||||
while (exponent > ZERO) {
|
||||
if (exponent % TWO === ONE) {
|
||||
result = result * base % modulus;
|
||||
}
|
||||
exponent = floor(exponent / TWO);
|
||||
base = base * base % modulus;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
};
|
||||
var powMod = getPowMod(0, 1, 2, (n) => Math.floor(n));
|
||||
var powModBI = getPowMod(0n, 1n, 2n, (n) => n);
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/range-array.mjs
|
||||
var range2array = (ranges) => {
|
||||
return ranges.reduce((arr, range) => {
|
||||
const min = range[0];
|
||||
const max = range[1] ?? min;
|
||||
return arr.push(
|
||||
...new Array(max - min + 1).fill(0).map((n, i) => min + i)
|
||||
), arr;
|
||||
}, []);
|
||||
};
|
||||
var array2range = (arr) => {
|
||||
const ranges = [];
|
||||
let last = arr[0];
|
||||
let begin = last;
|
||||
for (let i = 1; i <= arr.length; ++i) {
|
||||
const n = arr[i];
|
||||
if (n !== last + 1) {
|
||||
ranges.push([begin, last]);
|
||||
begin = n;
|
||||
}
|
||||
last = n;
|
||||
}
|
||||
return ranges;
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/src/tonelli-shanks.mjs
|
||||
var tonelliShanksBI = (n, p) => {
|
||||
let s = 0n;
|
||||
let q = p - 1n;
|
||||
while ((q & 1n) === 0n) {
|
||||
q /= 2n;
|
||||
++s;
|
||||
}
|
||||
if (s === 1n) {
|
||||
const r2 = powModBI(n, (p + 1n) / 4n, p);
|
||||
if (r2 * r2 % p === n) return r2;
|
||||
return 0n;
|
||||
}
|
||||
let z = 1n;
|
||||
while (powModBI(++z, (p - 1n) / 2n, p) !== p - 1n) ;
|
||||
let c = powModBI(z, q, p);
|
||||
let r = powModBI(n, (q + 1n) / 2n, p);
|
||||
let t = powModBI(n, q, p);
|
||||
let m = s;
|
||||
while (t !== 1n) {
|
||||
let tt = t;
|
||||
let i = 0n;
|
||||
while (tt !== 1n) {
|
||||
tt = tt * tt % p;
|
||||
++i;
|
||||
if (i === m) return 0n;
|
||||
}
|
||||
let b = powModBI(c, powModBI(2n, m - i - 1n, p - 1n), p);
|
||||
let b2 = b * b % p;
|
||||
r = r * b % p;
|
||||
t = t * b2 % p;
|
||||
c = b2;
|
||||
m = i;
|
||||
}
|
||||
if (r * r % p === n) return r;
|
||||
return 0n;
|
||||
};
|
||||
|
||||
// node_modules/@gkucmierz/utils/main.mjs
|
||||
var main_default = [
|
||||
SetCnt,
|
||||
fromBase64,
|
||||
fromBase64Url,
|
||||
toBase64,
|
||||
toBase64Url,
|
||||
bijective2num,
|
||||
bijective2numBI,
|
||||
num2bijective,
|
||||
num2bijectiveBI,
|
||||
binarySearchArr,
|
||||
copyCase,
|
||||
egcd,
|
||||
factors,
|
||||
factorsBI,
|
||||
gcd,
|
||||
gcdBI,
|
||||
getType,
|
||||
gpn,
|
||||
gpnBI,
|
||||
Heap,
|
||||
heronsFormula,
|
||||
heronsFormulaBI,
|
||||
lcm,
|
||||
lcmBI,
|
||||
ListNode,
|
||||
matrixAsArray,
|
||||
memoize,
|
||||
mod,
|
||||
modBI,
|
||||
phi,
|
||||
phiBI,
|
||||
powMod,
|
||||
powModBI,
|
||||
array2range,
|
||||
range2array,
|
||||
squareRoot,
|
||||
squareRootBI,
|
||||
tonelliShanksBI
|
||||
];
|
||||
export {
|
||||
Heap,
|
||||
ListNode,
|
||||
SetCnt,
|
||||
array2range,
|
||||
bijective2num,
|
||||
bijective2numBI,
|
||||
binarySearchArr,
|
||||
binarySearchGE,
|
||||
binarySearchLE,
|
||||
binarySearchRangeIncl,
|
||||
copyCase,
|
||||
main_default as default,
|
||||
egcd,
|
||||
factors,
|
||||
factorsBI,
|
||||
fromBase64,
|
||||
fromBase64Url,
|
||||
gcd,
|
||||
gcdBI,
|
||||
getType,
|
||||
gpn,
|
||||
gpnBI,
|
||||
heronsFormula,
|
||||
heronsFormulaBI,
|
||||
lcm,
|
||||
lcmBI,
|
||||
matrixAsArray,
|
||||
memoize,
|
||||
mod,
|
||||
modBI,
|
||||
num2bijective,
|
||||
num2bijectiveBI,
|
||||
phi,
|
||||
phiBI,
|
||||
powMod,
|
||||
powModBI,
|
||||
range2array,
|
||||
squareRoot,
|
||||
squareRootBI,
|
||||
toBase64,
|
||||
toBase64Url,
|
||||
tonelliShanksBI
|
||||
};
|
||||
//# sourceMappingURL=@gkucmierz_utils.js.map
|
||||
7
node_modules/.vite/deps/@gkucmierz_utils.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/@gkucmierz_utils.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
9
node_modules/.vite/deps/@gkucmierz_utils_src_mod__mjs.js
generated
vendored
Normal file
9
node_modules/.vite/deps/@gkucmierz_utils_src_mod__mjs.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import {
|
||||
mod,
|
||||
modBI
|
||||
} from "./chunk-Y44FVENP.js";
|
||||
import "./chunk-HPRLEMBT.js";
|
||||
export {
|
||||
mod,
|
||||
modBI
|
||||
};
|
||||
7
node_modules/.vite/deps/@gkucmierz_utils_src_mod__mjs.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/@gkucmierz_utils_src_mod__mjs.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
73
node_modules/.vite/deps/_metadata.json
generated
vendored
Normal file
73
node_modules/.vite/deps/_metadata.json
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"hash": "0e64a169",
|
||||
"configHash": "b404d51e",
|
||||
"lockfileHash": "61dfa545",
|
||||
"browserHash": "6a81128a",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "57763d4d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"lucide-vue-next": {
|
||||
"src": "../../lucide-vue-next/dist/esm/lucide-vue-next.js",
|
||||
"file": "lucide-vue-next.js",
|
||||
"fileHash": "a749ef2a",
|
||||
"needsInterop": false
|
||||
},
|
||||
"@gkucmierz/utils": {
|
||||
"src": "../../@gkucmierz/utils/main.mjs",
|
||||
"file": "@gkucmierz_utils.js",
|
||||
"fileHash": "eb2e66b1",
|
||||
"needsInterop": false
|
||||
},
|
||||
"@gkucmierz/utils/src/mod.mjs": {
|
||||
"src": "../../@gkucmierz/utils/src/mod.mjs",
|
||||
"file": "@gkucmierz_utils_src_mod__mjs.js",
|
||||
"fileHash": "909cf74a",
|
||||
"needsInterop": false
|
||||
},
|
||||
"matrix-js": {
|
||||
"src": "../../matrix-js/lib/index.js",
|
||||
"file": "matrix-js.js",
|
||||
"fileHash": "34a2c640",
|
||||
"needsInterop": true
|
||||
},
|
||||
"rubiks-js/src/state/index.js": {
|
||||
"src": "../../rubiks-js/src/state/index.js",
|
||||
"file": "rubiks-js_src_state_index__js.js",
|
||||
"fileHash": "dfb6e813",
|
||||
"needsInterop": false
|
||||
},
|
||||
"rubiks-js": {
|
||||
"src": "../../rubiks-js/src/index.js",
|
||||
"file": "rubiks-js.js",
|
||||
"fileHash": "8b154ac9",
|
||||
"needsInterop": false
|
||||
},
|
||||
"rubiks-js/src/ui/cubie.js": {
|
||||
"src": "../../rubiks-js/src/ui/cubie.js",
|
||||
"file": "rubiks-js_src_ui_cubie__js.js",
|
||||
"fileHash": "fb652cb6",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"chunk-YIK32INT": {
|
||||
"file": "chunk-YIK32INT.js"
|
||||
},
|
||||
"chunk-ROHLD3FA": {
|
||||
"file": "chunk-ROHLD3FA.js"
|
||||
},
|
||||
"chunk-U3LI7FBV": {
|
||||
"file": "chunk-U3LI7FBV.js"
|
||||
},
|
||||
"chunk-Y44FVENP": {
|
||||
"file": "chunk-Y44FVENP.js"
|
||||
},
|
||||
"chunk-HPRLEMBT": {
|
||||
"file": "chunk-HPRLEMBT.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
node_modules/.vite/deps/chunk-HPRLEMBT.js
generated
vendored
Normal file
29
node_modules/.vite/deps/chunk-HPRLEMBT.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __typeError = (msg) => {
|
||||
throw TypeError(msg);
|
||||
};
|
||||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||
};
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
||||
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
||||
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
||||
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
||||
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
||||
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
||||
|
||||
export {
|
||||
__commonJS,
|
||||
__export,
|
||||
__publicField,
|
||||
__privateGet,
|
||||
__privateAdd,
|
||||
__privateSet,
|
||||
__privateMethod
|
||||
};
|
||||
7
node_modules/.vite/deps/chunk-HPRLEMBT.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/chunk-HPRLEMBT.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
881
node_modules/.vite/deps/chunk-ROHLD3FA.js
generated
vendored
Normal file
881
node_modules/.vite/deps/chunk-ROHLD3FA.js
generated
vendored
Normal file
@@ -0,0 +1,881 @@
|
||||
import {
|
||||
__privateAdd,
|
||||
__privateGet,
|
||||
__privateMethod,
|
||||
__privateSet,
|
||||
__publicField
|
||||
} from "./chunk-HPRLEMBT.js";
|
||||
|
||||
// node_modules/rubiks-js/src/math/abstractVector.js
|
||||
var Vector = class {
|
||||
/**
|
||||
* @abstract
|
||||
* @param {number} _a
|
||||
*/
|
||||
scale(_a) {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
* @param {V} _v
|
||||
* @returns {V}
|
||||
*/
|
||||
add(_v) {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
* @param {V} _v
|
||||
* @return {V}
|
||||
*/
|
||||
sub(_v) {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
* @param {V} _v
|
||||
* @return {V}
|
||||
*/
|
||||
mult(_v) {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
* @param {V} _v
|
||||
* @return {number}
|
||||
*/
|
||||
dot(_v) {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
* @return {number[]}
|
||||
*/
|
||||
toArray() {
|
||||
throw new Error("must be implemented in subclass");
|
||||
}
|
||||
get squareMag() {
|
||||
const t = this;
|
||||
return this.dot(t);
|
||||
}
|
||||
get mag() {
|
||||
return Math.sqrt(this.squareMag);
|
||||
}
|
||||
get normalized() {
|
||||
return this.scale(1 / this.mag);
|
||||
}
|
||||
get negate() {
|
||||
return this.scale(-1);
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/math/vector.js
|
||||
var V2 = class _V2 extends Vector {
|
||||
/**
|
||||
* @param {number} x
|
||||
* @param {number} y
|
||||
*/
|
||||
constructor(x, y) {
|
||||
super();
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
/** @param {number} a */
|
||||
scale(a) {
|
||||
return new _V2(a * this.x, a * this.y);
|
||||
}
|
||||
/** @param {V2} v */
|
||||
add({ x, y }) {
|
||||
return new _V2(this.x + x, this.y + y);
|
||||
}
|
||||
/** @param {V2} v */
|
||||
sub({ x, y }) {
|
||||
return new _V2(this.x - x, this.y - y);
|
||||
}
|
||||
/** @param {V2} v */
|
||||
mult({ x, y }) {
|
||||
return new _V2(this.x * x, this.y * y);
|
||||
}
|
||||
/** @param {V2} v */
|
||||
dot({ x, y }) {
|
||||
return this.x * x + this.y * y;
|
||||
}
|
||||
toArray() {
|
||||
return [this.x, this.y];
|
||||
}
|
||||
/**
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLUniformLocation} location
|
||||
*/
|
||||
setUniform(gl, location) {
|
||||
gl.uniform2f(location, this.x, this.y);
|
||||
}
|
||||
static get zero() {
|
||||
return new _V2(0, 0);
|
||||
}
|
||||
};
|
||||
var V3 = class _V3 extends Vector {
|
||||
/**
|
||||
* @param {number} x
|
||||
* @param {number} y
|
||||
* @param {number} z
|
||||
*/
|
||||
constructor(x, y, z) {
|
||||
super();
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
/** @param {number} a */
|
||||
scale(a) {
|
||||
return new _V3(a * this.x, a * this.y, a * this.z);
|
||||
}
|
||||
/** @param {V3} v */
|
||||
add({ x, y, z }) {
|
||||
return new _V3(this.x + x, this.y + y, this.z + z);
|
||||
}
|
||||
/** @param {V3} v */
|
||||
sub({ x, y, z }) {
|
||||
return new _V3(this.x - x, this.y - y, this.z - z);
|
||||
}
|
||||
/** @param {V3} v */
|
||||
mult({ x, y, z }) {
|
||||
return new _V3(this.x * x, this.y * y, this.z * z);
|
||||
}
|
||||
/** @param {V3} v */
|
||||
cross({ x, y, z }) {
|
||||
return new _V3(this.y * z - this.z * y, this.z * x - this.x * z, this.x * y - this.y * x);
|
||||
}
|
||||
/** @param {V3} v */
|
||||
dot({ x, y, z }) {
|
||||
return this.x * x + this.y * y + this.z * z;
|
||||
}
|
||||
toArray() {
|
||||
return [this.x, this.y, this.z];
|
||||
}
|
||||
/**
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLUniformLocation} location
|
||||
*/
|
||||
setUniform(gl, location) {
|
||||
gl.uniform3f(location, this.x, this.y, this.z);
|
||||
}
|
||||
toV2() {
|
||||
return new V2(this.x, this.y);
|
||||
}
|
||||
static get zero() {
|
||||
return new _V3(0, 0, 0);
|
||||
}
|
||||
static get one() {
|
||||
return new _V3(1, 1, 1);
|
||||
}
|
||||
static get up() {
|
||||
return new _V3(0, 1, 0);
|
||||
}
|
||||
static get down() {
|
||||
return new _V3(0, -1, 0);
|
||||
}
|
||||
static get left() {
|
||||
return new _V3(1, 0, 0);
|
||||
}
|
||||
static get right() {
|
||||
return new _V3(-1, 0, 0);
|
||||
}
|
||||
static get forward() {
|
||||
return new _V3(0, 0, 1);
|
||||
}
|
||||
static get back() {
|
||||
return new _V3(0, 0, -1);
|
||||
}
|
||||
/**
|
||||
* @param {V3} v1
|
||||
* @param {V3} v2
|
||||
* @param {number} t
|
||||
*/
|
||||
static lerp(v1, v2, t) {
|
||||
return v1.add(v2.sub(v1).scale(t));
|
||||
}
|
||||
/**
|
||||
* @param {V3} v1
|
||||
* @param {V3} v2
|
||||
*/
|
||||
static angle(v1, v2) {
|
||||
return Math.acos(v1.dot(v2) / Math.sqrt(v1.squareMag * v2.squareMag));
|
||||
}
|
||||
/** @param {number} axis */
|
||||
static getRotationAxis(axis) {
|
||||
if (axis === 0)
|
||||
return _V3.right;
|
||||
if (axis === 1)
|
||||
return _V3.down;
|
||||
return _V3.back;
|
||||
}
|
||||
};
|
||||
var V4 = class _V4 extends Vector {
|
||||
/**
|
||||
* @param {number} x
|
||||
* @param {number} y
|
||||
* @param {number} z
|
||||
* @param {number} w
|
||||
*/
|
||||
constructor(x, y, z, w) {
|
||||
super();
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.w = w;
|
||||
}
|
||||
/** @param {number} a */
|
||||
scale(a) {
|
||||
return new _V4(a * this.x, a * this.y, a * this.z, a * this.w);
|
||||
}
|
||||
/** @param {V4} v */
|
||||
add({ x, y, z, w }) {
|
||||
return new _V4(this.x + x, this.y + y, this.z + z, this.w + w);
|
||||
}
|
||||
/** @param {V4} v */
|
||||
sub({ x, y, z, w }) {
|
||||
return new _V4(this.x - x, this.y - y, this.z - z, this.w - w);
|
||||
}
|
||||
/** @param {V4} v */
|
||||
mult({ x, y, z, w }) {
|
||||
return new _V4(this.x * x, this.y * y, this.z * z, this.w * w);
|
||||
}
|
||||
/** @param {V4} v */
|
||||
dot({ x, y, z, w }) {
|
||||
return this.x * x + this.y * y + this.z * z + this.w * w;
|
||||
}
|
||||
toV3() {
|
||||
return new V3(this.x, this.y, this.z);
|
||||
}
|
||||
toArray() {
|
||||
return [this.x, this.y, this.z, this.w];
|
||||
}
|
||||
/**
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLUniformLocation} location
|
||||
*/
|
||||
setUniform(gl, location) {
|
||||
gl.uniform4f(location, this.x, this.y, this.z, this.w);
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/math/matrix.js
|
||||
var M44 = class _M44 {
|
||||
/**
|
||||
* @param {V4} r1
|
||||
* @param {V4} r2
|
||||
* @param {V4} r3
|
||||
* @param {V4} r4
|
||||
*/
|
||||
constructor(r1, r2, r3, r4) {
|
||||
this.r1 = r1;
|
||||
this.r2 = r2;
|
||||
this.r3 = r3;
|
||||
this.r4 = r4;
|
||||
}
|
||||
/** @param {number} a */
|
||||
scale(a) {
|
||||
return new _M44(this.r1.scale(a), this.r2.scale(a), this.r3.scale(a), this.r4.scale(a));
|
||||
}
|
||||
/** @param {M44} m */
|
||||
add({ r1, r2, r3, r4 }) {
|
||||
return new _M44(this.r1.add(r1), this.r2.add(r2), this.r3.add(r3), this.r4.add(r4));
|
||||
}
|
||||
/** @param {M44} m */
|
||||
sub({ r1, r2, r3, r4 }) {
|
||||
return new _M44(this.r1.sub(r1), this.r2.sub(r2), this.r3.sub(r3), this.r4.sub(r4));
|
||||
}
|
||||
/**
|
||||
* @overload
|
||||
* @param {M44} m
|
||||
* @return {M44}
|
||||
*
|
||||
* @overload
|
||||
* @param {V4} m
|
||||
* @return {V4}
|
||||
*
|
||||
* @param {M44 | V4} m
|
||||
*/
|
||||
mult(m) {
|
||||
if ("x" in m) {
|
||||
return new V4(
|
||||
this.r1.dot(m),
|
||||
this.r2.dot(m),
|
||||
this.r3.dot(m),
|
||||
this.r4.dot(m)
|
||||
);
|
||||
}
|
||||
return new _M44(
|
||||
new V4(this.r1.dot(m.c1), this.r1.dot(m.c2), this.r1.dot(m.c3), this.r1.dot(m.c4)),
|
||||
new V4(this.r2.dot(m.c1), this.r2.dot(m.c2), this.r2.dot(m.c3), this.r2.dot(m.c4)),
|
||||
new V4(this.r3.dot(m.c1), this.r3.dot(m.c2), this.r3.dot(m.c3), this.r3.dot(m.c4)),
|
||||
new V4(this.r4.dot(m.c1), this.r4.dot(m.c2), this.r4.dot(m.c3), this.r4.dot(m.c4))
|
||||
);
|
||||
}
|
||||
toArray() {
|
||||
return [...this.r1.toArray(), ...this.r2.toArray(), ...this.r3.toArray(), ...this.r4.toArray()];
|
||||
}
|
||||
static get identity() {
|
||||
return new _M44(
|
||||
new V4(1, 0, 0, 0),
|
||||
new V4(0, 1, 0, 0),
|
||||
new V4(0, 0, 1, 0),
|
||||
new V4(0, 0, 0, 1)
|
||||
);
|
||||
}
|
||||
get c1() {
|
||||
return new V4(this.r1.x, this.r2.x, this.r3.x, this.r4.x);
|
||||
}
|
||||
get c2() {
|
||||
return new V4(this.r1.y, this.r2.y, this.r3.y, this.r4.y);
|
||||
}
|
||||
get c3() {
|
||||
return new V4(this.r1.z, this.r2.z, this.r3.z, this.r4.z);
|
||||
}
|
||||
get c4() {
|
||||
return new V4(this.r1.w, this.r2.w, this.r3.w, this.r4.w);
|
||||
}
|
||||
/**
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLUniformLocation} location
|
||||
*/
|
||||
setUniform(gl, location) {
|
||||
const data = new Float32Array(this.toArray());
|
||||
gl.uniformMatrix4fv(location, true, data);
|
||||
}
|
||||
get transpose() {
|
||||
return new _M44(this.c1, this.c2, this.c3, this.c4);
|
||||
}
|
||||
get inverse() {
|
||||
const [i00, i01, i02, i03] = this.r1.toArray();
|
||||
const [i10, i11, i12, i13] = this.r2.toArray();
|
||||
const [i20, i21, i22, i23] = this.r3.toArray();
|
||||
const [i30, i31, i32, i33] = this.r4.toArray();
|
||||
const s0 = i00 * i11 - i10 * i01;
|
||||
const s1 = i00 * i12 - i10 * i02;
|
||||
const s2 = i00 * i13 - i10 * i03;
|
||||
const s3 = i01 * i12 - i11 * i02;
|
||||
const s4 = i01 * i13 - i11 * i03;
|
||||
const s5 = i02 * i13 - i12 * i03;
|
||||
const c5 = i22 * i33 - i32 * i23;
|
||||
const c4 = i21 * i33 - i31 * i23;
|
||||
const c3 = i21 * i32 - i31 * i22;
|
||||
const c2 = i20 * i33 - i30 * i23;
|
||||
const c1 = i20 * i32 - i30 * i22;
|
||||
const c0 = i20 * i31 - i30 * i21;
|
||||
const det = s0 * c5 - s1 * c4 + s2 * c3 + s3 * c2 - s4 * c1 + s5 * c0;
|
||||
const invDet = 1 / det;
|
||||
return new _M44(
|
||||
new V4(
|
||||
i11 * c5 - i12 * c4 + i13 * c3,
|
||||
-i01 * c5 + i02 * c4 - i03 * c3,
|
||||
i31 * s5 - i32 * s4 + i33 * s3,
|
||||
-i21 * s5 + i22 * s4 - i23 * s3
|
||||
),
|
||||
new V4(
|
||||
-i10 * c5 + i12 * c2 - i13 * c1,
|
||||
i00 * c5 - i02 * c2 + i03 * c1,
|
||||
-i30 * s5 + i32 * s2 - i33 * s1,
|
||||
i20 * s5 - i22 * s2 + i23 * s1
|
||||
),
|
||||
new V4(
|
||||
i10 * c4 - i11 * c2 + i13 * c0,
|
||||
-i00 * c4 + i01 * c2 - i03 * c0,
|
||||
i30 * s4 - i31 * s2 + i33 * s0,
|
||||
-i20 * s4 + i21 * s2 - i23 * s0
|
||||
),
|
||||
new V4(
|
||||
-i10 * c3 + i11 * c1 - i12 * c0,
|
||||
i00 * c3 - i01 * c1 + i02 * c0,
|
||||
-i30 * s3 + i31 * s1 - i32 * s0,
|
||||
i20 * s3 - i21 * s1 + i22 * s0
|
||||
)
|
||||
).scale(invDet);
|
||||
}
|
||||
/**
|
||||
* @param {number} fovy
|
||||
* @param {number} aspect
|
||||
* @param {number} near
|
||||
* @param {number} far
|
||||
*/
|
||||
static perspective(fovy, aspect, near, far) {
|
||||
const tanHalfFovy = Math.tan(fovy / 2);
|
||||
const x = 1 / (aspect * tanHalfFovy);
|
||||
const y = 1 / tanHalfFovy;
|
||||
const fpn = far + near;
|
||||
const fmn = far - near;
|
||||
const oon = 0.5 / near;
|
||||
const oof = 0.5 / far;
|
||||
const z = -fpn / fmn;
|
||||
const w = 1 / (oof - oon);
|
||||
return new _M44(
|
||||
new V4(x, 0, 0, 0),
|
||||
new V4(0, y, 0, 0),
|
||||
new V4(0, 0, z, w),
|
||||
new V4(0, 0, -1, 0)
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {V3} eye
|
||||
* @param {V3} center
|
||||
* @param {V3} up
|
||||
*/
|
||||
static lookAt(eye, center, up) {
|
||||
const za = center.sub(eye).normalized;
|
||||
const xa = za.cross(up).normalized;
|
||||
const ya = xa.cross(za);
|
||||
const xd = -xa.dot(eye);
|
||||
const yd = -ya.dot(eye);
|
||||
const zd = za.dot(eye);
|
||||
return new _M44(
|
||||
new V4(xa.x, xa.y, xa.z, xd),
|
||||
new V4(ya.x, ya.y, ya.z, yd),
|
||||
new V4(-za.x, -za.y, -za.z, zd),
|
||||
new V4(0, 0, 0, 1)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/math/quarternion.js
|
||||
var Quaternion = class _Quaternion {
|
||||
/**
|
||||
* @param {number} real
|
||||
* @param {V3} im
|
||||
*/
|
||||
constructor(real, im) {
|
||||
this.real = real;
|
||||
this.im = im;
|
||||
}
|
||||
/**
|
||||
* @param {V3} axis
|
||||
* @param {number} angle
|
||||
* @param {boolean} [degree=true]
|
||||
*/
|
||||
static fromAngle(axis, angle, degree = true) {
|
||||
if (degree) {
|
||||
angle *= Math.PI / 180;
|
||||
}
|
||||
const half = angle / 2;
|
||||
const real = Math.cos(half);
|
||||
const im = axis.normalized.scale(Math.sin(half));
|
||||
return new _Quaternion(real, im);
|
||||
}
|
||||
get matrix() {
|
||||
const { x, y, z } = this.im;
|
||||
const w = this.real;
|
||||
const xx = x * x;
|
||||
const yy = y * y;
|
||||
const zz = z * z;
|
||||
const xy = x * y;
|
||||
const xz = x * z;
|
||||
const xw = x * w;
|
||||
const yz = y * z;
|
||||
const yw = y * w;
|
||||
const zw = z * w;
|
||||
return new M44(
|
||||
new V4(1 - 2 * (yy + zz), 2 * (xy - zw), 2 * (xz + yw), 0),
|
||||
new V4(2 * (xy + zw), 1 - 2 * (xx + zz), 2 * (yz - xw), 0),
|
||||
new V4(2 * (xz - yw), 2 * (yz + xw), 1 - 2 * (xx + yy), 0),
|
||||
new V4(0, 0, 0, 1)
|
||||
);
|
||||
}
|
||||
/** @param {Quaternion} q */
|
||||
mult({ real, im }) {
|
||||
return new _Quaternion(this.real * real - this.im.dot(im), this.im.cross(im).add(im.scale(this.real)).add(this.im.scale(real)));
|
||||
}
|
||||
/** @param {V3} v */
|
||||
rotate(v) {
|
||||
return new _Quaternion(this.real, this.im.negate).mult(new _Quaternion(0, v)).mult(this).im;
|
||||
}
|
||||
get conjugate() {
|
||||
return new _Quaternion(this.real, this.im.negate);
|
||||
}
|
||||
get mag() {
|
||||
return Math.sqrt(this.real * this.real + this.im.squareMag);
|
||||
}
|
||||
/** @param {number} n */
|
||||
power(n) {
|
||||
const { mag } = this;
|
||||
const phi = Math.acos(this.real / mag);
|
||||
const unit = this.im.normalized;
|
||||
const scalar = Math.pow(mag, n);
|
||||
return new _Quaternion(scalar * Math.cos(phi * n), unit.scale(scalar * Math.sin(phi * n)));
|
||||
}
|
||||
static get identity() {
|
||||
return new _Quaternion(1, V3.zero);
|
||||
}
|
||||
/**
|
||||
* @param {Quaternion} q1
|
||||
* @param {Quaternion} q2
|
||||
* @param {number} t
|
||||
*/
|
||||
static slerp(q1, q2, t) {
|
||||
return q1.mult(q1.conjugate.mult(q2).power(t));
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/ui/program.js
|
||||
var _program, _uniformMap, _path, _gl, _Program_instances, createShader_fn;
|
||||
var Program = class {
|
||||
/**
|
||||
* @param {string} path
|
||||
* @param {string} vertexShaderSource
|
||||
* @param {string} fragmentShaderSource
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
*/
|
||||
constructor(path, vertexShaderSource, fragmentShaderSource, gl) {
|
||||
__privateAdd(this, _Program_instances);
|
||||
/** @type {WebGLProgram} */
|
||||
__privateAdd(this, _program);
|
||||
/** @type {Map<string, WebGLUniformLocation>} */
|
||||
__privateAdd(this, _uniformMap);
|
||||
/** @type {string} */
|
||||
__privateAdd(this, _path);
|
||||
/** @type {WebGL2RenderingContext} */
|
||||
__privateAdd(this, _gl);
|
||||
__privateSet(this, _path, path);
|
||||
__privateSet(this, _gl, gl);
|
||||
const vertexShader = __privateMethod(this, _Program_instances, createShader_fn).call(this, vertexShaderSource, __privateGet(this, _gl).VERTEX_SHADER, "vertex");
|
||||
const fragmentShader = __privateMethod(this, _Program_instances, createShader_fn).call(this, fragmentShaderSource, __privateGet(this, _gl).FRAGMENT_SHADER, "fragment");
|
||||
const p = __privateGet(this, _gl).createProgram();
|
||||
if (!p)
|
||||
throw new Error("Fatal: webgl could not create program object!");
|
||||
__privateSet(this, _program, p);
|
||||
__privateGet(this, _gl).attachShader(__privateGet(this, _program), vertexShader);
|
||||
__privateGet(this, _gl).attachShader(__privateGet(this, _program), fragmentShader);
|
||||
__privateGet(this, _gl).linkProgram(__privateGet(this, _program));
|
||||
const success = __privateGet(this, _gl).getProgramParameter(__privateGet(this, _program), __privateGet(this, _gl).LINK_STATUS);
|
||||
if (!success) {
|
||||
const info = __privateGet(this, _gl).getProgramInfoLog(__privateGet(this, _program));
|
||||
__privateGet(this, _gl).deleteProgram(__privateGet(this, _program));
|
||||
throw new Error(`Link Program: ${info}`);
|
||||
}
|
||||
const numUniforms = (
|
||||
/** @type {number} */
|
||||
__privateGet(this, _gl).getProgramParameter(__privateGet(this, _program), __privateGet(this, _gl).ACTIVE_UNIFORMS)
|
||||
);
|
||||
const uniformIndices = [...Array(numUniforms).keys()];
|
||||
const uniformNames = uniformIndices.map((index) => {
|
||||
const info = __privateGet(this, _gl).getActiveUniform(__privateGet(this, _program), index);
|
||||
if (info == null) {
|
||||
throw new Error("failed to get active uniform");
|
||||
}
|
||||
const location = __privateGet(this, _gl).getUniformLocation(__privateGet(this, _program), info.name);
|
||||
if (location == null) {
|
||||
throw new Error("failed to get uniform location");
|
||||
}
|
||||
return (
|
||||
/** @type {[string, WebGLUniformLocation]} */
|
||||
[info.name, location]
|
||||
);
|
||||
});
|
||||
__privateSet(this, _uniformMap, new Map(uniformNames));
|
||||
}
|
||||
use() {
|
||||
if (!__privateGet(this, _program)) {
|
||||
throw new Error("Fatal: program does not exists!");
|
||||
}
|
||||
__privateGet(this, _gl).useProgram(__privateGet(this, _program));
|
||||
}
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {import('../types').Uniform} u
|
||||
*/
|
||||
uniform(name, u) {
|
||||
const location = __privateGet(this, _uniformMap).get(name);
|
||||
if (location == void 0) {
|
||||
throw new Error(`Fatal: unkown name: ${name}`);
|
||||
}
|
||||
u.setUniform(__privateGet(this, _gl), location);
|
||||
}
|
||||
};
|
||||
_program = new WeakMap();
|
||||
_uniformMap = new WeakMap();
|
||||
_path = new WeakMap();
|
||||
_gl = new WeakMap();
|
||||
_Program_instances = new WeakSet();
|
||||
/**
|
||||
* @param {string} source
|
||||
* @param {number} type
|
||||
* @param {string} typeStr
|
||||
* @returns {WebGLShader}
|
||||
*/
|
||||
createShader_fn = function(source, type, typeStr) {
|
||||
const shader = __privateGet(this, _gl).createShader(type);
|
||||
if (!shader)
|
||||
throw new Error("Fatal: webgl could not create shader object!");
|
||||
__privateGet(this, _gl).shaderSource(shader, source);
|
||||
__privateGet(this, _gl).compileShader(shader);
|
||||
const success = (
|
||||
/** @type {boolean} */
|
||||
__privateGet(this, _gl).getShaderParameter(shader, __privateGet(this, _gl).COMPILE_STATUS)
|
||||
);
|
||||
if (success) {
|
||||
return shader;
|
||||
}
|
||||
const info = __privateGet(this, _gl).getShaderInfoLog(shader);
|
||||
__privateGet(this, _gl).deleteShader(shader);
|
||||
throw new Error(`Compile '${__privateGet(this, _path)}': ${typeStr}: ${info}`);
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/ui/transform.js
|
||||
var Transform = class _Transform {
|
||||
/**
|
||||
* @param {V3} position
|
||||
* @param {Quaternion} rotation
|
||||
* @param {TParent} parent
|
||||
*/
|
||||
constructor(position, rotation, parent) {
|
||||
/** @type {M44} */
|
||||
__publicField(this, "localTransform");
|
||||
/** @type {M44} */
|
||||
__publicField(this, "globalTransform");
|
||||
/** @type {TChild[]} */
|
||||
__publicField(this, "children", []);
|
||||
this._position = position;
|
||||
this._rotation = rotation;
|
||||
this.parent = parent;
|
||||
this.setTransforms();
|
||||
}
|
||||
/** @protected */
|
||||
setTransforms() {
|
||||
const localTransform = _Transform.getLocalTransform(this._position, this._rotation);
|
||||
this.localTransform = localTransform;
|
||||
if (!this.parent) {
|
||||
this.globalTransform = localTransform;
|
||||
} else {
|
||||
const parentTransform = this.parent.transform.globalTransform;
|
||||
this.globalTransform = parentTransform.mult(localTransform);
|
||||
}
|
||||
this.children.forEach((child) => child.transform.setTransforms());
|
||||
}
|
||||
/** @param {V3} v */
|
||||
apply({ x, y, z }) {
|
||||
return this.globalTransform.mult(new V4(x, y, z, 1)).toV3();
|
||||
}
|
||||
/**
|
||||
* @param {V3} axis
|
||||
* @param {number} angle
|
||||
*/
|
||||
rotate(axis, angle) {
|
||||
this.rotation = this._rotation.mult(Quaternion.fromAngle(this._rotation.rotate(axis), angle));
|
||||
}
|
||||
/** @param {V3} value */
|
||||
set position(value) {
|
||||
this._position = value;
|
||||
this.setTransforms();
|
||||
}
|
||||
/** @param {Quaternion} value */
|
||||
set rotation(value) {
|
||||
this._rotation = value;
|
||||
this.setTransforms();
|
||||
}
|
||||
get position() {
|
||||
return this._position;
|
||||
}
|
||||
get rotation() {
|
||||
return this._rotation;
|
||||
}
|
||||
/**
|
||||
* @param {V3} position
|
||||
* @param {Quaternion} rotation
|
||||
* @returns {M44}
|
||||
*/
|
||||
static getLocalTransform({ x, y, z }, rotation) {
|
||||
const transform = rotation.matrix;
|
||||
transform.r1.w = x;
|
||||
transform.r2.w = y;
|
||||
transform.r3.w = z;
|
||||
return transform;
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/ui/facelet.js
|
||||
var FaceletTransform = class extends Transform {
|
||||
/**
|
||||
* @param {V3} position
|
||||
* @param {Quaternion} rotation
|
||||
* @param {Cubie} parent
|
||||
*/
|
||||
constructor(position, rotation, parent) {
|
||||
super(position, rotation, parent);
|
||||
/** @type {V3} */
|
||||
__publicField(this, "left");
|
||||
/** @type {V3} */
|
||||
__publicField(this, "top");
|
||||
/** @type {V3} */
|
||||
__publicField(this, "normal");
|
||||
/** @type {V3} */
|
||||
__publicField(this, "topLeft");
|
||||
/** @type {V3} */
|
||||
__publicField(this, "bottomRight");
|
||||
this.setTransforms();
|
||||
}
|
||||
/** @protected */
|
||||
setTransforms() {
|
||||
super.setTransforms();
|
||||
const rotationTransform = this.globalTransform.inverse.transpose;
|
||||
this.left = rotationTransform.mult(new V4(0, 0, -1, 1)).toV3().normalized;
|
||||
this.top = rotationTransform.mult(new V4(0, -1, 0, 1)).toV3().normalized;
|
||||
this.normal = rotationTransform.mult(new V4(-1, 0, 0, 1)).toV3().normalized;
|
||||
this.topLeft = this.globalTransform.mult(new V4(0, 0.5, 0.5, 1)).toV3();
|
||||
this.bottomRight = this.topLeft.add(this.left).add(this.top);
|
||||
}
|
||||
};
|
||||
var _hoveringMult;
|
||||
var Facelet = class {
|
||||
/**
|
||||
* @param {FaceletTransform} transform
|
||||
* @param {number} side
|
||||
* @param {number[]} uvs
|
||||
* @param {V3} hoveringMult
|
||||
*/
|
||||
constructor(transform, side, uvs, hoveringMult) {
|
||||
__publicField(this, "hovering", false);
|
||||
/** @type {V3} */
|
||||
__privateAdd(this, _hoveringMult);
|
||||
this.transform = transform;
|
||||
this.side = side;
|
||||
this.uvs = uvs;
|
||||
__privateSet(this, _hoveringMult, hoveringMult);
|
||||
}
|
||||
/**
|
||||
* @param {Program} program
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLBuffer} uvsVbo
|
||||
*/
|
||||
render(program, gl, uvsVbo) {
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, uvsVbo);
|
||||
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.uvs), gl.STATIC_DRAW);
|
||||
gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 8, 0);
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
||||
program.uniform("model", this.transform.globalTransform);
|
||||
program.uniform("colorMult", this.hovering ? __privateGet(this, _hoveringMult) : V3.one);
|
||||
gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0);
|
||||
}
|
||||
};
|
||||
_hoveringMult = new WeakMap();
|
||||
var InsideFacelet = class {
|
||||
/** @param {Transform<any, Cubie>} transform */
|
||||
constructor(transform) {
|
||||
this.transform = transform;
|
||||
}
|
||||
/**
|
||||
* @param {Program} program
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
*/
|
||||
render(program, gl) {
|
||||
program.uniform("model", this.transform.globalTransform);
|
||||
program.uniform("colorMult", V3.zero);
|
||||
gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0);
|
||||
}
|
||||
};
|
||||
|
||||
// node_modules/rubiks-js/src/ui/cubie.js
|
||||
var positionForSide = [
|
||||
V3.right,
|
||||
V3.left,
|
||||
V3.down,
|
||||
V3.up,
|
||||
V3.back,
|
||||
V3.forward
|
||||
].map((v) => v.scale(0.5));
|
||||
var rotationForSide = [
|
||||
Quaternion.identity,
|
||||
Quaternion.identity,
|
||||
Quaternion.fromAngle(V3.back, 90),
|
||||
Quaternion.fromAngle(V3.back, 90),
|
||||
Quaternion.fromAngle(V3.back, 90).mult(Quaternion.fromAngle(V3.down, 90)),
|
||||
Quaternion.fromAngle(V3.back, 90).mult(Quaternion.fromAngle(V3.down, 90))
|
||||
];
|
||||
var isInside = (side, index) => {
|
||||
const axis = Math.floor(side / 2);
|
||||
const invert = side % 2;
|
||||
const coordinate = Math.floor(index / Math.pow(3, axis)) % 3;
|
||||
return coordinate === 1 || coordinate === 0 && invert === 1 || coordinate === 2 && invert === 0;
|
||||
};
|
||||
var indexToPosition = (index) => {
|
||||
const x = Math.floor(index / 1) % 3;
|
||||
const y = Math.floor(index / 3) % 3;
|
||||
const z = Math.floor(index / 9) % 3;
|
||||
return [x, y, z];
|
||||
};
|
||||
var positionToUvs = (pos, side, uvs) => {
|
||||
const axis = Math.floor(side / 2);
|
||||
const uvCoords = [];
|
||||
for (let i = 0; i < 3; i++) {
|
||||
if (i !== axis) {
|
||||
uvCoords.push(pos[i]);
|
||||
}
|
||||
}
|
||||
const sideIndex = uvCoords[0] + uvCoords[1] * 3;
|
||||
return uvs[side][sideIndex];
|
||||
};
|
||||
var Cubie = class {
|
||||
/**
|
||||
* @param {number} index
|
||||
* @param {number[][][]} uvs
|
||||
* @param {V3[]} hoveringColors
|
||||
* @param {import('./rubiks').Rubiks} parent
|
||||
*/
|
||||
constructor(index, uvs, hoveringColors, parent) {
|
||||
/** @type {Facelet[]} */
|
||||
__publicField(this, "facelets", []);
|
||||
/** @type {Transform<Facelet | InsideFacelet, import('./rubiks').Rubiks>} */
|
||||
__publicField(this, "transform");
|
||||
this.index = index;
|
||||
const pos = indexToPosition(index);
|
||||
const position = new V3(pos[0], pos[1], pos[2]).sub(V3.one);
|
||||
this.transform = new Transform(position, Quaternion.identity, parent);
|
||||
for (let side = 0; side < 6; side++) {
|
||||
const inside = isInside(side, this.index);
|
||||
const position2 = positionForSide[side];
|
||||
const rotation = rotationForSide[side];
|
||||
if (inside) {
|
||||
const transform2 = new Transform(position2, rotation, this);
|
||||
const facelet2 = new InsideFacelet(transform2);
|
||||
this.transform.children.push(facelet2);
|
||||
continue;
|
||||
}
|
||||
const uv = positionToUvs(pos, side, uvs);
|
||||
const transform = new FaceletTransform(position2, rotation, this);
|
||||
const facelet = new Facelet(transform, side, uv, hoveringColors[side]);
|
||||
this.transform.children.push(facelet);
|
||||
this.facelets.push(facelet);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @param {number} side
|
||||
* @returns {Facelet}
|
||||
*/
|
||||
getFaceletOfSide(side) {
|
||||
return (
|
||||
/** @type {Facelet} */
|
||||
this.facelets.find((facelet) => facelet.side === side)
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {import('./program').Program} program
|
||||
* @param {WebGL2RenderingContext} gl
|
||||
* @param {WebGLBuffer} uvsVbo
|
||||
*/
|
||||
render(program, gl, uvsVbo) {
|
||||
this.transform.children.forEach((child) => child.render.call(child, program, gl, uvsVbo));
|
||||
}
|
||||
};
|
||||
|
||||
export {
|
||||
V2,
|
||||
V3,
|
||||
V4,
|
||||
M44,
|
||||
Quaternion,
|
||||
Program,
|
||||
Transform,
|
||||
isInside,
|
||||
indexToPosition,
|
||||
positionToUvs,
|
||||
Cubie
|
||||
};
|
||||
//# sourceMappingURL=chunk-ROHLD3FA.js.map
|
||||
7
node_modules/.vite/deps/chunk-ROHLD3FA.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/chunk-ROHLD3FA.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12542
node_modules/.vite/deps/chunk-U3LI7FBV.js
generated
vendored
Normal file
12542
node_modules/.vite/deps/chunk-U3LI7FBV.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
node_modules/.vite/deps/chunk-U3LI7FBV.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/chunk-U3LI7FBV.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
18
node_modules/.vite/deps/chunk-Y44FVENP.js
generated
vendored
Normal file
18
node_modules/.vite/deps/chunk-Y44FVENP.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
// node_modules/@gkucmierz/utils/src/mod.mjs
|
||||
var getMod = (ZERO) => {
|
||||
return (dividend, divisor) => {
|
||||
if (dividend < ZERO ^ divisor < ZERO) {
|
||||
const res = -dividend % divisor;
|
||||
return res === ZERO ? ZERO : divisor - res;
|
||||
}
|
||||
return dividend % divisor;
|
||||
};
|
||||
};
|
||||
var mod = getMod(0);
|
||||
var modBI = getMod(0n);
|
||||
|
||||
export {
|
||||
mod,
|
||||
modBI
|
||||
};
|
||||
//# sourceMappingURL=chunk-Y44FVENP.js.map
|
||||
7
node_modules/.vite/deps/chunk-Y44FVENP.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/chunk-Y44FVENP.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../@gkucmierz/utils/src/mod.mjs"],
|
||||
"sourcesContent": ["\nconst getMod = ZERO => {\n return (dividend, divisor) => {\n if ((dividend < ZERO) ^ (divisor < ZERO)) {\n const res = -dividend % divisor;\n return res === ZERO ? ZERO : divisor - res;\n }\n return dividend % divisor;\n };\n};\n\n/**\n * Python like modulo implementation.\n * It behaves different than JavaScript %\n * with negative values\n * @method\n * @param {Number} Dividend\n * @param {Number} Divisor\n * @return {Number} Modulus\n */\nexport const mod = getMod(0);\n\n/**\n * Python like modulo implementation.\n * It behaves different than JavaScript %\n * with negative values\n * @method\n * @param {BigInt} Dividend\n * @param {BigInt} Divisor\n * @return {BigInt} Modulus\n */\nexport const modBI = getMod(0n);\n"],
|
||||
"mappings": ";AACA,IAAM,SAAS,UAAQ;AACrB,SAAO,CAAC,UAAU,YAAY;AAC5B,QAAK,WAAW,OAAS,UAAU,MAAO;AACxC,YAAM,MAAM,CAAC,WAAW;AACxB,aAAO,QAAQ,OAAO,OAAO,UAAU;AAAA,IACzC;AACA,WAAO,WAAW;AAAA,EACpB;AACF;AAWO,IAAM,MAAM,OAAO,CAAC;AAWpB,IAAM,QAAQ,OAAO,EAAE;",
|
||||
"names": []
|
||||
}
|
||||
1625
node_modules/.vite/deps/chunk-YIK32INT.js
generated
vendored
Normal file
1625
node_modules/.vite/deps/chunk-YIK32INT.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
node_modules/.vite/deps/chunk-YIK32INT.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/chunk-YIK32INT.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
39241
node_modules/.vite/deps/lucide-vue-next.js
generated
vendored
Normal file
39241
node_modules/.vite/deps/lucide-vue-next.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
node_modules/.vite/deps/lucide-vue-next.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/lucide-vue-next.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
494
node_modules/.vite/deps/matrix-js.js
generated
vendored
Normal file
494
node_modules/.vite/deps/matrix-js.js
generated
vendored
Normal file
@@ -0,0 +1,494 @@
|
||||
import {
|
||||
__commonJS
|
||||
} from "./chunk-HPRLEMBT.js";
|
||||
|
||||
// node_modules/matrix-js/lib/rational.js
|
||||
var require_rational = __commonJS({
|
||||
"node_modules/matrix-js/lib/rational.js"(exports, module) {
|
||||
"use strict";
|
||||
function rational(num, den) {
|
||||
den = den || 1;
|
||||
if (Math.sign(den) === -1) {
|
||||
num = -num;
|
||||
den = -den;
|
||||
}
|
||||
return {
|
||||
num,
|
||||
den,
|
||||
add: (op) => rational(num * op.den + den * op.num, den * op.den),
|
||||
sub: (op) => rational(num * op.den - den * op.num, den * op.den),
|
||||
mul: (op) => multiply(op, num, den),
|
||||
div: (op) => {
|
||||
let _num = op.den;
|
||||
let _den = op.num;
|
||||
return multiply(rational(_num, _den), num, den);
|
||||
}
|
||||
};
|
||||
}
|
||||
module.exports = rational;
|
||||
function multiply(op, num, den) {
|
||||
let _num = Math.sign(num) * Math.sign(op.num);
|
||||
let _den = Math.sign(den) * Math.sign(op.den);
|
||||
if (Math.abs(num) === Math.abs(op.den) && Math.abs(den) === Math.abs(op.num)) {
|
||||
_num = _num;
|
||||
_den = _den;
|
||||
} else if (Math.abs(den) === Math.abs(op.num)) {
|
||||
_num = _num * Math.abs(num);
|
||||
_den = _den * Math.abs(op.den);
|
||||
} else if (Math.abs(num) === Math.abs(op.den)) {
|
||||
_num = _num * Math.abs(op.num);
|
||||
_den = _den * Math.abs(den);
|
||||
} else {
|
||||
_num = num * op.num;
|
||||
_den = den * op.den;
|
||||
}
|
||||
return rational(_num, _den);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// node_modules/matrix-js/lib/merge.js
|
||||
var require_merge = __commonJS({
|
||||
"node_modules/matrix-js/lib/merge.js"(exports, module) {
|
||||
"use strict";
|
||||
function merge(base) {
|
||||
return {
|
||||
top: (mergeData) => top(base, mergeData),
|
||||
bottom: (mergeData) => bottom(base, mergeData),
|
||||
left: (mergeData) => left(base, mergeData),
|
||||
right: (mergeData) => right(base, mergeData)
|
||||
};
|
||||
}
|
||||
module.exports = merge;
|
||||
function top(base, mergeData) {
|
||||
let baseWidth = base[0].length || base.length;
|
||||
let mergeDataWidth = mergeData[mergeData.length - 1].length || mergeData.length;
|
||||
if (baseWidth !== mergeDataWidth) {
|
||||
return base;
|
||||
}
|
||||
if (!Array.isArray(base[0])) {
|
||||
base = [base];
|
||||
}
|
||||
if (!Array.isArray(mergeData[mergeData.length - 1])) {
|
||||
mergeData = [mergeData];
|
||||
}
|
||||
for (let row = mergeData.length - 1; row >= 0; row--) {
|
||||
base.unshift(mergeData[row].map((ele) => ele));
|
||||
}
|
||||
return base;
|
||||
}
|
||||
function bottom(base, mergeData) {
|
||||
let baseWidth = base[base.length - 1].length || base.length;
|
||||
let mergeDataWidth = mergeData[0].length || mergeData.length;
|
||||
if (baseWidth !== mergeDataWidth) {
|
||||
return base;
|
||||
}
|
||||
if (!Array.isArray(base[base.length - 1])) {
|
||||
base = [base];
|
||||
}
|
||||
if (!Array.isArray(mergeData[0])) {
|
||||
mergeData = [mergeData];
|
||||
}
|
||||
for (let row = 0; row < mergeData.length; row++) {
|
||||
base.push(mergeData[row].map((ele) => ele));
|
||||
}
|
||||
return base;
|
||||
}
|
||||
function left(base, mergeData) {
|
||||
let baseHeight = base.length;
|
||||
let mergeDataHeight = mergeData.length;
|
||||
if (!Array.isArray(base[0]) && !Array.isArray(mergeData[0])) {
|
||||
base.unshift.apply(base, mergeData);
|
||||
return base;
|
||||
}
|
||||
if (baseHeight !== mergeDataHeight) {
|
||||
return base;
|
||||
}
|
||||
for (let row = 0; row < baseHeight; row++) {
|
||||
base[row].unshift.apply(base[row], mergeData[row].map((ele) => ele));
|
||||
}
|
||||
return base;
|
||||
}
|
||||
function right(base, mergeData) {
|
||||
let baseHeight = base.length;
|
||||
let mergeDataHeight = mergeData.length;
|
||||
if (!Array.isArray(base[0]) && !Array.isArray(mergeData[0])) {
|
||||
base.push.apply(base, mergeData);
|
||||
return base;
|
||||
}
|
||||
if (baseHeight !== mergeDataHeight) {
|
||||
return base;
|
||||
}
|
||||
for (let row = 0; row < baseHeight; row++) {
|
||||
base[row].push.apply(base[row], mergeData[row].map((ele) => ele));
|
||||
}
|
||||
return base;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// node_modules/matrix-js/lib/generate.js
|
||||
var require_generate = __commonJS({
|
||||
"node_modules/matrix-js/lib/generate.js"(exports, module) {
|
||||
"use strict";
|
||||
function generate(val) {
|
||||
return {
|
||||
size: (row, col) => size(val, row, col),
|
||||
diag: (row, col) => diag(val, row, col)
|
||||
};
|
||||
}
|
||||
function size(val, row, col) {
|
||||
if (!col) {
|
||||
col = row;
|
||||
}
|
||||
let rows = [];
|
||||
for (let i = 0; i < row; i++) {
|
||||
let cols = [];
|
||||
for (let j = 0; j < col; j++) {
|
||||
cols[j] = val || Math.random();
|
||||
}
|
||||
rows[i] = cols;
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
function diag(val, row, col) {
|
||||
if (!col) {
|
||||
col = row;
|
||||
}
|
||||
let rows = [];
|
||||
for (let i = 0; i < row; i++) {
|
||||
let cols = [];
|
||||
for (let j = 0; j < col; j++) {
|
||||
cols[j] = 0;
|
||||
}
|
||||
rows[i] = cols;
|
||||
if (i < col || row == col) {
|
||||
rows[i][i] = val || Math.random();
|
||||
}
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
module.exports = generate;
|
||||
}
|
||||
});
|
||||
|
||||
// node_modules/matrix-js/lib/index.js
|
||||
var require_lib = __commonJS({
|
||||
"node_modules/matrix-js/lib/index.js"(exports, module) {
|
||||
var rational = require_rational();
|
||||
var merge = require_merge();
|
||||
var generate = require_generate();
|
||||
function matrix(mat) {
|
||||
if (!Array.isArray(mat)) {
|
||||
throw new Error("Input should be of type array");
|
||||
}
|
||||
let _matrix = function() {
|
||||
let args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
|
||||
return read(mat, args);
|
||||
};
|
||||
return Object.assign(_matrix, _mat(mat));
|
||||
}
|
||||
matrix.gen = generate;
|
||||
function _mat(mat) {
|
||||
return {
|
||||
size: () => size(mat),
|
||||
add: (operand) => operate(mat, operand, addition),
|
||||
sub: (operand) => operate(mat, operand, subtraction),
|
||||
mul: (operand) => operate(mat, operand, multiplication),
|
||||
div: (operand) => operate(mat, operand, division),
|
||||
prod: (operand) => prod(mat, operand),
|
||||
trans: () => trans(mat),
|
||||
set: function() {
|
||||
let args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
|
||||
return {
|
||||
to: (val) => replace(mat, val, args)
|
||||
};
|
||||
},
|
||||
det: () => determinant(mat),
|
||||
inv: () => invert(mat),
|
||||
merge: merge(mat),
|
||||
map: (func) => map(mat, func),
|
||||
equals: (operand) => equals(mat, operand)
|
||||
};
|
||||
}
|
||||
module.exports = matrix;
|
||||
function size(mat) {
|
||||
let s = [];
|
||||
while (Array.isArray(mat)) {
|
||||
s.push(mat.length);
|
||||
mat = mat[0];
|
||||
}
|
||||
return s;
|
||||
}
|
||||
function dimensions(mat) {
|
||||
return size(mat).length;
|
||||
}
|
||||
function read(mat, args) {
|
||||
if (args.length === 0) {
|
||||
return mat;
|
||||
} else {
|
||||
return extract(mat, args);
|
||||
}
|
||||
}
|
||||
function extract(mat, args) {
|
||||
let dim = dimensions(mat);
|
||||
for (let i = 0; i < dim; i++) {
|
||||
let d = args[i];
|
||||
if (d === void 0) {
|
||||
break;
|
||||
}
|
||||
if (Array.isArray(d)) {
|
||||
mat = extractRange(mat, d, i);
|
||||
} else if (Number.isInteger(d)) {
|
||||
if (dimensions(mat) > 1 && i > 0) {
|
||||
mat = mat.map(function(elem) {
|
||||
return [elem[d]];
|
||||
});
|
||||
} else {
|
||||
mat = mat[d];
|
||||
}
|
||||
}
|
||||
}
|
||||
return mat;
|
||||
}
|
||||
function extractRange(mat, arg, ind) {
|
||||
if (!arg.length) {
|
||||
return mat;
|
||||
} else if (arg.length === 2) {
|
||||
let reverse = arg[0] > arg[1];
|
||||
let first = !reverse ? arg[0] : arg[1];
|
||||
let last = !reverse ? arg[1] : arg[0];
|
||||
if (dimensions(mat) > 1 && ind > 0) {
|
||||
return mat.map(function(elem) {
|
||||
if (reverse) {
|
||||
return elem.slice(first, last + 1).reverse();
|
||||
}
|
||||
return elem.slice(first, last + 1);
|
||||
});
|
||||
} else {
|
||||
mat = mat.slice(first, last + 1);
|
||||
return reverse && mat.reverse() || mat;
|
||||
}
|
||||
}
|
||||
}
|
||||
function replace(mat, value, args) {
|
||||
let result = clone(mat);
|
||||
let prev = args[0];
|
||||
let start = prev[0] || 0;
|
||||
let end = prev[1] && prev[1] + 1 || mat.length;
|
||||
if (!Array.isArray(prev) && args.length === 1) {
|
||||
result[prev].fill(value);
|
||||
} else if (args.length === 1) {
|
||||
for (let ind = start; ind < end; ind++) {
|
||||
result[ind].fill(value);
|
||||
}
|
||||
}
|
||||
for (let i = 1; i < args.length; i++) {
|
||||
let first = Array.isArray(args[i]) ? args[i][0] || 0 : args[i];
|
||||
let last = Array.isArray(args[i]) ? args[i][1] && args[i][1] + 1 || mat[0].length : args[i] + 1;
|
||||
if (!Array.isArray(prev)) {
|
||||
result[prev].fill(value, first, last);
|
||||
} else {
|
||||
for (let ind = start; ind < end; ind++) {
|
||||
result[ind].fill(value, first, last);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function operate(mat, operand, operation) {
|
||||
let result = [];
|
||||
let op = operand();
|
||||
for (let i = 0; i < mat.length; i++) {
|
||||
let op1 = mat[i];
|
||||
let op2 = op[i];
|
||||
result.push(op1.map(function(elem, ind) {
|
||||
return operation(elem, op2[ind]);
|
||||
}));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function prod(mat, operand) {
|
||||
let op1 = mat;
|
||||
let op2 = operand();
|
||||
let size1 = size(op1);
|
||||
let size2 = size(op2);
|
||||
let result = [];
|
||||
if (size1[1] === size2[0]) {
|
||||
for (let i = 0; i < size1[0]; i++) {
|
||||
result[i] = [];
|
||||
for (let j = 0; j < size2[1]; j++) {
|
||||
for (let k = 0; k < size1[1]; k++) {
|
||||
if (result[i][j] === void 0) {
|
||||
result[i][j] = 0;
|
||||
}
|
||||
result[i][j] += multiplication(op1[i][k], op2[k][j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function trans(mat) {
|
||||
let input = mat;
|
||||
let s = size(mat);
|
||||
let output = [];
|
||||
for (let i = 0; i < s[0]; i++) {
|
||||
for (let j = 0; j < s[1]; j++) {
|
||||
if (Array.isArray(output[j])) {
|
||||
output[j].push(input[i][j]);
|
||||
} else {
|
||||
output[j] = [input[i][j]];
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
function clone(mat) {
|
||||
let result = [];
|
||||
for (let i = 0; i < mat.length; i++) {
|
||||
result.push(mat[i].slice(0));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function addition(op1, op2) {
|
||||
return op1 + op2;
|
||||
}
|
||||
function subtraction(op1, op2) {
|
||||
return op1 - op2;
|
||||
}
|
||||
function multiplication(op1, op2) {
|
||||
return op1 * op2;
|
||||
}
|
||||
function division(op1, op2) {
|
||||
return op1 / op2;
|
||||
}
|
||||
function determinant(mat) {
|
||||
let rationalized = rationalize(mat);
|
||||
let siz = size(mat);
|
||||
let det = rational(1);
|
||||
let sign = 1;
|
||||
for (let i = 0; i < siz[0] - 1; i++) {
|
||||
for (let j = i + 1; j < siz[0]; j++) {
|
||||
if (rationalized[j][i].num === 0) {
|
||||
continue;
|
||||
}
|
||||
if (rationalized[i][i].num === 0) {
|
||||
interchange(rationalized, i, j);
|
||||
sign = -sign;
|
||||
continue;
|
||||
}
|
||||
let temp = rationalized[j][i].div(rationalized[i][i]);
|
||||
temp = rational(Math.abs(temp.num), temp.den);
|
||||
if (Math.sign(rationalized[j][i].num) === Math.sign(rationalized[i][i].num)) {
|
||||
temp = rational(-temp.num, temp.den);
|
||||
}
|
||||
for (let k = 0; k < siz[1]; k++) {
|
||||
rationalized[j][k] = temp.mul(rationalized[i][k]).add(rationalized[j][k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
det = rationalized.reduce((prev, curr, index) => prev.mul(curr[index]), rational(1));
|
||||
return sign * det.num / det.den;
|
||||
}
|
||||
function interchange(mat, ind1, ind2) {
|
||||
let temp = mat[ind1];
|
||||
mat[ind1] = mat[ind2];
|
||||
mat[ind2] = temp;
|
||||
}
|
||||
function invert(mat) {
|
||||
let rationalized = rationalize(mat);
|
||||
let siz = size(mat);
|
||||
let result = rationalize(generate(1).diag(siz[0]));
|
||||
let i = 0;
|
||||
let j = 0;
|
||||
while (j < siz[0]) {
|
||||
if (rationalized[i][j].num === 0) {
|
||||
for (let k = i + 1; k < siz[0]; k++) {
|
||||
if (rationalized[k][j].num !== 0) {
|
||||
interchange(rationalized, i, k);
|
||||
interchange(result, i, k);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rationalized[i][j].num !== 0) {
|
||||
if (rationalized[i][j].num !== 1 || rationalized[i][j].den !== 1) {
|
||||
let factor = rational(rationalized[i][j].num, rationalized[i][j].den);
|
||||
for (let col = 0; col < siz[1]; col++) {
|
||||
rationalized[i][col] = rationalized[i][col].div(factor);
|
||||
result[i][col] = result[i][col].div(factor);
|
||||
}
|
||||
}
|
||||
for (let k = i + 1; k < siz[0]; k++) {
|
||||
let temp = rationalized[k][j];
|
||||
for (let col = 0; col < siz[1]; col++) {
|
||||
rationalized[k][col] = rationalized[k][col].sub(temp.mul(rationalized[i][col]));
|
||||
result[k][col] = result[k][col].sub(temp.mul(result[i][col]));
|
||||
}
|
||||
}
|
||||
}
|
||||
i += 1;
|
||||
j += 1;
|
||||
}
|
||||
let last = siz[0] - 1;
|
||||
if (rationalized[last][last].num !== 1 || rationalized[last][last].den !== 1) {
|
||||
let factor = rational(rationalized[last][last].num, rationalized[last][last].den);
|
||||
for (let col = 0; col < siz[1]; col++) {
|
||||
rationalized[last][col] = rationalized[last][col].div(factor);
|
||||
result[last][col] = result[last][col].div(factor);
|
||||
}
|
||||
}
|
||||
for (let i2 = siz[0] - 1; i2 > 0; i2--) {
|
||||
for (let j2 = i2 - 1; j2 >= 0; j2--) {
|
||||
let temp = rational(-rationalized[j2][i2].num, rationalized[j2][i2].den);
|
||||
for (let k = 0; k < siz[1]; k++) {
|
||||
rationalized[j2][k] = temp.mul(rationalized[i2][k]).add(rationalized[j2][k]);
|
||||
result[j2][k] = temp.mul(result[i2][k]).add(result[j2][k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return derationalize(result);
|
||||
}
|
||||
function map(mat, func) {
|
||||
const s = size(mat);
|
||||
const result = [];
|
||||
for (let i = 0; i < s[0]; i++) {
|
||||
if (Array.isArray(mat[i])) {
|
||||
result[i] = [];
|
||||
for (let j = 0; j < s[1]; j++) {
|
||||
result[i][j] = func(mat[i][j], [i, j], mat);
|
||||
}
|
||||
} else {
|
||||
result[i] = func(mat[i], [i, 0], mat);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function rationalize(mat) {
|
||||
let rationalized = [];
|
||||
mat.forEach((row, ind) => {
|
||||
rationalized.push(row.map((ele) => rational(ele)));
|
||||
});
|
||||
return rationalized;
|
||||
}
|
||||
function derationalize(mat) {
|
||||
let derationalized = [];
|
||||
mat.forEach((row, ind) => {
|
||||
derationalized.push(row.map((ele) => ele.num / ele.den));
|
||||
});
|
||||
return derationalized;
|
||||
}
|
||||
function equals(mat, operand) {
|
||||
let op1 = mat;
|
||||
let op2 = operand();
|
||||
let size1 = size(op1);
|
||||
let size2 = size(op2);
|
||||
if (!size1.every((val, ind) => val === size2[ind])) {
|
||||
return false;
|
||||
}
|
||||
return op1.every((val, ind1) => val.every((ele, ind2) => Math.abs(ele - op2[ind1][ind2]) < 1e-10));
|
||||
}
|
||||
}
|
||||
});
|
||||
export default require_lib();
|
||||
//# sourceMappingURL=matrix-js.js.map
|
||||
7
node_modules/.vite/deps/matrix-js.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/matrix-js.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3
node_modules/.vite/deps/package.json
generated
vendored
Normal file
3
node_modules/.vite/deps/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
1545
node_modules/.vite/deps/rubiks-js.js
generated
vendored
Normal file
1545
node_modules/.vite/deps/rubiks-js.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
node_modules/.vite/deps/rubiks-js.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/rubiks-js.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
16
node_modules/.vite/deps/rubiks-js_src_state_index__js.js
generated
vendored
Normal file
16
node_modules/.vite/deps/rubiks-js_src_state_index__js.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
import {
|
||||
State,
|
||||
StateInfo,
|
||||
createSideToUvs,
|
||||
setUvs,
|
||||
transformSidetoUvs
|
||||
} from "./chunk-YIK32INT.js";
|
||||
import "./chunk-ROHLD3FA.js";
|
||||
import "./chunk-HPRLEMBT.js";
|
||||
export {
|
||||
State,
|
||||
StateInfo,
|
||||
createSideToUvs,
|
||||
setUvs,
|
||||
transformSidetoUvs
|
||||
};
|
||||
7
node_modules/.vite/deps/rubiks-js_src_state_index__js.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/rubiks-js_src_state_index__js.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
13
node_modules/.vite/deps/rubiks-js_src_ui_cubie__js.js
generated
vendored
Normal file
13
node_modules/.vite/deps/rubiks-js_src_ui_cubie__js.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import {
|
||||
Cubie,
|
||||
indexToPosition,
|
||||
isInside,
|
||||
positionToUvs
|
||||
} from "./chunk-ROHLD3FA.js";
|
||||
import "./chunk-HPRLEMBT.js";
|
||||
export {
|
||||
Cubie,
|
||||
indexToPosition,
|
||||
isInside,
|
||||
positionToUvs
|
||||
};
|
||||
7
node_modules/.vite/deps/rubiks-js_src_ui_cubie__js.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/rubiks-js_src_ui_cubie__js.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
343
node_modules/.vite/deps/vue.js
generated
vendored
Normal file
343
node_modules/.vite/deps/vue.js
generated
vendored
Normal file
@@ -0,0 +1,343 @@
|
||||
import {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBaseVNode,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
} from "./chunk-U3LI7FBV.js";
|
||||
import "./chunk-HPRLEMBT.js";
|
||||
export {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createBaseVNode as createElementVNode,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
};
|
||||
7
node_modules/.vite/deps/vue.js.map
generated
vendored
Normal file
7
node_modules/.vite/deps/vue.js.map
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
22
node_modules/@babel/helper-string-parser/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/helper-string-parser/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
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.
|
||||
19
node_modules/@babel/helper-string-parser/README.md
generated
vendored
Normal file
19
node_modules/@babel/helper-string-parser/README.md
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# @babel/helper-string-parser
|
||||
|
||||
> A utility package to parse strings
|
||||
|
||||
See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save @babel/helper-string-parser
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/helper-string-parser
|
||||
```
|
||||
295
node_modules/@babel/helper-string-parser/lib/index.js
generated
vendored
Normal file
295
node_modules/@babel/helper-string-parser/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,295 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.readCodePoint = readCodePoint;
|
||||
exports.readInt = readInt;
|
||||
exports.readStringContents = readStringContents;
|
||||
var _isDigit = function isDigit(code) {
|
||||
return code >= 48 && code <= 57;
|
||||
};
|
||||
const forbiddenNumericSeparatorSiblings = {
|
||||
decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
|
||||
hex: new Set([46, 88, 95, 120])
|
||||
};
|
||||
const isAllowedNumericSeparatorSibling = {
|
||||
bin: ch => ch === 48 || ch === 49,
|
||||
oct: ch => ch >= 48 && ch <= 55,
|
||||
dec: ch => ch >= 48 && ch <= 57,
|
||||
hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102
|
||||
};
|
||||
function readStringContents(type, input, pos, lineStart, curLine, errors) {
|
||||
const initialPos = pos;
|
||||
const initialLineStart = lineStart;
|
||||
const initialCurLine = curLine;
|
||||
let out = "";
|
||||
let firstInvalidLoc = null;
|
||||
let chunkStart = pos;
|
||||
const {
|
||||
length
|
||||
} = input;
|
||||
for (;;) {
|
||||
if (pos >= length) {
|
||||
errors.unterminated(initialPos, initialLineStart, initialCurLine);
|
||||
out += input.slice(chunkStart, pos);
|
||||
break;
|
||||
}
|
||||
const ch = input.charCodeAt(pos);
|
||||
if (isStringEnd(type, ch, input, pos)) {
|
||||
out += input.slice(chunkStart, pos);
|
||||
break;
|
||||
}
|
||||
if (ch === 92) {
|
||||
out += input.slice(chunkStart, pos);
|
||||
const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors);
|
||||
if (res.ch === null && !firstInvalidLoc) {
|
||||
firstInvalidLoc = {
|
||||
pos,
|
||||
lineStart,
|
||||
curLine
|
||||
};
|
||||
} else {
|
||||
out += res.ch;
|
||||
}
|
||||
({
|
||||
pos,
|
||||
lineStart,
|
||||
curLine
|
||||
} = res);
|
||||
chunkStart = pos;
|
||||
} else if (ch === 8232 || ch === 8233) {
|
||||
++pos;
|
||||
++curLine;
|
||||
lineStart = pos;
|
||||
} else if (ch === 10 || ch === 13) {
|
||||
if (type === "template") {
|
||||
out += input.slice(chunkStart, pos) + "\n";
|
||||
++pos;
|
||||
if (ch === 13 && input.charCodeAt(pos) === 10) {
|
||||
++pos;
|
||||
}
|
||||
++curLine;
|
||||
chunkStart = lineStart = pos;
|
||||
} else {
|
||||
errors.unterminated(initialPos, initialLineStart, initialCurLine);
|
||||
}
|
||||
} else {
|
||||
++pos;
|
||||
}
|
||||
}
|
||||
return {
|
||||
pos,
|
||||
str: out,
|
||||
firstInvalidLoc,
|
||||
lineStart,
|
||||
curLine,
|
||||
containsInvalid: !!firstInvalidLoc
|
||||
};
|
||||
}
|
||||
function isStringEnd(type, ch, input, pos) {
|
||||
if (type === "template") {
|
||||
return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;
|
||||
}
|
||||
return ch === (type === "double" ? 34 : 39);
|
||||
}
|
||||
function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {
|
||||
const throwOnInvalid = !inTemplate;
|
||||
pos++;
|
||||
const res = ch => ({
|
||||
pos,
|
||||
ch,
|
||||
lineStart,
|
||||
curLine
|
||||
});
|
||||
const ch = input.charCodeAt(pos++);
|
||||
switch (ch) {
|
||||
case 110:
|
||||
return res("\n");
|
||||
case 114:
|
||||
return res("\r");
|
||||
case 120:
|
||||
{
|
||||
let code;
|
||||
({
|
||||
code,
|
||||
pos
|
||||
} = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));
|
||||
return res(code === null ? null : String.fromCharCode(code));
|
||||
}
|
||||
case 117:
|
||||
{
|
||||
let code;
|
||||
({
|
||||
code,
|
||||
pos
|
||||
} = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));
|
||||
return res(code === null ? null : String.fromCodePoint(code));
|
||||
}
|
||||
case 116:
|
||||
return res("\t");
|
||||
case 98:
|
||||
return res("\b");
|
||||
case 118:
|
||||
return res("\u000b");
|
||||
case 102:
|
||||
return res("\f");
|
||||
case 13:
|
||||
if (input.charCodeAt(pos) === 10) {
|
||||
++pos;
|
||||
}
|
||||
case 10:
|
||||
lineStart = pos;
|
||||
++curLine;
|
||||
case 8232:
|
||||
case 8233:
|
||||
return res("");
|
||||
case 56:
|
||||
case 57:
|
||||
if (inTemplate) {
|
||||
return res(null);
|
||||
} else {
|
||||
errors.strictNumericEscape(pos - 1, lineStart, curLine);
|
||||
}
|
||||
default:
|
||||
if (ch >= 48 && ch <= 55) {
|
||||
const startPos = pos - 1;
|
||||
const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));
|
||||
let octalStr = match[0];
|
||||
let octal = parseInt(octalStr, 8);
|
||||
if (octal > 255) {
|
||||
octalStr = octalStr.slice(0, -1);
|
||||
octal = parseInt(octalStr, 8);
|
||||
}
|
||||
pos += octalStr.length - 1;
|
||||
const next = input.charCodeAt(pos);
|
||||
if (octalStr !== "0" || next === 56 || next === 57) {
|
||||
if (inTemplate) {
|
||||
return res(null);
|
||||
} else {
|
||||
errors.strictNumericEscape(startPos, lineStart, curLine);
|
||||
}
|
||||
}
|
||||
return res(String.fromCharCode(octal));
|
||||
}
|
||||
return res(String.fromCharCode(ch));
|
||||
}
|
||||
}
|
||||
function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {
|
||||
const initialPos = pos;
|
||||
let n;
|
||||
({
|
||||
n,
|
||||
pos
|
||||
} = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));
|
||||
if (n === null) {
|
||||
if (throwOnInvalid) {
|
||||
errors.invalidEscapeSequence(initialPos, lineStart, curLine);
|
||||
} else {
|
||||
pos = initialPos - 1;
|
||||
}
|
||||
}
|
||||
return {
|
||||
code: n,
|
||||
pos
|
||||
};
|
||||
}
|
||||
function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {
|
||||
const start = pos;
|
||||
const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
|
||||
const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;
|
||||
let invalid = false;
|
||||
let total = 0;
|
||||
for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
|
||||
const code = input.charCodeAt(pos);
|
||||
let val;
|
||||
if (code === 95 && allowNumSeparator !== "bail") {
|
||||
const prev = input.charCodeAt(pos - 1);
|
||||
const next = input.charCodeAt(pos + 1);
|
||||
if (!allowNumSeparator) {
|
||||
if (bailOnError) return {
|
||||
n: null,
|
||||
pos
|
||||
};
|
||||
errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);
|
||||
} else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {
|
||||
if (bailOnError) return {
|
||||
n: null,
|
||||
pos
|
||||
};
|
||||
errors.unexpectedNumericSeparator(pos, lineStart, curLine);
|
||||
}
|
||||
++pos;
|
||||
continue;
|
||||
}
|
||||
if (code >= 97) {
|
||||
val = code - 97 + 10;
|
||||
} else if (code >= 65) {
|
||||
val = code - 65 + 10;
|
||||
} else if (_isDigit(code)) {
|
||||
val = code - 48;
|
||||
} else {
|
||||
val = Infinity;
|
||||
}
|
||||
if (val >= radix) {
|
||||
if (val <= 9 && bailOnError) {
|
||||
return {
|
||||
n: null,
|
||||
pos
|
||||
};
|
||||
} else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {
|
||||
val = 0;
|
||||
} else if (forceLen) {
|
||||
val = 0;
|
||||
invalid = true;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
++pos;
|
||||
total = total * radix + val;
|
||||
}
|
||||
if (pos === start || len != null && pos - start !== len || invalid) {
|
||||
return {
|
||||
n: null,
|
||||
pos
|
||||
};
|
||||
}
|
||||
return {
|
||||
n: total,
|
||||
pos
|
||||
};
|
||||
}
|
||||
function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
|
||||
const ch = input.charCodeAt(pos);
|
||||
let code;
|
||||
if (ch === 123) {
|
||||
++pos;
|
||||
({
|
||||
code,
|
||||
pos
|
||||
} = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors));
|
||||
++pos;
|
||||
if (code !== null && code > 0x10ffff) {
|
||||
if (throwOnInvalid) {
|
||||
errors.invalidCodePoint(pos, lineStart, curLine);
|
||||
} else {
|
||||
return {
|
||||
code: null,
|
||||
pos
|
||||
};
|
||||
}
|
||||
}
|
||||
} else {
|
||||
({
|
||||
code,
|
||||
pos
|
||||
} = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));
|
||||
}
|
||||
return {
|
||||
code,
|
||||
pos
|
||||
};
|
||||
}
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/helper-string-parser/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-string-parser/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
31
node_modules/@babel/helper-string-parser/package.json
generated
vendored
Normal file
31
node_modules/@babel/helper-string-parser/package.json
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "@babel/helper-string-parser",
|
||||
"version": "7.25.9",
|
||||
"description": "A utility package to parse strings",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-helper-string-parser"
|
||||
},
|
||||
"homepage": "https://babel.dev/docs/en/next/babel-helper-string-parser",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"devDependencies": {
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./lib/index.d.ts",
|
||||
"default": "./lib/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"type": "commonjs"
|
||||
}
|
||||
22
node_modules/@babel/helper-validator-identifier/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/helper-validator-identifier/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
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.
|
||||
19
node_modules/@babel/helper-validator-identifier/README.md
generated
vendored
Normal file
19
node_modules/@babel/helper-validator-identifier/README.md
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# @babel/helper-validator-identifier
|
||||
|
||||
> Validate identifier/keywords name
|
||||
|
||||
See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save @babel/helper-validator-identifier
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/helper-validator-identifier
|
||||
```
|
||||
70
node_modules/@babel/helper-validator-identifier/lib/identifier.js
generated
vendored
Normal file
70
node_modules/@babel/helper-validator-identifier/lib/identifier.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isIdentifierChar = isIdentifierChar;
|
||||
exports.isIdentifierName = isIdentifierName;
|
||||
exports.isIdentifierStart = isIdentifierStart;
|
||||
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
||||
let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
|
||||
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
||||
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
||||
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
||||
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
|
||||
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
||||
function isInAstralSet(code, set) {
|
||||
let pos = 0x10000;
|
||||
for (let i = 0, length = set.length; i < length; i += 2) {
|
||||
pos += set[i];
|
||||
if (pos > code) return false;
|
||||
pos += set[i + 1];
|
||||
if (pos >= code) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function isIdentifierStart(code) {
|
||||
if (code < 65) return code === 36;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes);
|
||||
}
|
||||
function isIdentifierChar(code) {
|
||||
if (code < 48) return code === 36;
|
||||
if (code < 58) return true;
|
||||
if (code < 65) return false;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
|
||||
}
|
||||
function isIdentifierName(name) {
|
||||
let isFirst = true;
|
||||
for (let i = 0; i < name.length; i++) {
|
||||
let cp = name.charCodeAt(i);
|
||||
if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
|
||||
const trail = name.charCodeAt(++i);
|
||||
if ((trail & 0xfc00) === 0xdc00) {
|
||||
cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
|
||||
}
|
||||
}
|
||||
if (isFirst) {
|
||||
isFirst = false;
|
||||
if (!isIdentifierStart(cp)) {
|
||||
return false;
|
||||
}
|
||||
} else if (!isIdentifierChar(cp)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return !isFirst;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=identifier.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/identifier.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/identifier.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
57
node_modules/@babel/helper-validator-identifier/lib/index.js
generated
vendored
Normal file
57
node_modules/@babel/helper-validator-identifier/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierChar", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierChar;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierName", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierName;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierStart", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierStart;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isKeyword", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isKeyword;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindOnlyReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictReservedWord;
|
||||
}
|
||||
});
|
||||
var _identifier = require("./identifier.js");
|
||||
var _keyword = require("./keyword.js");
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
|
||||
35
node_modules/@babel/helper-validator-identifier/lib/keyword.js
generated
vendored
Normal file
35
node_modules/@babel/helper-validator-identifier/lib/keyword.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isKeyword = isKeyword;
|
||||
exports.isReservedWord = isReservedWord;
|
||||
exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
|
||||
exports.isStrictBindReservedWord = isStrictBindReservedWord;
|
||||
exports.isStrictReservedWord = isStrictReservedWord;
|
||||
const reservedWords = {
|
||||
keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
|
||||
strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
|
||||
strictBind: ["eval", "arguments"]
|
||||
};
|
||||
const keywords = new Set(reservedWords.keyword);
|
||||
const reservedWordsStrictSet = new Set(reservedWords.strict);
|
||||
const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
|
||||
function isReservedWord(word, inModule) {
|
||||
return inModule && word === "await" || word === "enum";
|
||||
}
|
||||
function isStrictReservedWord(word, inModule) {
|
||||
return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
|
||||
}
|
||||
function isStrictBindOnlyReservedWord(word) {
|
||||
return reservedWordsStrictBindSet.has(word);
|
||||
}
|
||||
function isStrictBindReservedWord(word, inModule) {
|
||||
return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
|
||||
}
|
||||
function isKeyword(word) {
|
||||
return keywords.has(word);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=keyword.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/keyword.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/keyword.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]}
|
||||
31
node_modules/@babel/helper-validator-identifier/package.json
generated
vendored
Normal file
31
node_modules/@babel/helper-validator-identifier/package.json
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "@babel/helper-validator-identifier",
|
||||
"version": "7.25.9",
|
||||
"description": "Validate identifier/keywords name",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-helper-validator-identifier"
|
||||
},
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./lib/index.d.ts",
|
||||
"default": "./lib/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@unicode/unicode-16.0.0": "^1.0.0",
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"type": "commonjs"
|
||||
}
|
||||
1073
node_modules/@babel/parser/CHANGELOG.md
generated
vendored
Normal file
1073
node_modules/@babel/parser/CHANGELOG.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
19
node_modules/@babel/parser/LICENSE
generated
vendored
Normal file
19
node_modules/@babel/parser/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2012-2014 by various contributors (see AUTHORS)
|
||||
|
||||
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.
|
||||
19
node_modules/@babel/parser/README.md
generated
vendored
Normal file
19
node_modules/@babel/parser/README.md
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# @babel/parser
|
||||
|
||||
> A JavaScript parser
|
||||
|
||||
See our website [@babel/parser](https://babeljs.io/docs/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%22+is%3Aopen) associated with this package.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/parser
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/parser --dev
|
||||
```
|
||||
15
node_modules/@babel/parser/bin/babel-parser.js
generated
vendored
Executable file
15
node_modules/@babel/parser/bin/babel-parser.js
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env node
|
||||
/* eslint no-var: 0 */
|
||||
|
||||
var parser = require("..");
|
||||
var fs = require("fs");
|
||||
|
||||
var filename = process.argv[2];
|
||||
if (!filename) {
|
||||
console.error("no filename specified");
|
||||
} else {
|
||||
var file = fs.readFileSync(filename, "utf8");
|
||||
var ast = parser.parse(file);
|
||||
|
||||
console.log(JSON.stringify(ast, null, " "));
|
||||
}
|
||||
5
node_modules/@babel/parser/index.cjs
generated
vendored
Normal file
5
node_modules/@babel/parser/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
try {
|
||||
module.exports = require("./lib/index.cjs");
|
||||
} catch {
|
||||
module.exports = require("./lib/index.js");
|
||||
}
|
||||
14217
node_modules/@babel/parser/lib/index.js
generated
vendored
Normal file
14217
node_modules/@babel/parser/lib/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
node_modules/@babel/parser/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/parser/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
50
node_modules/@babel/parser/package.json
generated
vendored
Normal file
50
node_modules/@babel/parser/package.json
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"name": "@babel/parser",
|
||||
"version": "7.26.10",
|
||||
"description": "A JavaScript parser",
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"homepage": "https://babel.dev/docs/en/next/babel-parser",
|
||||
"bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"keywords": [
|
||||
"babel",
|
||||
"javascript",
|
||||
"parser",
|
||||
"tc39",
|
||||
"ecmascript",
|
||||
"@babel/parser"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-parser"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"types": "./typings/babel-parser.d.ts",
|
||||
"files": [
|
||||
"bin",
|
||||
"lib",
|
||||
"typings/babel-parser.d.ts",
|
||||
"index.cjs"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"# dependencies": "This package doesn't actually have runtime dependencies. @babel/types is only needed for type definitions.",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/helper-check-duplicate-nodes": "^7.25.9",
|
||||
"@babel/helper-fixtures": "^7.26.0",
|
||||
"@babel/helper-string-parser": "^7.25.9",
|
||||
"@babel/helper-validator-identifier": "^7.25.9",
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"bin": "./bin/babel-parser.js",
|
||||
"type": "commonjs"
|
||||
}
|
||||
230
node_modules/@babel/parser/typings/babel-parser.d.ts
generated
vendored
Normal file
230
node_modules/@babel/parser/typings/babel-parser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,230 @@
|
||||
// This file is auto-generated! Do not modify it directly.
|
||||
// Run `yarn gulp bundle-dts` to re-generate it.
|
||||
/* eslint-disable @typescript-eslint/consistent-type-imports, @typescript-eslint/no-redundant-type-constituents */
|
||||
import { File, Expression } from '@babel/types';
|
||||
|
||||
type BABEL_8_BREAKING = false;
|
||||
type IF_BABEL_7<V> = false extends BABEL_8_BREAKING ? V : never;
|
||||
|
||||
type Plugin$1 =
|
||||
| "asyncDoExpressions"
|
||||
| IF_BABEL_7<"asyncGenerators">
|
||||
| IF_BABEL_7<"bigInt">
|
||||
| IF_BABEL_7<"classPrivateMethods">
|
||||
| IF_BABEL_7<"classPrivateProperties">
|
||||
| IF_BABEL_7<"classProperties">
|
||||
| IF_BABEL_7<"classStaticBlock">
|
||||
| IF_BABEL_7<"decimal">
|
||||
| "decorators-legacy"
|
||||
| "deferredImportEvaluation"
|
||||
| "decoratorAutoAccessors"
|
||||
| "destructuringPrivate"
|
||||
| "deprecatedImportAssert"
|
||||
| "doExpressions"
|
||||
| IF_BABEL_7<"dynamicImport">
|
||||
| "explicitResourceManagement"
|
||||
| "exportDefaultFrom"
|
||||
| IF_BABEL_7<"exportNamespaceFrom">
|
||||
| "flow"
|
||||
| "flowComments"
|
||||
| "functionBind"
|
||||
| "functionSent"
|
||||
| "importMeta"
|
||||
| "jsx"
|
||||
| IF_BABEL_7<"jsonStrings">
|
||||
| IF_BABEL_7<"logicalAssignment">
|
||||
| IF_BABEL_7<"importAssertions">
|
||||
| IF_BABEL_7<"importReflection">
|
||||
| "moduleBlocks"
|
||||
| IF_BABEL_7<"moduleStringNames">
|
||||
| IF_BABEL_7<"nullishCoalescingOperator">
|
||||
| IF_BABEL_7<"numericSeparator">
|
||||
| IF_BABEL_7<"objectRestSpread">
|
||||
| IF_BABEL_7<"optionalCatchBinding">
|
||||
| IF_BABEL_7<"optionalChaining">
|
||||
| "partialApplication"
|
||||
| "placeholders"
|
||||
| IF_BABEL_7<"privateIn">
|
||||
| IF_BABEL_7<"regexpUnicodeSets">
|
||||
| "sourcePhaseImports"
|
||||
| "throwExpressions"
|
||||
| IF_BABEL_7<"topLevelAwait">
|
||||
| "v8intrinsic"
|
||||
| ParserPluginWithOptions[0];
|
||||
|
||||
type ParserPluginWithOptions =
|
||||
| ["decorators", DecoratorsPluginOptions]
|
||||
| ["estree", { classFeatures?: boolean }]
|
||||
| IF_BABEL_7<["importAttributes", { deprecatedAssertSyntax: boolean }]>
|
||||
| IF_BABEL_7<["moduleAttributes", { version: "may-2020" }]>
|
||||
| ["optionalChainingAssign", { version: "2023-07" }]
|
||||
| ["pipelineOperator", PipelineOperatorPluginOptions]
|
||||
| ["recordAndTuple", RecordAndTuplePluginOptions]
|
||||
| ["flow", FlowPluginOptions]
|
||||
| ["typescript", TypeScriptPluginOptions];
|
||||
|
||||
type PluginConfig = Plugin$1 | ParserPluginWithOptions;
|
||||
|
||||
interface DecoratorsPluginOptions {
|
||||
decoratorsBeforeExport?: boolean;
|
||||
allowCallParenthesized?: boolean;
|
||||
}
|
||||
|
||||
interface PipelineOperatorPluginOptions {
|
||||
proposal: BABEL_8_BREAKING extends false
|
||||
? "minimal" | "fsharp" | "hack" | "smart"
|
||||
: "fsharp" | "hack";
|
||||
topicToken?: "%" | "#" | "@@" | "^^" | "^";
|
||||
}
|
||||
|
||||
interface RecordAndTuplePluginOptions {
|
||||
syntaxType: "bar" | "hash";
|
||||
}
|
||||
|
||||
type FlowPluginOptions = BABEL_8_BREAKING extends true
|
||||
? {
|
||||
all?: boolean;
|
||||
enums?: boolean;
|
||||
}
|
||||
: {
|
||||
all?: boolean;
|
||||
};
|
||||
|
||||
interface TypeScriptPluginOptions {
|
||||
dts?: boolean;
|
||||
disallowAmbiguousJSXLike?: boolean;
|
||||
}
|
||||
|
||||
type Plugin = PluginConfig;
|
||||
|
||||
interface Options {
|
||||
/**
|
||||
* By default, import and export declarations can only appear at a program's top level.
|
||||
* Setting this option to true allows them anywhere where a statement is allowed.
|
||||
*/
|
||||
allowImportExportEverywhere?: boolean;
|
||||
/**
|
||||
* By default, await use is not allowed outside of an async function.
|
||||
* Set this to true to accept such code.
|
||||
*/
|
||||
allowAwaitOutsideFunction?: boolean;
|
||||
/**
|
||||
* By default, a return statement at the top level raises an error.
|
||||
* Set this to true to accept such code.
|
||||
*/
|
||||
allowReturnOutsideFunction?: boolean;
|
||||
/**
|
||||
* By default, new.target use is not allowed outside of a function or class.
|
||||
* Set this to true to accept such code.
|
||||
*/
|
||||
allowNewTargetOutsideFunction?: boolean;
|
||||
allowSuperOutsideMethod?: boolean;
|
||||
/**
|
||||
* By default, exported identifiers must refer to a declared variable.
|
||||
* Set this to true to allow export statements to reference undeclared variables.
|
||||
*/
|
||||
allowUndeclaredExports?: boolean;
|
||||
/**
|
||||
* By default, Babel parser JavaScript code according to Annex B syntax.
|
||||
* Set this to `false` to disable such behavior.
|
||||
*/
|
||||
annexB?: boolean;
|
||||
/**
|
||||
* By default, Babel attaches comments to adjacent AST nodes.
|
||||
* When this option is set to false, comments are not attached.
|
||||
* It can provide up to 30% performance improvement when the input code has many comments.
|
||||
* @babel/eslint-parser will set it for you.
|
||||
* It is not recommended to use attachComment: false with Babel transform,
|
||||
* as doing so removes all the comments in output code, and renders annotations such as
|
||||
* /* istanbul ignore next *\/ nonfunctional.
|
||||
*/
|
||||
attachComment?: boolean;
|
||||
/**
|
||||
* By default, Babel always throws an error when it finds some invalid code.
|
||||
* When this option is set to true, it will store the parsing error and
|
||||
* try to continue parsing the invalid input file.
|
||||
*/
|
||||
errorRecovery?: boolean;
|
||||
/**
|
||||
* Indicate the mode the code should be parsed in.
|
||||
* Can be one of "script", "module", or "unambiguous". Defaults to "script".
|
||||
* "unambiguous" will make @babel/parser attempt to guess, based on the presence
|
||||
* of ES6 import or export statements.
|
||||
* Files with ES6 imports and exports are considered "module" and are otherwise "script".
|
||||
*/
|
||||
sourceType?: "script" | "module" | "unambiguous";
|
||||
/**
|
||||
* Correlate output AST nodes with their source filename.
|
||||
* Useful when generating code and source maps from the ASTs of multiple input files.
|
||||
*/
|
||||
sourceFilename?: string;
|
||||
/**
|
||||
* By default, all source indexes start from 0.
|
||||
* You can provide a start index to alternatively start with.
|
||||
* Useful for integration with other source tools.
|
||||
*/
|
||||
startIndex?: number;
|
||||
/**
|
||||
* By default, the first line of code parsed is treated as line 1.
|
||||
* You can provide a line number to alternatively start with.
|
||||
* Useful for integration with other source tools.
|
||||
*/
|
||||
startLine?: number;
|
||||
/**
|
||||
* By default, the parsed code is treated as if it starts from line 1, column 0.
|
||||
* You can provide a column number to alternatively start with.
|
||||
* Useful for integration with other source tools.
|
||||
*/
|
||||
startColumn?: number;
|
||||
/**
|
||||
* Array containing the plugins that you want to enable.
|
||||
*/
|
||||
plugins?: Plugin[];
|
||||
/**
|
||||
* Should the parser work in strict mode.
|
||||
* Defaults to true if sourceType === 'module'. Otherwise, false.
|
||||
*/
|
||||
strictMode?: boolean;
|
||||
/**
|
||||
* Adds a ranges property to each node: [node.start, node.end]
|
||||
*/
|
||||
ranges?: boolean;
|
||||
/**
|
||||
* Adds all parsed tokens to a tokens property on the File node.
|
||||
*/
|
||||
tokens?: boolean;
|
||||
/**
|
||||
* By default, the parser adds information about parentheses by setting
|
||||
* `extra.parenthesized` to `true` as needed.
|
||||
* When this option is `true` the parser creates `ParenthesizedExpression`
|
||||
* AST nodes instead of using the `extra` property.
|
||||
*/
|
||||
createParenthesizedExpressions?: boolean;
|
||||
/**
|
||||
* The default is false in Babel 7 and true in Babel 8
|
||||
* Set this to true to parse it as an `ImportExpression` node.
|
||||
* Otherwise `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`.
|
||||
*/
|
||||
createImportExpressions?: boolean;
|
||||
}
|
||||
|
||||
type ParserOptions = Partial<Options>;
|
||||
interface ParseError {
|
||||
code: string;
|
||||
reasonCode: string;
|
||||
}
|
||||
type ParseResult<Result extends File | Expression = File> = Result & {
|
||||
errors: null | ParseError[];
|
||||
};
|
||||
/**
|
||||
* Parse the provided code as an entire ECMAScript program.
|
||||
*/
|
||||
declare function parse(input: string, options?: ParserOptions): ParseResult<File>;
|
||||
declare function parseExpression(input: string, options?: ParserOptions): ParseResult<Expression>;
|
||||
|
||||
declare const tokTypes: {
|
||||
// todo(flow->ts) real token type
|
||||
[name: string]: any;
|
||||
};
|
||||
|
||||
export { DecoratorsPluginOptions, FlowPluginOptions, ParseError, ParseResult, ParserOptions, PluginConfig as ParserPlugin, ParserPluginWithOptions, PipelineOperatorPluginOptions, RecordAndTuplePluginOptions, TypeScriptPluginOptions, parse, parseExpression, tokTypes };
|
||||
22
node_modules/@babel/types/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/types/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
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.
|
||||
19
node_modules/@babel/types/README.md
generated
vendored
Normal file
19
node_modules/@babel/types/README.md
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# @babel/types
|
||||
|
||||
> Babel Types is a Lodash-esque utility library for AST nodes
|
||||
|
||||
See our website [@babel/types](https://babeljs.io/docs/babel-types) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen) associated with this package.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/types
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/types --dev
|
||||
```
|
||||
16
node_modules/@babel/types/lib/asserts/assertNode.js
generated
vendored
Normal file
16
node_modules/@babel/types/lib/asserts/assertNode.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = assertNode;
|
||||
var _isNode = require("../validators/isNode.js");
|
||||
function assertNode(node) {
|
||||
if (!(0, _isNode.default)(node)) {
|
||||
var _node$type;
|
||||
const type = (_node$type = node == null ? void 0 : node.type) != null ? _node$type : JSON.stringify(node);
|
||||
throw new TypeError(`Not a valid node of type "${type}"`);
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=assertNode.js.map
|
||||
1
node_modules/@babel/types/lib/asserts/assertNode.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/asserts/assertNode.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_isNode","require","assertNode","node","isNode","_node$type","type","JSON","stringify","TypeError"],"sources":["../../src/asserts/assertNode.ts"],"sourcesContent":["import isNode from \"../validators/isNode.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function assertNode(node?: any): asserts node is t.Node {\n if (!isNode(node)) {\n const type = node?.type ?? JSON.stringify(node);\n throw new TypeError(`Not a valid node of type \"${type}\"`);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGe,SAASC,UAAUA,CAACC,IAAU,EAA0B;EACrE,IAAI,CAAC,IAAAC,eAAM,EAACD,IAAI,CAAC,EAAE;IAAA,IAAAE,UAAA;IACjB,MAAMC,IAAI,IAAAD,UAAA,GAAGF,IAAI,oBAAJA,IAAI,CAAEG,IAAI,YAAAD,UAAA,GAAIE,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC;IAC/C,MAAM,IAAIM,SAAS,CAAC,6BAA6BH,IAAI,GAAG,CAAC;EAC3D;AACF","ignoreList":[]}
|
||||
1243
node_modules/@babel/types/lib/asserts/generated/index.js
generated
vendored
Normal file
1243
node_modules/@babel/types/lib/asserts/generated/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
node_modules/@babel/types/lib/asserts/generated/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/asserts/generated/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3
node_modules/@babel/types/lib/ast-types/generated/index.js
generated
vendored
Normal file
3
node_modules/@babel/types/lib/ast-types/generated/index.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/types/lib/ast-types/generated/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/ast-types/generated/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
18
node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js
generated
vendored
Normal file
18
node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = createFlowUnionType;
|
||||
var _index = require("../generated/index.js");
|
||||
var _removeTypeDuplicates = require("../../modifications/flow/removeTypeDuplicates.js");
|
||||
function createFlowUnionType(types) {
|
||||
const flattened = (0, _removeTypeDuplicates.default)(types);
|
||||
if (flattened.length === 1) {
|
||||
return flattened[0];
|
||||
} else {
|
||||
return (0, _index.unionTypeAnnotation)(flattened);
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=createFlowUnionType.js.map
|
||||
1
node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_index","require","_removeTypeDuplicates","createFlowUnionType","types","flattened","removeTypeDuplicates","length","unionTypeAnnotation"],"sources":["../../../src/builders/flow/createFlowUnionType.ts"],"sourcesContent":["import { unionTypeAnnotation } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/flow/removeTypeDuplicates.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createFlowUnionType<T extends t.FlowType>(\n types: [T] | Array<T>,\n): T | t.UnionTypeAnnotation {\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0] as T;\n } else {\n return unionTypeAnnotation(flattened);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAOe,SAASE,mBAAmBA,CACzCC,KAAqB,EACM;EAC3B,MAAMC,SAAS,GAAG,IAAAC,6BAAoB,EAACF,KAAK,CAAC;EAE7C,IAAIC,SAAS,CAACE,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAOF,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,MAAM;IACL,OAAO,IAAAG,0BAAmB,EAACH,SAAS,CAAC;EACvC;AACF","ignoreList":[]}
|
||||
31
node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
generated
vendored
Normal file
31
node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _index = require("../generated/index.js");
|
||||
var _default = exports.default = createTypeAnnotationBasedOnTypeof;
|
||||
function createTypeAnnotationBasedOnTypeof(type) {
|
||||
switch (type) {
|
||||
case "string":
|
||||
return (0, _index.stringTypeAnnotation)();
|
||||
case "number":
|
||||
return (0, _index.numberTypeAnnotation)();
|
||||
case "undefined":
|
||||
return (0, _index.voidTypeAnnotation)();
|
||||
case "boolean":
|
||||
return (0, _index.booleanTypeAnnotation)();
|
||||
case "function":
|
||||
return (0, _index.genericTypeAnnotation)((0, _index.identifier)("Function"));
|
||||
case "object":
|
||||
return (0, _index.genericTypeAnnotation)((0, _index.identifier)("Object"));
|
||||
case "symbol":
|
||||
return (0, _index.genericTypeAnnotation)((0, _index.identifier)("Symbol"));
|
||||
case "bigint":
|
||||
return (0, _index.anyTypeAnnotation)();
|
||||
}
|
||||
throw new Error("Invalid typeof value: " + type);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=createTypeAnnotationBasedOnTypeof.js.map
|
||||
1
node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_index","require","_default","exports","default","createTypeAnnotationBasedOnTypeof","type","stringTypeAnnotation","numberTypeAnnotation","voidTypeAnnotation","booleanTypeAnnotation","genericTypeAnnotation","identifier","anyTypeAnnotation","Error"],"sources":["../../../src/builders/flow/createTypeAnnotationBasedOnTypeof.ts"],"sourcesContent":["import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQ+B,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhBC,iCAAiC;AAchD,SAASA,iCAAiCA,CAACC,IAAY,EAAc;EACnE,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,WAAW;MACd,OAAO,IAAAC,yBAAkB,EAAC,CAAC;IAC7B,KAAK,SAAS;MACZ,OAAO,IAAAC,4BAAqB,EAAC,CAAC;IAChC,KAAK,UAAU;MACb,OAAO,IAAAC,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,UAAU,CAAC,CAAC;IACtD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MAGX,OAAO,IAAAC,wBAAiB,EAAC,CAAC;EAC9B;EACA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,GAAGR,IAAI,CAAC;AAClD","ignoreList":[]}
|
||||
29
node_modules/@babel/types/lib/builders/generated/index.js
generated
vendored
Normal file
29
node_modules/@babel/types/lib/builders/generated/index.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
var _lowercase = require("./lowercase.js");
|
||||
Object.keys(_lowercase).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _lowercase[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _lowercase[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
var _uppercase = require("./uppercase.js");
|
||||
Object.keys(_uppercase).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _uppercase[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _uppercase[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/types/lib/builders/generated/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/generated/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2886
node_modules/@babel/types/lib/builders/generated/lowercase.js
generated
vendored
Normal file
2886
node_modules/@babel/types/lib/builders/generated/lowercase.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
node_modules/@babel/types/lib/builders/generated/lowercase.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/generated/lowercase.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1544
node_modules/@babel/types/lib/builders/generated/uppercase.js
generated
vendored
Normal file
1544
node_modules/@babel/types/lib/builders/generated/uppercase.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
node_modules/@babel/types/lib/builders/generated/uppercase.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/generated/uppercase.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12
node_modules/@babel/types/lib/builders/productions.js
generated
vendored
Normal file
12
node_modules/@babel/types/lib/builders/productions.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.buildUndefinedNode = buildUndefinedNode;
|
||||
var _index = require("./generated/index.js");
|
||||
function buildUndefinedNode() {
|
||||
return (0, _index.unaryExpression)("void", (0, _index.numericLiteral)(0), true);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=productions.js.map
|
||||
1
node_modules/@babel/types/lib/builders/productions.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/productions.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_index","require","buildUndefinedNode","unaryExpression","numericLiteral"],"sources":["../../src/builders/productions.ts"],"sourcesContent":["import { numericLiteral, unaryExpression } from \"./generated/index.ts\";\n\nexport function buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0), true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,OAAO,IAAAC,sBAAe,EAAC,MAAM,EAAE,IAAAC,qBAAc,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACzD","ignoreList":[]}
|
||||
24
node_modules/@babel/types/lib/builders/react/buildChildren.js
generated
vendored
Normal file
24
node_modules/@babel/types/lib/builders/react/buildChildren.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = buildChildren;
|
||||
var _index = require("../../validators/generated/index.js");
|
||||
var _cleanJSXElementLiteralChild = require("../../utils/react/cleanJSXElementLiteralChild.js");
|
||||
function buildChildren(node) {
|
||||
const elements = [];
|
||||
for (let i = 0; i < node.children.length; i++) {
|
||||
let child = node.children[i];
|
||||
if ((0, _index.isJSXText)(child)) {
|
||||
(0, _cleanJSXElementLiteralChild.default)(child, elements);
|
||||
continue;
|
||||
}
|
||||
if ((0, _index.isJSXExpressionContainer)(child)) child = child.expression;
|
||||
if ((0, _index.isJSXEmptyExpression)(child)) continue;
|
||||
elements.push(child);
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=buildChildren.js.map
|
||||
1
node_modules/@babel/types/lib/builders/react/buildChildren.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/react/buildChildren.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_index","require","_cleanJSXElementLiteralChild","buildChildren","node","elements","i","children","length","child","isJSXText","cleanJSXElementLiteralChild","isJSXExpressionContainer","expression","isJSXEmptyExpression","push"],"sources":["../../../src/builders/react/buildChildren.ts"],"sourcesContent":["import {\n isJSXText,\n isJSXExpressionContainer,\n isJSXEmptyExpression,\n} from \"../../validators/generated/index.ts\";\nimport cleanJSXElementLiteralChild from \"../../utils/react/cleanJSXElementLiteralChild.ts\";\nimport type * as t from \"../../index.ts\";\n\ntype ReturnedChild =\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n | t.Expression;\n\nexport default function buildChildren(\n node: t.JSXElement | t.JSXFragment,\n): ReturnedChild[] {\n const elements = [];\n\n for (let i = 0; i < node.children.length; i++) {\n let child: any = node.children[i];\n\n if (isJSXText(child)) {\n cleanJSXElementLiteralChild(child, elements);\n continue;\n }\n\n if (isJSXExpressionContainer(child)) child = child.expression;\n if (isJSXEmptyExpression(child)) continue;\n\n elements.push(child);\n }\n\n return elements;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,4BAAA,GAAAD,OAAA;AASe,SAASE,aAAaA,CACnCC,IAAkC,EACjB;EACjB,MAAMC,QAAQ,GAAG,EAAE;EAEnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC7C,IAAIG,KAAU,GAAGL,IAAI,CAACG,QAAQ,CAACD,CAAC,CAAC;IAEjC,IAAI,IAAAI,gBAAS,EAACD,KAAK,CAAC,EAAE;MACpB,IAAAE,oCAA2B,EAACF,KAAK,EAAEJ,QAAQ,CAAC;MAC5C;IACF;IAEA,IAAI,IAAAO,+BAAwB,EAACH,KAAK,CAAC,EAAEA,KAAK,GAAGA,KAAK,CAACI,UAAU;IAC7D,IAAI,IAAAC,2BAAoB,EAACL,KAAK,CAAC,EAAE;IAEjCJ,QAAQ,CAACU,IAAI,CAACN,KAAK,CAAC;EACtB;EAEA,OAAOJ,QAAQ;AACjB","ignoreList":[]}
|
||||
22
node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js
generated
vendored
Normal file
22
node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = createTSUnionType;
|
||||
var _index = require("../generated/index.js");
|
||||
var _removeTypeDuplicates = require("../../modifications/typescript/removeTypeDuplicates.js");
|
||||
var _index2 = require("../../validators/generated/index.js");
|
||||
function createTSUnionType(typeAnnotations) {
|
||||
const types = typeAnnotations.map(type => {
|
||||
return (0, _index2.isTSTypeAnnotation)(type) ? type.typeAnnotation : type;
|
||||
});
|
||||
const flattened = (0, _removeTypeDuplicates.default)(types);
|
||||
if (flattened.length === 1) {
|
||||
return flattened[0];
|
||||
} else {
|
||||
return (0, _index.tsUnionType)(flattened);
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=createTSUnionType.js.map
|
||||
1
node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_index","require","_removeTypeDuplicates","_index2","createTSUnionType","typeAnnotations","types","map","type","isTSTypeAnnotation","typeAnnotation","flattened","removeTypeDuplicates","length","tsUnionType"],"sources":["../../../src/builders/typescript/createTSUnionType.ts"],"sourcesContent":["import { tsUnionType } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/typescript/removeTypeDuplicates.ts\";\nimport { isTSTypeAnnotation } from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createTSUnionType(\n typeAnnotations: Array<t.TSTypeAnnotation | t.TSType>,\n): t.TSType {\n const types = typeAnnotations.map(type => {\n return isTSTypeAnnotation(type) ? type.typeAnnotation : type;\n });\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return tsUnionType(flattened);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAOe,SAASG,iBAAiBA,CACvCC,eAAqD,EAC3C;EACV,MAAMC,KAAK,GAAGD,eAAe,CAACE,GAAG,CAACC,IAAI,IAAI;IACxC,OAAO,IAAAC,0BAAkB,EAACD,IAAI,CAAC,GAAGA,IAAI,CAACE,cAAc,GAAGF,IAAI;EAC9D,CAAC,CAAC;EACF,MAAMG,SAAS,GAAG,IAAAC,6BAAoB,EAACN,KAAK,CAAC;EAE7C,IAAIK,SAAS,CAACE,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAOF,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,MAAM;IACL,OAAO,IAAAG,kBAAW,EAACH,SAAS,CAAC;EAC/B;AACF","ignoreList":[]}
|
||||
21
node_modules/@babel/types/lib/builders/validateNode.js
generated
vendored
Normal file
21
node_modules/@babel/types/lib/builders/validateNode.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = validateNode;
|
||||
var _validate = require("../validators/validate.js");
|
||||
var _index = require("../index.js");
|
||||
function validateNode(node) {
|
||||
if (node == null || typeof node !== "object") return;
|
||||
const fields = _index.NODE_FIELDS[node.type];
|
||||
if (!fields) return;
|
||||
const keys = _index.BUILDER_KEYS[node.type];
|
||||
for (const key of keys) {
|
||||
const field = fields[key];
|
||||
if (field != null) (0, _validate.validateInternal)(field, node, key, node[key]);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=validateNode.js.map
|
||||
1
node_modules/@babel/types/lib/builders/validateNode.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/builders/validateNode.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_validate","require","_index","validateNode","node","fields","NODE_FIELDS","type","keys","BUILDER_KEYS","key","field","validateInternal"],"sources":["../../src/builders/validateNode.ts"],"sourcesContent":["import { validateInternal } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\nimport { BUILDER_KEYS, NODE_FIELDS } from \"../index.ts\";\n\nexport default function validateNode<N extends t.Node>(node: N) {\n if (node == null || typeof node !== \"object\") return;\n const fields = NODE_FIELDS[node.type];\n if (!fields) return;\n\n // todo: because keys not in BUILDER_KEYS are not validated - this actually allows invalid nodes in some cases\n const keys = BUILDER_KEYS[node.type] as (keyof N & string)[];\n for (const key of keys) {\n const field = fields[key];\n if (field != null) validateInternal(field, node, key, node[key]);\n }\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEe,SAASE,YAAYA,CAAmBC,IAAO,EAAE;EAC9D,IAAIA,IAAI,IAAI,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;EAC9C,MAAMC,MAAM,GAAGC,kBAAW,CAACF,IAAI,CAACG,IAAI,CAAC;EACrC,IAAI,CAACF,MAAM,EAAE;EAGb,MAAMG,IAAI,GAAGC,mBAAY,CAACL,IAAI,CAACG,IAAI,CAAyB;EAC5D,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,MAAMG,KAAK,GAAGN,MAAM,CAACK,GAAG,CAAC;IACzB,IAAIC,KAAK,IAAI,IAAI,EAAE,IAAAC,0BAAgB,EAACD,KAAK,EAAEP,IAAI,EAAEM,GAAG,EAAEN,IAAI,CAACM,GAAG,CAAC,CAAC;EAClE;EACA,OAAON,IAAI;AACb","ignoreList":[]}
|
||||
12
node_modules/@babel/types/lib/clone/clone.js
generated
vendored
Normal file
12
node_modules/@babel/types/lib/clone/clone.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = clone;
|
||||
var _cloneNode = require("./cloneNode.js");
|
||||
function clone(node) {
|
||||
return (0, _cloneNode.default)(node, false);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=clone.js.map
|
||||
1
node_modules/@babel/types/lib/clone/clone.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/clone/clone.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_cloneNode","require","clone","node","cloneNode"],"sources":["../../src/clone/clone.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node`, including only\n * properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function clone<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ false);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQe,SAASC,KAAKA,CAAmBC,IAAO,EAAK;EAC1D,OAAO,IAAAC,kBAAS,EAACD,IAAI,EAAa,KAAK,CAAC;AAC1C","ignoreList":[]}
|
||||
12
node_modules/@babel/types/lib/clone/cloneDeep.js
generated
vendored
Normal file
12
node_modules/@babel/types/lib/clone/cloneDeep.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = cloneDeep;
|
||||
var _cloneNode = require("./cloneNode.js");
|
||||
function cloneDeep(node) {
|
||||
return (0, _cloneNode.default)(node);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=cloneDeep.js.map
|
||||
1
node_modules/@babel/types/lib/clone/cloneDeep.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/clone/cloneDeep.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_cloneNode","require","cloneDeep","node","cloneNode"],"sources":["../../src/clone/cloneDeep.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function cloneDeep<T extends t.Node>(node: T): T {\n return cloneNode(node);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQe,SAASC,SAASA,CAAmBC,IAAO,EAAK;EAC9D,OAAO,IAAAC,kBAAS,EAACD,IAAI,CAAC;AACxB","ignoreList":[]}
|
||||
12
node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js
generated
vendored
Normal file
12
node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = cloneDeepWithoutLoc;
|
||||
var _cloneNode = require("./cloneNode.js");
|
||||
function cloneDeepWithoutLoc(node) {
|
||||
return (0, _cloneNode.default)(node, true, true);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=cloneDeepWithoutLoc.js.map
|
||||
1
node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_cloneNode","require","cloneDeepWithoutLoc","node","cloneNode"],"sources":["../../src/clone/cloneDeepWithoutLoc.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * excluding `_private` and location properties.\n */\nexport default function cloneDeepWithoutLoc<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ true, /* withoutLoc */ true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAOe,SAASC,mBAAmBA,CAAmBC,IAAO,EAAK;EACxE,OAAO,IAAAC,kBAAS,EAACD,IAAI,EAAa,IAAI,EAAmB,IAAI,CAAC;AAChE","ignoreList":[]}
|
||||
107
node_modules/@babel/types/lib/clone/cloneNode.js
generated
vendored
Normal file
107
node_modules/@babel/types/lib/clone/cloneNode.js
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = cloneNode;
|
||||
var _index = require("../definitions/index.js");
|
||||
var _index2 = require("../validators/generated/index.js");
|
||||
const {
|
||||
hasOwn
|
||||
} = {
|
||||
hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
|
||||
};
|
||||
function cloneIfNode(obj, deep, withoutLoc, commentsCache) {
|
||||
if (obj && typeof obj.type === "string") {
|
||||
return cloneNodeInternal(obj, deep, withoutLoc, commentsCache);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
function cloneIfNodeOrArray(obj, deep, withoutLoc, commentsCache) {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache));
|
||||
}
|
||||
return cloneIfNode(obj, deep, withoutLoc, commentsCache);
|
||||
}
|
||||
function cloneNode(node, deep = true, withoutLoc = false) {
|
||||
return cloneNodeInternal(node, deep, withoutLoc, new Map());
|
||||
}
|
||||
function cloneNodeInternal(node, deep = true, withoutLoc = false, commentsCache) {
|
||||
if (!node) return node;
|
||||
const {
|
||||
type
|
||||
} = node;
|
||||
const newNode = {
|
||||
type: node.type
|
||||
};
|
||||
if ((0, _index2.isIdentifier)(node)) {
|
||||
newNode.name = node.name;
|
||||
if (hasOwn(node, "optional") && typeof node.optional === "boolean") {
|
||||
newNode.optional = node.optional;
|
||||
}
|
||||
if (hasOwn(node, "typeAnnotation")) {
|
||||
newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc, commentsCache) : node.typeAnnotation;
|
||||
}
|
||||
if (hasOwn(node, "decorators")) {
|
||||
newNode.decorators = deep ? cloneIfNodeOrArray(node.decorators, true, withoutLoc, commentsCache) : node.decorators;
|
||||
}
|
||||
} else if (!hasOwn(_index.NODE_FIELDS, type)) {
|
||||
throw new Error(`Unknown node type: "${type}"`);
|
||||
} else {
|
||||
for (const field of Object.keys(_index.NODE_FIELDS[type])) {
|
||||
if (hasOwn(node, field)) {
|
||||
if (deep) {
|
||||
newNode[field] = (0, _index2.isFile)(node) && field === "comments" ? maybeCloneComments(node.comments, deep, withoutLoc, commentsCache) : cloneIfNodeOrArray(node[field], true, withoutLoc, commentsCache);
|
||||
} else {
|
||||
newNode[field] = node[field];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasOwn(node, "loc")) {
|
||||
if (withoutLoc) {
|
||||
newNode.loc = null;
|
||||
} else {
|
||||
newNode.loc = node.loc;
|
||||
}
|
||||
}
|
||||
if (hasOwn(node, "leadingComments")) {
|
||||
newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc, commentsCache);
|
||||
}
|
||||
if (hasOwn(node, "innerComments")) {
|
||||
newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc, commentsCache);
|
||||
}
|
||||
if (hasOwn(node, "trailingComments")) {
|
||||
newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc, commentsCache);
|
||||
}
|
||||
if (hasOwn(node, "extra")) {
|
||||
newNode.extra = Object.assign({}, node.extra);
|
||||
}
|
||||
return newNode;
|
||||
}
|
||||
function maybeCloneComments(comments, deep, withoutLoc, commentsCache) {
|
||||
if (!comments || !deep) {
|
||||
return comments;
|
||||
}
|
||||
return comments.map(comment => {
|
||||
const cache = commentsCache.get(comment);
|
||||
if (cache) return cache;
|
||||
const {
|
||||
type,
|
||||
value,
|
||||
loc
|
||||
} = comment;
|
||||
const ret = {
|
||||
type,
|
||||
value,
|
||||
loc
|
||||
};
|
||||
if (withoutLoc) {
|
||||
ret.loc = null;
|
||||
}
|
||||
commentsCache.set(comment, ret);
|
||||
return ret;
|
||||
});
|
||||
}
|
||||
|
||||
//# sourceMappingURL=cloneNode.js.map
|
||||
1
node_modules/@babel/types/lib/clone/cloneNode.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/clone/cloneNode.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12
node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
generated
vendored
Normal file
12
node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = cloneWithoutLoc;
|
||||
var _cloneNode = require("./cloneNode.js");
|
||||
function cloneWithoutLoc(node) {
|
||||
return (0, _cloneNode.default)(node, false, true);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=cloneWithoutLoc.js.map
|
||||
1
node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map
generated
vendored
Normal file
1
node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"names":["_cloneNode","require","cloneWithoutLoc","node","cloneNode"],"sources":["../../src/clone/cloneWithoutLoc.ts"],"sourcesContent":["import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node` excluding `_private` and location properties.\n */\nexport default function cloneWithoutLoc<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ false, /* withoutLoc */ true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAMe,SAASC,eAAeA,CAAmBC,IAAO,EAAK;EACpE,OAAO,IAAAC,kBAAS,EAACD,IAAI,EAAa,KAAK,EAAmB,IAAI,CAAC;AACjE","ignoreList":[]}
|
||||
15
node_modules/@babel/types/lib/comments/addComment.js
generated
vendored
Normal file
15
node_modules/@babel/types/lib/comments/addComment.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = addComment;
|
||||
var _addComments = require("./addComments.js");
|
||||
function addComment(node, type, content, line) {
|
||||
return (0, _addComments.default)(node, type, [{
|
||||
type: line ? "CommentLine" : "CommentBlock",
|
||||
value: content
|
||||
}]);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=addComment.js.map
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user