From af3c2bf48104af06d1f7db4c9fc0072f21bc0503 Mon Sep 17 00:00:00 2001 From: Oleg Date: Sat, 16 Aug 2025 07:20:36 +0000 Subject: [PATCH] first commit --- furniture.js | 73 +++ package-lock.json | 1277 +++++++++++++++++++++++++++++++++++++++ package.json | 16 + public/assets/model.glb | Bin 0 -> 56572 bytes public/assets/wood1.jpg | Bin 0 -> 41346 bytes public/assets/wood2.jpg | Bin 0 -> 57743 bytes public/css/style.css | 59 ++ public/index.html | 68 +++ public/js/main.js | 284 +++++++++ 9 files changed, 1777 insertions(+) create mode 100644 furniture.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/assets/model.glb create mode 100644 public/assets/wood1.jpg create mode 100644 public/assets/wood2.jpg create mode 100644 public/css/style.css create mode 100644 public/index.html create mode 100644 public/js/main.js diff --git a/furniture.js b/furniture.js new file mode 100644 index 0000000..a9eab03 --- /dev/null +++ b/furniture.js @@ -0,0 +1,73 @@ +// server.js + +const express = require('express'); +const path = require('path'); + +const app = express(); +// --- ИЗМЕНЕНИЕ: Используйте порт 3201, как в вашем конфиге прокси --- +const PORT = 3201; + +app.use(express.json()); + +// Раздаем ТОЛЬКО нашу папку 'public' +app.use(express.static(path.join(__dirname, 'public'))); + +// --- УДАЛЕНО: Раздача папок build и jsm больше не нужна --- +// app.use('/build', express.static(path.join(__dirname, 'node_modules/three/build'))); +// app.use('/jsm', express.static(path.join(__dirname, 'node_modules/three/examples/jsm'))); + + +// API эндпоинт для расчета цены (без изменений) +const PRICE_CONFIG = { + edgeBandingPerMeter: 50, + baseWorkCost: 3000, +}; +const MATERIALS_PRICES = { + 'Белый': 1500, + 'Серый': 1650, + 'Черный': 1800, + 'Образец1': 2200, + 'Образец2': 2500, +}; +const PANEL_THICKNESS = 16; + +app.post('/api/calculate-price', (req, res) => { + const params = req.body; + const pricePerM2 = MATERIALS_PRICES[params.materialName]; + if (!pricePerM2) { + return res.status(400).json({ error: 'Invalid material name' }); + } + const { width, height, depth, columns, rows } = params; + const M_IN_MM = 1000; + let totalAreaM2 = 0; + let totalEdgeLengthM = 0; + const innerWidth = width - 2 * PANEL_THICKNESS; + const innerHeight = height - 2 * PANEL_THICKNESS; + const shelfDepth = depth - PANEL_THICKNESS; + totalAreaM2 += (2 * height * depth) / (M_IN_MM * M_IN_MM); + totalAreaM2 += (2 * width * depth) / (M_IN_MM * M_IN_MM); + totalEdgeLengthM += (2 * height + 2 * width) / M_IN_MM; + totalAreaM2 += (innerWidth * innerHeight) / (M_IN_MM * M_IN_MM); + const numDividers = columns - 1; + if (numDividers > 0) { + totalAreaM2 += (numDividers * innerHeight * shelfDepth) / (M_IN_MM * M_IN_MM); + totalEdgeLengthM += (numDividers * innerHeight) / M_IN_MM; + } + const numShelves = rows - 1; + if (numShelves > 0) { + const sectionWidth = (innerWidth - (numDividers * PANEL_THICKNESS)) / columns; + const totalShelfArea = (columns * numShelves * sectionWidth * shelfDepth) / (M_IN_MM * M_IN_MM); + totalAreaM2 += totalShelfArea; + const totalShelfEdgeLength = (columns * numShelves * sectionWidth) / M_IN_MM; + totalEdgeLengthM += totalShelfEdgeLength; + } + const materialCost = totalAreaM2 * pricePerM2; + const edgeBandingCost = totalEdgeLengthM * PRICE_CONFIG.edgeBandingPerMeter; + const finalPrice = PRICE_CONFIG.baseWorkCost + materialCost + edgeBandingCost; + res.json({ price: Math.round(finalPrice) }); +}); + + +app.listen(PORT, () => { + console.log(`Сервер конструктора мебели запущен на порту: ${PORT}`); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0b42aa9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1277 @@ +{ + "name": "3deditor_ai", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "3deditor_ai", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "express": "^5.1.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + }, + "dependencies": { + "accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "requires": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + } + }, + "body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "requires": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" + }, + "cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==" + }, + "debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "requires": { + "ms": "^2.1.3" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "requires": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + } + }, + "finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "requires": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" + }, + "merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==" + }, + "mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==" + }, + "mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "requires": { + "mime-db": "^1.54.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==" + }, + "object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "requires": { + "side-channel": "^1.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + } + }, + "router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "requires": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "requires": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + } + }, + "serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "requires": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + } + }, + "statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "requires": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2fe742a --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "3deditor_ai", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "express": "^5.1.0" + } +} diff --git a/public/assets/model.glb b/public/assets/model.glb new file mode 100644 index 0000000000000000000000000000000000000000..c97939850279f601ed097a3668660b13392c5f12 GIT binary patch literal 56572 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 literal 0 HcmV?d00001 diff --git a/public/assets/wood1.jpg b/public/assets/wood1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47ed23ea82c4e983027ecbf6981c14231ecc8bb4 GIT binary patch literal 41346 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 literal 0 HcmV?d00001 diff --git a/public/assets/wood2.jpg b/public/assets/wood2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..085961e0cea3177534cb1ec09f032ed38d06c9c1 GIT binary patch literal 57743 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 GAOG331mNoc literal 0 HcmV?d00001 diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..197b699 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,59 @@ +html, body { + width: 100%; + height: 100%; + overflow: hidden; +} + +#app-container { + width: 100%; + height: 100%; + position: relative; +} + +#canvas-container { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +body { margin: 0; font-family: sans-serif; } +canvas { display: block; } +#ui-panel { + position: absolute; + top: 20px; + right: 20px; + padding: 20px; + background-color: rgba(255, 255, 255, 0.9); + border-radius: 10px; + width: 320px; + box-shadow: 0 4px 15px rgba(0,0,0,0.1); + z-index: 10; /* Ставим панель поверх 3D сцены */ +} +.control-group { margin-bottom: 20px; border-bottom: 1px solid #e0e0e0; padding-bottom: 20px; } +.control-group:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } +.control-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; } +.control-row label { font-weight: bold; } +.control-row input[type="range"] { width: 160px; } +.control-row input[type="number"] { width: 60px; text-align: center; } +.control-row span { min-width: 40px; text-align: right; } +h3, h4 { margin-top: 0; margin-bottom: 15px; text-align: center; color: #333; } +#material-selector { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; } +.material-swatch { width: 40px; height: 40px; border-radius: 50%; border: 2px solid #ccc; cursor: pointer; transition: transform 0.2s, border-color 0.2s; background-size: cover; } +.material-swatch:hover { transform: scale(1.1); } +.material-swatch.selected { border-color: #007bff; border-width: 3px; } +#price-container { + text-align: center; + padding-top: 15px; +} +#price-container .price-label { + font-size: 16px; + color: #555; + margin-bottom: 5px; +} +#price-container .price-value { + font-size: 28px; + font-weight: bold; + color: #d9534f; +} \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..3792cb3 --- /dev/null +++ b/public/index.html @@ -0,0 +1,68 @@ + + + + + + 3D Конструктор Шкафа + + + + + + +

+ + + + + + + + \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js new file mode 100644 index 0000000..6cdae8e --- /dev/null +++ b/public/js/main.js @@ -0,0 +1,284 @@ +// public/js/main.js + +import * as THREE from 'three'; +import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; +import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; + +// --- Базовая настройка сцены --- +const scene = new THREE.Scene(); +scene.background = new THREE.Color(0xd0d0d0); +const camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000); +camera.position.set(1500, 1400, 2500); +const renderer = new THREE.WebGLRenderer({ antialias: true }); +renderer.setSize(window.innerWidth, window.innerHeight); +renderer.shadowMap.enabled = true; +renderer.shadowMap.type = THREE.PCFSoftShadowMap; +document.body.appendChild(renderer.domElement); +const hemiLight = new THREE.HemisphereLight( 0xffffff, 0x8d8d8d, 1.5 ); +scene.add( hemiLight ); +const dirLight = new THREE.DirectionalLight( 0xffffff, 1.5 ); +dirLight.position.set( -1000, 2000, 1000 ); +dirLight.castShadow = true; +dirLight.shadow.camera.top = 2000; dirLight.shadow.camera.bottom = -2000; dirLight.shadow.camera.left = -2000; dirLight.shadow.camera.right = 2000; dirLight.shadow.camera.near = 0.1; dirLight.shadow.camera.far = 5000; +scene.add( dirLight ); +const controls = new OrbitControls(camera, renderer.domElement); +controls.enableDamping = true; +controls.target.set(0, 500, 0); +const ground = new THREE.Mesh(new THREE.PlaneGeometry(10000, 10000), new THREE.MeshLambertMaterial({ color: 0xbbbbbb })); +ground.rotation.x = -Math.PI / 2; +ground.position.y = 0; +ground.receiveShadow = true; +scene.add(ground); +const textureLoader = new THREE.TextureLoader(); + +// --- Данные материалов --- +const MATERIALS = [ + { name: 'Белый', type: 'color', value: 0xffffff }, + { name: 'Серый', type: 'color', value: 0x808080 }, + { name: 'Черный', type: 'color', value: 0x333333 }, + { name: 'Образец1', type: 'texture', value: 'assets/wood1.jpg' }, + { name: 'Образец2', type: 'texture', value: 'assets/wood2.jpg' }, +]; +let currentMaterial = new THREE.MeshStandardMaterial({ side: THREE.DoubleSide }); +let currentMaterialData = MATERIALS[0]; + +// --- ИСПРАВЛЕНИЕ: Функция объявлена ОДИН раз --- +function updateMaterial(materialData) { + currentMaterialData = materialData; + if (materialData.type === 'color') { + currentMaterial.map = null; + currentMaterial.color.set(materialData.value); + currentMaterial.needsUpdate = true; + } else if (materialData.type === 'texture') { + textureLoader.load(materialData.value, (texture) => { + currentMaterial.map = texture; + currentMaterial.color.set(0xffffff); + texture.wrapS = THREE.RepeatWrapping; + texture.wrapT = THREE.RepeatWrapping; + currentMaterial.needsUpdate = true; + }); + } +} + +// --- Логика выделения ячеек --- +const raycaster = new THREE.Raycaster(); +const pointer = new THREE.Vector2(); +let currentlyIntersected = null; +const highlighterMaterial = new THREE.MeshBasicMaterial({ color: 0xff8c00, transparent: true, opacity: 0.4, side: THREE.DoubleSide }); +const highlighterGeometry = new THREE.PlaneGeometry(1, 1); +const highlighterMesh = new THREE.Mesh(highlighterGeometry, highlighterMaterial); +highlighterMesh.visible = false; +scene.add(highlighterMesh); +function onPointerMove(event) { + const rect = renderer.domElement.getBoundingClientRect(); + pointer.x = ((event.clientX - rect.left) / rect.width) * 2 - 1; + pointer.y = -((event.clientY - rect.top) / rect.height) * 2 + 1; +} +window.addEventListener('pointermove', onPointerMove); + +// --- Логика загрузки модели человека --- +let humanModel = null; +function loadHumanModel() { + const loader = new GLTFLoader(); + const stencilMaterial = new THREE.MeshStandardMaterial({ + color: 0x4682B4, + metalness: 0.1, + roughness: 0.8, + }); + loader.load( + 'assets/model.glb', + (gltf) => { + humanModel = gltf.scene; + humanModel.traverse((child) => { + if (child.isMesh) { + child.material = stencilMaterial; + child.castShadow = true; + child.receiveShadow = false; + } + }); + humanModel.scale.set(590, 590, 590); + scene.add(humanModel); + updateConfiguration(); + }, + undefined, + (error) => { console.error('Ошибка при загрузке модели человека:', error); } + ); +} + +// --- Логика конструктора --- +const PANEL_THICKNESS = 16; +let wardrobeGroup = new THREE.Group(); +let hitboxesGroup = new THREE.Group(); +scene.add(wardrobeGroup); +scene.add(hitboxesGroup); + +function createWardrobe(width, height, depth, columns, rows) { + const modelGroup = new THREE.Group(); + const cellHitboxesGroup = new THREE.Group(); + modelGroup.position.y = height / 2; + cellHitboxesGroup.position.y = height / 2; + + const createPanel = (geometry) => { + const mesh = new THREE.Mesh(geometry, currentMaterial); + mesh.castShadow = true; + mesh.receiveShadow = true; + return mesh; + }; + + const innerWidth = width - 2 * PANEL_THICKNESS; + const innerHeight = height - 2 * PANEL_THICKNESS; + const shelfDepth = depth - PANEL_THICKNESS; + + modelGroup.add(createPanel(new THREE.BoxGeometry(width, PANEL_THICKNESS, depth)).translateY(-height / 2 + PANEL_THICKNESS / 2)); + modelGroup.add(createPanel(new THREE.BoxGeometry(width, PANEL_THICKNESS, depth)).translateY(height / 2 - PANEL_THICKNESS / 2)); + modelGroup.add(createPanel(new THREE.BoxGeometry(PANEL_THICKNESS, innerHeight, depth)).translateX(-width / 2 + PANEL_THICKNESS / 2)); + modelGroup.add(createPanel(new THREE.BoxGeometry(PANEL_THICKNESS, innerHeight, depth)).translateX(width / 2 - PANEL_THICKNESS / 2)); + modelGroup.add(createPanel(new THREE.BoxGeometry(innerWidth, innerHeight, PANEL_THICKNESS)).translateZ(-depth / 2 + PANEL_THICKNESS / 2)); + + const numDividers = columns - 1; + const sectionWidth = (innerWidth - (numDividers * PANEL_THICKNESS)) / columns; + if (numDividers > 0) { + for (let i = 0; i < numDividers; i++) { + const posX = -innerWidth / 2 + sectionWidth * (i + 1) + PANEL_THICKNESS * (i + 0.5); + modelGroup.add(createPanel(new THREE.BoxGeometry(PANEL_THICKNESS, innerHeight, shelfDepth)).translateX(posX).translateZ(PANEL_THICKNESS/2)); + } + } + + const numShelves = rows - 1; + const cellHeight = (innerHeight - (numShelves * PANEL_THICKNESS)) / rows; + if (numShelves > 0) { + for (let c = 0; c < columns; c++) { + for (let r = 0; r < numShelves; r++) { + const posX = -innerWidth / 2 + sectionWidth * (c + 0.5) + PANEL_THICKNESS * c; + const posY = height / 2 - PANEL_THICKNESS - cellHeight * (r + 1) - PANEL_THICKNESS * r; + const shelf = createPanel(new THREE.BoxGeometry(sectionWidth, PANEL_THICKNESS, shelfDepth)); + shelf.position.set(posX, posY, PANEL_THICKNESS / 2); + modelGroup.add(shelf); + } + } + } + + const hitboxMaterial = new THREE.MeshBasicMaterial({visible: false}); + for (let c = 0; c < columns; c++) { + for (let r = 0; r < rows; r++) { + const hitboxGeometry = new THREE.PlaneGeometry(sectionWidth, cellHeight); + const hitbox = new THREE.Mesh(hitboxGeometry, hitboxMaterial); + const cellCenterX = -innerWidth / 2 + sectionWidth * (c + 0.5) + PANEL_THICKNESS * c; + const cellCenterY = height / 2 - PANEL_THICKNESS / 2 - cellHeight * (r + 0.5) - PANEL_THICKNESS * r; + hitbox.position.set(cellCenterX, cellCenterY, depth / 2); + cellHitboxesGroup.add(hitbox); + } + } + return { model: modelGroup, hitboxes: cellHitboxesGroup }; +} + +// --- Инициализация UI и связь с 3D --- +(function init() { + const selector = document.getElementById('material-selector'); + const priceDisplay = document.getElementById('price-display'); + + MATERIALS.forEach((materialData) => { + const swatch = document.createElement('div'); + swatch.classList.add('material-swatch'); + if (materialData.type === 'color') { + swatch.style.backgroundColor = `#${materialData.value.toString(16).padStart(6, '0')}`; + } else if (materialData.type === 'texture') { + swatch.style.backgroundImage = `url(${materialData.value})`; + } + swatch.addEventListener('click', () => { + updateMaterial(materialData); + selector.querySelector('.selected')?.classList.remove('selected'); + swatch.classList.add('selected'); + updateConfiguration(); + }); + selector.appendChild(swatch); + }); + + const uiControls = { width: document.getElementById('width-slider'), height: document.getElementById('height-slider'), depth: document.getElementById('depth-slider'), columns: document.getElementById('columns-input'), rows: document.getElementById('rows-input'), }; + const uiValues = { width: document.getElementById('width-value'), height: document.getElementById('height-value'), depth: document.getElementById('depth-value'), }; + + window.updateConfiguration = async function() { + priceDisplay.textContent = 'Расчет...'; + const params = { + width: parseFloat(uiControls.width.value), + height: parseFloat(uiControls.height.value), + depth: parseFloat(uiControls.depth.value), + columns: parseInt(uiControls.columns.value), + rows: parseInt(uiControls.rows.value), + materialName: currentMaterialData.name, + }; + uiValues.width.textContent = params.width; + uiValues.height.textContent = params.height; + uiValues.depth.textContent = params.depth; + controls.target.set(0, params.height / 2, 0); + scene.remove(wardrobeGroup); + scene.remove(hitboxesGroup); + wardrobeGroup.traverse(child => { if (child.isMesh) child.geometry.dispose(); }); + hitboxesGroup.traverse(child => { if (child.isMesh) child.geometry.dispose(); }); + const result = createWardrobe(params.width, params.height, params.depth, params.columns, params.rows); + wardrobeGroup = result.model; + hitboxesGroup = result.hitboxes; + scene.add(wardrobeGroup); + scene.add(hitboxesGroup); + if (humanModel) { + const humanX = params.width / 2 + 550; + const humanY = 0; + const humanZ = params.depth / 2; + humanModel.position.set(humanX, humanY, humanZ); + } + try { + const response = await fetch('api/calculate-price', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params), + }); + const data = await response.json(); + if(response.ok) { priceDisplay.textContent = `${data.price.toLocaleString('ru-RU')} ₽`; } else { console.error(data.error); priceDisplay.textContent = 'Ошибка'; } + } catch (error) { console.error('Ошибка сети при расчете цены:', error); priceDisplay.textContent = 'Ошибка сети'; } + } + + Object.values(uiControls).forEach(control => control.addEventListener('input', window.updateConfiguration)); + loadHumanModel(); + selector.children[0].classList.add('selected'); + updateMaterial(MATERIALS[0]); +})(); + +// --- Рендер-цикл --- +function animate() { + requestAnimationFrame(animate); + controls.update(); + + raycaster.setFromCamera(pointer, camera); + const intersects = raycaster.intersectObjects(hitboxesGroup.children); + + if (intersects.length > 0) { + const intersectedObject = intersects[0].object; + if (currentlyIntersected !== intersectedObject) { + currentlyIntersected = intersectedObject; + highlighterMesh.position.copy(intersectedObject.position); + highlighterMesh.quaternion.copy(intersectedObject.quaternion); + highlighterMesh.position.add(hitboxesGroup.position); + highlighterMesh.scale.set( + intersectedObject.geometry.parameters.width, + intersectedObject.geometry.parameters.height, + 1 + ); + highlighterMesh.visible = true; + } + } else { + if (currentlyIntersected) { + highlighterMesh.visible = false; + currentlyIntersected = null; + } + } + + renderer.render(scene, camera); +} +animate(); + +// --- Адаптивность --- +window.addEventListener('resize', () => { + camera.aspect = window.innerWidth / window.innerHeight; + camera.updateProjectionMatrix(); + renderer.setSize(window.innerWidth, window.innerHeight); +}); \ No newline at end of file