From 29a7a1e6265718be9cd1f585b628f85b0fc26b2b Mon Sep 17 00:00:00 2001 From: yinsx Date: Sat, 20 Dec 2025 17:14:43 +0800 Subject: [PATCH] 17.14 --- .claude/settings.local.json | 5 +- index.js | 6 +- lib/audio/index.js | 3 + lib/image/index.js | 3 + lib/lod/index.js | 3 + lib/menu.js | 27 +- lib/sprite/index.js | 3 + lib/update.js | 30 ++ package-lock.json | 715 +----------------------------------- package.json | 4 +- scripts/build copy.js | 47 +++ scripts/build.js | 4 +- scripts/build1.js | 46 +++ xw_20251220142204.png | Bin 35378 -> 0 bytes xw_20251220170040.png | Bin 0 -> 50754 bytes xw_20251220170102.png | Bin 0 -> 84056 bytes 16 files changed, 172 insertions(+), 724 deletions(-) create mode 100644 lib/audio/index.js create mode 100644 lib/image/index.js create mode 100644 lib/lod/index.js create mode 100644 lib/sprite/index.js create mode 100644 lib/update.js create mode 100644 scripts/build copy.js create mode 100644 scripts/build1.js delete mode 100644 xw_20251220142204.png create mode 100644 xw_20251220170040.png create mode 100644 xw_20251220170102.png diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 5f1fc48..0a445dc 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -12,7 +12,10 @@ "Bash(node --check:*)", "Bash(npm search:*)", "Bash(mkdir:*)", - "Bash(./bin/assimp.exe:*)" + "Bash(./bin/assimp.exe:*)", + "Bash(npm run build)", + "Bash(node:*)", + "Bash(npm uninstall:*)" ] } } diff --git a/index.js b/index.js index f16d9b4..1ac0e3c 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,9 @@ #!/usr/bin/env node import color from "picocolors"; import { showMainMenu } from "./lib/menu.js"; +import { checkUpdate } from "./lib/update.js"; + +await checkUpdate(); while (true) { const selected = await showMainMenu(); @@ -9,8 +12,7 @@ while (true) { console.log(color.cyan("\n正在启动: " + selected.name + "...\n")); try { - const tool = await import(selected.module); - const result = await tool.run(); + const result = await selected.tool.run(); if (result === "back") continue; break; } catch (err) { diff --git a/lib/audio/index.js b/lib/audio/index.js new file mode 100644 index 0000000..0448cd3 --- /dev/null +++ b/lib/audio/index.js @@ -0,0 +1,3 @@ +export async function run() { + throw new Error("尚未实现"); +} diff --git a/lib/image/index.js b/lib/image/index.js new file mode 100644 index 0000000..0448cd3 --- /dev/null +++ b/lib/image/index.js @@ -0,0 +1,3 @@ +export async function run() { + throw new Error("尚未实现"); +} diff --git a/lib/lod/index.js b/lib/lod/index.js new file mode 100644 index 0000000..0448cd3 --- /dev/null +++ b/lib/lod/index.js @@ -0,0 +1,3 @@ +export async function run() { + throw new Error("尚未实现"); +} diff --git a/lib/menu.js b/lib/menu.js index f5f30a5..2303513 100644 --- a/lib/menu.js +++ b/lib/menu.js @@ -2,6 +2,15 @@ import color from "picocolors"; import boxen from "boxen"; import figlet from "figlet"; import { gridSelect } from "./grid.js"; +import * as convertTool from "./convert/index.js"; +import * as ktx2Tool from "./ktx2/index.js"; +import * as gltfTool from "./gltf/index.js"; +import * as modelTool from "./model/index.js"; +import * as imageTool from "./image/index.js"; +import * as spriteTool from "./sprite/index.js"; +import * as lodTool from "./lod/index.js"; +import * as audioTool from "./audio/index.js"; +import * as scaffoldTool from "./scaffold/index.js"; let poemConfig = { lines: ["你我皆牛马", "生在人世间", "终日奔波苦", "一刻不得闲"], @@ -18,15 +27,15 @@ let titleConfig = { }; const tools = [ - { name: "格式转换", desc: "支持多种模型格式转换", module: "./lib/convert/index.js" }, - { name: "KTX2 纹理压缩", desc: "图片转KTX2格式", module: "./lib/ktx2/index.js" }, - { name: "glTF扩展", desc: "添加KHR_texture_basisu", module: "./lib/gltf/index.js" }, - { name: "模型压缩", desc: "压缩glTF/GLB模型", module: "./lib/model/index.js" }, - { name: "图片批量处理", desc: "裁剪/缩放/转换", module: "./lib/image/index.js" }, - { name: "Sprite图集", desc: "合并精灵图集", module: "./lib/sprite/index.js" }, - { name: "LOD生成器", desc: "生成多级细节", module: "./lib/lod/index.js" }, - { name: "音频压缩", desc: "压缩音频文件", module: "./lib/audio/index.js" }, - { name: "项目脚手架", desc: "快速创建项目模板", module: "./lib/scaffold/index.js" }, + { name: "格式转换", desc: "支持多种模型格式转换", tool: convertTool }, + { name: "KTX2 纹理压缩", desc: "图片转KTX2格式", tool: ktx2Tool }, + { name: "glTF扩展", desc: "添加KHR_texture_basisu", tool: gltfTool }, + { name: "模型压缩", desc: "压缩glTF/GLB模型", tool: modelTool }, + { name: "图片批量处理", desc: "裁剪/缩放/转换", tool: imageTool }, + { name: "Sprite图集", desc: "合并精灵图集", tool: spriteTool }, + { name: "LOD生成器", desc: "生成多级细节", tool: lodTool }, + { name: "音频压缩", desc: "压缩音频文件", tool: audioTool }, + { name: "项目脚手架", desc: "快速创建项目模板", tool: scaffoldTool }, ]; export function setPoem(lines, perLine = 2) { diff --git a/lib/sprite/index.js b/lib/sprite/index.js new file mode 100644 index 0000000..0448cd3 --- /dev/null +++ b/lib/sprite/index.js @@ -0,0 +1,3 @@ +export async function run() { + throw new Error("尚未实现"); +} diff --git a/lib/update.js b/lib/update.js new file mode 100644 index 0000000..a6162e8 --- /dev/null +++ b/lib/update.js @@ -0,0 +1,30 @@ +import color from "picocolors"; +import { createRequire } from "module"; + +const require = createRequire(import.meta.url); +const pkg = require("../package.json"); + +export async function checkUpdate() { + try { + const res = await fetch(`https://registry.npmmirror.com/${pkg.name}/latest`, { + signal: AbortSignal.timeout(3000) + }); + if (!res.ok) return; + const data = await res.json(); + const latest = data.version; + if (latest && latest !== pkg.version && isNewer(latest, pkg.version)) { + console.log(color.yellow(`\n📦 发现新版本: ${color.red(pkg.version)} → ${color.green(latest)}`)); + console.log(color.cyan(` 运行 ${color.bold("yinx upgrade")} 进行更新\n`)); + } + } catch {} +} + +function isNewer(latest, current) { + const l = latest.split(".").map(Number); + const c = current.split(".").map(Number); + for (let i = 0; i < 3; i++) { + if ((l[i] || 0) > (c[i] || 0)) return true; + if ((l[i] || 0) < (c[i] || 0)) return false; + } + return false; +} diff --git a/package-lock.json b/package-lock.json index 0978125..8c2032f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,19 @@ { "name": "@yinshuangxi/yinx-cli", - "version": "1.0.2", + "version": "1.0.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@yinshuangxi/yinx-cli", - "version": "1.0.2", + "version": "1.0.7", "license": "MIT", "dependencies": { - "@cocos/fbx2gltf": "^1.0.8", "@gltf-transform/core": "^3.10.1", "@gltf-transform/extensions": "^3.10.1", "@gltf-transform/functions": "^3.10.1", "boxen": "^8.0.1", "figlet": "^1.9.4", - "obj2gltf": "^3.2.0", "picocolors": "^1.1.1" }, "bin": { @@ -29,106 +27,6 @@ "node": ">=16" } }, - "node_modules/@cesium/engine": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-22.1.0.tgz", - "integrity": "sha512-grL8/wiIkKLFG+FrizORhUTMpOcFMFawa0fmLH3I/1K46TcDQn6Gom+qrcGqbJoc4diYM75xsAC9M8Yajgh4rQ==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.3.0", - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.8.1", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.3.0", - "draco3d": "^1.5.1", - "earcut": "^3.0.0", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.25.0", - "pako": "^2.0.4", - "protobufjs": "^7.1.0", - "rbush": "^4.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" - }, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@cesium/engine/node_modules/ktx-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", - "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", - "license": "MIT" - }, - "node_modules/@cesium/wasm-splats": { - "version": "0.1.0-alpha.2", - "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", - "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", - "license": "Apache-2.0" - }, - "node_modules/@cesium/widgets": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-14.1.0.tgz", - "integrity": "sha512-/8xJTi95XZrdkmJGABEHuQLu2ZarJ59J4V21dmgU/GJAFoqnjPlqFaFajx5XBZzRufGFYW1vGsq9BMqbdOJn5Q==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/engine": "^22.1.0", - "nosleep.js": "^0.12.0" - }, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@cocos/fbx2gltf": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@cocos/fbx2gltf/-/fbx2gltf-1.0.8.tgz", - "integrity": "sha512-HxcTxxcaety8Ya1JhJbfx26kxy8ZFG/t8j73DphKlWQMM6YbLn3/hdu4eEsP9vAIXhJ88V34KqOsL9izgGwlZg==", - "license": "BSD-3-Clause", - "dependencies": { - "rimraf": "^2.6.2" - } - }, - "node_modules/@cocos/fbx2gltf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@cocos/fbx2gltf/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/@gltf-transform/core": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/@gltf-transform/core/-/core-3.10.1.tgz", @@ -251,86 +149,6 @@ "node": ">=4.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@spz-loader/core": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.3.0.tgz", - "integrity": "sha512-sbStwMHb/MIE29st7rRuMYWqhX1UmLSFzdpyGtUZUXLkFNIuYKblzjQdtiet8bau8sUf21uL1DQ451zuySGmcA==", - "license": "Apache-2.0", - "engines": { - "node": ">=16", - "pnpm": ">=8" - } - }, - "node_modules/@tweenjs/tween.js": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", - "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", - "license": "MIT" - }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -344,22 +162,6 @@ "integrity": "sha512-oANmFZMnFQvb219SSBIhI1Ih/r4CvHDOzkWyJS/XRqkMrGH5/kaPSA1hQhdIBzouaE+5KpE/f5ylI9cujmckQg==", "license": "MIT" }, - "node_modules/@types/node": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", - "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT", - "optional": true - }, "node_modules/@types/validator": { "version": "13.15.10", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", @@ -367,17 +169,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@zip.js/zip.js": { - "version": "2.8.11", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.11.tgz", - "integrity": "sha512-0fztsk/0ryJ+2PPr9EyXS5/Co7OK8q3zY/xOoozEWaUsL5x+C0cyZ4YyMuUffOO2Dx/rAdq4JMPqW0VUtm+vzA==", - "license": "BSD-3-Clause", - "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=18.0.0" - } - }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -555,18 +346,6 @@ "when-exit": "^2.1.4" } }, - "node_modules/autolinker": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", - "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - }, - "engines": { - "pnpm": ">=10.10.0" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -601,6 +380,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "license": "MIT" }, "node_modules/bare-events": { @@ -714,12 +494,6 @@ ], "license": "MIT" }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", - "license": "MIT" - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -731,12 +505,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, "node_modules/boxen": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", @@ -763,6 +531,7 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -862,24 +631,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cesium": { - "version": "1.136.0", - "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.136.0.tgz", - "integrity": "sha512-sHSFNNLgrgJQxpdLxdmjytT7qfs8dkn23tpPnXKweqvynQn+yAybepK6AwzYBbKQ017qBkrS/Wb4DORIFcjjhQ==", - "license": "Apache-2.0", - "workspaces": [ - "packages/engine", - "packages/widgets", - "packages/sandcastle" - ], - "dependencies": { - "@cesium/engine": "^22.1.0", - "@cesium/widgets": "^14.1.0" - }, - "engines": { - "node": ">=20.19.0" - } - }, "node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", @@ -949,93 +700,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -1090,6 +754,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "license": "MIT" }, "node_modules/conf": { @@ -1227,15 +892,6 @@ "node": ">=8" } }, - "node_modules/dompurify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", - "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, "node_modules/dot-prop": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-10.1.0.tgz", @@ -1268,12 +924,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/draco3d": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", - "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", - "license": "Apache-2.0" - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1289,12 +939,6 @@ "node": ">= 0.4" } }, - "node_modules/earcut": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", - "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", - "license": "ISC" - }, "node_modules/emoji-regex": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", @@ -1356,15 +1000,6 @@ "node": ">= 0.4" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/eslint-scope": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", @@ -1534,26 +1169,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "license": "MIT" }, - "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -1574,15 +1189,6 @@ "node": ">= 0.4" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-east-asian-width": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", @@ -1687,18 +1293,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "license": "MIT" - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1784,17 +1378,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -2028,12 +1611,6 @@ "node": ">=18" } }, - "node_modules/jpeg-js": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", - "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", - "license": "BSD-3-Clause" - }, "node_modules/js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -2044,15 +1621,6 @@ "node": ">= 0.8" } }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -2067,36 +1635,12 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kdbush": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", - "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", - "license": "ISC" - }, "node_modules/ktx-parse": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.6.0.tgz", "integrity": "sha512-hYOJUI86N9+YPm0M3t8hVzW9t5FnFFibRalZCrqHs/qM2eNziqQzBtAaF0ErgkXm8F+5uE8CjPUYr32vWlXLkQ==", "license": "MIT" }, - "node_modules/lerc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", - "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", - "license": "Apache-2.0" - }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -2118,12 +1662,6 @@ "dev": true, "license": "MIT" }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, "node_modules/lru-cache": { "version": "11.2.4", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", @@ -2156,30 +1694,6 @@ "is-buffer": "~1.1.6" } }, - "node_modules/mersenne-twister": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", - "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", - "license": "MIT" - }, - "node_modules/meshoptimizer": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.25.0.tgz", - "integrity": "sha512-ewwuAo3ujPZ7T3Y2oTkEoLlXvNOqnr0cjyAxfv5djXJqwD9QlxDDO0qGtsqB4Z9QUVvhruKXg9q/xfK9I5S1xQ==", - "license": "MIT" - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/mimic-function": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", @@ -2209,6 +1723,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2343,33 +1858,6 @@ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "license": "MIT" }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", - "license": "MIT" - }, - "node_modules/obj2gltf": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/obj2gltf/-/obj2gltf-3.2.0.tgz", - "integrity": "sha512-1pCbHSK55tiTkJG8Td0Nfqx97jcCtIKNeoukWhmuiyEtty3gmLBxHRN6WdYM6XKKAVgZVgeJ/PxXAizeRbQFxQ==", - "license": "Apache-2.0", - "dependencies": { - "bluebird": "^3.7.2", - "cesium": "^1.86.1", - "fs-extra": "^11.0.0", - "jpeg-js": "^0.4.3", - "mime": "^3.0.0", - "pngjs": "^7.0.0", - "yargs": "^17.2.1" - }, - "bin": { - "obj2gltf": "bin/obj2gltf.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/object-is": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", @@ -2452,21 +1940,6 @@ "dev": true, "license": "BlueOak-1.0.0" }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "license": "(MIT AND Zlib)" - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-scurry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", @@ -2490,15 +1963,6 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, - "node_modules/pngjs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", - "license": "MIT", - "engines": { - "node": ">=14.19.0" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -2588,30 +2052,6 @@ "integrity": "sha512-gei3N/bHWJdCItJ4blnlGWd9iauEZI+JZYj/A0D177XSI01+QhiJGAVscYBhe3Yywow3A2QJzVtsO2P+UgrRRQ==", "license": "MIT" }, - "node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/pump": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", @@ -2622,21 +2062,6 @@ "once": "^1.3.1" } }, - "node_modules/quickselect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", - "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", - "license": "ISC" - }, - "node_modules/rbush": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", - "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", - "license": "MIT", - "dependencies": { - "quickselect": "^3.0.0" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -2673,15 +2098,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -3033,30 +2449,11 @@ "b4a": "^1.6.4" } }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "license": "ISC", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-client/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/tunnel-agent": { @@ -3109,33 +2506,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT" - }, "node_modules/uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "license": "MIT" }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -3242,83 +2618,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } } } } diff --git a/package.json b/package.json index 7589be9..3c31366 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@yinshuangxi/yinx-cli", - "version": "1.0.4", + "version": "1.1.3", "description": "子归云工具箱-你想要的都在这", "main": "dist/index.js", "type": "module", @@ -33,13 +33,11 @@ "node": ">=16" }, "dependencies": { - "@cocos/fbx2gltf": "^1.0.8", "@gltf-transform/core": "^3.10.1", "@gltf-transform/extensions": "^3.10.1", "@gltf-transform/functions": "^3.10.1", "boxen": "^8.0.1", "figlet": "^1.9.4", - "obj2gltf": "^3.2.0", "picocolors": "^1.1.1" }, "devDependencies": { diff --git a/scripts/build copy.js b/scripts/build copy.js new file mode 100644 index 0000000..01bdc9b --- /dev/null +++ b/scripts/build copy.js @@ -0,0 +1,47 @@ +#!/usr/bin/env node +import { promises as fs } from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; +import esbuild from "esbuild"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const rootDir = path.resolve(__dirname, ".."); +const distDir = path.join(rootDir, "dist"); + +async function main() { + await fs.rm(distDir, { recursive: true, force: true }); + await fs.mkdir(distDir, { recursive: true }); + + await esbuild.build({ + entryPoints: [path.join(rootDir, "index.js")], + bundle: true, + platform: "node", + target: "node16", + format: "esm", + outfile: path.join(distDir, "index.js"), + minify: true, + external: ["sharp", "@cocos/fbx2gltf"], + }); + + // 添加 shebang + const outPath = path.join(distDir, "index.js"); + const code = await fs.readFile(outPath, "utf8"); + await fs.writeFile(outPath, "#!/usr/bin/env node\n" + code.replace(/^#!.*\n?/, ""), "utf8"); + + await copyDir(path.join(rootDir, "bin"), path.join(distDir, "bin")); + console.log("Build written to", distDir); +} + +async function copyDir(src, dest) { + await fs.mkdir(dest, { recursive: true }); + const entries = await fs.readdir(src); + for (const entry of entries) { + await fs.copyFile(path.join(src, entry), path.join(dest, entry)); + } +} + +main().catch(err => { + console.error("Build failed:", err); + process.exitCode = 1; +}); diff --git a/scripts/build.js b/scripts/build.js index e9b2dec..1b4512c 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -12,7 +12,9 @@ const distDir = path.join(rootDir, "dist"); const copyTargets = [ { from: path.join(rootDir, "index.js"), to: path.join(distDir, "index.js") }, { from: path.join(rootDir, "lib"), to: path.join(distDir, "lib") }, - { from: path.join(rootDir, "bin"), to: path.join(distDir, "bin") } + { from: path.join(rootDir, "bin"), to: path.join(distDir, "bin") }, + { from: path.join(rootDir, "package.json"), to: path.join(distDir, "package.json") }, + { from: path.join(rootDir, "Readme.md"), to: path.join(distDir, "Readme.md") } ]; async function main() { diff --git a/scripts/build1.js b/scripts/build1.js new file mode 100644 index 0000000..c316f63 --- /dev/null +++ b/scripts/build1.js @@ -0,0 +1,46 @@ +#!/usr/bin/env node +import { promises as fs } from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const rootDir = path.resolve(__dirname, ".."); +const distDir = path.join(rootDir, "dist"); + +const copyTargets = [ + { from: path.join(rootDir, "index.js"), to: path.join(distDir, "index.js") }, + { from: path.join(rootDir, "lib"), to: path.join(distDir, "lib") }, + { from: path.join(rootDir, "bin"), to: path.join(distDir, "bin") }, + { from: path.join(rootDir, "package.json"), to: path.join(distDir, "package.json") }, + { from: path.join(rootDir, "Readme.md"), to: path.join(distDir, "Readme.md") } +]; + +async function main() { + await fs.rm(distDir, { recursive: true, force: true }); + await fs.mkdir(distDir, { recursive: true }); + + for (const target of copyTargets) { + await copy(target.from, target.to); + } + + console.log("Build written to", distDir); +} + +async function copy(src, dest) { + const stat = await fs.stat(src); + if (stat.isDirectory()) { + await fs.mkdir(dest, { recursive: true }); + const entries = await fs.readdir(src); + for (const entry of entries) { + await copy(path.join(src, entry), path.join(dest, entry)); + } + return; + } + await fs.copyFile(src, dest); +} + +main().catch(err => { + console.error("Build failed:", err); + process.exitCode = 1; +}); diff --git a/xw_20251220142204.png b/xw_20251220142204.png deleted file mode 100644 index 5e0d91a3341f68031232f87a0481e3a2d4ec3873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35378 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 Q{NL--X1;p(FLPJ@4`z*51^@s6 diff --git a/xw_20251220170040.png b/xw_20251220170040.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4dc95865a22888a3e982d1282bec0c4b23e456 GIT binary patch literal 50754 zcmeHw4U}C~mF9~f1PK@!!BS~cnMN11NEeEl=^^rxUb3RncBG-KQ9_lBZAXnztr?pn zKrV?*Gm>FNPzg-BQ;gVvRg2Wj&=7-(4?`m&qzj~DT9UT-O&}OTC@Mu&UcEDSf8Rc5 z?|WYbn>DM~8mGfzRo=Vr-t)76zWsCdIrkf%{Ns7Y9{rA^E0xNzAN%M>{-jcw{J$!d zN!yP)GQaYr5JF?^x@mSdd}z8U%caP z{r`*qZQTtY?_c-+Gk*8Q(ZAU6rDeBXedeNV{g+&P@lAc}@7dGa*ZHot(Z9{^8(jX> zIs3B*+b$oT)P3O53wG{n`O(;wExWd!wQSYy1Jk;$xOeRpue^2oEAdmM_R_Ygn|?X3 zd;iYmPxeh;a_8z_J+*OsOGj(vr9W%ke1Gj3d3@Hv=T3WZBt8<3OLtZuEA}HdcHY?a z>YmAsJAU=+TQ)4YDBXJYaC|;>`IVa7iTjpMa9>!n`I$A1W3z+bXuH3?r3L3=) z`Bd))#TH*CROw~UGb&g9jH3zN=xR=)V7;zgPq`OO?iJdR=xo9h_9u~Y?4RB3FV3L0 zJ>FDb`07>tXFah($n=9jxk?sJ-Yl$JDf1^aAqx4Qjg?Ps%!MNV^qwao3uinRKUIVr zKNu{Ef(b>qJ~D=VVQ@0HEpdkThfk$x?@OF@k`a6A{AN*jCSd*#IL_WMvvNL%KbAco zpO*<&AeAO-vmYrA99-LUIz~BfROmDXf0y$LC@1ot^~?#9 zQrxlSoFtrGPs_Nbj!7RILHeF&rRA3U<*{(CkoDCO{4AHHy9yq@M5x7axBWDBQGwV- zwFutvcXnaH1{?*3^ni}*}?Sz26tP{w!_sj*b#H@ilLv#tk! zcgSQ%aE}ah>N2?l(gj*)-!iUI*gHPl63KPp@E@hl`}gOaRTNXCcNrk~QJ;r4$qDHr z919%;B`~8c_}iLTJ>$7ZGmvpR_@-Ld_*RnV-j*NB;NuV`y_80POEZP(L_L|qx*gyQ zXuITGYKsUl;jJA&p)(vm`3*OJbsN7xfu*HQw`0_XV^J_WZv@zVQ^?u4MH>FfwiDu@ z_ScK7Jz-+jb^xO5=b(#oqi#(BIa5>F);QgIcha=BhvP+b)bqTMPN8wE#b~t~!XWpS zby}e=H3NaF&rgOS^>22e>jjy7%P#zVMtUT;5oiH%Z%AO%c|5eQ2*#_PlBcpeglIBp zRsHuQOzrsa8X;>^xT_$#k>-G{C37JjBHp9;l_FMqC{0BmkqqdD(q!M0HX9#It#&=_ zC2h&g`1uS7N7TlM3{&U)IYlBYTH7|hd-jIG#@<0#)0X?C!?s>|c%ACg-oeJj{2bmv zIoyyP+_3cA`ho87p@D(!aG-lgv?TngG`8uKx&&ZeM;eMw30bsCHn{;y7u8v}+h6`cp~>RQ|K%w1gv?^-$+5AWWMo0j8? z{&I7%lbj7Q>D>opcDenQ;Y{9qU{UQu;jvBl=Q9}gw3jh`xzctG`jdV(4$A0;cDfEG zEs?Qz-iUh$7h$Aw`-0qG5GGCrozUduaUn{06yu&cCd|UegSd`clvr$k>N2z}vvhZJ zZhAa}m3nLg=>UP)J!$~^y-nw!mO?#`GYIO(Nt7A4) z?F)x{j&LSc0kMZ)C4PjuOaZWX(lcZFzV-6i>3lwrvX>dR9TcbgoA(}9jFYjz7S+< zY%ZfkwkmOK=_P3>I;r%N@|jajSJe_!5~m_-2d0=TLcDkjfsy?3LKglA9cO=+S{|+K zNm^^_>Gh=Tr$wfCX{R`S6Rj;r(=TXH905V+p%+CL zng~*za~)Up!M$d^2u}nUwG-zh9j7RQ_M2`u#&^NICFoKB-021euvDAjlp&EY1_?Js zLoytG4)U!8NsNI*Jx|K>8wZn)tBZhEAs;$O>LkX{vJ1b`X0~94s{FL-!hu6ft@`uS zQGHRG;npG0z`iRKPpTXd9U0hL+~B~q-u+6E+~I=|&D006E<&ueU;7Dh#*9vOEsV-l zxH19x{z2MYT*FOJxf8FH&om&T1E%Vs)3n1(hDla9#+0rLNal#o@#2OW9FyFv$PA-5 zko`MDmlDYq!^A*$IJ8||ut@d!=7|{eQ08W0sI~hOz3P|RKq=f4PNpB+fGCB}V6^m2 z@G3MIt-SEm(>RxdR5Nr7(fKgL~wDGqU~}^TsG~>u4EQg0%_}gHK9}h2N9r zmncy007{zb4L&V>8xa_jGzKTnx!{5eb`j%S9z19H^MfyK=y~-|z?boPmp#}veq!Um zTe_~{{hc!-n(Rp|wAjU^N8^1r^QH9pb# z@;TwJl4#~^c_^g=y7qQg_y29ox5+)V#cUYB$oXsJB@_~Y-lN$98H>WT5$ zs0WADF`~j@^bmMFjLp!)C=B7GE5>%M8LIwrckA-m9pk%4U)kEW`>N6UeXDo(w*30B zS+&0o51tiXdV1rY>cDN?%m1M5VYxBfbk-F^4~_17W%TOS0hq0DZsiM$7Cj`kGwj8W zXd1CTlS;KkkRdl@nGKW1BEWa)fGN{;c#_Jq}Ha}ZFKU`Mo6zo;rr+c zh3jzJ$g3iRgD(i_Tb_{-XRD?6&Krdhoi~<0H_kwFTV$j|b@@9Pgq=1dJwTj(T2_Lk z7eOWlUXj7`#_ZN|^NkO?o3dM_-$onsV(@7hT=t+e9zKmx_xu`{R!bv%P(-)!SmowB z?l_HNTiYqa5a!e`NEE1T`@g!Ft&t8(8rj#l40w;>RM1XQd>^;P*$`A6N2{Dr=y@YOc|%3CmCb-f)Ftm((tt?qC;KJ$}gb)Eot)EcQ8ue z$l$KmydeiP5j*L(Wg?d7@N~s?LVX6h=%3t$g=RM9gDldu;pEb}ULQQxekrN$zNETg zo8ecsHcn`CBFTs1w~YG{DpK&wjp-y zfGs$CQ`;(2a?&aUc2C(L4GF`i3cbCi1K%(_{g()csY7q*Nm3Mg55?@?iKaN$uIyK7 zDkdi#<2wMHqN(|~)z0RYBMOqRJSClU9)?jDD4At`XaGCPw^JZDvs(O*9Z|+d73-x7B!QFjIXjjs!$nmgaAR4i~28 zhz2s6^{OB;@bLQ+J(WOms3+O(iAi}=l!eiO0|i(*N=f;jCLm=vA&p8VxgGj0EX(dl z&FxFgiv=M?kP$?4Zdm?)~Cbgpq=~n!#dq1O;-Rv^mBV4BrO2x@R0qG$A=gjJpE0l zV=@BPRT#a})y3O}5Mr5M9Uhy=+lFrxj@0z#l@QI7FuZ;a?>4zK<2m?5*W%|{AoB_^ zY&+cl-tZq}H1!U6W!0YxEjl(oCwDBp8PA-GCR?A6n$a8Hb%=~AqRi~u!u1BBGP@IB zs_;mA!&yS~`g}OHt6!6-I)kRiMTV&{0!^`_SyRyO9Dq<=AK zlR0CfA&q7I7-bK*`_Bn?yAZ`;ia$&~mzVPX0!V2`!D4sM!H*w@HXSP}XX3C)NB@ZSGgg6j;Z667c6m1XHq&cBI5wGYHXaA8|Bt~SN--L{xiRZQ`PDEw_$S#E{naTsn zmJ89Di^%_`&!fbZ;?1KqB)bUW8S@Nhpg-v+y8#2R3#8cui9e8zUgrQZfpVeEWk@hw z(iS-tnzl){?B?=Tj?hJvB9bfIIo_V>{MFBq;p zmOev#;L4nMhz?S%R_*}l-D#bz(UQQduW@M#p4E@aUAS!OA@YK(6c0~AL*S{0zp>A$ zfx$Pv1|&(oO>~`q(gN3T6_JpT{18*M5-6LKEi{g`!d!{|t{)qGKH{0{>Fa6D#tk6m zkvqmugsk?!in5gfSTLr$L`WTjrXO+T-FM&pup0=;JU(#b;Wg63OS(}Q{vTd2&$Ek- zR#Xo)&Oq%?$M{1iImjMFq)sny#rMUd4^M}`fxkyo20e@zt|;K z6UJyUdy67U_=eRruvijBFIwz&I*T>J53MSuJ^X<^u|n&aWGu1i@CNt{;U*c$kxy8; z(bxdWbFHb`_F}cxz+Sm|;~t$Ns~uStr!{zUFrHM2vS7FswTYN2hT;m>M%P$RiVNc> zYi-1E*RRnPDw?!lr&LhoODnT)fvTgZ`)SNVF|MmMh_g^g|~<-)&2{l*3>W3u|BwfLCbnR;7#vwd6+ ziiSn_$1d9)qy4C?Qr@thSWU?oU8zP7dabafPna}fX8o8MW{nD>?AsX5*{tH0YE@R^ zuxiPqF07Q%XjRpA>Wq_6M<1DfQ4c7Psx^3&gG(lG@EEa`<5jEnoL;UUJ0GKEEnoP! ziKJ)&%QxG4K`*KYKC(_zn?n7j7GTK`S%xHmiZsD`+d`cxXd%67#T@mZJ$wa3VIeQ2 zKnv!gDpBY(GTnGLW>))!Tw~#B{T%R)<>O$7E826FXse#G ziBuA+NNp`>*Ag-oD3h~*G}g-ze84-U%nCO-HtDL(Nc|R6rTLQOwqDGUt%Y{XhlR1a z6M(IL*z>OfHVDMrmH!1tE+K z?@aX38cC|hwepYFu{p^}D(uv}%m`nPY5GasLuW~SSuxkR1zN}QSlz7vQl!or8&LE{ zy1RPs2*(M7ckZ)iPC8UAZ9q}=)(FEbTqPO5+G^xo7ra@;Oca7OgzYjB6^+{CO_D>7 z5dRweMCv;?qvRb$kDbRu7R=(z6h<})bI0b-mO+-h2p=^?_tlna?s~(Ui@!J1#YAhU z2bPY5yd_oo<`u4Kx}L*x$|DLZ!7SYoqt&^4&PEBc-|#}Qt!+unB03o%=Ge#Y0uCUF z5yR&n0pEFSIyNFu*~8l@tVd%^?P1ttx%x8@cko#e2(4Fj1;HkQz#4mwa1K>aq;SLP zc|M8PjOQjQyUdfsKLThRodoz>V2hQDm{BN0J~??UVp`FK4nv^!ZRiuq;V!>Eav z)CHludNr)?1}g$R1R3Dcxu8&*uB+UwUj|W*u#pPW!bhz4Bmr8GOl0=^Rc6s_fq;a5 zjLcQQY8kzenDy>5d19r4lQ@l}DxV<2P)NdCg#y$M-7Nv|dWT&`eXv^pH0*EzpoPLt zOpTZU@i0C_zw7D5VH>a`WR%8MW(kK|QTb~wU)Yx(Q=a|aHY0tey z?0K!*v9CXoka8oE_xRT@4lNA#aM`ph0R9`S@|J?R`%!_v6D7Y{|C;*GYfmo6@exBq z*LRK0+H^X;)Sh{F?Un8&m*7k8_;+Dvm^xJ1*8$^GfHt{g0jcH!ZwO24CQHf6SoQ=O zxw$s}_iLW2J&yA!q>uXElYex4IB$~_PEUVDHv@ztOVG3k9)NC4pzW*u0ydYMC68dFzkHjmbzbj&Sw=Pc5e#q+3ZTceBzml8S86ow&%=Hv z1}88v2p6OAqaSb-Fp`c7Atg`BsuO-T!WrZR##<}!C6>*w13c!C{@Z0RU#U6%jANGs zF08=l4vvG4*W;3ucQ3gaAA9>~v79;6eOR)$%54VY4bjL6;?bMYccj6cpa3%^|aq)_6CR{WgVQR4wTz;gw&FG7hj3^X#|+|sUhZSb~8%$g}axN zwQ@F-qD{e0o_|w&Xs&6yvPNUo$CAy1E9F|JMb3?*ZtWB$YjW=^Mb&dA6kZEG6&h>a zx(Yf^#mZ1LJ6;_Y#oD<~RQ}Z+^DqBBa7<|a2Eah^T7J?@NqApf13UoJ7Td0%-Mhhs z!NfH$<+!Ep4y`LG6jB3 zo}oaD!6$T!E&J77@#1_412ssaMRB6tI0=adf|J{pUC3;do`K)mm_7-c_dfhk(S@Mz zPyr&4hS{wm-;?NfTp~o9a53b35_LoAKq3fCc0-c!rRT!vag2)Wh=7t8U?k1{ zJ3&K!(k+vWmZ;zDp~jdGeK5(>hE1r$;U7(5A4wlEynzACu^(=VVIBRk3P2Qo!0z4D z9B0W6!UT>0J6{}00+&y?727%iR*rj4@pV(Lq2i;MCIvv92l``}3sC0eR>Y6+x(P{j#}513kLh?L$V8uScbrn9%!l3DD7zQqE=t+N3X&@4;A| z#AYJW#Ju>_ZdqPu23qi=g$uZO3w%aKs7BZFzDJDgF?ZTzxV-WHI={<1|9xDhDwm~p(nbr?ehKls+hGv*xFk5^iNJ%&WawEUEtO*U=JT7=Q zwql-B$Hca+>wy4(avcA)6RV$D*do35M{tQb&pd%y`WkEjVzr^aS^^91HJ$Q>woF2SRzpaz z%sB+_fc8%;diM6p-`#cB=X2MC#V%wtb3wZyroNnFE+>zko$+&rW09UiE1gl)GjGfz zoml+Jw%Z-r6c>DwZmAcv!L9EC5U#S^RUu?7JqQeG+-5g3RYMVUE{|r@02P+2$j|i5 zabPPTW{c^qTlk~~3g9^VZ_dqx7v0fy?srFgj8>0<5u_#$tt)MyaR-2|uWX(E zI0Au$u~K_qeN<4YNzir0-{+?FP(@JB1%)hLfn=+@ORMjoLEyura4qG*p>xs)CxGc% zet=zhs=Z+eSe)>+IW>{;u8UE?;7ClYbIXhMOH)2|ZFsLyyNZJ@dEVwiv?6JS@Ksjz zXWs$pkq|V4O`ew5QJI6|h}t~$lUU@o0_-(`cWR=Cml3TUz=Ij?a8LDOsCNY?OtTai zwDF^Ha;jXIkoLNK+7IwnztI^hngS2V?{q+29%pa3FbSe2QL)-AnIlJd-BXYqMO(cS zT&681oj08VLiwyIPNwr&Jg+HDd5xBBNpkdTz=9Ab-_~S7T?Owm6Qh6zYmH}HT}zEw zFcZ`YlLf6$1OQP9ohs;RNVXcB6;jia(m;rLCkQ`qgf)oC%5?ICKC&f0K*UZg^Q%u{ zR@A>T`hNkFtvvwBFxR5#d(?RnAPT7%4uB#l4|6Ut#b-kYn);l!B9D-niVIyYASjD( zx^SedCe2_6)mNt0`C|_w^k5d$d6Bi|ZbiB_f0Fs5A0#5vxhM71_h-Qd+9Q;a$=+4+ zr$M^2_L6Xc=UfU|jNrO)M^b=YoI?@EOh{52w6;cH8Ud%QOV5Q@bZ%+OZoT2wbq z6>Vy;`G7*JjnE24poS}jazJJiN>Z3EIVGo_5Roh%*xDYhNO$itldJ<45GVPxx)oi_ z#S@HEoK@lZf-ZIAA|K}@*!1B@sX)Pbb$IKN2ks-Er34s*z_f|U?|{Zl+G(y$*<*l< z1awR;6rmSHvN&axk0RUStGK8zxhPq_$PomjW+=G|R}iH#o`tKq6ZCd9hR_N8l#r4% z;l!M~2h#YnjqP+n=P;Pm^XOOm&WHq!D`>E!jclh+O2Bb!&EGsAZn7$^3sw}G=h8M@ zOZN~W#gNuugRokCC^2~xi}}-c3We`Ft(^*PkUKh?g{AbbH=6m`k#KIDr2iE_iP2Q{ zJ@+Mb&bg|@X|)vAyTJb+aw+^|%rcpKbwQ;wo~hjg!b@F69=+bEvx&>$9U@dtO*G)N z#32>j!GkZRB2YPR!F>eFV!#GR!=#KUHjW1Lh?V=84SgpnlA0t$0g(Sd@;II0yj9!i zf9n`oaY5qZVLHG00XNY~den6aGRKDMJ_^;;BP_3*bc{a$x62m~XRN(WAlf(yvk2ef zKR1aIsx`wsPLueN`6K8K-6UCZ4VTc;U01YphPj%Z=i%t0`MUE166`qbS!xk!R0E0? zh(@)GK``VGer*A7C~8qy2srL(8nA{tTO6`K2e()h=y#c11w3J#hL1MI?CUalXBhPO zb#>a!*tt1sbz_+u7yw~{;G^ba1$qmt=MiLFysd^4%83xp{P;e^?@bCiI$#?*(2cIL zhd;$Pzxa3&RNGm3_0moF2n1Le3TNQ?1Rh#O3z6jsxMd^;+%n6+vJgEGA0mX%0f6T8 z(J>HaLBs(%EL|(m6t1y#7IMS+1O3dE+)5fN09n!!t|Y-Z+yl}Hhv*jlzj^EIAn6j-XW{(v~-JO~D-#E#y?N;90-$T9}!XJOFc z1Dp*gsfp2q{u+FhEMeWJ*V4Se{qQX_zA6Q7wIo{wfuiD?w$d$jOq2f0&XWUT8aC<~ zdc~s-x%h1OG`e8PcexHQKcmn#4}|M*C!U zeOm~ma7*$coh&#nSREo3c{BsGt~lB;-1K4@(YWNOzSqRf#k5}_&*8m`NAfd3gi(2Y zsd$Ud4RR5sq6Q|jGEHV{;08L!AT7Z+tIQ2ks{g&=ZHc40z=<%{$FAoq=fl9Nx&G7)dZi_EIfB#t1iVIxB$2b%Kr(GEPZsQAm3+dXvodS zx}ROw*;$94FCj4^(E=uYe?;=DSkt+JXBzTlMT-8&=g@Qz3Ciw@rlJyF=$jifpzw<@ zxo3~iY^%d7jZ^1iby*h)_02E3`A%%A^O@+Zs(TW=PaXkr~kA$ZvdyUaQM8Hv9T zk%RNeEt@seWm^xM-=f0R(!Bqy&!$Y|X98M1ZgRny(EKnIzCg?u+-jDw2XCc{+46+) z;vx4nrs52mFdxA*?X3&+b>W+#HgH}f$T5koa8COoVIXH3R5%`wZlGa_>16Q(Xb_#H z51)Z<(5B|EMzHlR4MOO#le*DuP1LfW$rmt5*p~waUIR6jxk@0^?{Wy-*b#j@7)niS zW8#c6)z4*^u4|ZkdO0w4UMX*J%gdnzF;&JT9=3_2smBg{L{b8zm(lu`)K9XjTW zt1S11E_CEqL|HjX9dRvc#g7De^t&A^Xl*7lZ?+pG(WSHBxGq=c!r;U@K=czKNs{9j zk^Bi<+jKi-!V)t2J5K)SNHzMB15d!%7A{6BT0U74TIZN(Kp-d=R|uUtPa5 z+3jl9SM}+83K>RI2MOd3O>+-Fu6jd160~YjsJKqijfNY=WMkvqn977Pz(p8r5`Mbw z6k)bR$zbHPV7Q9Zi$!#-rXVu7&_h#();7eDb5{UjbaJSuM+-$tzTW6|XunHE6(DGJ zqOyDIo27p_f4@#d+vb{ccxoEKL=vV{n1O716T&G-im{>shoenC7z8<-B_$nGeZ<2w zu0`ldD+B*Rp*JJTiK0RmOk+r@)Csw%RMb}X#;lHuNSw3~oWM*C-N6ROZ@L&dsg3a6 zsrg%@$rhkSqy^HrmE7`bDFK0xr>fUnH(K3U!lfYf zZ&*s$*VtD!yely8@~9YYXkhhmjFw+KO$$4!g#g@gIDLw2Ic)S;+9+mg6Mvdh`?~T1 zwP)ukjLciDaVs`ZF(RA`k>@(zG3s~e?$HrlN>6B_Sv$r}X-w*&70A6OyA?QNH{Hg9 z4?erXh)yN(@UjcP#uBOM2j&W0JB~>=7+DQrDUFmBq76kj)}aF6YOWZH!9S#qZzasr zBxUW&PtiqMo(1Kk5nqkU#Py)7*M%h!{7Yo7&u8%rQ$MD&S|{h~%!CT1Y69Zc)p1vi zuvPsAj3_z2D!ndr@A5AQE9`dZ*gR7N(MR-`ruCJze7CIkN1Y8y_^-wFRJ2?hQu&T^ zas3P9T!y2t_65Sbb$d&+sdMC6kY=PzmV zL;xuldR7n=#U-V+=*r8H%YQXNxU-&2XUkcGjJqIeHXjaInWsjAT1r$f71%{!G#e^_Il7uzUlt{u_9g$)_9zIPo01qP%1UOJu@i+rMx&gy8g{So> zxV#)EXW;C#E{icPi>2xTZnoDwZbHyaaw8~0YN+iJOv&ro<;c+Y$Y@o9He$@Y)lEXT zcVvD|T!XcDV*F$bi07K$wxuA{Lq1F~Hd{pMo*JgJ( z#7W?kSJdnWWnvwF)zahY;1Q>NQemhS?-Gg%K65B(3!K9|>ox?ydaso*M3qpARa|lR4u_)wTlVMbi zdAn%=BSdv-s1gij^}H|0M|Krv&7b=kizjmCFSCn8atO5ZPuT?J*HsAWIcLqq@48yf z7v@5)6c`zSAt9E%AJvlKAJYu|`T;4-&9rX8PLoLPtOqSvAfQ6t=}N_geo-)bvC-#& zc5^3+uYl7=$5?GDt?NMnskaycniyqBAktPl(Dh2NeyqhrM6kg{`U>^x_P|4RWX0^A zTZ}kBg~1s{X)_x8;$&QjGMq&h^O3To2VE03$1!_@i6{F}g z)95H(!Ecn19fRWCx(+HQL65cRaV z6eU}xp)RLdK=tm4_f$6CJh~bYgbskw0-IFZBr|ktqIDii22pa5=3`t)lUX6KXD83Ak?71s`Olg6Cm|`4GM+@?c(5YEl>L>FMTg;E@QnaVD^Mgm#Q6 zd*Oo4*H+s#WbWAf=V;uBd^%j0NI0X->=Unn%hPdAts^8aO=&q#V zi5uaRGM&{Xb9+GO#0VLmBuPC~Uh+hq9K(81=cT-^vph_+okc000@K{_!YIwm(aAm1Qy;1$6+d-8i4~#B( zr3DSO2AnkYR5DGfmF3>BIaY(F3qU>-olqb2ijpUykNEIS@KtH2d0IGAZI*6 z$_@*G&S^eLeR~7){Kd$YNWlg!GcDm541?I<(>va(shrb+TEC2^%hQiApUdsdrI)L* zyqmh_gXpT%FF17Z5Qjsj!G{nAvbr6?xiQHcEf~%$FQhb?2W+$9G8hqo zil#IZi>nt{7(5fBr6Un}CVde#sWMF6zJ=8#wtLcQ=+C{^~C#C*|M**w8LW(>N9___!+bUDKZ zan`0DQmA{2=mfl*5leVJ0njczdojVNdWJ~-DBA7>u=X`VX~l4mhk0LwpBWTrQ7p?z z4Be%o0eaf@u;8)Uk;1AGy;D6rm1dImMMfSf)Xwlm_^|Z)3UJ9-As(Zt)`kOj*^H*@ z6-^vg`F;<2Eh(*3=mv>(){4+~k11`y)k?Ued{W0npwyzoIpCtp#cXVQZX)2`w|wv`k$3+04}mibWxYf_LGnMqEBeLyL zWO!PkH&!*CvWnb6*O)H-7sJMD{!s~Z_;sv=7IGE=E5($26b6Ud}| zNxUrV!dqRWs+fsISir!`Z##&@JC!}XLt5#U;TE($t^g}iDr8?w;<$AfgaT+r5NDDn1 zjMp^XfNJCn)yVhksk-1u%j(60SMM+RBkRWk;~6e`QiItZ90^SkL1DOr&AiH^!U*TB zxCqL{Zut}xImMUKC|V0aptahK>6@EcTVkBjgpLSxB8CN&$PccVUpi2IYj!v0K={LR zFd-~*Kb|?!Dv$EfZ3|5AFrYR`Pr^mVlb*N1i-vo>VGtzH5RLLjBBs8Fw6G1~Rt2~F zMXB$V=gQzYl(gSPpvgL*_M ztP&Hk`n;u1m|r5lVT@dXoG!uZx!XSJc9I(6FBQR?3Yo5H)P_)#436Py;6|S+-af{7 z^RiM7jGh4XF&8wSURTo!ygt*W;_NE$j^{B>7-xDB&TU>R&a}O7_;*ZBiik-|fQh+G zac~tQ8@UGIH~J&5q;^70bO_*0lk$=-THN4}ob%uUEuJi-(|h|W7%-uOcFF-99$*w3 zsh^}@x4iq;Y?Le$f$Yt~==|_;QDjwI%7I*nIdV}6T423W{drP+qD)d6Z_{12TPyVN z6d4~qg=PNqW6a3A7EsAFsY3AsnB{WHdAfL4x;<;tIA5Qq>+og*ZS|WJnig3dclpItmz+*N*Xh@DaSh-RbO) zrgZgWZ-!TzCb6WF)=g`gus8e?<1JLD)4_8B*Er4D35*g7OR5%vt&HbtDh`l$)I}{S z;mVAp!@?{?qhYeCrB=DeHLbOQZy)4%a<`4xaEO{mceDZ}klPBGr7a)jk`F+uMTE+M zFFKweI@Mz#3AYe0NvTwsQW@LUm#`aGZJrD)Mg6&UeaQE%f^TiI?8BPILmM#t7U7$AzViiqHRa@rrY1B5>( zL4^t(%}K;4OFE>r(DGS!i@+a8HRmA*V>W8ElGv8g9WC|r6bOKeb%9*!YMP=K)`a1= zGWd}@Htx|q$?`>gH}Ic>)3&KrQU9e0H)j=sLb}|U_+FMw>$Vb(rFluOEY;2-AsuM@ z=*YUYyb4%F)hqZ8GM~|Y9608@Hfk0oXfHx*406Nl0}z+y7WF7v#SUgj0EjFcClhcW z4Hres+_;sPToVUv@k*X?eA1BD_281*g%>N+IiO{1B8GEq^*xQeokTC}m1*)cI3Y}c zw-decqdaeW3k{OT^*_an8Wi5ye$> z%}4Puy9)fZ6p8~SQivD)dBTuaWe7bK-M~fc&!biskShSK1P#mUo=$Le_Y(=CM*+BT zI$7)uOOw#hW?E8_rpBdXDzs!=lo6yY4?)umri1QbJ=%jLRn6_|GJPKAk^r%Tk- zB~$uelG6#hx!iMKn!+xZ_0hd3Vn|DiT=}~vN=U-Zo+Ln%aBCekkC)4LT^=jU*1TA$ z9p@+O$Jdu&p@Fou99KrLeyp|+P{~BE=FZ%{DtHX^RzNscdlYq7sGLj&L4-IQ+{ARrXY&RtR7yir+U!aSxZ#{9ku6ZOZSE_khX)v)FE<~k)+72#(Dq- zaY4&^=N>{ZM_6V<57-^7%FrU&+MK6XxQWrSD;D`vwy9zC{wUd$70}YDUpO)~tqO0a zccHfC1n$yUjli&Ri-$y3LK5l}%4lfdL`+=mW8&}ZLaZwivB)RLE$j{i+&jN$cz}E2 zD$v5xRaXm6vwf&+luH!YP?}<)eBH#}e5KmKj11&S^F!WAqtjlfWArw11gX}>$%a^v z42X1j4cU7z$@@*W%eH~W;ADBPS)eU0C__1WYLlc9X_8VpoD`8*HfdFbYZ)6>N?JjJ z7vGhHd-4)7nUm&P3I2t!#mO!-Uk{^eo~IrPRZ#Be{Ek2v)!&?x1bB!U(vov3VuDNI zgtGAKx!YA{%H>9gM>q~QCXyS|JdU79+n<16L%xIf?Rcp9oRps^M<2!^i~522$gZc+ zD~P6=%)rwTfTV)#dU99+g>^AdoH6Ugz0j}Rrq62et%*>yK_*cNy#=*)yp}QO;(+r? zBpX5mSwD6u{H8PzXK#J3+7#S*L+bkJ8R+h)g&Xru>b- zdiWRSP|g&Tzq7trp7sSo1PWaa!&Zu>q)p=tb&DVs{sB6J&1x2`fLTK(TG zXspaklML)6_ahX6AX*yz$a}37UTtR(Lt)#)EV}*pR&Yt?LRWmQ2Kg9OgGVR}rlKMy zZc|s;+lh;|(oa)1j(dVMhUfCD`L9qJcPMilKq7+*C(RXM&AC9Bg}#l@`J72>#hLDF zoWM2nHrrwJFUoAXL%%g$!%-;Jiu%bZ@rLkTCI1-~r0ct<{OLmba8RsE`ntfAu$-{W zm%z~?q@Qxj;$kb)3ErmZ7w}U+i4)g#p+qK^>!813%{ZT?L^Qv`6vVNl(XmhQk*RSI-IhAFiImYT$2S_1x`ZK~Uq6 m{)Ef_|ET)k*6r`F|ff`;R}e{trL9^8Wy!w-E0D literal 0 HcmV?d00001 diff --git a/xw_20251220170102.png b/xw_20251220170102.png new file mode 100644 index 0000000000000000000000000000000000000000..c01e31ee940c45256dd3670df72384abff1b9ea5 GIT binary patch literal 84056 zcmeFa4O~=p`Zs(KmCBSYO)?W|&DgS>%oL4*v29zo_$TYOM!PCgSy7Rqk}|`~9A7dr z(@D+9RHm}BWOXW2KnDgzK>{7ikQ8K)0me6&H(=h+xv%Rw^J>}d{-6JS-_PfH_VWp2 zhM9AIFW2?GzSqn7U2Fb4bH>mcZo7eDn4ypV=?{Nln1O$0m;sMmHyGY|?%X3&nTS8d zJ^qJB{wj;;u8REVuD`usW8rgp)*Wluxg=%&o(0YOegD1kPVxIssEZ$*^xGciveH*` zKQBzoY*bfvq*Q+DOnrWI^E-xPN%odUGuM^uIdF;H`S0xJQc7}YjWRHuD zSg>Hhmf*!geoOz&y?CM7SN~J-z+b}$;QLPQb6?E;g^$ncJN)PJ(D4RtvHIgBKfgNM zamb_LgY?ff=FRVZHW(bB=*G>$H92W+oya?y;rfS5Z&+UB`9T}emL;)#R))8CY1_wX zd$Slvb87xQOu99NAG}=aJyO)}TM+J+YYqQ5{%P@#D&>DN#8kSLC&)g#3IEw3bzF*! zwY^)TJ$;oy@e2ZC!jkt>DT{qGR|OyQ2S2oep2e zS=ML9UMNZKe@mCo-y+(jl+{j__I*9WBem_x5}Sue3#zn@qcuMq!^`5GC5JOA`M1@s zpT=@Yt!{jFQbgFSX*$7G{YTY2(k0)SQ`-wOCs#{&cZ6UOZN|x^|}La9W)CrMQZt zw(Lt~IH9%`$z0}0@kyM5QZvrELfYdji65E%E)Hx$&mfh%JDa;7$CvDycUtp1g)=&_ zvS&tyCr#Fr5GymJ#maTM)(*+x63rhBkCzU@L1^n|Xbc|~w*Kh&K;6=&H|S#1oL1%E zt&Nh03{BjpwB~Hx)`H%V0cq6U5Hh!0ViPU(Y)gdsgTjZ>FCL9&S{<`z6ssgo_jg8x z`}XB=p3Y+UiCvCs99{9HWu@n=>UI3dZ>){A%#O=DQk&m7Sl8{@Bg4Tt<%YB|_~X13 z_n~E?^h|{LCR170nDnfUY;D1b$Rt?h8Lb=h`=Xb6=6HRV@}yMS_eM|C#&aba%Xp>7 z8kgglqq#gfTGKo_S}dV`dLZ?{{WM4ElIP>g%VIn^jstPqEpKEDG+FMB)b_`Z$?E@p zj^>Um^Als^yc045n#NA{YhxeZfI=}g>+$5S@p(+LdBJHvE@dmbC)uy9rxvsv`4O(IVK@P^frG3$}s$H>aU5!pXgqcTAK~! z#j7wE<>60{eTzxkem-Gxt8H(BQ@P~TT5Fipaic#@m<)@X;AoO{++Qc+R>%~vl!L3( z-p6a%{h%F|8ui0gi*#?BB~{d7nx~hwookh~9Z$|(%kECgwXBJAbQVXs8tl>tbGbg* zD7`!}`ju@DFO1E7%J7&4S7UQ}e!BuC!oSWt^e-Ntp{@VWC$ig&M*mfvq+vKeKZ

a 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

NStu%B9^7*Ia#jyc-Ky}n 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 literal 0 HcmV?d00001