diff --git a/.codebuddy/automations/automation/memory.md b/.codebuddy/automations/automation/memory.md deleted file mode 100644 index 05a9639..0000000 --- a/.codebuddy/automations/automation/memory.md +++ /dev/null @@ -1,34 +0,0 @@ -# 自动核对价格 - 执行记录 - -## 2026-04-21 执行结果 - -**任务**:核对每个SKU的物料清单准确性和成本/售价计算正确性 - -**核对范围**:所有产品线,约176个SKU文件 - -**主要发现**: -- P0系统性错误:旧目录(fjd/fjx/fyd/fys/win小主机/linux主机)中D3-4G内存标¥38(应为¥25)、mSATA-64G标¥45(应为¥40)、mSATA-32G标¥25(应为¥20)、D3-8G标¥120(应为¥75),影响约80+个SKU -- P1个别错误:Linux-3855U CPU价格¥75应为¥80;部分亚克力双j1900/j3160售价偏差¥6 -- P2缺失定义:3217U和5005U价格未在配件清单中定义 -- 新目录(基础版/高性能版)价格正确,旧目录价格错误 - -**输出**:SKU价格核对日志_2026-04-21.md(artifact) - -**状态**:仅输出检查日志,未修改任何SKU文件 - -## 2026-04-22 执行结果 - -**任务**:核对每个SKU的物料清单准确性和成本/售价计算正确性 - -**核对范围**:所有产品线,约176个SKU文件 - -**主要发现**: -- P0系统性错误与04-21完全一致,旧目录价格错误未修复:D3-4G标¥38(应¥25)、mSATA-64G标¥45(应¥40)、mSATA-32G标¥25(应¥20)、D3-8G标¥120(应¥75) -- 新目录(基础版/高性能版)全部正确(71个SKU) -- fyd(亚克力-单)4G配置已修正,其余旧目录均未修正 -- Linux-3855U CPU标¥75应为¥80 -- 3217U和5005U价格仍未在配件清单中定义 - -**输出**:SKU价格核对日志_2026-04-22.md(artifact) - -**状态**:仅输出检查日志,未修改任何SKU文件 diff --git a/.codebuddy/skills/image-tools/SKILL.md b/.codebuddy/skills/image-tools/SKILL.md deleted file mode 100644 index 2204e5b..0000000 --- a/.codebuddy/skills/image-tools/SKILL.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -name: image-tools -description: 图片处理工具集,用于检查图片信息、HTML转PNG、裁剪水印等操作。当用户需要处理产品图片、转换HTML为图片、或去除图片水印时使用此技能。 ---- - -# Image Tools - -## Overview - -提供产品图片处理相关功能,包括检查图片元信息、HTML页面截图、裁剪水印等操作。适用于产品文档和图片批量处理场景。 - -## Quick Start - -使用前需安装依赖: - -```bash -cd tools/image-tools/scripts -npm install -``` - -## Tasks - -### 检查图片信息 - -查看图片的宽度、高度、格式等元信息: - -```bash -cd tools/image-tools/scripts -node check-image-info.js -``` - -**用途**:批量检查产品图片尺寸,确保符合规格要求。 - -### HTML 转 PNG - -将HTML文件转换为PNG图片截图: - -```bash -cd tools/image-tools/scripts -node convert-html-to-png.js -``` - -**用途**:将产品配置清单HTML转换为PNG图片,用于产品展示。 - -### 裁剪水印 - -裁剪图片底部水印区域(默认裁剪底部300px): - -```bash -cd tools/image-tools/scripts -node remove-watermark.js -``` - -**用途**:批量处理产品图片,去除底部水印。 - -## Configuration - -脚本默认处理路径为 `产品/飞牛 NAS/fyd-亚克力机箱 - 单/详情` 目录。如需修改: - -- **check-image-info.js**: 修改 `imageDir` 变量 -- **convert-html-to-png.js**: 修改 `detailDir` 变量及文件过滤条件 -- **remove-watermark.js**: 修改 `imageDir` 和 `CROP_BOTTOM_HEIGHT` 常量 - -## Resources - -### scripts/ - -- `check-image-info.js` - 图片信息检查脚本 -- `convert-html-to-png.js` - HTML转PNG截图脚本 -- `remove-watermark.js` - 水印裁剪脚本 -- `package.json` - Node.js 依赖配置 diff --git a/.codebuddy/skills/image-tools/scripts/check-image-info.js b/.codebuddy/skills/image-tools/scripts/check-image-info.js deleted file mode 100644 index 24f70e9..0000000 --- a/.codebuddy/skills/image-tools/scripts/check-image-info.js +++ /dev/null @@ -1,27 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -async function checkImageInfo() { - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const imageFiles = fs.readdirSync(imageDir).filter(file => file.endsWith('.jpg')); - - console.log('📸 图片信息检查\n'); - - for (const imageFile of imageFiles) { - const imagePath = path.join(imageDir, imageFile); - const metadata = await sharp(imagePath).metadata(); - - console.log(`${imageFile}:`); - console.log(` 宽度: ${metadata.width}px`); - console.log(` 高度: ${metadata.height}px`); - console.log(` 格式: ${metadata.format}`); - console.log(''); - } -} - -checkImageInfo().catch(error => { - console.error('💥 检查过程出错:', error); - process.exit(1); -}); diff --git a/.codebuddy/skills/image-tools/scripts/convert-html-to-png.js b/.codebuddy/skills/image-tools/scripts/convert-html-to-png.js deleted file mode 100644 index d9dff56..0000000 --- a/.codebuddy/skills/image-tools/scripts/convert-html-to-png.js +++ /dev/null @@ -1,59 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertHtmlToPng() { - console.log('🚀 启动 HTML 转 PNG 转换工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - await page.setViewport({ width: 750, height: 1000 }); - - const detailDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\详情'; - - const htmlFiles = fs.readdirSync(detailDir) - .filter(file => file.endsWith('.html') && file.includes('亚克力机箱-单')) - .filter(file => !file.includes('配置清单.html') || file.includes('配置清单-')); - - console.log(`📁 找到 ${htmlFiles.length} 个 HTML 文件需要转换\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(detailDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(detailDir, pngFile); - - console.log(`📄 正在转换: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: true, - type: 'png' - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 转换失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有转换任务已完成!'); -} - -convertHtmlToPng().catch(error => { - console.error('💥 转换过程出错:', error); - process.exit(1); -}); diff --git a/.codebuddy/skills/image-tools/scripts/convert-main-image-to-png.js b/.codebuddy/skills/image-tools/scripts/convert-main-image-to-png.js deleted file mode 100644 index 071e350..0000000 --- a/.codebuddy/skills/image-tools/scripts/convert-main-image-to-png.js +++ /dev/null @@ -1,60 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertHtmlToPng() { - console.log('🚀 启动主图 HTML 转 PNG 转换工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - // 主图尺寸 800x800 - await page.setViewport({ width: 800, height: 800 }); - - const mainImageDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\主图'; - - const htmlFiles = fs.readdirSync(mainImageDir) - .filter(file => file.endsWith('.html') && file.includes('主图')); - - console.log(`📁 找到 ${htmlFiles.length} 个主图 HTML 文件需要转换\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(mainImageDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(mainImageDir, pngFile); - - console.log(`📄 正在转换: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: false, - type: 'png', - clip: { x: 0, y: 0, width: 800, height: 800 } - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 转换失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有主图转换任务已完成!'); -} - -convertHtmlToPng().catch(error => { - console.error('💥 转换过程出错:', error); - process.exit(1); -}); diff --git a/.codebuddy/skills/image-tools/scripts/package-lock.json b/.codebuddy/skills/image-tools/scripts/package-lock.json deleted file mode 100644 index aeb08d3..0000000 --- a/.codebuddy/skills/image-tools/scripts/package-lock.json +++ /dev/null @@ -1,1666 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "membank", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@img/colour": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", - "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", - "license": "MIT", - "optional": true, - "dependencies": { - "undici-types": "~7.18.0" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "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/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/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.6.0.tgz", - "integrity": "sha512-2YkS7NuiJceSEbyEOdSNLE9tsGd+f4+f7C+Nik/MCk27SYdwIMPT/yRKvg++FZhQXgk0KWJKJyXX9RhVV0RGqA==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", - "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", - "license": "Apache-2.0", - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.12.0.tgz", - "integrity": "sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==", - "license": "Apache-2.0", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", - "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", - "license": "Apache-2.0", - "dependencies": { - "bare-path": "^3.0.0" - } - }, - "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chromium-bidi": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", - "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "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/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1581282", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz", - "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==", - "license": "BSD-3-Clause" - }, - "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/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "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/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "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-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "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==", - "license": "MIT" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.40.0.tgz", - "integrity": "sha512-IxQbDq93XHVVLWHrAkFP7F7iHvb9o0mgfsSIMlhHb+JM+JjM1V4v4MNSQfcRWJopx9dsNOr9adYv0U5fm9BJBQ==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1581282", - "puppeteer-core": "24.40.0", - "typed-query-selector": "^2.12.1" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.40.0.tgz", - "integrity": "sha512-MWL3XbUCfVgGR0gRsidzT6oKJT2QydPLhMITU6HoVWiiv4gkb6gJi3pcdAa8q4HwjBTbqISOWVP4aJiiyUJvag==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1581282", - "typed-query-selector": "^2.12.1", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.19.0" - }, - "engines": { - "node": ">=18" - } - }, - "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/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamx": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", - "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "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/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/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", - "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "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==", - "license": "0BSD" - }, - "node_modules/typed-query-selector": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", - "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "license": "MIT", - "optional": true - }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", - "license": "Apache-2.0" - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", - "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "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/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/.codebuddy/skills/image-tools/scripts/package.json b/.codebuddy/skills/image-tools/scripts/package.json deleted file mode 100644 index 19e797c..0000000 --- a/.codebuddy/skills/image-tools/scripts/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git@gitee.com:xiongmaojames/membank.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } -} diff --git a/.codebuddy/skills/image-tools/scripts/remove-background.py b/.codebuddy/skills/image-tools/scripts/remove-background.py deleted file mode 100644 index 66d0d33..0000000 --- a/.codebuddy/skills/image-tools/scripts/remove-background.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -""" -产品图片抠图工具 -使用rembg库自动去除图片背景 -""" -import os -import sys - -try: - from rembg import remove - from PIL import Image -except ImportError: - print("Missing dependencies, installing...") - os.system("pip install rembg pillow") - from rembg import remove - from PIL import Image - -def remove_background(input_path, output_path): - """ - 去除图片背景 - """ - try: - print(f"Processing: {input_path}") - - # 打开原始图片 - with open(input_path, 'rb') as input_file: - input_data = input_file.read() - - # 去除背景 - output_data = remove(input_data) - - # 保存结果 - with open(output_path, 'wb') as output_file: - output_file.write(output_data) - - print(f"Saved: {output_path}") - return True - except Exception as e: - print(f"Error: {e}") - return False - -if __name__ == "__main__": - # 产品图片路径 - image_dir = r"g:\stonelan-workspace\membank\产品\飞牛 NAS\fyd-亚克力机箱 - 单\image" - - # 要处理的图片 - input_image = os.path.join(image_dir, "正面.jpg") - output_image = os.path.join(image_dir, "正面_抠图.png") - - # 检查文件是否存在 - if not os.path.exists(input_image): - print(f"File not found: {input_image}") - sys.exit(1) - - # 执行抠图 - success = remove_background(input_image, output_image) - - if success: - print(f"\nBackground removal completed!") - print(f"Original: {input_image}") - print(f"Result: {output_image}") - else: - print("\nBackground removal failed!") - sys.exit(1) \ No newline at end of file diff --git a/.codebuddy/skills/image-tools/scripts/remove-watermark.js b/.codebuddy/skills/image-tools/scripts/remove-watermark.js deleted file mode 100644 index 145d160..0000000 --- a/.codebuddy/skills/image-tools/scripts/remove-watermark.js +++ /dev/null @@ -1,51 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -const CROP_BOTTOM_HEIGHT = 300; - -async function removeWatermark() { - console.log('🖼️ 开始裁剪图片水印...\n'); - - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const backupDir = path.join(imageDir, 'backup'); - - const imageFiles = fs.readdirSync(backupDir).filter(file => file.endsWith('.jpg')); - - console.log(`📸 找到 ${imageFiles.length} 张图片需要处理\n`); - console.log(`✂️ 裁剪设置: 从底部裁剪 ${CROP_BOTTOM_HEIGHT}px\n`); - - for (const imageFile of imageFiles) { - try { - const backupPath = path.join(backupDir, imageFile); - const imagePath = path.join(imageDir, imageFile); - - console.log(`📄 正在处理: ${imageFile}`); - - const metadata = await sharp(backupPath).metadata(); - - const newHeight = metadata.height - CROP_BOTTOM_HEIGHT; - - await sharp(backupPath) - .extract({ - left: 0, - top: 0, - width: metadata.width, - height: newHeight - }) - .toFile(imagePath); - - console.log(` ✅ 已裁剪: ${metadata.width}x${metadata.height} -> ${metadata.width}x${newHeight}\n`); - } catch (error) { - console.error(` ❌ 处理失败 ${imageFile}: ${error.message}\n`); - } - } - - console.log('✨ 所有图片处理完成!'); -} - -removeWatermark().catch(error => { - console.error('💥 处理过程出错:', error); - process.exit(1); -}); diff --git a/.codebuddy/skills/image-tools/scripts/render-main-image.js b/.codebuddy/skills/image-tools/scripts/render-main-image.js deleted file mode 100644 index b2e6ddf..0000000 --- a/.codebuddy/skills/image-tools/scripts/render-main-image.js +++ /dev/null @@ -1,58 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertMainImageToPng() { - console.log('🎨 启动主图渲染工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - await page.setViewport({ width: 1000, height: 1000 }); - - const mainImageDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\主图'; - - const htmlFiles = fs.readdirSync(mainImageDir) - .filter(file => file.endsWith('.html')); - - console.log(`📁 找到 ${htmlFiles.length} 个主图HTML文件需要渲染\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(mainImageDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(mainImageDir, pngFile); - - console.log(`📄 正在渲染: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: true, - type: 'png' - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 渲染失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有主图渲染完成!'); -} - -convertMainImageToPng().catch(error => { - console.error('💥 渲染过程出错:', error); - process.exit(1); -}); \ No newline at end of file diff --git a/.codebuddy/skills/product-detail-designer/SKILL.md b/.codebuddy/skills/product-detail-designer/SKILL.md deleted file mode 100644 index ed438fe..0000000 --- a/.codebuddy/skills/product-detail-designer/SKILL.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -name: product-detail-designer -description: 设计电商产品的详情页。当用户需要为产品生成详情页HTML、批量渲染SKU页面、或处理产品图片时使用此技能。 ---- - -# Product Detail Designer - -## 概述 - -根据产品的 SKU 和配置规范,生成对应的产品详情页 HTML,并转换为 PNG 图片。自动化处理从配置数据到最终展示页面的完整流程。 - -## 使用场景 - -- 有产品种类或 SKU 变化,需要重新生成详情页 -- 有产品图片变化,需要更新详情页 -- 需要批量为多个 SKU 生成对应的详情页 - -## 工作流程 - -### 步骤 1: 读取 SKU 配置 - -从 `产品` 目录下找到对应的产品目录 - - -### 步骤 2: 生成 HTML 文件 - -#### 详情页组成部分 -- 购买须知 (不需要二级标题) - - 亚克力机箱需要自己组装,店铺会提供安装视频 - - 受成本限制,产品无法做到十全十美,完美主义者慎拍 -- 配置清单 - 1. 以表格的形式展示 - 2. cpu 内存 系统盘,网口, - 3. 内存体现容量和ddr3,内存插槽数量 - 4. 支持硬盘数量,尺寸, 容量 -- 使用场景 - 1. 手机扩容 - 照片视频备份,自动同步,远程同步 - 2. 小型办公/团队协作 - 远程文件访问,多人协作,权限分级,文件共享,文件归档,在线编辑 - 3. 监控视频存储 - 小米摄像头存储,onvif协议支持 - 4. 家庭影院打造 - 流畅播放4k视频,硬解4k - 5. 微信聊天记录备份 - 支持微信聊天记录备份 - 6. 远程访问 - 远程访问照片,视频,文件等内容 -- 产品特点 - 1. 体积小,容量大,功能强 - 2. 低耗静音 - 3. 支持远程访问 - 4. 支持wifi联网 - 5. 来电自启 - 6. 远程开关机 -- 产品实拍图 -- 飞牛系统截图 -- 配件清单 -- 包装展示 -- 常见问题 - - -- 严格按照详情页组成生成详情页,多余的删除掉 -- 需要用的产品图片,都放在对应产品目录的image目录下 -- html 按照宽1500的分辨率生成 -- 一个产品有多个sku,但一个产品只需要一个详情页,不需要为每个sku生成详情页 -- 详情页放到每个产品对应的`详情`目录下 -- 配色采用绿色清晰的风格 - - - - -### 步骤 3: HTML 转 PNG 图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -```bash -cd ../image-tools/scripts -node convert-html-to-png.js -``` - -### 步骤 4: 裁剪图片水印 - -使用 `image-tools` 技能的 `remove-watermark.js` 脚本: - -```bash -node remove-watermark.js -``` diff --git a/.codebuddy/skills/product-detail-designer/scripts/render.js b/.codebuddy/skills/product-detail-designer/scripts/render.js deleted file mode 100644 index d269ed0..0000000 --- a/.codebuddy/skills/product-detail-designer/scripts/render.js +++ /dev/null @@ -1,133 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -// SKU 字段映射表 -const FIELD_MAP = { - '{{PRODUCT_NAME}}': 'productName', - '{{PRODUCT_SUBTITLE}}': 'productSubtitle', - '{{SKU_CODE}}': 'skuCode', - '{{CPU}}': 'cpu', - '{{MEMORY}}': 'memory', - '{{STORAGE}}': 'storage', - '{{CASE}}': 'case', - '{{POWER}}': 'power', - '{{CABLE}}': 'cable', - '{{BATTERY}}': 'battery', - '{{ETHERNET_CABLE}}': 'ethernetCable', - '{{SHIPPING_FEE}}': 'shippingFee', - '{{PACKAGING_FEE}}': 'packagingFee', - '{{ASSEMBLY_FEE}}': 'assemblyFee', - '{{TOTAL_COST}}': 'totalCost', - '{{RETAIL_PRICE}}': 'retailPrice', - '{{NOTE}}': 'note' -}; - -// 从 SKU markdown 文件解析字段 -function parseSkuFile(skuPath) { - const content = fs.readFileSync(skuPath, 'utf-8'); - const data = {}; - - content.split('\n').forEach(line => { - // 匹配格式: | **字段名** | 值 | 价格 | - const match = line.match(/\|\s*\*\*(.+?)\*\*\s*\|\s*(.+?)\s*\|/); - if (match) { - const [, fieldName, value] = match; - data[fieldName.trim()] = value.trim(); - } - }); - - return data; -} - -// 将 SKU 数据映射为模板变量 -function mapSkuToVariables(skuData) { - const cpu = skuData['CPU'] || ''; - const memory = skuData['内存'] || ''; - const storage = skuData['系统盘'] || ''; - const caseType = skuData['机箱'] || ''; - - return { - '{{PRODUCT_NAME}}': `飞牛NAS ${caseType}`, - '{{PRODUCT_SUBTITLE}}': '亚克力机箱 透明系列', - '{{SKU_CODE}}': skuData['产品型号'] || '', - '{{CPU}}': cpu, - '{{MEMORY}}': memory, - '{{STORAGE}}': storage, - '{{CASE}}': caseType, - '{{POWER}}': skuData['电源'] || '电源-60W', - '{{CABLE}}': skuData['硬盘线'] || '硬盘线-单', - '{{BATTERY}}': skuData['电池'] || '电池', - '{{ETHERNET_CABLE}}': skuData['网线'] || '网线', - '{{SHIPPING_FEE}}': skuData['运费']?.replace('¥', '') || '10', - '{{PACKAGING_FEE}}': skuData['包装费']?.replace('¥', '') || '5', - '{{ASSEMBLY_FEE}}': skuData['装机费']?.replace('¥', '') || '10', - '{{TOTAL_COST}}': skuData['总成本']?.replace('¥', '') || '0', - '{{RETAIL_PRICE}}': skuData['建议零售价']?.replace('¥', '') || '0', - '{{NOTE}}': skuData['备注'] || '' - }; -} - -// 渲染 HTML 模板 -function renderTemplate(templatePath, variables) { - let html = fs.readFileSync(templatePath, 'utf-8'); - - Object.entries(variables).forEach(([placeholder, value]) => { - html = html.split(placeholder).join(value); - }); - - return html; -} - -// 主函数:生成亚克力单详情页 -function generateDetailPages(skuFilePath, outputDir) { - const skuData = parseSkuFile(skuFilePath); - const variables = mapSkuToVariables(skuData); - - const skuCode = variables['{{SKU_CODE}}']; - const productType = '亚克力单'; - const templateDir = path.join(__dirname, '..', 'assets', 'templates', productType); - - // 创建输出目录 - const productOutputDir = path.join(outputDir, skuCode); - if (!fs.existsSync(productOutputDir)) { - fs.mkdirSync(productOutputDir, { recursive: true }); - } - - // 模板列表 - const templates = [ - '配置清单-1.html', - '配置清单-2.html', - '商品卖点.html', - '功能描述.html', - '使用场景.html', - '配件清单.html', - '包装展示.html' - ]; - - templates.forEach(template => { - const templatePath = path.join(templateDir, template); - if (!fs.existsSync(templatePath)) { - console.log(`跳过(模板不存在): ${template}`); - return; - } - - const html = renderTemplate(templatePath, variables); - const outputPath = path.join(productOutputDir, template); - fs.writeFileSync(outputPath, html, 'utf-8'); - console.log(`已生成: ${outputPath}`); - }); - - console.log(`\n完成!共生成 ${templates.length} 个 HTML 文件到: ${productOutputDir}`); -} - -// 使用示例 -const skuFile = process.argv[2]; -const outputDir = process.argv[3] || path.join(__dirname, '..', '..', '..', '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情'); - -if (!skuFile) { - console.log('用法: node render.js [输出目录]'); - console.log('示例: node render.js ../产品/飞牛NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md'); - process.exit(1); -} - -generateDetailPages(skuFile, outputDir); diff --git a/.codebuddy/skills/product-main-image/SKILL.md b/.codebuddy/skills/product-main-image/SKILL.md deleted file mode 100644 index 6f88546..0000000 --- a/.codebuddy/skills/product-main-image/SKILL.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -name: product-main-image -description: 设计电商产品的主图。当用户需要为产品生成主图图片或海报时使用此技能。 ---- - -# 商品主图设计 - -## 概述 - --为每个产品生成主图图片 --主图图片放到每个产品对应的`主图`目录下 -## 使用场景 - -- 有产品主图需要更新 - -## 工作流程 - -### 步骤 1: 准备素材 -- 根据产品详情页,归纳出主图要展示的信息 - -- 可以使用产品目录下`image`目录中的图片作为素材 - - - -### 步骤 2: 设计主图html -- 主图尺寸:1000*1000 -- 一个主图一个html - - -### 步骤 3: 导出图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -## 主图规范 - - - -## 配色参考 - - - -## 字体规范 - - - -## 示例模板 - - - diff --git a/.codebuddy/skills/sku-designer/SKILL.md b/.codebuddy/skills/sku-designer/SKILL.md deleted file mode 100644 index 544d4f6..0000000 --- a/.codebuddy/skills/sku-designer/SKILL.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -name: sku-designer -description: 设计电商产品的 SKU 配置。当用户需要为产品生成 SKU 配置时使用此技能。 ---- - -# SKU 设计 - -## Overview - -- 为每个产品生成 SKU 配置 -- 将 SKU 配置放到每个产品对应的 `sku` 目录下(小写) - -## 产品目录组织原则 - -每个产品目录必须遵循以下标准结构: - -``` -产品名称/ -├── 商品标题.md # 电商商品标题关键词,一行文本 -├── sku/ # SKU配置目录(小写),每个SKU一个独立.md文件 -│ ├── [机箱]-[单/双]-[CPU]-[内存]-[硬盘].md -│ └── ... -├── image/ # 产品实拍图片(原图) -├── 主图/ # 电商主图(html + png) -│ ├── 主图1-xxx.html -│ ├── 主图1-xxx.png -│ └── ... -└── 详情/ # 商品详情页(html + png) - ├── xxx_详情页.html - └── xxx_详情页.png -``` - -### SKU 文件命名规则 -- 文件名格式:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` -- "单/双"指该机箱版本对应的SATA口数(单=单SATA口,双=双SATA口) -- 示例:`2.5金-单-N2840-4G-32G.md`、`3.5大-双-1037U-4G-32G.md`、`3.5小-单-N2930-4G-32G.md`、`3.5小-双-1037U-4G-32G.md` - -### 机箱与CPU匹配原则 -- 机箱标注"单"(单SATA口)只能配单SATA口CPU:N2840, N2930, AMD-A4, J1800, J1900, J3160, 3855U -- 机箱标注"双"(双SATA口)只能配双SATA口CPU:1037U, 3217U, 5005U -- 机箱标注"单/双"(如3.5寸小)支持两种SATA口,需分别生成单/双版本SKU - -### SKU 文件内容格式 -每个SKU文件包含一个产品信息表格,字段如下: - -```markdown -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS [产品线] [机箱] [CPU] | - | -| **产品型号** | [机箱]-[盘位]-[CPU]-[内存]-[硬盘] | - | -| **用途分类** | NAS | - | -| **CPU** | [CPU型号] | ¥[价格] | -| **内存** | D3-[容量] | ¥[价格] | -| **系统盘** | mSATA-[容量] | ¥[价格] | -| **机箱** | [机箱名称] | ¥[价格] | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单/双 | ¥4/5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | (如需要) -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥[总计] | -| **建议零售价** | - | ¥[售价] | -| **备注** | [描述] | - | -``` - -> 注意:双SATA转换器仅在单SATA口主板需要扩展盘位时添加 - -## SKU 编码规则 - -- 按照 [系统]-[机箱]-[盘位]-[wifi/有]-[cpu]-[内存]-[硬盘] 规则生成sku名称 -- 每个字段之间用短横线连接,字段用简称,如:win-3.5-4-w-i3-8g-128g - - -## 设计流程 - -### 步骤1. 更新对应产品的sku,根据设计原则添加或者删除sku -- 根据对应机箱设计原则,选择cpu,内存,硬盘 -- 按照SKU编码规则生成SKU名称 -- 按照产品目录组织原则,确保目录结构完整(商品标题.md、sku/、image/、主图/、详情/) -- 每个SKU生成一个独立的.md文件,放到`sku/`目录下 -- SKU文件命名:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` -- SKU文件内容按照标准产品信息表格格式填写 - -### 步骤2 计算与核对产品价格 -- 根据配件清单,计算产品价格 -- 计算价格必须使用计算工具计算 - -### 步骤3 更新产品信息 - -- 更新产品信息到产品信息汇总表 - - -## 飞牛 NAS产设计原则 - -### 基础版-金 -- 机箱与CPU对应: - - 2.5金-单(单SATA口):amd-a4, n2840, n2930, j1800 - - 3.5金属大-双(双SATA口):1037u - - 3.5金属小-单(单SATA口):amd-a4, n2840, n2930, j1800 - - 3.5金属小-双(双SATA口):1037u -- 内存-硬盘: 4G-32G -- 建议零售价: 成本+30 - -### 基础版-亚 -- 机箱与CPU对应: - - 亚克力-双(双SATA口):1037u - - 亚克力-单(单SATA口):amd-a4, n2840, n2930, j1800 -- 内存-硬盘: 4G-32G -- 建议零售价: 成本+30 - -### 高性能版-金大-i3 - - 使用金属大机箱 - - cpu 可使用所有i3cpu - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:2代+50,3代+60,4代+70,5代+80 - -### 高性能版-金大-i5 - - 使用金属大机箱 - - cpu 可使用所有i5cpu - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G -- 建议零售价: 成本+80 - - - -### 高性能版-金大-j1900 - - 使用金属大机箱 - - cpu j1900 - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 支持双盘位 - - 建议零售价: 成本+50 -### 高性能版-金大-j3160 - - 使用金属大机箱 - - cpu j3160 - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 支持双盘位 - - 建议零售价: 成本+70 -### 高性能版-金-i5 -### 高性能版-亚-双-i3 - - 使用亚克力-双机箱 - - cpu 可使用所有i3cpu(双SATA口) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:2代+50,3代+60,4代+70,5代+80 -### 高性能版-亚-双-i5 - - 使用亚克力-双机箱 - - cpu 可使用所有i5cpu(双SATA口) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+80 -### 高性能版-亚-双-j1900 - - 使用亚克力-双机箱 - - cpu j1900(单SATA口,需双SATA转换器) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+50 -### 高性能版-亚-双-j3160 - - 使用亚克力-双机箱 - - cpu j3160(单SATA口,需双SATA转换器) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+70 - -### 亚克力机箱-单 配置原则 -- 可安装单SATA口主板 -- 可用CPU:N2840,N2930,AMD-A4,J1900,J3160 -- 可用内存:2G-16G,2G-32G,4G-64G,4G-128G -#### -推荐价格: -- 配2G内存的成本加20作为推荐售价 -- 配4G内存的成本加30作为推荐售价 - -### 亚克力机箱-双 配置原则 -- 可安装双SATA口主板 -- 可用CPU:1037U,i3-3217U,i3-5005U -- 可用内存:2G-16G,2G-32G,4G-64G,4G-128G,8G-128G -## win 小主机产设计原则 -- win小主机全部使用2.5存机箱 -### 龙虾盒子 -- cpu 可使用:i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 标配无线网卡 -- 可以选装hd500G硬盘 -### win10 小主机 -- cpu 可使用:1037u,i3-3217u,i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 可选无线网卡 -- 可以选装hd500G硬盘 -### 挂机宝 -- 分为一拖一,和一拖三两种 -#### 一拖一 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 可选硬盘:hd500G -- 使用2.5 金属机箱 -- 可选无线网卡 -#### 一拖三 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 使用一拖三亚克力机箱 -- 可选无线网卡 diff --git a/.codebuddy/skills/sku-designer/scripts/batch-update-sku.js b/.codebuddy/skills/sku-designer/scripts/batch-update-sku.js deleted file mode 100644 index 7c72df3..0000000 --- a/.codebuddy/skills/sku-designer/scripts/batch-update-sku.js +++ /dev/null @@ -1,56 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const skuDir = path.join(__dirname, '../../产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku'); - -const FIXED_COST = 42 + 12 + 4 + 1 + 1 + 10 + 5 + 10; - -const CPU_PRICES = { 'N2840': 45, 'N2930': 50, 'AMD-A4': 45, 'J1900': 80, 'J3160': 90 }; -const MEMORY_COST = { - '2G-16G': { ram: 13, disk: 15 }, - '2G-32G': { ram: 13, disk: 20 }, - '4G-64G': { ram: 25, disk: 40 }, - '4G-128G': { ram: 25, disk: 68 } -}; - -const files = fs.readdirSync(skuDir).filter(f => f.endsWith('.md')); - -files.forEach(file => { - const filePath = path.join(skuDir, file); - let content = fs.readFileSync(filePath, 'utf-8'); - - // 解析: 亚克力-单-{CPU}-{MEM}.md - // CPU可能是AMD-A4这样的组合 - const match = file.match(/亚克力-单-([A-Z0-9-]+)-(\d+G)-(\d+G)\.md/); - if (!match) { - console.log(`Skipped: ${file} (no match)`); - return; - } - - const cpu = match[1]; - const mem = match[2] + '-' + match[3]; - - console.log(`Processing: ${file} - CPU: ${cpu}, Mem: ${mem}`); - - const cpuCost = CPU_PRICES[cpu]; - const ramCost = MEMORY_COST[mem].ram; - const diskCost = MEMORY_COST[mem].disk; - const totalCost = FIXED_COST + cpuCost + ramCost + diskCost; - const price = Math.round(totalCost * 1.3); - - const skuName = `亚克力-单-${cpu}-${mem}`; - content = content.replace(/\| \*\*产品型号\*\* \| [^|]+ \|/, `| **产品型号** | ${skuName} |`); - content = content.replace(/\| \*\*CPU\*\* \| [^|]+ \| ¥\d+ \|/, `| **CPU** | ${cpu} | ¥${cpuCost} |`); - - const ramName = mem.includes('4G') ? 'D3-4G' : 'D3-2G'; - const diskName = mem.includes('128G') ? 'mSATA-128G' : (mem.includes('32G') ? 'mSATA-32G' : 'mSATA-16G'); - content = content.replace(/\| \*\*内存\*\* \| D3-\dG \| ¥\d+ \|/, `| **内存** | ${ramName} | ¥${ramCost} |`); - content = content.replace(/\| \*\*系统盘\*\* \| mSATA-\d+G \| ¥\d+ \|/, `| **系统盘** | ${diskName} | ¥${diskCost} |`); - content = content.replace(/\| \*\*总成本\*\* \| - \| ¥\d+ \|/, `| **总成本** | - | ¥${totalCost} |`); - content = content.replace(/\| \*\*建议零售价\*\* \| - \| ¥\d+ \|/, `| **建议零售价** | - | ¥${price} |`); - - fs.writeFileSync(filePath, content, 'utf-8'); - console.log(` -> 成本: ¥${totalCost}, 售价: ¥${price}`); -}); - -console.log(`\n完成! 共处理 ${files.length} 个文件`); diff --git a/.codebuddy/skills/sku-designer/scripts/sku-results.json b/.codebuddy/skills/sku-designer/scripts/sku-results.json deleted file mode 100644 index 6038844..0000000 --- a/.codebuddy/skills/sku-designer/scripts/sku-results.json +++ /dev/null @@ -1,142 +0,0 @@ -[ - { - "index": 1, - "sku": "亚克力 - 单-N2840-2G-16G", - "cost": 158, - "price": 205, - "profit": 47 - }, - { - "index": 2, - "sku": "亚克力 - 单-N2840-2G-32G", - "cost": 163, - "price": 212, - "profit": 49 - }, - { - "index": 3, - "sku": "亚克力 - 单-N2840-4G-64G", - "cost": 195, - "price": 254, - "profit": 59 - }, - { - "index": 4, - "sku": "亚克力 - 单-N2840-4G-128G", - "cost": 223, - "price": 290, - "profit": 67 - }, - { - "index": 5, - "sku": "亚克力 - 单-N2930-2G-16G", - "cost": 163, - "price": 212, - "profit": 49 - }, - { - "index": 6, - "sku": "亚克力 - 单-N2930-2G-32G", - "cost": 168, - "price": 218, - "profit": 50 - }, - { - "index": 7, - "sku": "亚克力 - 单-N2930-4G-64G", - "cost": 200, - "price": 260, - "profit": 60 - }, - { - "index": 8, - "sku": "亚克力 - 单-N2930-4G-128G", - "cost": 228, - "price": 296, - "profit": 68 - }, - { - "index": 9, - "sku": "亚克力 - 单-AMD-A4-2G-16G", - "cost": 158, - "price": 205, - "profit": 47 - }, - { - "index": 10, - "sku": "亚克力 - 单-AMD-A4-2G-32G", - "cost": 163, - "price": 212, - "profit": 49 - }, - { - "index": 11, - "sku": "亚克力 - 单-AMD-A4-4G-64G", - "cost": 195, - "price": 254, - "profit": 59 - }, - { - "index": 12, - "sku": "亚克力 - 单-AMD-A4-4G-128G", - "cost": 223, - "price": 290, - "profit": 67 - }, - { - "index": 13, - "sku": "亚克力 - 单-J1900-2G-16G", - "cost": 193, - "price": 251, - "profit": 58 - }, - { - "index": 14, - "sku": "亚克力 - 单-J1900-2G-32G", - "cost": 198, - "price": 257, - "profit": 59 - }, - { - "index": 15, - "sku": "亚克力 - 单-J1900-4G-64G", - "cost": 230, - "price": 299, - "profit": 69 - }, - { - "index": 16, - "sku": "亚克力 - 单-J1900-4G-128G", - "cost": 258, - "price": 335, - "profit": 77 - }, - { - "index": 17, - "sku": "亚克力 - 单-J3160-2G-16G", - "cost": 203, - "price": 264, - "profit": 61 - }, - { - "index": 18, - "sku": "亚克力 - 单-J3160-2G-32G", - "cost": 208, - "price": 270, - "profit": 62 - }, - { - "index": 19, - "sku": "亚克力 - 单-J3160-4G-64G", - "cost": 240, - "price": 312, - "profit": 72 - }, - { - "index": 20, - "sku": "亚克力 - 单-J3160-4G-128G", - "cost": 268, - "price": 348, - "profit": 80 - } -] \ No newline at end of file diff --git a/.codebuddy/skills/sku-designer/scripts/update-sku-prices.js b/.codebuddy/skills/sku-designer/scripts/update-sku-prices.js deleted file mode 100644 index 39ffa1f..0000000 --- a/.codebuddy/skills/sku-designer/scripts/update-sku-prices.js +++ /dev/null @@ -1,58 +0,0 @@ -// SKU价格计算工具 -// 亚克力-单 固定配件成本 -const FIXED_COST = 42 + 12 + 4 + 1 + 1 + 10 + 5 + 10; // 机箱+电源+硬盘线+电池+网线+运费+包装+装机 = 85 - -// 配件价格(来自配件清单) -const CPU_PRICES = { - 'N2840': 45, - 'N2930': 50, - 'AMD-A4': 45, - 'J1900': 80, - 'J3160': 90 -}; - -const MEMORY_PRICES = { - '2G-16G': { ram: 13, disk: 15 }, // D3-2G + mSATA-16G - '2G-32G': { ram: 13, disk: 20 }, // D3-2G + mSATA-32G - '4G-64G': { ram: 25, disk: 40 }, // D3-4G + mSATA-64G - '4G-128G': { ram: 25, disk: 68 } // D3-4G + mSATA-128G -}; - -const CPUS = ['N2840', 'N2930', 'AMD-A4', 'J1900', 'J3160']; -const MEMORIES = ['2G-16G', '2G-32G', '4G-64G', '4G-128G']; - -console.log('=== 亚克力-单 SKU 价格计算 ===\n'); - -let results = []; -let index = 1; - -CPUS.forEach(cpu => { - MEMORIES.forEach(mem => { - const cpuCost = CPU_PRICES[cpu]; - const ramCost = MEMORY_PRICES[mem].ram; - const diskCost = MEMORY_PRICES[mem].disk; - const totalCost = FIXED_COST + cpuCost + ramCost + diskCost; - const price = Math.round(totalCost * 1.3); - const profit = price - totalCost; - - const sku = `亚克力 - 单-${cpu}-${mem}`; - results.push({ index, sku, cost: totalCost, price, profit }); - - console.log(`${index}. ${sku}`); - console.log(` CPU(${cpu}): ¥${cpuCost} + 内存: ¥${ramCost} + 系统盘: ¥${diskCost} + 固定: ¥${FIXED_COST}`); - console.log(` 成本: ¥${totalCost} | 售价: ¥${price} | 利润: ¥${profit}\n`); - - index++; - }); -}); - -// 输出汇总表格式的数据 -console.log('\n=== 汇总表更新数据 ==='); -results.forEach(r => { - console.log(`| ${r.index} | ${r.sku} | ¥${r.cost} | ¥${r.price} | ¥${r.profit} | 30% |`); -}); - -// 导出JSON供后续使用 -const fs = require('fs'); -fs.writeFileSync('./sku-results.json', JSON.stringify(results, null, 2)); -console.log('\n已导出计算结果到 sku-results.json'); diff --git a/.trae/skills/image-tools/SKILL.md b/.trae/skills/image-tools/SKILL.md index 2204e5b..776eb8c 100644 --- a/.trae/skills/image-tools/SKILL.md +++ b/.trae/skills/image-tools/SKILL.md @@ -1,71 +1,81 @@ --- name: image-tools -description: 图片处理工具集,用于检查图片信息、HTML转PNG、裁剪水印等操作。当用户需要处理产品图片、转换HTML为图片、或去除图片水印时使用此技能。 +description: 阿里云万相2.7图生图工具,用于AI生成产品主图、场景图、电商素材。Invoke when user needs to generate product images, e-commerce visuals, or AI image editing. --- -# Image Tools +# Image Tools - 万相2.7 AI图生图 -## Overview +使用阿里云百炼 **wan2.7-image-pro** 模型进行 AI 图生图处理,支持文生图、图生图、图片编辑。 -提供产品图片处理相关功能,包括检查图片元信息、HTML页面截图、裁剪水印等操作。适用于产品文档和图片批量处理场景。 +## 前提条件 -## Quick Start +环境变量 `DASHSCOPE_API_KEY` 已配置(默认使用内置Key) -使用前需安装依赖: +## 基本用法 ```bash -cd tools/image-tools/scripts -npm install +python wan_image_edit.py <提示词> <输入图片> [输出路径] [尺寸] ``` -## Tasks +**参数说明**: +- `提示词`: 描述想要的效果,支持中英文 +- `输入图片`: 产品图片路径(PNG/JPG),留空则为文生图 +- `输出路径`: 输出文件名(可选,默认 wan_output.png) +- `尺寸`: 1K 或 2K(可选,默认 2K) -### 检查图片信息 - -查看图片的宽度、高度、格式等元信息: +## 示例 ```bash -cd tools/image-tools/scripts -node check-image-info.js +# 白底产品图 +python wan_image_edit.py "keep the product, pure white background, professional e-commerce photo" "product.png" "output.png" + +# 场景图 +python wan_image_edit.py "place product on modern desk, cozy home office" "product.png" "scene.png" + +# 高性能风格 +python wan_image_edit.py "cyberpunk gaming setup with RGB lights, benchmark scores" "product.png" "gaming.png" "2K" + +# 文生图(无输入图片) +python wan_image_edit.py "futuristic NAS server in data center" "" "t2i.png" + +# 直接在图上添加文字 +python wan_image_edit.py "keep product, add bold text: 千兆高速传输, professional tech background" "product.png" "with_text.png" ``` -**用途**:批量检查产品图片尺寸,确保符合规格要求。 +## 可用尺寸 -### HTML 转 PNG +| 尺寸 | 分辨率 | 适用场景 | +|-----|-------|---------| +| 1K | 1024x1024 | 快速预览、轮播图 | +| 2K | 2048x2048 | 主图、海报(推荐)| -将HTML文件转换为PNG图片截图: +## 代码调用 -```bash -cd tools/image-tools/scripts -node convert-html-to-png.js +```python +from wan_image_edit import wan_image_edit + +# 基础调用 +wan_image_edit( + prompt="keep the product, white background", + image_path="product.png", + output_path="output.png", + size="2K" +) + +# 批量生成多张 +styles = [ + ("white bg", "product.png", "white.png"), + ("cyberpunk", "product.png", "cyber.png"), + ("data center", "product.png", "datacenter.png"), +] +for prompt, img, out in styles: + wan_image_edit(prompt, img, out) ``` -**用途**:将产品配置清单HTML转换为PNG图片,用于产品展示。 +## 提示词技巧 -### 裁剪水印 - -裁剪图片底部水印区域(默认裁剪底部300px): - -```bash -cd tools/image-tools/scripts -node remove-watermark.js -``` - -**用途**:批量处理产品图片,去除底部水印。 - -## Configuration - -脚本默认处理路径为 `产品/飞牛 NAS/fyd-亚克力机箱 - 单/详情` 目录。如需修改: - -- **check-image-info.js**: 修改 `imageDir` 变量 -- **convert-html-to-png.js**: 修改 `detailDir` 变量及文件过滤条件 -- **remove-watermark.js**: 修改 `imageDir` 和 `CROP_BOTTOM_HEIGHT` 常量 - -## Resources - -### scripts/ - -- `check-image-info.js` - 图片信息检查脚本 -- `convert-html-to-png.js` - HTML转PNG截图脚本 -- `remove-watermark.js` - 水印裁剪脚本 -- `package.json` - Node.js 依赖配置 +- **保持产品**: "keep the product", "retain the original product" +- **背景**: "white background", "modern office", "data center" +- **风格**: "cyberpunk", "minimalist", "professional" +- **氛围**: "dramatic lighting", "warm tones", "neon lights" +- **添加文字**: "add bold text: 千兆高速传输" \ No newline at end of file diff --git a/.trae/skills/image-tools/scripts/check-image-info.js b/.trae/skills/image-tools/scripts/check-image-info.js deleted file mode 100644 index 24f70e9..0000000 --- a/.trae/skills/image-tools/scripts/check-image-info.js +++ /dev/null @@ -1,27 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -async function checkImageInfo() { - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const imageFiles = fs.readdirSync(imageDir).filter(file => file.endsWith('.jpg')); - - console.log('📸 图片信息检查\n'); - - for (const imageFile of imageFiles) { - const imagePath = path.join(imageDir, imageFile); - const metadata = await sharp(imagePath).metadata(); - - console.log(`${imageFile}:`); - console.log(` 宽度: ${metadata.width}px`); - console.log(` 高度: ${metadata.height}px`); - console.log(` 格式: ${metadata.format}`); - console.log(''); - } -} - -checkImageInfo().catch(error => { - console.error('💥 检查过程出错:', error); - process.exit(1); -}); diff --git a/.trae/skills/image-tools/scripts/convert-html-to-png.js b/.trae/skills/image-tools/scripts/convert-html-to-png.js deleted file mode 100644 index 56f1ba0..0000000 --- a/.trae/skills/image-tools/scripts/convert-html-to-png.js +++ /dev/null @@ -1,58 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertHtmlToPng() { - console.log('🚀 启动 HTML 转 PNG 转换工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - await page.setViewport({ width: 1000, height: 1000 }); - - const detailDir = 'G:\\stonelan-workspace\\membank\\产品\\Linux主机\\详情'; - - const htmlFiles = fs.readdirSync(detailDir) - .filter(file => file.endsWith('.html')); - - console.log(`📁 找到 ${htmlFiles.length} 个 HTML 文件需要转换\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(detailDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(detailDir, pngFile); - - console.log(`📄 正在转换: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: true, - type: 'png' - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 转换失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有转换任务已完成!'); -} - -convertHtmlToPng().catch(error => { - console.error('💥 转换过程出错:', error); - process.exit(1); -}); diff --git a/.trae/skills/image-tools/scripts/convert-main-image-to-png.js b/.trae/skills/image-tools/scripts/convert-main-image-to-png.js deleted file mode 100644 index 74a3def..0000000 --- a/.trae/skills/image-tools/scripts/convert-main-image-to-png.js +++ /dev/null @@ -1,60 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertHtmlToPng() { - console.log('🚀 启动主图 HTML 转 PNG 转换工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - // 主图尺寸 800x800 - await page.setViewport({ width: 1000, height: 1000 }); - - const mainImageDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\主图'; - - const htmlFiles = fs.readdirSync(mainImageDir) - .filter(file => file.endsWith('.html') && file.includes('主图')); - - console.log(`📁 找到 ${htmlFiles.length} 个主图 HTML 文件需要转换\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(mainImageDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(mainImageDir, pngFile); - - console.log(`📄 正在转换: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: false, - type: 'png', - clip: { x: 0, y: 0, width: 1000, height: 1000 } - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 转换失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有主图转换任务已完成!'); -} - -convertHtmlToPng().catch(error => { - console.error('💥 转换过程出错:', error); - process.exit(1); -}); diff --git a/.trae/skills/image-tools/scripts/package-lock.json b/.trae/skills/image-tools/scripts/package-lock.json deleted file mode 100644 index aeb08d3..0000000 --- a/.trae/skills/image-tools/scripts/package-lock.json +++ /dev/null @@ -1,1666 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "membank", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@img/colour": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", - "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", - "license": "MIT", - "optional": true, - "dependencies": { - "undici-types": "~7.18.0" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "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/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/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.6.0.tgz", - "integrity": "sha512-2YkS7NuiJceSEbyEOdSNLE9tsGd+f4+f7C+Nik/MCk27SYdwIMPT/yRKvg++FZhQXgk0KWJKJyXX9RhVV0RGqA==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", - "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", - "license": "Apache-2.0", - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.12.0.tgz", - "integrity": "sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==", - "license": "Apache-2.0", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", - "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", - "license": "Apache-2.0", - "dependencies": { - "bare-path": "^3.0.0" - } - }, - "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chromium-bidi": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", - "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "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/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1581282", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz", - "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==", - "license": "BSD-3-Clause" - }, - "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/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "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/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "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-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "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==", - "license": "MIT" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.40.0.tgz", - "integrity": "sha512-IxQbDq93XHVVLWHrAkFP7F7iHvb9o0mgfsSIMlhHb+JM+JjM1V4v4MNSQfcRWJopx9dsNOr9adYv0U5fm9BJBQ==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1581282", - "puppeteer-core": "24.40.0", - "typed-query-selector": "^2.12.1" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.40.0.tgz", - "integrity": "sha512-MWL3XbUCfVgGR0gRsidzT6oKJT2QydPLhMITU6HoVWiiv4gkb6gJi3pcdAa8q4HwjBTbqISOWVP4aJiiyUJvag==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1581282", - "typed-query-selector": "^2.12.1", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.19.0" - }, - "engines": { - "node": ">=18" - } - }, - "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/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamx": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", - "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "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/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/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", - "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "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==", - "license": "0BSD" - }, - "node_modules/typed-query-selector": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", - "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "license": "MIT", - "optional": true - }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", - "license": "Apache-2.0" - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", - "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "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/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/.trae/skills/image-tools/scripts/package.json b/.trae/skills/image-tools/scripts/package.json deleted file mode 100644 index 19e797c..0000000 --- a/.trae/skills/image-tools/scripts/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git@gitee.com:xiongmaojames/membank.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } -} diff --git a/.trae/skills/image-tools/scripts/remove-background.py b/.trae/skills/image-tools/scripts/remove-background.py deleted file mode 100644 index 66d0d33..0000000 --- a/.trae/skills/image-tools/scripts/remove-background.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -""" -产品图片抠图工具 -使用rembg库自动去除图片背景 -""" -import os -import sys - -try: - from rembg import remove - from PIL import Image -except ImportError: - print("Missing dependencies, installing...") - os.system("pip install rembg pillow") - from rembg import remove - from PIL import Image - -def remove_background(input_path, output_path): - """ - 去除图片背景 - """ - try: - print(f"Processing: {input_path}") - - # 打开原始图片 - with open(input_path, 'rb') as input_file: - input_data = input_file.read() - - # 去除背景 - output_data = remove(input_data) - - # 保存结果 - with open(output_path, 'wb') as output_file: - output_file.write(output_data) - - print(f"Saved: {output_path}") - return True - except Exception as e: - print(f"Error: {e}") - return False - -if __name__ == "__main__": - # 产品图片路径 - image_dir = r"g:\stonelan-workspace\membank\产品\飞牛 NAS\fyd-亚克力机箱 - 单\image" - - # 要处理的图片 - input_image = os.path.join(image_dir, "正面.jpg") - output_image = os.path.join(image_dir, "正面_抠图.png") - - # 检查文件是否存在 - if not os.path.exists(input_image): - print(f"File not found: {input_image}") - sys.exit(1) - - # 执行抠图 - success = remove_background(input_image, output_image) - - if success: - print(f"\nBackground removal completed!") - print(f"Original: {input_image}") - print(f"Result: {output_image}") - else: - print("\nBackground removal failed!") - sys.exit(1) \ No newline at end of file diff --git a/.trae/skills/image-tools/scripts/remove-watermark.js b/.trae/skills/image-tools/scripts/remove-watermark.js deleted file mode 100644 index 145d160..0000000 --- a/.trae/skills/image-tools/scripts/remove-watermark.js +++ /dev/null @@ -1,51 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -const CROP_BOTTOM_HEIGHT = 300; - -async function removeWatermark() { - console.log('🖼️ 开始裁剪图片水印...\n'); - - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const backupDir = path.join(imageDir, 'backup'); - - const imageFiles = fs.readdirSync(backupDir).filter(file => file.endsWith('.jpg')); - - console.log(`📸 找到 ${imageFiles.length} 张图片需要处理\n`); - console.log(`✂️ 裁剪设置: 从底部裁剪 ${CROP_BOTTOM_HEIGHT}px\n`); - - for (const imageFile of imageFiles) { - try { - const backupPath = path.join(backupDir, imageFile); - const imagePath = path.join(imageDir, imageFile); - - console.log(`📄 正在处理: ${imageFile}`); - - const metadata = await sharp(backupPath).metadata(); - - const newHeight = metadata.height - CROP_BOTTOM_HEIGHT; - - await sharp(backupPath) - .extract({ - left: 0, - top: 0, - width: metadata.width, - height: newHeight - }) - .toFile(imagePath); - - console.log(` ✅ 已裁剪: ${metadata.width}x${metadata.height} -> ${metadata.width}x${newHeight}\n`); - } catch (error) { - console.error(` ❌ 处理失败 ${imageFile}: ${error.message}\n`); - } - } - - console.log('✨ 所有图片处理完成!'); -} - -removeWatermark().catch(error => { - console.error('💥 处理过程出错:', error); - process.exit(1); -}); diff --git a/.trae/skills/image-tools/scripts/render-main-image.js b/.trae/skills/image-tools/scripts/render-main-image.js deleted file mode 100644 index 7043ec2..0000000 --- a/.trae/skills/image-tools/scripts/render-main-image.js +++ /dev/null @@ -1,58 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertMainImageToPng() { - console.log('🎨 启动主图渲染工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - await page.setViewport({ width: 800, height: 800 }); - - const mainImageDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\主图'; - - const htmlFiles = fs.readdirSync(mainImageDir) - .filter(file => file.endsWith('.html')); - - console.log(`📁 找到 ${htmlFiles.length} 个主图HTML文件需要渲染\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(mainImageDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(mainImageDir, pngFile); - - console.log(`📄 正在渲染: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: true, - type: 'png' - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 渲染失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有主图渲染完成!'); -} - -convertMainImageToPng().catch(error => { - console.error('💥 渲染过程出错:', error); - process.exit(1); -}); \ No newline at end of file diff --git a/.trae/skills/image-tools/scripts/wan_image_edit.py b/.trae/skills/image-tools/scripts/wan_image_edit.py new file mode 100644 index 0000000..612b893 --- /dev/null +++ b/.trae/skills/image-tools/scripts/wan_image_edit.py @@ -0,0 +1,123 @@ +import os +import sys +import base64 +import mimetypes +import requests +from urllib.request import urlretrieve + +API_KEY = os.getenv("DASHSCOPE_API_KEY", "") +DEFAULT_API_KEY = "sk-ef591b52e48840c6a63899c8901a9428" +if not API_KEY: + API_KEY = DEFAULT_API_KEY + print(f"使用默认API Key (前8位): {DEFAULT_API_KEY[:8]}...") + +def encode_image(file_path): + mime_type, _ = mimetypes.guess_type(file_path) + if not mime_type: + mime_type = "image/png" + with open(file_path, "rb") as f: + return f"data:{mime_type};base64,{base64.b64encode(f.read()).decode('utf-8')}" + +def wan_image_edit( + prompt, + image_path, + output_path="wan_output.png", + size="2K", + negative_prompt="", + n=1, + prompt_extend=True +): + """ + 万相2.7图生图 - 基于输入图片和提示词生成新图 + + 参数: + prompt: 提示词,描述想要的效果 + image_path: 输入图片路径 + output_path: 输出图片路径 + size: 输出尺寸 ("2K" 或 "1K") + negative_prompt: 反向提示词 + n: 生成数量 (1-4) + prompt_extend: 是否启用提示词扩展 + + 示例: + python wan_image_edit.py "keep the product, white background" "product.png" "output.png" + """ + print(f"提示词: {prompt}") + print(f"输入图片: {image_path}") + print(f"输出路径: {output_path}") + print(f"尺寸: {size}") + + url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {API_KEY}" + } + + content = [{"text": prompt}] + if image_path: + content.append({"image": encode_image(image_path)}) + + payload = { + "model": "wan2.7-image-pro", + "input": { + "messages": [{ + "role": "user", + "content": content + }] + }, + "parameters": { + "size": size, + "n": n, + "prompt_extend": prompt_extend, + "watermark": False + } + } + + if negative_prompt: + payload["parameters"]["negative_prompt"] = negative_prompt + + try: + resp = requests.post(url, headers=headers, json=payload, timeout=120) + result = resp.json() + + if resp.status_code == 200 and "output" in result: + choices = result["output"].get("choices", []) + if choices: + for idx, choice in enumerate(choices): + content_list = choice.get("message", {}).get("content", []) + for item in content_list: + if item.get("type") == "image": + image_url = item["image"] + out_path = output_path if n == 1 else output_path.replace(".png", f"_{idx}.png").replace(".jpg", f"_{idx}.jpg") + urlretrieve(image_url, out_path) + print(f"成功: {out_path}") + return True + else: + msg = result.get("message", str(result)) + print(f"失败: {msg}") + return False + + except requests.exceptions.Timeout: + print("请求超时,请重试") + return False + except Exception as e: + print(f"错误: {e}") + return False + +if __name__ == "__main__": + if len(sys.argv) < 3: + print("用法: python wan_image_edit.py <提示词> <输入图片> [输出路径] [尺寸]") + print("") + print("示例:") + print(' python wan_image_edit.py "keep the product, white background" "product.png" "output.png"') + print(' python wan_image_edit.py "cyberpunk style" "product.png" "output.png" "2K"') + print("") + print("尺寸选项: 1K (1024x1024), 2K (2048x2048)") + sys.exit(1) + + prompt = sys.argv[1] + image_path = sys.argv[2] + output_path = sys.argv[3] if len(sys.argv) > 3 else "wan_output.png" + size = sys.argv[4] if len(sys.argv) > 4 else "2K" + + wan_image_edit(prompt, image_path, output_path, size) \ No newline at end of file diff --git a/.trae/skills/product-detail-designer/SKILL.md b/.trae/skills/product-detail-designer/SKILL.md deleted file mode 100644 index ed438fe..0000000 --- a/.trae/skills/product-detail-designer/SKILL.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -name: product-detail-designer -description: 设计电商产品的详情页。当用户需要为产品生成详情页HTML、批量渲染SKU页面、或处理产品图片时使用此技能。 ---- - -# Product Detail Designer - -## 概述 - -根据产品的 SKU 和配置规范,生成对应的产品详情页 HTML,并转换为 PNG 图片。自动化处理从配置数据到最终展示页面的完整流程。 - -## 使用场景 - -- 有产品种类或 SKU 变化,需要重新生成详情页 -- 有产品图片变化,需要更新详情页 -- 需要批量为多个 SKU 生成对应的详情页 - -## 工作流程 - -### 步骤 1: 读取 SKU 配置 - -从 `产品` 目录下找到对应的产品目录 - - -### 步骤 2: 生成 HTML 文件 - -#### 详情页组成部分 -- 购买须知 (不需要二级标题) - - 亚克力机箱需要自己组装,店铺会提供安装视频 - - 受成本限制,产品无法做到十全十美,完美主义者慎拍 -- 配置清单 - 1. 以表格的形式展示 - 2. cpu 内存 系统盘,网口, - 3. 内存体现容量和ddr3,内存插槽数量 - 4. 支持硬盘数量,尺寸, 容量 -- 使用场景 - 1. 手机扩容 - 照片视频备份,自动同步,远程同步 - 2. 小型办公/团队协作 - 远程文件访问,多人协作,权限分级,文件共享,文件归档,在线编辑 - 3. 监控视频存储 - 小米摄像头存储,onvif协议支持 - 4. 家庭影院打造 - 流畅播放4k视频,硬解4k - 5. 微信聊天记录备份 - 支持微信聊天记录备份 - 6. 远程访问 - 远程访问照片,视频,文件等内容 -- 产品特点 - 1. 体积小,容量大,功能强 - 2. 低耗静音 - 3. 支持远程访问 - 4. 支持wifi联网 - 5. 来电自启 - 6. 远程开关机 -- 产品实拍图 -- 飞牛系统截图 -- 配件清单 -- 包装展示 -- 常见问题 - - -- 严格按照详情页组成生成详情页,多余的删除掉 -- 需要用的产品图片,都放在对应产品目录的image目录下 -- html 按照宽1500的分辨率生成 -- 一个产品有多个sku,但一个产品只需要一个详情页,不需要为每个sku生成详情页 -- 详情页放到每个产品对应的`详情`目录下 -- 配色采用绿色清晰的风格 - - - - -### 步骤 3: HTML 转 PNG 图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -```bash -cd ../image-tools/scripts -node convert-html-to-png.js -``` - -### 步骤 4: 裁剪图片水印 - -使用 `image-tools` 技能的 `remove-watermark.js` 脚本: - -```bash -node remove-watermark.js -``` diff --git a/.trae/skills/product-detail-designer/scripts/render.js b/.trae/skills/product-detail-designer/scripts/render.js deleted file mode 100644 index d269ed0..0000000 --- a/.trae/skills/product-detail-designer/scripts/render.js +++ /dev/null @@ -1,133 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -// SKU 字段映射表 -const FIELD_MAP = { - '{{PRODUCT_NAME}}': 'productName', - '{{PRODUCT_SUBTITLE}}': 'productSubtitle', - '{{SKU_CODE}}': 'skuCode', - '{{CPU}}': 'cpu', - '{{MEMORY}}': 'memory', - '{{STORAGE}}': 'storage', - '{{CASE}}': 'case', - '{{POWER}}': 'power', - '{{CABLE}}': 'cable', - '{{BATTERY}}': 'battery', - '{{ETHERNET_CABLE}}': 'ethernetCable', - '{{SHIPPING_FEE}}': 'shippingFee', - '{{PACKAGING_FEE}}': 'packagingFee', - '{{ASSEMBLY_FEE}}': 'assemblyFee', - '{{TOTAL_COST}}': 'totalCost', - '{{RETAIL_PRICE}}': 'retailPrice', - '{{NOTE}}': 'note' -}; - -// 从 SKU markdown 文件解析字段 -function parseSkuFile(skuPath) { - const content = fs.readFileSync(skuPath, 'utf-8'); - const data = {}; - - content.split('\n').forEach(line => { - // 匹配格式: | **字段名** | 值 | 价格 | - const match = line.match(/\|\s*\*\*(.+?)\*\*\s*\|\s*(.+?)\s*\|/); - if (match) { - const [, fieldName, value] = match; - data[fieldName.trim()] = value.trim(); - } - }); - - return data; -} - -// 将 SKU 数据映射为模板变量 -function mapSkuToVariables(skuData) { - const cpu = skuData['CPU'] || ''; - const memory = skuData['内存'] || ''; - const storage = skuData['系统盘'] || ''; - const caseType = skuData['机箱'] || ''; - - return { - '{{PRODUCT_NAME}}': `飞牛NAS ${caseType}`, - '{{PRODUCT_SUBTITLE}}': '亚克力机箱 透明系列', - '{{SKU_CODE}}': skuData['产品型号'] || '', - '{{CPU}}': cpu, - '{{MEMORY}}': memory, - '{{STORAGE}}': storage, - '{{CASE}}': caseType, - '{{POWER}}': skuData['电源'] || '电源-60W', - '{{CABLE}}': skuData['硬盘线'] || '硬盘线-单', - '{{BATTERY}}': skuData['电池'] || '电池', - '{{ETHERNET_CABLE}}': skuData['网线'] || '网线', - '{{SHIPPING_FEE}}': skuData['运费']?.replace('¥', '') || '10', - '{{PACKAGING_FEE}}': skuData['包装费']?.replace('¥', '') || '5', - '{{ASSEMBLY_FEE}}': skuData['装机费']?.replace('¥', '') || '10', - '{{TOTAL_COST}}': skuData['总成本']?.replace('¥', '') || '0', - '{{RETAIL_PRICE}}': skuData['建议零售价']?.replace('¥', '') || '0', - '{{NOTE}}': skuData['备注'] || '' - }; -} - -// 渲染 HTML 模板 -function renderTemplate(templatePath, variables) { - let html = fs.readFileSync(templatePath, 'utf-8'); - - Object.entries(variables).forEach(([placeholder, value]) => { - html = html.split(placeholder).join(value); - }); - - return html; -} - -// 主函数:生成亚克力单详情页 -function generateDetailPages(skuFilePath, outputDir) { - const skuData = parseSkuFile(skuFilePath); - const variables = mapSkuToVariables(skuData); - - const skuCode = variables['{{SKU_CODE}}']; - const productType = '亚克力单'; - const templateDir = path.join(__dirname, '..', 'assets', 'templates', productType); - - // 创建输出目录 - const productOutputDir = path.join(outputDir, skuCode); - if (!fs.existsSync(productOutputDir)) { - fs.mkdirSync(productOutputDir, { recursive: true }); - } - - // 模板列表 - const templates = [ - '配置清单-1.html', - '配置清单-2.html', - '商品卖点.html', - '功能描述.html', - '使用场景.html', - '配件清单.html', - '包装展示.html' - ]; - - templates.forEach(template => { - const templatePath = path.join(templateDir, template); - if (!fs.existsSync(templatePath)) { - console.log(`跳过(模板不存在): ${template}`); - return; - } - - const html = renderTemplate(templatePath, variables); - const outputPath = path.join(productOutputDir, template); - fs.writeFileSync(outputPath, html, 'utf-8'); - console.log(`已生成: ${outputPath}`); - }); - - console.log(`\n完成!共生成 ${templates.length} 个 HTML 文件到: ${productOutputDir}`); -} - -// 使用示例 -const skuFile = process.argv[2]; -const outputDir = process.argv[3] || path.join(__dirname, '..', '..', '..', '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情'); - -if (!skuFile) { - console.log('用法: node render.js [输出目录]'); - console.log('示例: node render.js ../产品/飞牛NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md'); - process.exit(1); -} - -generateDetailPages(skuFile, outputDir); diff --git a/.trae/skills/product-main-image/SKILL.md b/.trae/skills/product-main-image/SKILL.md deleted file mode 100644 index 6f88546..0000000 --- a/.trae/skills/product-main-image/SKILL.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -name: product-main-image -description: 设计电商产品的主图。当用户需要为产品生成主图图片或海报时使用此技能。 ---- - -# 商品主图设计 - -## 概述 - --为每个产品生成主图图片 --主图图片放到每个产品对应的`主图`目录下 -## 使用场景 - -- 有产品主图需要更新 - -## 工作流程 - -### 步骤 1: 准备素材 -- 根据产品详情页,归纳出主图要展示的信息 - -- 可以使用产品目录下`image`目录中的图片作为素材 - - - -### 步骤 2: 设计主图html -- 主图尺寸:1000*1000 -- 一个主图一个html - - -### 步骤 3: 导出图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -## 主图规范 - - - -## 配色参考 - - - -## 字体规范 - - - -## 示例模板 - - - diff --git a/.trae/skills/sku-designer/SKILL.md b/.trae/skills/sku-designer/SKILL.md index ac4ecc5..fa61959 100644 --- a/.trae/skills/sku-designer/SKILL.md +++ b/.trae/skills/sku-designer/SKILL.md @@ -8,7 +8,68 @@ description: 设计电商产品的 SKU 配置。当用户需要为产品生成 S ## Overview - 为每个产品生成 SKU 配置 -- 将 SKU 配置放到每个产品对应的 `SKU` 目录下 +- 将 SKU 配置放到每个产品对应的 `sku` 目录下(小写) + +## 产品目录组织原则 + +每个产品目录必须遵循以下标准结构: + +``` +产品名称/ +├── 商品标题.md # 电商商品标题关键词,一行文本 +├── sku/ # SKU配置目录(小写),每个SKU一个独立.md文件 +│ ├── [机箱]-[单/双]-[CPU]-[内存]-[硬盘].md +│ └── ... +├── image/ # 产品实拍图片(原图) +├── 主图/ # 电商主图(html + png) +│ ├── 主图1-xxx.html +│ ├── 主图1-xxx.png +│ └── ... +└── 详情/ # 商品详情页(html + png) + ├── xxx_详情页.html + └── xxx_详情页.png +``` + +### SKU 文件命名规则 +- 文件名格式:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` +- "单/双"指该机箱版本对应的SATA口数(单=单SATA口,双=双SATA口) +- 示例:`2.5金-单-N2840-4G-32G.md`、`3.5大-双-1037U-4G-32G.md`、`3.5小-单-N2930-4G-32G.md`、`3.5小-双-1037U-4G-32G.md` + +### 机箱与CPU匹配原则 +- 机箱标注"单"(单SATA口)只能配单SATA口CPU:N2840, N2930, AMD-A4, J1800, J1900, J3160, 3855U +- 机箱标注"双"(双SATA口)只能配双SATA口CPU:1037U, 3217U, 5005U +- 机箱标注"单/双"(如3.5寸小)支持两种SATA口,需分别生成单/双版本SKU + +### SKU 文件内容格式 +每个SKU文件包含一个产品信息表格,字段如下: + +```markdown +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS [产品线] [机箱] [CPU] | - | +| **产品型号** | [机箱]-[盘位]-[CPU]-[内存]-[硬盘] | - | +| **用途分类** | NAS | - | +| **CPU** | [CPU型号] | ¥[价格] | +| **内存** | D3-[容量] | ¥[价格] | +| **系统盘** | mSATA-[容量] | ¥[价格] | +| **机箱** | [机箱名称] | ¥[价格] | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-单/双 | ¥4/5 | +| **双SATA转换器** | 双SATA转换器 | ¥28 | (如需要) +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥[总计] | +| **建议零售价** | - | ¥[售价] | +| **备注** | [描述] | - | +``` + +> 注意:双SATA转换器仅在单SATA口主板需要扩展盘位时添加 ## SKU 编码规则 @@ -21,7 +82,10 @@ description: 设计电商产品的 SKU 配置。当用户需要为产品生成 S ### 步骤1. 更新对应产品的sku,根据设计原则添加或者删除sku - 根据对应机箱设计原则,选择cpu,内存,硬盘 - 按照SKU编码规则生成SKU名称 -- 将SKU配置保存到对应产品目录下的`SKU`文件夹 +- 按照产品目录组织原则,确保目录结构完整(商品标题.md、sku/、image/、主图/、详情/) +- 每个SKU生成一个独立的.md文件,放到`sku/`目录下 +- SKU文件命名:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` +- SKU文件内容按照标准产品信息表格格式填写 ### 步骤2 计算与核对产品价格 - 根据配件清单,计算产品价格 @@ -32,28 +96,70 @@ description: 设计电商产品的 SKU 配置。当用户需要为产品生成 S - 更新产品信息到产品信息汇总表 -## 飞牛 NAS产设计原则 -### 3.5金属大配置原则 -- 3.5金属大,用于3盘位和4盘位,通过双sata转化器,主板单sata口就是3盘位,主板双sata口就是4盘位 -- 3.5金属大可安装cpu:j1900,j3160,i3-3217u,i3-5005u,3855u,1037u -- 3.5金属大可安装内存和系统盘: 4G-32G,4G-64G,8G-64G,8G-128G -### 3.5金属小配置原则 -- 3.5金属小可安装cpu:j1900,j3160,i3-3217u,i3-5005u,3855u,1037u -- 3.5金属小,可安装一个2.5和一个3.5,配单sata口主板就是单3.5 ,双sata口主板就是 3.5+2.5 -- 3.5金属小可安装内存和系统盘: 4G-32G,4G-64G,8G-64G,8G-128G +## 飞牛 NAS产品设计原则 + +### 基础版-金 +- 机箱与CPU对应: + - 2.5金-单(单SATA口):amd-a4, n2840, n2930, j1800 + - 3.5金属大-双(双SATA口):1037u + - 3.5金属小-单(单SATA口):amd-a4, n2840, n2930, j1800 + - 3.5金属小-双(双SATA口):1037u +- 内存-硬盘: 4G-32G +- 建议零售价: 成本+30 + +### 基础版-亚 +- 机箱与CPU对应: + - 亚克力-双(双SATA口):1037u + - 亚克力-单(单SATA口):amd-a4, n2840, n2930, j1800 +- 内存-硬盘: 4G-32G +- 建议零售价: 成本+30 + +### 金属机箱3.5寸大 +- 3盘版(单SATA口CPU):3855U, J1900, J3160 +- 4盘版(双SATA口CPU):1037U, 3217U, 5005U +- 内存硬盘可用:4G-32G, 4G-64G, 8G-64G, 8G-128G +- 建议零售价:成本+50 + +### 金属机箱3.5寸小 +- 3.5+2.5盘位(双SATA口):1037U +- 内存硬盘可用:4G-32G +- 数据盘可选 500G ,1T ,3T ,4T 6T +- 建议零售价:成本+50 + ### 亚克力机箱-单 配置原则 - 可安装单SATA口主板 -- 可用CPU:N2840,N2930,AMD-A4,J1900,J3160 -- 可用内存:2G-16G,2G-32G,4G-64G,4G-128G -#### -推荐价格: +- 可用CPU:AMD-A4,J1900,J3160 +- 可用内存:D3-2G,D3-4G +- 可用系统盘:mSATA-16G,mSATA-32G,mSATA-64G,mSATA-128G +#### 推荐价格: - 配2G内存的成本加20作为推荐售价 - 配4G内存的成本加30作为推荐售价 ### 亚克力机箱-双 配置原则 - 可安装双SATA口主板 -- 可用CPU:1037U,i3-3217U,i3-5005U +- 可用CPU:1037U,3217U,5005U - 可用内存:2G-16G,2G-32G,4G-64G,4G-128G,8G-128G + +### 高性能版-亚-双-j1900 +- 使用亚克力-双机箱 +- CPU J1900(单SATA口,需双SATA转换器) +- 内存硬盘可用:4G-32G, 4G-64G, 8G-64G, 8G-128G +- 建议零售价:成本+50 + +### 高性能版-亚-双-j3160 +- 使用亚克力-双机箱 +- CPU J3160(单SATA口,需双SATA转换器) +- 内存硬盘可用:4G-32G, 4G-64G, 8G-64G, 8G-128G +- 建议零售价:成本+70 + +### 高性能-i5-i7 +- 可使用机箱:亚克力机箱-双、金属机箱3.5寸大 +- CPU i5可用:i5-2代,i5-3代,i5-4代 +- CPU i7可用:i7-2代,i7-3代,i7-4代 +- i5内存硬盘可用:4G-128G,8G-128G +- i7内存硬盘统一:8G-128G +- 建议零售价:成本+80 + ## win 小主机产设计原则 - win小主机全部使用2.5存机箱 ### 龙虾盒子 diff --git a/.codebuddy/skills/sku-designer/scripts/sync-prices-to-summary.js b/.trae/skills/sku-designer/scripts/sync-prices-to-summary.js similarity index 100% rename from .codebuddy/skills/sku-designer/scripts/sync-prices-to-summary.js rename to .trae/skills/sku-designer/scripts/sync-prices-to-summary.js diff --git a/.workbuddy/expert-history.json b/.workbuddy/expert-history.json deleted file mode 100644 index 702f360..0000000 --- a/.workbuddy/expert-history.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": 2, - "sessions": { - "94e9818ab5db48dc97e6a42bf483f6a2": [ - { - "expertId": "SeniorDeveloper", - "name": "Will", - "profession": "高级开发工程师", - "avatarUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/avatars/02-Engineering/SeniorDeveloper/SeniorDeveloper.png", - "promptUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/experts/02-Engineering/SeniorDeveloper/SeniorDeveloper_zh.md", - "usedAt": 1774978638826, - "industryId": "all" - }, - { - "expertId": "MultiCloudManagementExpert", - "name": "CloudQ", - "profession": "多云管理专家", - "avatarUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/avatars/02-Engineering/MultiCloudManagementExpert/MultiCloudManagementExpert.png", - "promptUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/experts/02-Engineering/MultiCloudManagementExpert/MultiCloudManagementExpert_zh.md", - "usedAt": 1774978627882, - "industryId": "02-Engineering" - } - ] - }, - "lastUpdated": 1774978638827 -} \ No newline at end of file diff --git a/.workbuddy/memory/2026-03-31.md b/.workbuddy/memory/2026-03-31.md deleted file mode 100644 index d460620..0000000 --- a/.workbuddy/memory/2026-03-31.md +++ /dev/null @@ -1,15 +0,0 @@ -# 2026-03-31 工作记录 - -## Docker 镜像构建 - -### membank-manual 镜像构建成功 -- **时间**:2026-03-31 12:43 -- **镜像名**:`membank-manual:latest` -- **镜像大小**:142MB -- **基础镜像**:node:18-alpine + nginx -- **内容**:使用说明 Web 应用,包含产品配置管理系统的前端页面 -- **构建服务器**:node1(10.0.3.5) -- **源码位置**:`/home/awei/membank/` -- **说明**:该镜像用于提供硬件配置管理系统的使用说明和产品文档访问 - -镜像已成功构建并可用于部署。 diff --git a/.workbuddy/memory/2026-04-08.md b/.workbuddy/memory/2026-04-08.md deleted file mode 100644 index b1ba5e2..0000000 --- a/.workbuddy/memory/2026-04-08.md +++ /dev/null @@ -1,34 +0,0 @@ -# 2026-04-08 工作日志 - -## 完成的工作 - -### 爬取飞牛 NAS 帮助文档 -成功爬取 https://help.fnnas.com/ 帮助中心的所有内容,并以 Markdown 格式保存到 `g:\stonelan-workspace\membank\fnhelp\` 目录。 - -**爬取的内容包括:** -- 从这里开始 (start): 安装初始化、App连接、TV连接 -- 存储管理 (volume): 创建存储空间、硬盘休眠、SSD缓存 -- 飞牛影视 (media): 影视安装、创建用户、Apple TV Infuse -- 相册 (photo): 照片备份、相册共享、AI相册 -- 远程访问 (access): 远程访问方法、FN Connect权益 -- 系统设置 (settings): 创建用户、无线网卡、端口修改 -- 文件管理 (file): 文件共享、外部分享链接、团队文件 -- 文件共享协议 (file-service): WebDAV、NFS、SMB3多通道 -- 虚拟机 (virtual-machine): 虚拟机安装、硬件直通 -- 飞牛同步 (sync): 同步功能介绍、常见问题 -- 备份 (backup): 加密备份 -- iSCSI (iscsi): 名词介绍、基础功能、用户组 -- AI & OpenClaw (ai): 微信ClawBot、钉钉机器人、飞书机器人 -- 安全性 (safety): 安全披露、安全漏洞奖励计划 -- 更多 (contact): 联系我们、账号区别、用户角色 - -**共创建 40 个 Markdown 文件** - -### 合并帮助文档 -将 fnhelp 目录下的所有 40 个 Markdown 文件合并为一个完整文档: -- 文件路径: `g:\stonelan-workspace\membank\fnhelp\fnOS完整帮助文档.md` -- 包含全部 15 个分类的完整内容 - -## 说明 -- 硬件相关的详细内容(飞牛官方、零刻)未成功获取,可能需要 JavaScript 动态加载 -- 所有获取的内容已整理成离线可读的 Markdown 格式 diff --git a/.workbuddy/memory/2026-04-12.md b/.workbuddy/memory/2026-04-12.md deleted file mode 100644 index af66ec8..0000000 --- a/.workbuddy/memory/2026-04-12.md +++ /dev/null @@ -1,20 +0,0 @@ -# 2026-04-12 工作日志 - -## Git 提交推送 -- 提交并推送到 Gitea(http://gitea.membank.xyz/admin/membank.git) -- 提交内容:148 个文件,5702 行新增 - - fnhelp/ 飞牛 fnOS 帮助文档(41 文件,15 分类) - - 产品/飞牛 NAS/ 新增高性能版 SKU(亚克力双口、金属大,i3/i5/j1900/j3160) - - 配件/配件清单.md 价格更新 -- Commit hash: 6b36be4 - -## 产品价格汇总表更新 -- 文件:`产品/产品价格汇总表.md` -- 新增:高性能版金大i3(16款)、金大i5(8款)、金大J1900(4款)、金大J3160(4款) -- 新增:高性能版亚-双i3(16款)、亚-双i5(8款)、亚-双J1900(4款)、亚-双J3160(4款) -- 新增:基础版金属机箱(10款)、基础版亚克力机箱(5款) -- 全部产品合计:213 款(原106款 → 213款) - -## 汇总表清理 -- 移除了无实际SKU文件支撑的章节:旧款金属大(24款)、旧款金属小(24款)、龙虾盒子(6款)、win10小主机(24款)、挂机宝(24款) -- 清理后汇总表:12个系列,107款,仅保留有实际sku文件的产品 diff --git a/.workbuddy/memory/2026-04-22.md b/.workbuddy/memory/2026-04-22.md deleted file mode 100644 index 00b4e85..0000000 --- a/.workbuddy/memory/2026-04-22.md +++ /dev/null @@ -1,10 +0,0 @@ -# 2026-04-22 工作记录 - -## SKU价格自动核对(定时任务 22:30) - -- 执行了SKU价格核对定时任务,核对全部约176个SKU文件 -- 新目录(基础版/高性能版)71个SKU全部正确 -- 旧目录P0系统性价格错误依旧未修复:D3-4G(¥38→¥25)、mSATA-64G(¥45→¥40)、mSATA-32G(¥25→¥20)、D3-8G(¥120→¥75) -- Linux-3855U CPU标¥75应为¥80 -- 3217U/5005U仍未在配件清单中定义 -- 输出检查日志到artifact,未修改任何SKU文件 diff --git a/.workbuddy/memory/MEMORY.md b/.workbuddy/memory/MEMORY.md deleted file mode 100644 index 348d7c4..0000000 --- a/.workbuddy/memory/MEMORY.md +++ /dev/null @@ -1,36 +0,0 @@ -# 长期记忆 - -## 服务器信息 - -### node1(10.0.3.5) -- **IP**:10.0.3.5 -- **主机名**:node1 -- **系统**:Ubuntu Linux,内核 6.8.0-71-generic -- **架构**:x86_64 -- **SSH 用户**:awei -- **磁盘**:根分区 48G,约 32G 可用 -- **SSH 端口**:22(开放),Web 端口(80/443)未开放 -- **备注**:本地局域网服务器,延迟极低(<1ms),2026-03-30 首次连接 -- **Docker**:已安装 v28.2.2,已配置国内镜像源(docker.1panel.live / hub.rat.dev / dockerpull.org) -- **已编译镜像**: - - `membank:latest`(142MB,基于 node:18-alpine + nginx),源码位于 `/home/awei/membank/` - - `membank-manual:latest`(142MB,使用说明 Web 应用,基于 node:18-alpine + nginx),源码位于 `/home/awei/membank/` - -## Git仓库 - -### membank 项目 -- **Gitee (origin)**:`git@gitee.com:xiongmaojames/membank.git` -- **Gitea (gitea)**:`http://gitea.membank.xyz/admin/membank.git` -- **Gitea 凭证**:用户名 `admin`,密码 `Awei@sxf26` - -## SKU价格核对 - -### 已知系统性价格问题(2026-04-21发现) -- **旧目录SKU**(fjd/fjx/fyd/fys/win小主机/linux主机)配件价格与配件清单不一致: - - D3-4G:SKU标¥38,配件清单¥25(差¥13) - - mSATA-64G:SKU标¥45,配件清单¥40(差¥5) - - mSATA-32G:SKU标¥25,配件清单¥20(差¥5) - - D3-8G:一拖三SKU标¥120,配件清单¥75(差¥45) -- **新目录SKU**(基础版/高性能版)价格全部正确 -- 3217U和5005U未在配件清单中定义价格 -- Linux-3855U CPU标¥75,配件清单¥80 diff --git a/.workbuddy/settings.local.json b/.workbuddy/settings.local.json deleted file mode 100644 index 87f9aeb..0000000 --- a/.workbuddy/settings.local.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "enabledPlugins": { - "product-management@cb_teams_marketplace": true, - "document-skills@cb_teams_marketplace": true - } -} \ No newline at end of file diff --git a/.workbuddy/skills/image-tools/SKILL.md b/.workbuddy/skills/image-tools/SKILL.md deleted file mode 100644 index 2204e5b..0000000 --- a/.workbuddy/skills/image-tools/SKILL.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -name: image-tools -description: 图片处理工具集,用于检查图片信息、HTML转PNG、裁剪水印等操作。当用户需要处理产品图片、转换HTML为图片、或去除图片水印时使用此技能。 ---- - -# Image Tools - -## Overview - -提供产品图片处理相关功能,包括检查图片元信息、HTML页面截图、裁剪水印等操作。适用于产品文档和图片批量处理场景。 - -## Quick Start - -使用前需安装依赖: - -```bash -cd tools/image-tools/scripts -npm install -``` - -## Tasks - -### 检查图片信息 - -查看图片的宽度、高度、格式等元信息: - -```bash -cd tools/image-tools/scripts -node check-image-info.js -``` - -**用途**:批量检查产品图片尺寸,确保符合规格要求。 - -### HTML 转 PNG - -将HTML文件转换为PNG图片截图: - -```bash -cd tools/image-tools/scripts -node convert-html-to-png.js -``` - -**用途**:将产品配置清单HTML转换为PNG图片,用于产品展示。 - -### 裁剪水印 - -裁剪图片底部水印区域(默认裁剪底部300px): - -```bash -cd tools/image-tools/scripts -node remove-watermark.js -``` - -**用途**:批量处理产品图片,去除底部水印。 - -## Configuration - -脚本默认处理路径为 `产品/飞牛 NAS/fyd-亚克力机箱 - 单/详情` 目录。如需修改: - -- **check-image-info.js**: 修改 `imageDir` 变量 -- **convert-html-to-png.js**: 修改 `detailDir` 变量及文件过滤条件 -- **remove-watermark.js**: 修改 `imageDir` 和 `CROP_BOTTOM_HEIGHT` 常量 - -## Resources - -### scripts/ - -- `check-image-info.js` - 图片信息检查脚本 -- `convert-html-to-png.js` - HTML转PNG截图脚本 -- `remove-watermark.js` - 水印裁剪脚本 -- `package.json` - Node.js 依赖配置 diff --git a/.workbuddy/skills/image-tools/scripts/check-image-info.js b/.workbuddy/skills/image-tools/scripts/check-image-info.js deleted file mode 100644 index 24f70e9..0000000 --- a/.workbuddy/skills/image-tools/scripts/check-image-info.js +++ /dev/null @@ -1,27 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -async function checkImageInfo() { - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const imageFiles = fs.readdirSync(imageDir).filter(file => file.endsWith('.jpg')); - - console.log('📸 图片信息检查\n'); - - for (const imageFile of imageFiles) { - const imagePath = path.join(imageDir, imageFile); - const metadata = await sharp(imagePath).metadata(); - - console.log(`${imageFile}:`); - console.log(` 宽度: ${metadata.width}px`); - console.log(` 高度: ${metadata.height}px`); - console.log(` 格式: ${metadata.format}`); - console.log(''); - } -} - -checkImageInfo().catch(error => { - console.error('💥 检查过程出错:', error); - process.exit(1); -}); diff --git a/.workbuddy/skills/image-tools/scripts/convert-html-to-png.js b/.workbuddy/skills/image-tools/scripts/convert-html-to-png.js deleted file mode 100644 index d9dff56..0000000 --- a/.workbuddy/skills/image-tools/scripts/convert-html-to-png.js +++ /dev/null @@ -1,59 +0,0 @@ -const puppeteer = require('puppeteer'); -const path = require('path'); -const fs = require('fs'); - -async function convertHtmlToPng() { - console.log('🚀 启动 HTML 转 PNG 转换工具...\n'); - - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-setuid-sandbox'] - }); - - const page = await browser.newPage(); - - await page.setViewport({ width: 750, height: 1000 }); - - const detailDir = 'G:\\stonelan-workspace\\membank\\产品\\飞牛 NAS\\fyd-亚克力机箱 - 单\\详情'; - - const htmlFiles = fs.readdirSync(detailDir) - .filter(file => file.endsWith('.html') && file.includes('亚克力机箱-单')) - .filter(file => !file.includes('配置清单.html') || file.includes('配置清单-')); - - console.log(`📁 找到 ${htmlFiles.length} 个 HTML 文件需要转换\n`); - - for (const htmlFile of htmlFiles) { - try { - const htmlPath = path.join(detailDir, htmlFile); - const pngFile = htmlFile.replace('.html', '.png'); - const pngPath = path.join(detailDir, pngFile); - - console.log(`📄 正在转换: ${htmlFile}`); - - const fileUrl = `file:///${htmlPath.replace(/\\/g, '/')}`; - await page.goto(fileUrl, { - waitUntil: 'networkidle0', - timeout: 10000 - }); - - await page.screenshot({ - path: pngPath, - fullPage: true, - type: 'png' - }); - - console.log(`✅ 已生成: ${pngFile}\n`); - } catch (error) { - console.error(`❌ 转换失败 ${htmlFile}: ${error.message}\n`); - } - } - - await browser.close(); - - console.log('✨ 所有转换任务已完成!'); -} - -convertHtmlToPng().catch(error => { - console.error('💥 转换过程出错:', error); - process.exit(1); -}); diff --git a/.workbuddy/skills/image-tools/scripts/package-lock.json b/.workbuddy/skills/image-tools/scripts/package-lock.json deleted file mode 100644 index aeb08d3..0000000 --- a/.workbuddy/skills/image-tools/scripts/package-lock.json +++ /dev/null @@ -1,1666 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "membank", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@img/colour": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", - "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", - "license": "MIT", - "optional": true, - "dependencies": { - "undici-types": "~7.18.0" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "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/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/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.6.0.tgz", - "integrity": "sha512-2YkS7NuiJceSEbyEOdSNLE9tsGd+f4+f7C+Nik/MCk27SYdwIMPT/yRKvg++FZhQXgk0KWJKJyXX9RhVV0RGqA==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", - "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", - "license": "Apache-2.0", - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.12.0.tgz", - "integrity": "sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==", - "license": "Apache-2.0", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", - "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", - "license": "Apache-2.0", - "dependencies": { - "bare-path": "^3.0.0" - } - }, - "node_modules/basic-ftp": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", - "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chromium-bidi": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", - "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "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/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1581282", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz", - "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==", - "license": "BSD-3-Clause" - }, - "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/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "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/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "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-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "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==", - "license": "MIT" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.40.0.tgz", - "integrity": "sha512-IxQbDq93XHVVLWHrAkFP7F7iHvb9o0mgfsSIMlhHb+JM+JjM1V4v4MNSQfcRWJopx9dsNOr9adYv0U5fm9BJBQ==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1581282", - "puppeteer-core": "24.40.0", - "typed-query-selector": "^2.12.1" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.40.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.40.0.tgz", - "integrity": "sha512-MWL3XbUCfVgGR0gRsidzT6oKJT2QydPLhMITU6HoVWiiv4gkb6gJi3pcdAa8q4HwjBTbqISOWVP4aJiiyUJvag==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.13.0", - "chromium-bidi": "14.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1581282", - "typed-query-selector": "^2.12.1", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.19.0" - }, - "engines": { - "node": ">=18" - } - }, - "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/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamx": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", - "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "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/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/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", - "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "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==", - "license": "0BSD" - }, - "node_modules/typed-query-selector": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", - "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "license": "MIT", - "optional": true - }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", - "license": "Apache-2.0" - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", - "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "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/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/.workbuddy/skills/image-tools/scripts/package.json b/.workbuddy/skills/image-tools/scripts/package.json deleted file mode 100644 index 19e797c..0000000 --- a/.workbuddy/skills/image-tools/scripts/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "membank", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git@gitee.com:xiongmaojames/membank.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "puppeteer": "^24.40.0", - "sharp": "^0.34.5" - } -} diff --git a/.workbuddy/skills/image-tools/scripts/remove-watermark.js b/.workbuddy/skills/image-tools/scripts/remove-watermark.js deleted file mode 100644 index 145d160..0000000 --- a/.workbuddy/skills/image-tools/scripts/remove-watermark.js +++ /dev/null @@ -1,51 +0,0 @@ -const sharp = require('sharp'); -const path = require('path'); -const fs = require('fs'); - -const CROP_BOTTOM_HEIGHT = 300; - -async function removeWatermark() { - console.log('🖼️ 开始裁剪图片水印...\n'); - - const imageDir = path.join(__dirname, '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情', 'image'); - - const backupDir = path.join(imageDir, 'backup'); - - const imageFiles = fs.readdirSync(backupDir).filter(file => file.endsWith('.jpg')); - - console.log(`📸 找到 ${imageFiles.length} 张图片需要处理\n`); - console.log(`✂️ 裁剪设置: 从底部裁剪 ${CROP_BOTTOM_HEIGHT}px\n`); - - for (const imageFile of imageFiles) { - try { - const backupPath = path.join(backupDir, imageFile); - const imagePath = path.join(imageDir, imageFile); - - console.log(`📄 正在处理: ${imageFile}`); - - const metadata = await sharp(backupPath).metadata(); - - const newHeight = metadata.height - CROP_BOTTOM_HEIGHT; - - await sharp(backupPath) - .extract({ - left: 0, - top: 0, - width: metadata.width, - height: newHeight - }) - .toFile(imagePath); - - console.log(` ✅ 已裁剪: ${metadata.width}x${metadata.height} -> ${metadata.width}x${newHeight}\n`); - } catch (error) { - console.error(` ❌ 处理失败 ${imageFile}: ${error.message}\n`); - } - } - - console.log('✨ 所有图片处理完成!'); -} - -removeWatermark().catch(error => { - console.error('💥 处理过程出错:', error); - process.exit(1); -}); diff --git a/.workbuddy/skills/product-detail-designer/SKILL.md b/.workbuddy/skills/product-detail-designer/SKILL.md deleted file mode 100644 index 199f773..0000000 --- a/.workbuddy/skills/product-detail-designer/SKILL.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -name: product-detail-designer -description: 设计电商产品的详情页。当用户需要为产品生成详情页HTML、批量渲染SKU页面、或处理产品图片时使用此技能。 ---- - -# Product Detail Designer - -## 概述 - -根据产品的 SKU 和配置规范,生成对应的产品详情页 HTML,并转换为 PNG 图片。自动化处理从配置数据到最终展示页面的完整流程。 - -## 使用场景 - -- 有产品种类或 SKU 变化,需要重新生成详情页 -- 有产品图片变化,需要更新详情页 -- 需要批量为多个 SKU 生成对应的详情页 - -## 工作流程 - -### 步骤 1: 读取 SKU 配置 - -从 `产品` 目录下找到对应的产品目录 - - -### 步骤 2: 生成 HTML 文件 - -#### 详情页组成部分 -- 购买须知 - - 亚克力机箱需要自己组装,店铺会提供安装视频 - - 受成本限制,产品无法做到十全十美,完美主义者慎拍 -- 配置清单 -- 功能描述 -- 产品实拍图 -- 配件清单 -- 包装展示 -- 常见问题 - 1. 产品是否支持双CPU? - 2. 产品是否支持双内存条 - -- 严格按照详情页组成生成详情页,多余的删除掉 -- 需要用的产品图片,都放在对应产品目录的image目录下 -- html 按照宽750的分辨率生成 -- 一个产品有多个sku,但一个产品只需要一个详情页,不需要为每个sku生成详情页 -- 详情页放到每个产品对应的`详情`目录下 -- 配色采用绿色清晰的风格 - - - - -### 步骤 3: HTML 转 PNG 图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -```bash -cd ../image-tools/scripts -node convert-html-to-png.js -``` - -### 步骤 4: 裁剪图片水印 - -使用 `image-tools` 技能的 `remove-watermark.js` 脚本: - -```bash -node remove-watermark.js -``` diff --git a/.workbuddy/skills/product-detail-designer/scripts/render.js b/.workbuddy/skills/product-detail-designer/scripts/render.js deleted file mode 100644 index d269ed0..0000000 --- a/.workbuddy/skills/product-detail-designer/scripts/render.js +++ /dev/null @@ -1,133 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -// SKU 字段映射表 -const FIELD_MAP = { - '{{PRODUCT_NAME}}': 'productName', - '{{PRODUCT_SUBTITLE}}': 'productSubtitle', - '{{SKU_CODE}}': 'skuCode', - '{{CPU}}': 'cpu', - '{{MEMORY}}': 'memory', - '{{STORAGE}}': 'storage', - '{{CASE}}': 'case', - '{{POWER}}': 'power', - '{{CABLE}}': 'cable', - '{{BATTERY}}': 'battery', - '{{ETHERNET_CABLE}}': 'ethernetCable', - '{{SHIPPING_FEE}}': 'shippingFee', - '{{PACKAGING_FEE}}': 'packagingFee', - '{{ASSEMBLY_FEE}}': 'assemblyFee', - '{{TOTAL_COST}}': 'totalCost', - '{{RETAIL_PRICE}}': 'retailPrice', - '{{NOTE}}': 'note' -}; - -// 从 SKU markdown 文件解析字段 -function parseSkuFile(skuPath) { - const content = fs.readFileSync(skuPath, 'utf-8'); - const data = {}; - - content.split('\n').forEach(line => { - // 匹配格式: | **字段名** | 值 | 价格 | - const match = line.match(/\|\s*\*\*(.+?)\*\*\s*\|\s*(.+?)\s*\|/); - if (match) { - const [, fieldName, value] = match; - data[fieldName.trim()] = value.trim(); - } - }); - - return data; -} - -// 将 SKU 数据映射为模板变量 -function mapSkuToVariables(skuData) { - const cpu = skuData['CPU'] || ''; - const memory = skuData['内存'] || ''; - const storage = skuData['系统盘'] || ''; - const caseType = skuData['机箱'] || ''; - - return { - '{{PRODUCT_NAME}}': `飞牛NAS ${caseType}`, - '{{PRODUCT_SUBTITLE}}': '亚克力机箱 透明系列', - '{{SKU_CODE}}': skuData['产品型号'] || '', - '{{CPU}}': cpu, - '{{MEMORY}}': memory, - '{{STORAGE}}': storage, - '{{CASE}}': caseType, - '{{POWER}}': skuData['电源'] || '电源-60W', - '{{CABLE}}': skuData['硬盘线'] || '硬盘线-单', - '{{BATTERY}}': skuData['电池'] || '电池', - '{{ETHERNET_CABLE}}': skuData['网线'] || '网线', - '{{SHIPPING_FEE}}': skuData['运费']?.replace('¥', '') || '10', - '{{PACKAGING_FEE}}': skuData['包装费']?.replace('¥', '') || '5', - '{{ASSEMBLY_FEE}}': skuData['装机费']?.replace('¥', '') || '10', - '{{TOTAL_COST}}': skuData['总成本']?.replace('¥', '') || '0', - '{{RETAIL_PRICE}}': skuData['建议零售价']?.replace('¥', '') || '0', - '{{NOTE}}': skuData['备注'] || '' - }; -} - -// 渲染 HTML 模板 -function renderTemplate(templatePath, variables) { - let html = fs.readFileSync(templatePath, 'utf-8'); - - Object.entries(variables).forEach(([placeholder, value]) => { - html = html.split(placeholder).join(value); - }); - - return html; -} - -// 主函数:生成亚克力单详情页 -function generateDetailPages(skuFilePath, outputDir) { - const skuData = parseSkuFile(skuFilePath); - const variables = mapSkuToVariables(skuData); - - const skuCode = variables['{{SKU_CODE}}']; - const productType = '亚克力单'; - const templateDir = path.join(__dirname, '..', 'assets', 'templates', productType); - - // 创建输出目录 - const productOutputDir = path.join(outputDir, skuCode); - if (!fs.existsSync(productOutputDir)) { - fs.mkdirSync(productOutputDir, { recursive: true }); - } - - // 模板列表 - const templates = [ - '配置清单-1.html', - '配置清单-2.html', - '商品卖点.html', - '功能描述.html', - '使用场景.html', - '配件清单.html', - '包装展示.html' - ]; - - templates.forEach(template => { - const templatePath = path.join(templateDir, template); - if (!fs.existsSync(templatePath)) { - console.log(`跳过(模板不存在): ${template}`); - return; - } - - const html = renderTemplate(templatePath, variables); - const outputPath = path.join(productOutputDir, template); - fs.writeFileSync(outputPath, html, 'utf-8'); - console.log(`已生成: ${outputPath}`); - }); - - console.log(`\n完成!共生成 ${templates.length} 个 HTML 文件到: ${productOutputDir}`); -} - -// 使用示例 -const skuFile = process.argv[2]; -const outputDir = process.argv[3] || path.join(__dirname, '..', '..', '..', '产品', '飞牛 NAS', 'fyd-亚克力机箱 - 单', '详情'); - -if (!skuFile) { - console.log('用法: node render.js [输出目录]'); - console.log('示例: node render.js ../产品/飞牛NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md'); - process.exit(1); -} - -generateDetailPages(skuFile, outputDir); diff --git a/.workbuddy/skills/product-main-image/SKILL.md b/.workbuddy/skills/product-main-image/SKILL.md deleted file mode 100644 index cadac53..0000000 --- a/.workbuddy/skills/product-main-image/SKILL.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -name: 商品主图设计 -description: 设计电商产品的主图。当用户需要为产品生成主图图片或海报时使用此技能。 ---- - -# 商品主图设计 - -## 概述 - --为每个产品生成主图图片 --主图图片放到每个产品对应的`主图`目录下 -## 使用场景 - -- 有产品主图需要更新 - -## 工作流程 - -### 步骤 1: 准备素材 -- 根据产品详情页,归纳出主图要展示的信息 - -- 可以使用产品目录下`image`目录中的图片作为素材 - - - -### 步骤 2: 设计主图html -- 主图尺寸:800*800 -- 一个主图一个html - - -### 步骤 3: 导出图片 - -使用 `image-tools` 技能的 `convert-html-to-png.js` 脚本: - -## 主图规范 - - - -## 配色参考 - - - -## 字体规范 - - - -## 示例模板 - - - diff --git a/.workbuddy/skills/sku-designer/SKILL.md b/.workbuddy/skills/sku-designer/SKILL.md deleted file mode 100644 index 544d4f6..0000000 --- a/.workbuddy/skills/sku-designer/SKILL.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -name: sku-designer -description: 设计电商产品的 SKU 配置。当用户需要为产品生成 SKU 配置时使用此技能。 ---- - -# SKU 设计 - -## Overview - -- 为每个产品生成 SKU 配置 -- 将 SKU 配置放到每个产品对应的 `sku` 目录下(小写) - -## 产品目录组织原则 - -每个产品目录必须遵循以下标准结构: - -``` -产品名称/ -├── 商品标题.md # 电商商品标题关键词,一行文本 -├── sku/ # SKU配置目录(小写),每个SKU一个独立.md文件 -│ ├── [机箱]-[单/双]-[CPU]-[内存]-[硬盘].md -│ └── ... -├── image/ # 产品实拍图片(原图) -├── 主图/ # 电商主图(html + png) -│ ├── 主图1-xxx.html -│ ├── 主图1-xxx.png -│ └── ... -└── 详情/ # 商品详情页(html + png) - ├── xxx_详情页.html - └── xxx_详情页.png -``` - -### SKU 文件命名规则 -- 文件名格式:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` -- "单/双"指该机箱版本对应的SATA口数(单=单SATA口,双=双SATA口) -- 示例:`2.5金-单-N2840-4G-32G.md`、`3.5大-双-1037U-4G-32G.md`、`3.5小-单-N2930-4G-32G.md`、`3.5小-双-1037U-4G-32G.md` - -### 机箱与CPU匹配原则 -- 机箱标注"单"(单SATA口)只能配单SATA口CPU:N2840, N2930, AMD-A4, J1800, J1900, J3160, 3855U -- 机箱标注"双"(双SATA口)只能配双SATA口CPU:1037U, 3217U, 5005U -- 机箱标注"单/双"(如3.5寸小)支持两种SATA口,需分别生成单/双版本SKU - -### SKU 文件内容格式 -每个SKU文件包含一个产品信息表格,字段如下: - -```markdown -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS [产品线] [机箱] [CPU] | - | -| **产品型号** | [机箱]-[盘位]-[CPU]-[内存]-[硬盘] | - | -| **用途分类** | NAS | - | -| **CPU** | [CPU型号] | ¥[价格] | -| **内存** | D3-[容量] | ¥[价格] | -| **系统盘** | mSATA-[容量] | ¥[价格] | -| **机箱** | [机箱名称] | ¥[价格] | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单/双 | ¥4/5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | (如需要) -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥[总计] | -| **建议零售价** | - | ¥[售价] | -| **备注** | [描述] | - | -``` - -> 注意:双SATA转换器仅在单SATA口主板需要扩展盘位时添加 - -## SKU 编码规则 - -- 按照 [系统]-[机箱]-[盘位]-[wifi/有]-[cpu]-[内存]-[硬盘] 规则生成sku名称 -- 每个字段之间用短横线连接,字段用简称,如:win-3.5-4-w-i3-8g-128g - - -## 设计流程 - -### 步骤1. 更新对应产品的sku,根据设计原则添加或者删除sku -- 根据对应机箱设计原则,选择cpu,内存,硬盘 -- 按照SKU编码规则生成SKU名称 -- 按照产品目录组织原则,确保目录结构完整(商品标题.md、sku/、image/、主图/、详情/) -- 每个SKU生成一个独立的.md文件,放到`sku/`目录下 -- SKU文件命名:`[机箱简称]-[单/双]-[CPU型号]-[内存容量]-[硬盘容量].md` -- SKU文件内容按照标准产品信息表格格式填写 - -### 步骤2 计算与核对产品价格 -- 根据配件清单,计算产品价格 -- 计算价格必须使用计算工具计算 - -### 步骤3 更新产品信息 - -- 更新产品信息到产品信息汇总表 - - -## 飞牛 NAS产设计原则 - -### 基础版-金 -- 机箱与CPU对应: - - 2.5金-单(单SATA口):amd-a4, n2840, n2930, j1800 - - 3.5金属大-双(双SATA口):1037u - - 3.5金属小-单(单SATA口):amd-a4, n2840, n2930, j1800 - - 3.5金属小-双(双SATA口):1037u -- 内存-硬盘: 4G-32G -- 建议零售价: 成本+30 - -### 基础版-亚 -- 机箱与CPU对应: - - 亚克力-双(双SATA口):1037u - - 亚克力-单(单SATA口):amd-a4, n2840, n2930, j1800 -- 内存-硬盘: 4G-32G -- 建议零售价: 成本+30 - -### 高性能版-金大-i3 - - 使用金属大机箱 - - cpu 可使用所有i3cpu - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:2代+50,3代+60,4代+70,5代+80 - -### 高性能版-金大-i5 - - 使用金属大机箱 - - cpu 可使用所有i5cpu - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G -- 建议零售价: 成本+80 - - - -### 高性能版-金大-j1900 - - 使用金属大机箱 - - cpu j1900 - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 支持双盘位 - - 建议零售价: 成本+50 -### 高性能版-金大-j3160 - - 使用金属大机箱 - - cpu j3160 - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 支持双盘位 - - 建议零售价: 成本+70 -### 高性能版-金-i5 -### 高性能版-亚-双-i3 - - 使用亚克力-双机箱 - - cpu 可使用所有i3cpu(双SATA口) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:2代+50,3代+60,4代+70,5代+80 -### 高性能版-亚-双-i5 - - 使用亚克力-双机箱 - - cpu 可使用所有i5cpu(双SATA口) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+80 -### 高性能版-亚-双-j1900 - - 使用亚克力-双机箱 - - cpu j1900(单SATA口,需双SATA转换器) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+50 -### 高性能版-亚-双-j3160 - - 使用亚克力-双机箱 - - cpu j3160(单SATA口,需双SATA转换器) - - 内存硬盘可用:4G-32G,4G-64G,8g-64G,8G-128G - - 建议零售价:成本+70 - -### 亚克力机箱-单 配置原则 -- 可安装单SATA口主板 -- 可用CPU:N2840,N2930,AMD-A4,J1900,J3160 -- 可用内存:2G-16G,2G-32G,4G-64G,4G-128G -#### -推荐价格: -- 配2G内存的成本加20作为推荐售价 -- 配4G内存的成本加30作为推荐售价 - -### 亚克力机箱-双 配置原则 -- 可安装双SATA口主板 -- 可用CPU:1037U,i3-3217U,i3-5005U -- 可用内存:2G-16G,2G-32G,4G-64G,4G-128G,8G-128G -## win 小主机产设计原则 -- win小主机全部使用2.5存机箱 -### 龙虾盒子 -- cpu 可使用:i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 标配无线网卡 -- 可以选装hd500G硬盘 -### win10 小主机 -- cpu 可使用:1037u,i3-3217u,i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 可选无线网卡 -- 可以选装hd500G硬盘 -### 挂机宝 -- 分为一拖一,和一拖三两种 -#### 一拖一 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 可选硬盘:hd500G -- 使用2.5 金属机箱 -- 可选无线网卡 -#### 一拖三 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 使用一拖三亚克力机箱 -- 可选无线网卡 diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 72bb91b..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,42 +0,0 @@ -## 飞牛 NAS产设计原则 -### 3.5金属大配置原则 -- 3.5金属大,用于3盘位和4盘位,通过双sata转化器,主板单sata口就是3盘位,主板双sata口就是4盘位 -- 3.5金属大可安装cpu:j1900,j3160,i3-3217u,i3-5005u,3855u,1037u -- 3.5金属大可安装内存和系统盘: 4G-32G,4G-64G,8G-64G,8G-128G -### 3.5金属小配置原则 -- 3.5金属小可安装cpu:j1900,j3160,i3-3217u,i3-5005u,3855u,1037u -- 3.5金属小,可安装一个2.5和一个3.5,配单sata口主板就是单3.5 ,双sata口主板就是 3.5+2.5 -- 3.5金属小可安装内存和系统盘: 4G-32G,4G-64G,8G-64G,8G-128G -### 亚克力机箱配置原则 -- 亚克力机箱-单,可安装所有单sata口 -- 亚克力机箱-双,可安装所有双sata口 -- 亚克力机箱,可以使用2G-16G,2G-32G,4G-64G,4G-128G内存条 -- 亚克力机箱-单可安装:n2840,n2930,amd-a4,j1900,j3160 -- 亚克力机箱-双可安装:1037u,i3-3217u,i3-5005u -## win 小主机产设计原则 -- win小主机全部使用2.5存机箱 -### 龙虾盒子 -- cpu 可使用:i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 标配无线网卡 -- 可以选装hd500G硬盘 -### win10 小主机 -- cpu 可使用:1037u,i3-3217u,i3-5005u,3855u -- 内存硬盘可使用:4G-64G,4G-128G,8G-128G -- 可选无线网卡 -- 可以选装hd500G硬盘 -### 挂机宝 -- 分为一拖一,和一拖三两种 -#### 一拖一 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 可选硬盘:hd500G -- 使用2.5 金属机箱 -- 可选无线网卡 -#### 一拖三 -- 可选cpu:1037u,i3-3217u,i3-5005u,3855u -- 可选内存-系统盘:4G-64G,4G-128G,8G-128G -- 使用一拖三亚克力机箱 -- 可选无线网卡 - -## 商品详情页设计原则 diff --git a/产品/linux主机/价格表.md b/产品/linux主机/价格表.md new file mode 100644 index 0000000..de97317 --- /dev/null +++ b/产品/linux主机/价格表.md @@ -0,0 +1,12 @@ +# Linux主机 产品价格表 + +> 更新日期:2026-04-26 +> 说明:Linux主机产品配置及价格待补充 + +## 产品目录结构 + +- `sku/` - SKU配置文件 +- `image/` - 产品图片 +- `详情/` - 产品详情页 + +**产品清单待完善** \ No newline at end of file diff --git a/产品/win 小主机/win10小主机/价格表.md b/产品/win 小主机/win10小主机/价格表.md new file mode 100644 index 0000000..ac55b36 --- /dev/null +++ b/产品/win 小主机/win10小主机/价格表.md @@ -0,0 +1,35 @@ +# Win10小主机 产品价格表 + +> 更新日期:2026-04-26 +> CPU:1037U, 3217U, 3855U, 5005U +> 内存硬盘:4G-64G, 4G-128G, 8G-128G +> 可选无线网卡(wifi版本),可选HD500G硬盘 + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | win10-1037U-4G-64G | 待定 | 待定 | - | - | +| 2 | win10-1037U-4G-64G-wifi | 待定 | 待定 | - | - | +| 3 | win10-1037U-4G-128G | 待定 | 待定 | - | - | +| 4 | win10-1037U-4G-128G-wifi | 待定 | 待定 | - | - | +| 5 | win10-1037U-8G-128G | 待定 | 待定 | - | - | +| 6 | win10-1037U-8G-128G-wifi | 待定 | 待定 | - | - | +| 7 | win10-3217U-4G-64G | 待定 | 待定 | - | - | +| 8 | win10-3217U-4G-64G-wifi | 待定 | 待定 | - | - | +| 9 | win10-3217U-4G-128G | 待定 | 待定 | - | - | +| 10 | win10-3217U-4G-128G-wifi | 待定 | 待定 | - | - | +| 11 | win10-3217U-8G-128G | 待定 | 待定 | - | - | +| 12 | win10-3217U-8G-128G-wifi | 待定 | 待定 | - | - | +| 13 | win10-3855U-4G-64G | 待定 | 待定 | - | - | +| 14 | win10-3855U-4G-64G-wifi | 待定 | 待定 | - | - | +| 15 | win10-3855U-4G-128G | 待定 | 待定 | - | - | +| 16 | win10-3855U-4G-128G-wifi | 待定 | 待定 | - | - | +| 17 | win10-3855U-8G-128G | 待定 | 待定 | - | - | +| 18 | win10-3855U-8G-128G-wifi | 待定 | 待定 | - | - | +| 19 | win10-5005U-4G-64G | 待定 | 待定 | - | - | +| 20 | win10-5005U-4G-64G-wifi | 待定 | 待定 | - | - | +| 21 | win10-5005U-4G-128G | 待定 | 待定 | - | - | +| 22 | win10-5005U-4G-128G-wifi | 待定 | 待定 | - | - | +| 23 | win10-5005U-8G-128G | 待定 | 待定 | - | - | +| 24 | win10-5005U-8G-128G-wifi | 待定 | 待定 | - | - | + +**合计:24 款(待完善成本售价)** \ No newline at end of file diff --git a/产品/win 小主机/挂机宝/价格表.md b/产品/win 小主机/挂机宝/价格表.md new file mode 100644 index 0000000..3465ab1 --- /dev/null +++ b/产品/win 小主机/挂机宝/价格表.md @@ -0,0 +1,41 @@ +# 挂机宝 产品价格表 + +> 更新日期:2026-04-26 +> 机箱:2.5金属机箱 +> 可选无线网卡,可选HD500G硬盘 + +## 一拖一(12款) + +| 序号 | 产品型号 | CPU | 内存 | 系统盘 | +|:---:|---------|:---:|:----:|:------:| +| 1 | 一拖一-1037U-4G-64G | 1037U | 4G | 64G | +| 2 | 一拖一-1037U-4G-128G | 1037U | 4G | 128G | +| 3 | 一拖一-1037U-8G-128G | 1037U | 8G | 128G | +| 4 | 一拖一-3217U-4G-64G | 3217U | 4G | 64G | +| 5 | 一拖一-3217U-4G-128G | 3217U | 4G | 128G | +| 6 | 一拖一-3217U-8G-128G | 3217U | 8G | 128G | +| 7 | 一拖一-3855U-4G-64G | 3855U | 4G | 64G | +| 8 | 一拖一-3855U-4G-128G | 3855U | 4G | 128G | +| 9 | 一拖一-3855U-8G-128G | 3855U | 8G | 128G | +| 10 | 一拖一-5005U-4G-64G | 5005U | 4G | 64G | +| 11 | 一拖一-5005U-4G-128G | 5005U | 4G | 128G | +| 12 | 一拖一-5005U-8G-128G | 5005U | 8G | 128G | + +## 一拖三(12款) + +| 序号 | 产品型号 | CPU | 内存 | 系统盘 | +|:---:|---------|:---:|:----:|:------:| +| 13 | 一拖三-1037U-4G-64G | 1037U | 4G | 64G | +| 14 | 一拖三-1037U-4G-128G | 1037U | 4G | 128G | +| 15 | 一拖三-1037U-8G-128G | 1037U | 8G | 128G | +| 16 | 一拖三-3217U-4G-64G | 3217U | 4G | 64G | +| 17 | 一拖三-3217U-4G-128G | 3217U | 4G | 128G | +| 18 | 一拖三-3217U-8G-128G | 3217U | 8G | 128G | +| 19 | 一拖三-3855U-4G-64G | 3855U | 4G | 64G | +| 20 | 一拖三-3855U-4G-128G | 3855U | 4G | 128G | +| 21 | 一拖三-3855U-8G-128G | 3855U | 8G | 128G | +| 22 | 一拖三-5005U-4G-64G | 5005U | 4G | 64G | +| 23 | 一拖三-5005U-4G-128G | 5005U | 4G | 128G | +| 24 | 一拖三-5005U-8G-128G | 5005U | 8G | 128G | + +**合计:24 款(待完善成本售价)** \ No newline at end of file diff --git a/产品/win 小主机/龙虾盒子/价格表.md b/产品/win 小主机/龙虾盒子/价格表.md new file mode 100644 index 0000000..80e1f83 --- /dev/null +++ b/产品/win 小主机/龙虾盒子/价格表.md @@ -0,0 +1,17 @@ +# 龙虾盒子 产品价格表 + +> 更新日期:2026-04-26 +> CPU:i3-5005U, 3855U +> 内存硬盘:4G-64G, 4G-128G, 8G-128G +> 标配无线网卡,可选装HD500G硬盘 + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | openclaw-3855U-4G-64G | 待定 | 待定 | - | - | +| 2 | openclaw-3855U-4G-128G | 待定 | 待定 | - | - | +| 3 | openclaw-3855U-8G-128G | 待定 | 待定 | - | - | +| 4 | openclaw-5005U-4G-64G | 待定 | 待定 | - | - | +| 5 | openclaw-5005U-4G-128G | 待定 | 待定 | - | - | +| 6 | openclaw-5005U-8G-128G | 待定 | 待定 | - | - | + +**合计:6 款(待完善成本售价)** \ No newline at end of file diff --git a/产品/产品价格汇总表.md b/产品/产品价格汇总表.md deleted file mode 100644 index 72c66b2..0000000 --- a/产品/产品价格汇总表.md +++ /dev/null @@ -1,216 +0,0 @@ -# 全部产品成本与售价汇总表 - -> 更新日期:2026-04-26 -> 定价策略:亚克力单:2G内存成本+20元,4G内存成本+30元;基础版:成本+30;高性能版i3:2代+50,3代+60,4代+70,5代+80;高性能版i5:成本+80;高性能版J1900:成本+50;高性能版J3160:成本+70 - ---- - -## 一、飞牛 NAS - 亚克力机箱单(16 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-单-N2840-2G-16G | ¥136 | ¥156 | ¥20 | 15% | -| 2 | 亚克力-单-N2930-2G-16G | ¥141 | ¥161 | ¥20 | 14% | -| 3 | 亚克力-单-N2930-2G-32G | ¥146 | ¥166 | ¥20 | 14% | -| 4 | 亚克力-单-N2930-4G-64G | ¥178 | ¥208 | ¥30 | 17% | -| 5 | 亚克力-单-N2930-4G-128G | ¥206 | ¥236 | ¥30 | 15% | -| 6 | 亚克力-单-AMD-A4-2G-16G | ¥136 | ¥156 | ¥20 | 15% | -| 7 | 亚克力-单-AMD-A4-2G-32G | ¥141 | ¥161 | ¥20 | 14% | -| 8 | 亚克力-单-AMD-A4-4G-64G | ¥173 | ¥203 | ¥30 | 17% | -| 9 | 亚克力-单-J1900-2G-16G | ¥171 | ¥191 | ¥20 | 12% | -| 10 | 亚克力-单-J1900-2G-32G | ¥176 | ¥196 | ¥20 | 11% | -| 11 | 亚克力-单-J1900-4G-64G | ¥208 | ¥238 | ¥30 | 14% | -| 12 | 亚克力-单-J1900-4G-128G | ¥236 | ¥266 | ¥30 | 13% | -| 13 | 亚克力-单-J3160-2G-16G | ¥181 | ¥201 | ¥20 | 11% | -| 14 | 亚克力-单-J3160-2G-32G | ¥186 | ¥206 | ¥20 | 11% | -| 15 | 亚克力-单-J3160-4G-64G | ¥218 | ¥248 | ¥30 | 14% | -| 16 | 亚克力-单-J3160-4G-128G | ¥246 | ¥276 | ¥30 | 12% | - ---- - -## 二、飞牛 NAS - 亚克力机箱双(12 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-双-1037U-2G-16G | ¥173 | ¥225 | ¥52 | 30% | -| 2 | 亚克力-双-1037U-2G-32G | ¥178 | ¥231 | ¥53 | 30% | -| 3 | 亚克力-双-1037U-4G-64G | ¥210 | ¥273 | ¥63 | 30% | -| 4 | 亚克力-双-1037U-4G-128G | ¥238 | ¥309 | ¥71 | 30% | -| 5 | 亚克力-双-3217U-2G-16G | ¥173 | ¥225 | ¥52 | 30% | -| 6 | 亚克力-双-3217U-2G-32G | ¥178 | ¥231 | ¥53 | 30% | -| 7 | 亚克力-双-3217U-4G-64G | ¥210 | ¥273 | ¥63 | 30% | -| 8 | 亚克力-双-3217U-4G-128G | ¥238 | ¥309 | ¥71 | 30% | -| 9 | 亚克力-双-5005U-2G-16G | ¥268 | ¥349 | ¥81 | 30% | -| 10 | 亚克力-双-5005U-2G-32G | ¥273 | ¥355 | ¥82 | 30% | -| 11 | 亚克力-双-5005U-4G-64G | ¥305 | ¥397 | ¥92 | 30% | -| 12 | 亚克力-双-5005U-4G-128G | ¥333 | ¥433 | ¥100 | 30% | - ---- - -## 三、飞牛 NAS - 高性能版 金大 i3(16 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 3.5大-双-i3-2代-4G-32G | ¥212 | ¥262 | ¥50 | 24% | -| 2 | 3.5大-双-i3-2代-4G-64G | ¥232 | ¥282 | ¥50 | 22% | -| 3 | 3.5大-双-i3-2代-8G-64G | ¥282 | ¥332 | ¥50 | 18% | -| 4 | 3.5大-双-i3-2代-8G-128G | ¥310 | ¥360 | ¥50 | 16% | -| 5 | 3.5大-双-i3-3代-4G-32G | ¥222 | ¥282 | ¥60 | 27% | -| 6 | 3.5大-双-i3-3代-4G-64G | ¥242 | ¥302 | ¥60 | 25% | -| 7 | 3.5大-双-i3-3代-8G-64G | ¥292 | ¥352 | ¥60 | 21% | -| 8 | 3.5大-双-i3-3代-8G-128G | ¥320 | ¥380 | ¥60 | 19% | -| 9 | 3.5大-双-i3-4代-4G-32G | ¥267 | ¥337 | ¥70 | 26% | -| 10 | 3.5大-双-i3-4代-4G-64G | ¥287 | ¥357 | ¥70 | 24% | -| 11 | 3.5大-双-i3-4代-8G-64G | ¥337 | ¥407 | ¥70 | 21% | -| 12 | 3.5大-双-i3-4代-8G-128G | ¥365 | ¥435 | ¥70 | 19% | -| 13 | 3.5大-双-i3-5代-4G-32G | ¥307 | ¥387 | ¥80 | 26% | -| 14 | 3.5大-双-i3-5代-4G-64G | ¥327 | ¥407 | ¥80 | 24% | -| 15 | 3.5大-双-i3-5代-8G-64G | ¥377 | ¥457 | ¥80 | 21% | -| 16 | 3.5大-双-i3-5代-8G-128G | ¥405 | ¥485 | ¥80 | 20% | - ---- - -## 四、飞牛 NAS - 高性能版 金大 i5(8 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 3.5大-双-i5-2代-4G-32G | ¥242 | ¥322 | ¥80 | 33% | -| 2 | 3.5大-双-i5-2代-4G-64G | ¥262 | ¥342 | ¥80 | 31% | -| 3 | 3.5大-双-i5-2代-8G-64G | ¥312 | ¥392 | ¥80 | 26% | -| 4 | 3.5大-双-i5-2代-8G-128G | ¥340 | ¥420 | ¥80 | 24% | -| 5 | 3.5大-双-i5-3代-4G-32G | ¥267 | ¥347 | ¥80 | 30% | -| 6 | 3.5大-双-i5-3代-4G-64G | ¥287 | ¥367 | ¥80 | 28% | -| 7 | 3.5大-双-i5-3代-8G-64G | ¥337 | ¥417 | ¥80 | 24% | -| 8 | 3.5大-双-i5-3代-8G-128G | ¥365 | ¥445 | ¥80 | 22% | - ---- - -## 五、飞牛 NAS - 高性能版 金大 J1900(4 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 3.5大-双-J1900-4G-32G | ¥265 | ¥315 | ¥50 | 19% | -| 2 | 3.5大-双-J1900-4G-64G | ¥285 | ¥335 | ¥50 | 18% | -| 3 | 3.5大-双-J1900-8G-64G | ¥335 | ¥385 | ¥50 | 15% | -| 4 | 3.5大-双-J1900-8G-128G | ¥363 | ¥413 | ¥50 | 14% | - ---- - -## 六、飞牛 NAS - 高性能版 金大 J3160(4 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 3.5大-双-J3160-4G-32G | ¥275 | ¥345 | ¥70 | 25% | -| 2 | 3.5大-双-J3160-4G-64G | ¥295 | ¥365 | ¥70 | 24% | -| 3 | 3.5大-双-J3160-8G-64G | ¥345 | ¥415 | ¥70 | 20% | -| 4 | 3.5大-双-J3160-8G-128G | ¥373 | ¥443 | ¥70 | 19% | - ---- - -## 七、飞牛 NAS - 高性能版 亚-双 i3(16 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-双-i3-2代-4G-32G | ¥190 | ¥240 | ¥50 | 26% | -| 2 | 亚克力-双-i3-2代-4G-64G | ¥210 | ¥260 | ¥50 | 24% | -| 3 | 亚克力-双-i3-2代-8G-64G | ¥260 | ¥310 | ¥50 | 19% | -| 4 | 亚克力-双-i3-2代-8G-128G | ¥288 | ¥338 | ¥50 | 17% | -| 5 | 亚克力-双-i3-3代-4G-32G | ¥200 | ¥260 | ¥60 | 30% | -| 6 | 亚克力-双-i3-3代-4G-64G | ¥220 | ¥280 | ¥60 | 27% | -| 7 | 亚克力-双-i3-3代-8G-64G | ¥270 | ¥330 | ¥60 | 22% | -| 8 | 亚克力-双-i3-3代-8G-128G | ¥298 | ¥358 | ¥60 | 20% | -| 9 | 亚克力-双-i3-4代-4G-32G | ¥245 | ¥315 | ¥70 | 29% | -| 10 | 亚克力-双-i3-4代-4G-64G | ¥265 | ¥335 | ¥70 | 26% | -| 11 | 亚克力-双-i3-4代-8G-64G | ¥315 | ¥385 | ¥70 | 22% | -| 12 | 亚克力-双-i3-4代-8G-128G | ¥343 | ¥413 | ¥70 | 20% | -| 13 | 亚克力-双-i3-5代-4G-32G | ¥285 | ¥365 | ¥80 | 28% | -| 14 | 亚克力-双-i3-5代-4G-64G | ¥305 | ¥385 | ¥80 | 26% | -| 15 | 亚克力-双-i3-5代-8G-64G | ¥355 | ¥435 | ¥80 | 23% | -| 16 | 亚克力-双-i3-5代-8G-128G | ¥383 | ¥463 | ¥80 | 21% | - ---- - -## 八、飞牛 NAS - 高性能版 亚-双 i5(8 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-双-i5-2代-4G-32G | ¥220 | ¥300 | ¥80 | 36% | -| 2 | 亚克力-双-i5-2代-4G-64G | ¥240 | ¥320 | ¥80 | 33% | -| 3 | 亚克力-双-i5-2代-8G-64G | ¥290 | ¥370 | ¥80 | 28% | -| 4 | 亚克力-双-i5-2代-8G-128G | ¥318 | ¥398 | ¥80 | 25% | -| 5 | 亚克力-双-i5-3代-4G-32G | ¥245 | ¥325 | ¥80 | 33% | -| 6 | 亚克力-双-i5-3代-4G-64G | ¥265 | ¥345 | ¥80 | 30% | -| 7 | 亚克力-双-i5-3代-8G-64G | ¥315 | ¥395 | ¥80 | 25% | -| 8 | 亚克力-双-i5-3代-8G-128G | ¥343 | ¥423 | ¥80 | 23% | - ---- - -## 九、飞牛 NAS - 高性能版 亚-双 J1900(4 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-双-J1900-4G-32G | ¥243 | ¥293 | ¥50 | 21% | -| 2 | 亚克力-双-J1900-4G-64G | ¥263 | ¥313 | ¥50 | 19% | -| 3 | 亚克力-双-J1900-8G-64G | ¥313 | ¥363 | ¥50 | 16% | -| 4 | 亚克力-双-J1900-8G-128G | ¥341 | ¥391 | ¥50 | 15% | - ---- - -## 十、飞牛 NAS - 高性能版 亚-双 J3160(4 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-双-J3160-4G-32G | ¥253 | ¥323 | ¥70 | 28% | -| 2 | 亚克力-双-J3160-4G-64G | ¥273 | ¥343 | ¥70 | 26% | -| 3 | 亚克力-双-J3160-8G-64G | ¥323 | ¥393 | ¥70 | 22% | -| 4 | 亚克力-双-J3160-8G-128G | ¥351 | ¥421 | ¥70 | 20% | - ---- - -## 十一、飞牛 NAS - 基础版 金属机箱(10 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 2.5金-单-J1800-4G-32G | ¥161 | ¥191 | ¥30 | 19% | -| 2 | 2.5金-单-N2840-4G-32G | ¥166 | ¥196 | ¥30 | 18% | -| 3 | 2.5金-单-AMD-A4-4G-32G | ¥166 | ¥196 | ¥30 | 18% | -| 4 | 2.5金-单-N2930-4G-32G | ¥171 | ¥201 | ¥30 | 18% | -| 5 | 3.5小-单-J1800-4G-32G | ¥188 | ¥218 | ¥30 | 16% | -| 6 | 3.5小-单-N2840-4G-32G | ¥193 | ¥223 | ¥30 | 16% | -| 7 | 3.5小-单-AMD-A4-4G-32G | ¥193 | ¥223 | ¥30 | 16% | -| 8 | 3.5小-单-N2930-4G-32G | ¥198 | ¥228 | ¥30 | 15% | -| 9 | 3.5小-双-1037U-4G-32G | ¥204 | ¥234 | ¥30 | 15% | -| 10 | 3.5大-双-1037U-4G-32G | ¥212 | ¥242 | ¥30 | 14% | - ---- - -## 十二、飞牛 NAS - 基础版 亚克力机箱(5 款) - -| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | -|:---:|---------|:----:|:----:|:----:|:------:| -| 1 | 亚克力-单-J1800-4G-32G | ¥148 | ¥178 | ¥30 | 20% | -| 2 | 亚克力-单-N2840-4G-32G | ¥153 | ¥183 | ¥30 | 20% | -| 3 | 亚克力-单-AMD-A4-4G-32G | ¥153 | ¥183 | ¥30 | 20% | -| 4 | 亚克力-单-N2930-4G-32G | ¥158 | ¥188 | ¥30 | 19% | -| 5 | 亚克力-双-1037U-4G-32G | ¥190 | ¥220 | ¥30 | 16% | - ---- - -## 📈 价格区间统计 - -| 产品系列 | 产品数量 | 最低成本 | 最高成本 | 最低售价 | 最高售价 | -|---------|:--------:|:--------:|:--------:|:--------:|:--------:| -| 飞牛NAS-亚克力机箱单 | 16 款 | ¥136 | ¥246 | ¥156 | ¥276 | -| 飞牛NAS-亚克力机箱双 | 12 款 | ¥173 | ¥276 | ¥225 | ¥359 | -| 飞牛NAS-高性能版金大i3 | 16 款 | ¥212 | ¥405 | ¥262 | ¥485 | -| 飞牛NAS-高性能版金大i5 | 8 款 | ¥242 | ¥365 | ¥322 | ¥445 | -| 飞牛NAS-高性能版金大J1900 | 4 款 | ¥265 | ¥363 | ¥315 | ¥413 | -| 飞牛NAS-高性能版金大J3160 | 4 款 | ¥275 | ¥373 | ¥345 | ¥443 | -| 飞牛NAS-高性能版亚-双i3 | 16 款 | ¥190 | ¥383 | ¥240 | ¥463 | -| 飞牛NAS-高性能版亚-双i5 | 8 款 | ¥220 | ¥343 | ¥300 | ¥423 | -| 飞牛NAS-高性能版亚-双J1900 | 4 款 | ¥243 | ¥341 | ¥293 | ¥391 | -| 飞牛NAS-高性能版亚-双J3160 | 4 款 | ¥253 | ¥351 | ¥323 | ¥421 | -| 飞牛NAS-基础版金属机箱 | 10 款 | ¥161 | ¥212 | ¥191 | ¥242 | -| 飞牛NAS-基础版亚克力机箱 | 5 款 | ¥148 | ¥190 | ¥178 | ¥220 | - -**全部产品合计:107 款** diff --git a/产品/飞牛 NAS/fjd-金属机箱3.5寸大/价格表.md b/产品/飞牛 NAS/fjd-金属机箱3.5寸大/价格表.md new file mode 100644 index 0000000..1524456 --- /dev/null +++ b/产品/飞牛 NAS/fjd-金属机箱3.5寸大/价格表.md @@ -0,0 +1,58 @@ +# 3.5寸金属大 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:高性能版i3:2代+50,3代+60,4代+70,5代+80;高性能版i5:成本+80 + +## 高性能版 金大 i3(16款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 3.5大-双-i3-2代-4G-32G | ¥212 | ¥262 | ¥50 | 24% | +| 2 | 3.5大-双-i3-2代-4G-64G | ¥232 | ¥282 | ¥50 | 22% | +| 3 | 3.5大-双-i3-2代-8G-64G | ¥282 | ¥332 | ¥50 | 18% | +| 4 | 3.5大-双-i3-2代-8G-128G | ¥310 | ¥360 | ¥50 | 16% | +| 5 | 3.5大-双-i3-3代-4G-32G | ¥222 | ¥282 | ¥60 | 27% | +| 6 | 3.5大-双-i3-3代-4G-64G | ¥242 | ¥302 | ¥60 | 25% | +| 7 | 3.5大-双-i3-3代-8G-64G | ¥292 | ¥352 | ¥60 | 21% | +| 8 | 3.5大-双-i3-3代-8G-128G | ¥320 | ¥380 | ¥60 | 19% | +| 9 | 3.5大-双-i3-4代-4G-32G | ¥267 | ¥337 | ¥70 | 26% | +| 10 | 3.5大-双-i3-4代-4G-64G | ¥287 | ¥357 | ¥70 | 24% | +| 11 | 3.5大-双-i3-4代-8G-64G | ¥337 | ¥407 | ¥70 | 21% | +| 12 | 3.5大-双-i3-4代-8G-128G | ¥365 | ¥435 | ¥70 | 19% | +| 13 | 3.5大-双-i3-5代-4G-32G | ¥307 | ¥387 | ¥80 | 26% | +| 14 | 3.5大-双-i3-5代-4G-64G | ¥327 | ¥407 | ¥80 | 24% | +| 15 | 3.5大-双-i3-5代-8G-64G | ¥377 | ¥457 | ¥80 | 21% | +| 16 | 3.5大-双-i3-5代-8G-128G | ¥405 | ¥485 | ¥80 | 20% | + +## 高性能版 金大 i5(8款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 3.5大-双-i5-2代-4G-32G | ¥242 | ¥322 | ¥80 | 33% | +| 2 | 3.5大-双-i5-2代-4G-64G | ¥262 | ¥342 | ¥80 | 31% | +| 3 | 3.5大-双-i5-2代-8G-64G | ¥312 | ¥392 | ¥80 | 26% | +| 4 | 3.5大-双-i5-2代-8G-128G | ¥340 | ¥420 | ¥80 | 24% | +| 5 | 3.5大-双-i5-3代-4G-32G | ¥267 | ¥347 | ¥80 | 30% | +| 6 | 3.5大-双-i5-3代-4G-64G | ¥287 | ¥367 | ¥80 | 28% | +| 7 | 3.5大-双-i5-3代-8G-64G | ¥337 | ¥417 | ¥80 | 24% | +| 8 | 3.5大-双-i5-3代-8G-128G | ¥365 | ¥445 | ¥80 | 22% | + +## 高性能版 金大 J1900(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 3.5大-双-J1900-4G-32G | ¥265 | ¥315 | ¥50 | 19% | +| 2 | 3.5大-双-J1900-4G-64G | ¥285 | ¥335 | ¥50 | 18% | +| 3 | 3.5大-双-J1900-8G-64G | ¥335 | ¥385 | ¥50 | 15% | +| 4 | 3.5大-双-J1900-8G-128G | ¥363 | ¥413 | ¥50 | 14% | + +## 高性能版 金大 J3160(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 3.5大-双-J3160-4G-32G | ¥275 | ¥345 | ¥70 | 25% | +| 2 | 3.5大-双-J3160-4G-64G | ¥295 | ¥365 | ¥70 | 24% | +| 3 | 3.5大-双-J3160-8G-64G | ¥345 | ¥415 | ¥70 | 20% | +| 4 | 3.5大-双-J3160-8G-128G | ¥373 | ¥443 | ¥70 | 19% | + +**合计:32 款** \ No newline at end of file diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-1T.md similarity index 54% rename from 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-64G.md rename to 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-1T.md index a7b21e6..40df08d 100644 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-64G.md +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-1T.md @@ -4,11 +4,12 @@ |------|---------|------| | **产品编号** | - | - | | **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | -| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 1037U | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | +| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G-1T | - | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-32G | ¥20 | +| **数据盘** | HDD-1T | ¥145 | | **机箱** | 金属机箱3.5寸小 | ¥60 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -17,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥234 | -| **建议零售价** | - | ¥353 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | +| **总成本** | - | ¥341 | +| **建议零售价** | - | ¥391 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,含1T数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-3T.md similarity index 54% rename from 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-128G.md rename to 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-3T.md index 18a563c..e78bab9 100644 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-128G.md +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-3T.md @@ -4,11 +4,12 @@ |------|---------|------| | **产品编号** | - | - | | **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | -| **产品型号** | 3.5金小-3.5+2.5-1037U-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 1037U | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | +| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G-3T | - | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-32G | ¥20 | +| **数据盘** | HDD-3T | ¥280 | | **机箱** | 金属机箱3.5寸小 | ¥60 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -17,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥312 | -| **建议零售价** | - | ¥500 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | +| **总成本** | - | ¥476 | +| **建议零售价** | - | ¥526 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,含3T数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-4T.md similarity index 54% rename from 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-64G.md rename to 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-4T.md index 73361e3..9d3d3c4 100644 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-8G-64G.md +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-4T.md @@ -4,11 +4,12 @@ |------|---------|------| | **产品编号** | - | - | | **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | -| **产品型号** | 3.5金小-3.5+2.5-1037U-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 1037U | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | +| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G-4T | - | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-32G | ¥20 | +| **数据盘** | HDD-4T | ¥400 | | **机箱** | 金属机箱3.5寸小 | ¥60 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -17,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥284 | -| **建议零售价** | - | ¥468 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | +| **总成本** | - | ¥596 | +| **建议零售价** | - | ¥646 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,含4T数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-500G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-500G.md new file mode 100644 index 0000000..8fe8e59 --- /dev/null +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-500G.md @@ -0,0 +1,23 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | +| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G-500G | - | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-32G | ¥20 | +| **数据盘** | HDD-500G | ¥55 | +| **机箱** | 金属机箱3.5寸小 | ¥60 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥251 | +| **建议零售价** | - | ¥301 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,含500G数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-6T.md similarity index 51% rename from 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-32G.md rename to 产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-6T.md index 1307d8b..8a03bbb 100644 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-32G.md +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G-6T.md @@ -3,12 +3,13 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 3217U | - | -| **产品型号** | 3.5金小-3.5+2.5-3217U-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3217U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | +| **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G-6T | - | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-32G | ¥20 | +| **数据盘** | HDD-6T | ¥580 | | **机箱** | 金属机箱3.5寸小 | ¥60 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -17,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥214 | -| **建议零售价** | - | ¥325 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | +| **总成本** | - | ¥776 | +| **建议零售价** | - | ¥826 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,含6T数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G.md index 861121a..3b48b25 100644 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G.md +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-1037U-4G-32G.md @@ -5,9 +5,9 @@ | **产品编号** | - | - | | **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 1037U | - | | **产品型号** | 3.5金小-3.5+2.5-1037U-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 1037U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **用途分类** | NAS | - | +| **CPU** | 1037U | ¥50 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-32G | ¥20 | | **机箱** | 金属机箱3.5寸小 | ¥60 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥214 | -| **建议零售价** | - | ¥325 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | +| **总成本** | - | ¥196 | +| **建议零售价** | - | ¥246 | +| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板,无数据盘 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-64G.md deleted file mode 100644 index 38c5e09..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 3217U | - | -| **产品型号** | 3.5金小-3.5+2.5-3217U-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3217U | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥234 | -| **建议零售价** | - | ¥353 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-128G.md deleted file mode 100644 index 4559183..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 3217U | - | -| **产品型号** | 3.5金小-3.5+2.5-3217U-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3217U | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥312 | -| **建议零售价** | - | ¥500 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-64G.md deleted file mode 100644 index 1209cc5..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-3217U-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 3217U | - | -| **产品型号** | 3.5金小-3.5+2.5-3217U-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3217U | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥284 | -| **建议零售价** | - | ¥468 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-32G.md deleted file mode 100644 index ebe48f9..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 5005U | - | -| **产品型号** | 3.5金小-3.5+2.5-5005U-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 5005U | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥309 | -| **建议零售价** | - | ¥458 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-64G.md deleted file mode 100644 index 0b69b5a..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 5005U | - | -| **产品型号** | 3.5金小-3.5+2.5-5005U-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 5005U | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥329 | -| **建议零售价** | - | ¥486 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-128G.md deleted file mode 100644 index 559074d..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 5005U | - | -| **产品型号** | 3.5金小-3.5+2.5-5005U-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 5005U | ¥150 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥407 | -| **建议零售价** | - | ¥633 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-64G.md deleted file mode 100644 index f46fa3c..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-3.5+2.5-5005U-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 3.5+2.5 5005U | - | -| **产品型号** | 3.5金小-3.5+2.5-5005U-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 5005U | ¥150 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥379 | -| **建议零售价** | - | ¥601 | -| **备注** | 3.5金属小,3.5+2.5盘位,双SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-32G.md deleted file mode 100644 index a14dd57..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 3855U | - | -| **产品型号** | 3.5金小-单3.5-3855U-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3855U | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥228 | -| **建议零售价** | - | ¥344 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-64G.md deleted file mode 100644 index a5f6623..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 3855U | - | -| **产品型号** | 3.5金小-单3.5-3855U-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3855U | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥248 | -| **建议零售价** | - | ¥372 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-128G.md deleted file mode 100644 index fc25aba..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 3855U | - | -| **产品型号** | 3.5金小-单3.5-3855U-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3855U | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥326 | -| **建议零售价** | - | ¥519 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-64G.md deleted file mode 100644 index b3fc214..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-3855U-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 3855U | - | -| **产品型号** | 3.5金小-单3.5-3855U-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | 3855U | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥298 | -| **建议零售价** | - | ¥487 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-32G.md deleted file mode 100644 index 806c752..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J1900 | - | -| **产品型号** | 3.5金小-单3.5-J1900-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥228 | -| **建议零售价** | - | ¥344 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-64G.md deleted file mode 100644 index 0441647..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J1900 | - | -| **产品型号** | 3.5金小-单3.5-J1900-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥248 | -| **建议零售价** | - | ¥372 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-128G.md deleted file mode 100644 index c85ec4e..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J1900 | - | -| **产品型号** | 3.5金小-单3.5-J1900-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥326 | -| **建议零售价** | - | ¥519 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-64G.md deleted file mode 100644 index c34fb58..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J1900-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J1900 | - | -| **产品型号** | 3.5金小-单3.5-J1900-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥298 | -| **建议零售价** | - | ¥487 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-32G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-32G.md deleted file mode 100644 index 7e4f2c2..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J3160 | - | -| **产品型号** | 3.5金小-单3.5-J3160-4G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥238 | -| **建议零售价** | - | ¥358 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-64G.md deleted file mode 100644 index 33ae1ee..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J3160 | - | -| **产品型号** | 3.5金小-单3.5-J3160-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥258 | -| **建议零售价** | - | ¥386 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-128G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-128G.md deleted file mode 100644 index 53b298a..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J3160 | - | -| **产品型号** | 3.5金小-单3.5-J3160-8G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥336 | -| **建议零售价** | - | ¥533 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-64G.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-64G.md deleted file mode 100644 index 77bd94c..0000000 --- a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/3.5金小-单3.5-J3160-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 3.5金属小 单3.5 J3160 | - | -| **产品型号** | 3.5金小-单3.5-J3160-8G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸小 | ¥60 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥308 | -| **建议零售价** | - | ¥501 | -| **备注** | 3.5金属小,单3.5盘位,单SATA口主板 | - | diff --git a/产品/飞牛 NAS/fjx-金属机箱3.5寸小/价格表.md b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/价格表.md new file mode 100644 index 0000000..4843eed --- /dev/null +++ b/产品/飞牛 NAS/fjx-金属机箱3.5寸小/价格表.md @@ -0,0 +1,17 @@ +# 3.5寸金属小 产品价格表 + +> 更新日期:2026-05-08 +> 说明:建议零售价 = 成本 + 50 + +## 3.5+2.5盘位(双SATA口)- 1037U + +| 序号 | 产品型号 | CPU | 内存 | 系统盘 | 数据盘 | 总成本 | 建议零售价 | +|:---:|---------|:---:|:----:|:------:|:------:|:------:|:---------:| +| 1 | 3.5金小-3.5+2.5-1037U-4G-32G | 1037U | 4G | 32G | 无 | ¥196 | ¥246 | +| 2 | 3.5金小-3.5+2.5-1037U-4G-32G-500G | 1037U | 4G | 32G | 500G | ¥251 | ¥301 | +| 3 | 3.5金小-3.5+2.5-1037U-4G-32G-1T | 1037U | 4G | 32G | 1T | ¥341 | ¥391 | +| 4 | 3.5金小-3.5+2.5-1037U-4G-32G-3T | 1037U | 4G | 32G | 3T | ¥476 | ¥526 | +| 5 | 3.5金小-3.5+2.5-1037U-4G-32G-4T | 1037U | 4G | 32G | 4T | ¥596 | ¥646 | +| 6 | 3.5金小-3.5+2.5-1037U-4G-32G-6T | 1037U | 4G | 32G | 6T | ¥776 | ¥826 | + +**合计:6 款** diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md index 284a3c0..9149bba 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-16G.md @@ -6,7 +6,7 @@ | **产品名称** | 飞牛NAS 亚克力-单 AMD-A4 | - | | **产品型号** | 亚克力-单-AMD-A4-2G-16G | - | | **用途分类** | NAS/迷你主机 | - | -| **CPU** | AMD-A4 | ¥45 | +| **CPU** | AMD-A4 | ¥40 | | **内存** | D3-2G | ¥13 | | **系统盘** | mSATA-16G | ¥15 | | **机箱** | 亚-单 | ¥20 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥136 | -| **建议零售价** | - | ¥156 | +| **总成本** | - | ¥131 | +| **建议零售价** | - | ¥151 | | **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-32G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-32G.md index eff6891..b26680f 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-32G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-2G-32G.md @@ -6,7 +6,7 @@ | **产品名称** | 飞牛NAS 亚克力-单 AMD-A4 | - | | **产品型号** | 亚克力-单-AMD-A4-2G-32G | - | | **用途分类** | NAS/迷你主机 | - | -| **CPU** | AMD-A4 | ¥45 | +| **CPU** | AMD-A4 | ¥40 | | **内存** | D3-2G | ¥13 | | **系统盘** | mSATA-32G | ¥20 | | **机箱** | 亚-单 | ¥20 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥141 | -| **建议零售价** | - | ¥161 | +| **总成本** | - | ¥136 | +| **建议零售价** | - | ¥156 | | **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-4G-64G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-4G-64G.md index 64ee84a..e0a0178 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-4G-64G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-AMD-A4-4G-64G.md @@ -6,8 +6,8 @@ | **产品名称** | 飞牛NAS 亚克力-单 AMD-A4 | - | | **产品型号** | 亚克力-单-AMD-A4-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | -| **CPU** | AMD-A4 | ¥45 | -| **内存** | D3-4G | ¥25 | +| **CPU** | AMD-A4 | ¥40 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-单 | ¥20 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥173 | -| **建议零售价** | - | ¥203 | +| **总成本** | - | ¥165 | +| **建议零售价** | - | ¥195 | | **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-16G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-16G.md deleted file mode 100644 index 51bc539..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-16G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 J1900 | - | -| **产品型号** | 亚克力-单-J1900-2G-16G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-16G | ¥15 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥171 | -| **建议零售价** | - | ¥191 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-32G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-32G.md deleted file mode 100644 index f8055bb..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-2G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 J1900 | - | -| **产品型号** | 亚克力-单-J1900-2G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥176 | -| **建议零售价** | - | ¥196 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-128G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-128G.md index 3949c00..4b63fb2 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-128G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-128G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-单-J1900-4G-128G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-单 | ¥20 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥236 | -| **建议零售价** | - | ¥266 | +| **总成本** | - | ¥233 | +| **建议零售价** | - | ¥263 | | **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-64G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-64G.md index 6f3fc1a..f017167 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-64G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J1900-4G-64G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-单-J1900-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-单 | ¥20 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥208 | -| **建议零售价** | - | ¥238 | +| **总成本** | - | ¥205 | +| **建议零售价** | - | ¥235 | | **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-16G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-16G.md deleted file mode 100644 index b280b99..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-16G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 J3160 | - | -| **产品型号** | 亚克力-单-J3160-2G-16G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-16G | ¥15 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥181 | -| **建议零售价** | - | ¥201 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-32G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-32G.md deleted file mode 100644 index 9070b01..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-2G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 J3160 | - | -| **产品型号** | 亚克力-单-J3160-2G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥186 | -| **建议零售价** | - | ¥206 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-128G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-128G.md index 64a075d..3ed8bc4 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-128G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-128G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-单-J3160-4G-128G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-单 | ¥20 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥246 | -| **建议零售价** | - | ¥276 | +| **总成本** | - | ¥243 | +| **建议零售价** | - | ¥273 | | **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-64G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-64G.md index 940e6c0..7d80e65 100644 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-64G.md +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-J3160-4G-64G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-单-J3160-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-单 | ¥20 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥218 | -| **建议零售价** | - | ¥248 | +| **总成本** | - | ¥215 | +| **建议零售价** | - | ¥245 | | **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2840-2G-16G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2840-2G-16G.md deleted file mode 100644 index 0e1cf69..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2840-2G-16G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 N2840 | - | -| **产品型号** | 亚克力-单-N2840-2G-16G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | N2840 | ¥45 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-16G | ¥15 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥136 | -| **建议零售价** | - | ¥156 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-16G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-16G.md deleted file mode 100644 index ae87cde..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-16G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 N2930 | - | -| **产品型号** | 亚克力-单-N2930-2G-16G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | N2930 | ¥50 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-16G | ¥15 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥141 | -| **建议零售价** | - | ¥161 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-32G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-32G.md deleted file mode 100644 index 763f0f4..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-2G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 N2930 | - | -| **产品型号** | 亚克力-单-N2930-2G-32G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | N2930 | ¥50 | -| **内存** | D3-2G | ¥13 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥146 | -| **建议零售价** | - | ¥166 | -| **备注** | 亚克力机箱,单SATA口,入门级配置 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-128G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-128G.md deleted file mode 100644 index 79c048b..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 N2930 | - | -| **产品型号** | 亚克力-单-N2930-4G-128G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | N2930 | ¥50 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥206 | -| **建议零售价** | - | ¥236 | -| **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-64G.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-64G.md deleted file mode 100644 index cfc2d55..0000000 --- a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku/亚克力-单-N2930-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 亚克力单 N2930 | - | -| **产品型号** | 亚克力-单-N2930-4G-64G | - | -| **用途分类** | NAS/迷你主机 | - | -| **CPU** | N2930 | ¥50 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-单 | ¥20 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-单 | ¥4 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥178 | -| **建议零售价** | - | ¥208 | -| **备注** | 亚克力机箱,单SATA口 | - | diff --git a/产品/飞牛 NAS/fyd-亚克力机箱 - 单/价格表.md b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/价格表.md new file mode 100644 index 0000000..db57032 --- /dev/null +++ b/产品/飞牛 NAS/fyd-亚克力机箱 - 单/价格表.md @@ -0,0 +1,25 @@ +# 亚克力-单 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:2G内存成本+20元,4G内存成本+30元 + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-单-N2840-2G-16G | ¥136 | ¥156 | ¥20 | 15% | +| 2 | 亚克力-单-N2930-2G-16G | ¥141 | ¥161 | ¥20 | 14% | +| 3 | 亚克力-单-N2930-2G-32G | ¥146 | ¥166 | ¥20 | 14% | +| 4 | 亚克力-单-N2930-4G-64G | ¥178 | ¥208 | ¥30 | 17% | +| 5 | 亚克力-单-N2930-4G-128G | ¥206 | ¥236 | ¥30 | 15% | +| 6 | 亚克力-单-AMD-A4-2G-16G | ¥136 | ¥156 | ¥20 | 15% | +| 7 | 亚克力-单-AMD-A4-2G-32G | ¥141 | ¥161 | ¥20 | 14% | +| 8 | 亚克力-单-AMD-A4-4G-64G | ¥173 | ¥203 | ¥30 | 17% | +| 9 | 亚克力-单-J1900-2G-16G | ¥171 | ¥191 | ¥20 | 12% | +| 10 | 亚克力-单-J1900-2G-32G | ¥176 | ¥196 | ¥20 | 11% | +| 11 | 亚克力-单-J1900-4G-64G | ¥208 | ¥238 | ¥30 | 14% | +| 12 | 亚克力-单-J1900-4G-128G | ¥236 | ¥266 | ¥30 | 13% | +| 13 | 亚克力-单-J3160-2G-16G | ¥181 | ¥201 | ¥20 | 11% | +| 14 | 亚克力-单-J3160-2G-32G | ¥186 | ¥206 | ¥20 | 11% | +| 15 | 亚克力-单-J3160-4G-64G | ¥218 | ¥248 | ¥30 | 14% | +| 16 | 亚克力-单-J3160-4G-128G | ¥246 | ¥276 | ¥30 | 12% | + +**合计:16 款 | 成本区间:¥136 - ¥246 | 售价区间:¥156 - ¥276** \ No newline at end of file diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-128G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-128G.md index e9d903c..cf8d0bc 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-128G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-128G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-1037U-4G-128G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 1037U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥238 | -| **建议零售价** | - | ¥309 | +| **总成本** | - | ¥235 | +| **建议零售价** | - | ¥305 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-64G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-64G.md index 3bd280f..f8ddb46 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-64G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-1037U-4G-64G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-1037U-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 1037U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥210 | -| **建议零售价** | - | ¥273 | +| **总成本** | - | ¥207 | +| **建议零售价** | - | ¥270 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-128G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-128G.md index 059afa1..c9304f4 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-128G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-128G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-3217U-4G-128G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 3217U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥238 | -| **建议零售价** | - | ¥309 | +| **总成本** | - | ¥235 | +| **建议零售价** | - | ¥305 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-64G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-64G.md index 0de7323..6a5f700 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-64G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-3217U-4G-64G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-3217U-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 3217U | ¥55 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥210 | -| **建议零售价** | - | ¥273 | +| **总成本** | - | ¥207 | +| **建议零售价** | - | ¥270 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-128G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-128G.md index 7664a82..16979b4 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-128G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-128G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-5005U-4G-128G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 5005U | ¥150 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥333 | -| **建议零售价** | - | ¥433 | +| **总成本** | - | ¥330 | +| **建议零售价** | - | ¥428 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-64G.md b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-64G.md index 4f29c24..7498521 100644 --- a/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-64G.md +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/sku/亚克力-双-5005U-4G-64G.md @@ -7,7 +7,7 @@ | **产品型号** | 亚克力-双-5005U-4G-64G | - | | **用途分类** | NAS/迷你主机 | - | | **CPU** | 5005U | ¥150 | -| **内存** | D3-4G | ¥25 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-64G | ¥40 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥305 | -| **建议零售价** | - | ¥397 | +| **总成本** | - | ¥302 | +| **建议零售价** | - | ¥392 | | **备注** | 亚克力机箱,双SATA口 | - | diff --git a/产品/飞牛 NAS/fys-亚克力机箱-双/价格表.md b/产品/飞牛 NAS/fys-亚克力机箱-双/价格表.md new file mode 100644 index 0000000..db71dd5 --- /dev/null +++ b/产品/飞牛 NAS/fys-亚克力机箱-双/价格表.md @@ -0,0 +1,21 @@ +# 亚克力-双 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:2G内存成本+20元,4G内存成本+30元 + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-1037U-2G-16G | ¥173 | ¥225 | ¥52 | 30% | +| 2 | 亚克力-双-1037U-2G-32G | ¥178 | ¥231 | ¥53 | 30% | +| 3 | 亚克力-双-1037U-4G-64G | ¥210 | ¥273 | ¥63 | 30% | +| 4 | 亚克力-双-1037U-4G-128G | ¥238 | ¥309 | ¥71 | 30% | +| 5 | 亚克力-双-3217U-2G-16G | ¥173 | ¥225 | ¥52 | 30% | +| 6 | 亚克力-双-3217U-2G-32G | ¥178 | ¥231 | ¥53 | 30% | +| 7 | 亚克力-双-3217U-4G-64G | ¥210 | ¥273 | ¥63 | 30% | +| 8 | 亚克力-双-3217U-4G-128G | ¥238 | ¥309 | ¥71 | 30% | +| 9 | 亚克力-双-5005U-2G-16G | ¥268 | ¥349 | ¥81 | 30% | +| 10 | 亚克力-双-5005U-2G-32G | ¥273 | ¥355 | ¥82 | 30% | +| 11 | 亚克力-双-5005U-4G-64G | ¥305 | ¥397 | ¥92 | 30% | +| 12 | 亚克力-双-5005U-4G-128G | ¥333 | ¥433 | ¥100 | 30% | + +**合计:12 款 | 成本区间:¥173 - ¥333 | 售价区间:¥225 - ¥433** \ No newline at end of file diff --git a/产品/飞牛 NAS/产品矩阵.md b/产品/飞牛 NAS/产品矩阵.md new file mode 100644 index 0000000..fc079ce --- /dev/null +++ b/产品/飞牛 NAS/产品矩阵.md @@ -0,0 +1,27 @@ +# 飞牛 NAS 产品矩阵 + +> 更新时间:2026-05-07 + +## 对外展示 + +| 系列 | 定位 | 目标用户 | 核心卖点 | +|-----|------|---------|---------| +| 基础 | 入门首选 | 家庭备份、NAS入门 | 性价比、简单易用 | +| 静音低耗 | 7x24运行 | 家庭持续运行、轻量NAS | 超低功耗、图书馆级静音 | +| 高性能 | 性能旗舰 | 小型企业、开发者 | Intel i5/i7、多核性能 | +| 影音娱乐 | 家庭影院 | 多媒体中心、HTPC | GPU解码、多媒体 | +| 精致高颜 | 颜值担当 | 追求美学的用户 | 铝合金、迷你小巧、RGB | +| 大容量 | 存储扩展 | 数据中心、大容量需求 | 多盘位、海量存储 | + +--- + +## 内部使用 + +| 系列 | 说明 | +|-----|------| +| 基础 | 机箱:亚克力单/双盘;CPU:AMD/N2840/J1800/1037U同等;内存:4G;系统盘:32G;可选配WiFi、500G/1T/4T/6T/14T硬盘 | +| 静音低耗 | CPU:J1900/J3160;机箱:金属/亚克力单/双/三盘位;内存:4G/8G;系统盘:64G/128G;不支持WiFi;不带硬盘 | +| 高性能 | CPU: i5/i7多代, 盘位: 双盘, 成本: ¥265-345, 售价: ¥345-425, 利润: ¥80, 利润率: 23-30% | +| 影音娱乐 | CPU: 待定, 盘位: 待定, 成本: 待定, 售价: 待定, 利润: 待定, 利润率: 待定 | +| 精致高颜 | CPU: 待定, 盘位: 待定, 成本: 待定, 售价: 待定, 利润: 待定, 利润率: 待定 | +| 大容量 | CPU: 待定, 盘位: 多盘, 成本: 待定, 售价: 待定, 利润: 待定, 利润率: 待定 | diff --git a/产品/飞牛 NAS/基础版-亚/价格表.md b/产品/飞牛 NAS/基础版-亚/价格表.md new file mode 100644 index 0000000..6c98861 --- /dev/null +++ b/产品/飞牛 NAS/基础版-亚/价格表.md @@ -0,0 +1,16 @@ +# 基础版 亚克力机箱 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:基础版:成本+30 + +## 基础版 亚克力机箱(5款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-单-J1800-4G-32G | ¥148 | ¥178 | ¥30 | 20% | +| 2 | 亚克力-单-N2840-4G-32G | ¥153 | ¥183 | ¥30 | 20% | +| 3 | 亚克力-单-AMD-A4-4G-32G | ¥153 | ¥183 | ¥30 | 20% | +| 4 | 亚克力-单-N2930-4G-32G | ¥158 | ¥188 | ¥30 | 19% | +| 5 | 亚克力-双-1037U-4G-32G | ¥190 | ¥220 | ¥30 | 16% | + +**合计:5 款 | 成本区间:¥148 - ¥190 | 售价区间:¥178 - ¥220** \ No newline at end of file diff --git a/产品/飞牛 NAS/基础版-金/价格表.md b/产品/飞牛 NAS/基础版-金/价格表.md new file mode 100644 index 0000000..01ac50c --- /dev/null +++ b/产品/飞牛 NAS/基础版-金/价格表.md @@ -0,0 +1,21 @@ +# 基础版 金属机箱 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:基础版:成本+30 + +## 基础版 金属机箱(10款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 2.5金-单-J1800-4G-32G | ¥161 | ¥191 | ¥30 | 19% | +| 2 | 2.5金-单-N2840-4G-32G | ¥166 | ¥196 | ¥30 | 18% | +| 3 | 2.5金-单-AMD-A4-4G-32G | ¥166 | ¥196 | ¥30 | 18% | +| 4 | 2.5金-单-N2930-4G-32G | ¥171 | ¥201 | ¥30 | 18% | +| 5 | 3.5小-单-J1800-4G-32G | ¥188 | ¥218 | ¥30 | 16% | +| 6 | 3.5小-单-N2840-4G-32G | ¥193 | ¥223 | ¥30 | 16% | +| 7 | 3.5小-单-AMD-A4-4G-32G | ¥193 | ¥223 | ¥30 | 16% | +| 8 | 3.5小-单-N2930-4G-32G | ¥198 | ¥228 | ¥30 | 15% | +| 9 | 3.5小-双-1037U-4G-32G | ¥204 | ¥234 | ¥30 | 15% | +| 10 | 3.5大-双-1037U-4G-32G | ¥212 | ¥242 | ¥30 | 14% | + +**合计:10 款 | 成本区间:¥161 - ¥212 | 售价区间:¥191 - ¥242** \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/image/内部图.png b/产品/飞牛 NAS/高性能-i5-i7/image/内部图.png new file mode 100644 index 0000000..36779e9 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/image/内部图.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/image/正面 .png b/产品/飞牛 NAS/高性能-i5-i7/image/正面 .png new file mode 100644 index 0000000..5a9f25d Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/image/正面 .png differ diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-64G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-4G-128G.md similarity index 61% rename from 产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-64G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-4G-128G.md index 1b93a48..44a9f42 100644 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-64G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-4G-128G.md @@ -3,12 +3,12 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-3代 | - | -| **产品型号** | 3.5大-双-i5-3代-4G-64G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-2代 | - | +| **产品型号** | 3.5大-双-i5-2代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | +| **CPU** | i5-2代 | ¥85 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -19,4 +19,4 @@ | **装机费** | 装机费 | ¥10 | | **总成本** | - | ¥287 | | **建议零售价** | - | ¥367 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-8G-128G.md similarity index 68% rename from 产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-8G-128G.md index f2e74db..81ee143 100644 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-2代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-2代 | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-2代 | - | | **产品型号** | 3.5大-双-i5-2代-8G-128G | - | | **用途分类** | NAS | - | | **CPU** | i5-2代 | ¥85 | -| **内存** | D3-8G | ¥75 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥340 | -| **建议零售价** | - | ¥420 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | +| **总成本** | - | ¥330 | +| **建议零售价** | - | ¥410 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-4G-128G.md similarity index 58% rename from 产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-4G-128G.md index 2658cde..5190ac9 100644 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-4G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-5代 | - | -| **产品型号** | 3.5大-双-i3-5代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-3代 | - | +| **产品型号** | 3.5大-双-i5-3代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-3代 | ¥85 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥405 | -| **建议零售价** | - | ¥485 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | +| **总成本** | - | ¥287 | +| **建议零售价** | - | ¥367 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-8G-128G.md similarity index 65% rename from 产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-8G-128G.md index 12e3080..3605c05 100644 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-3代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-3代 | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-3代 | - | | **产品型号** | 3.5大-双-i5-3代-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-3代 | ¥85 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥365 | -| **建议零售价** | - | ¥445 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | +| **总成本** | - | ¥330 | +| **建议零售价** | - | ¥410 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-4G-128G.md similarity index 58% rename from 产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-4G-128G.md index 7861ac5..c55a216 100644 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-4G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-3代 | - | -| **产品型号** | 3.5大-双-i3-3代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-4代 | - | +| **产品型号** | 3.5大-双-i5-4代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-4代 | ¥100 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥320 | -| **建议零售价** | - | ¥380 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | +| **总成本** | - | ¥302 | +| **建议零售价** | - | ¥382 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-8G-128G.md similarity index 58% rename from 产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-8G-128G.md index 926c741..e4dedff 100644 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i5-4代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-4代 | - | -| **产品型号** | 3.5大-双-i3-4代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i5-4代 | - | +| **产品型号** | 3.5大-双-i5-4代-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-4代 | ¥100 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥365 | -| **建议零售价** | - | ¥435 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | +| **总成本** | - | ¥345 | +| **建议零售价** | - | ¥425 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-2代-8G-128G.md similarity index 58% rename from 产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-2代-8G-128G.md index 81f0718..b5d55ba 100644 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-2代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-2代 | - | -| **产品型号** | 3.5大-双-i3-2代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i7-2代 | - | +| **产品型号** | 3.5大-双-i7-2代-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i7-2代 | ¥100 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 金属机箱3.5寸大-双 | ¥68 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥310 | -| **建议零售价** | - | ¥360 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | +| **总成本** | - | ¥345 | +| **建议零售价** | - | ¥425 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-3代-8G-128G.md new file mode 100644 index 0000000..89ab730 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-3代-8G-128G.md @@ -0,0 +1,22 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i7-3代 | - | +| **产品型号** | 3.5大-双-i7-3代-8G-128G | - | +| **用途分类** | NAS | - | +| **CPU** | i7-3代 | ¥100 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-128G | ¥68 | +| **机箱** | 金属机箱3.5寸大-双 | ¥68 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥345 | +| **建议零售价** | - | ¥425 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-4代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-4代-8G-128G.md new file mode 100644 index 0000000..877a408 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/3.5大-双-i7-4代-8G-128G.md @@ -0,0 +1,22 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 金属大 i7-4代 | - | +| **产品型号** | 3.5大-双-i7-4代-8G-128G | - | +| **用途分类** | NAS | - | +| **CPU** | i7-4代 | ¥100 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-128G | ¥68 | +| **机箱** | 金属机箱3.5寸大-双 | ¥68 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥345 | +| **建议零售价** | - | ¥425 | +| **备注** | 高性能-i5-i7,金属3.5寸大机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-64G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-4G-128G.md similarity index 60% rename from 产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-64G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-4G-128G.md index 8174206..d945dbe 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-64G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-4G-128G.md @@ -3,12 +3,12 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-3代 | - | -| **产品型号** | 亚克力-双-i5-3代-4G-64G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-2代 | - | +| **产品型号** | 亚克力-双-i5-2代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | +| **CPU** | i5-2代 | ¥85 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -19,4 +19,4 @@ | **装机费** | 装机费 | ¥10 | | **总成本** | - | ¥265 | | **建议零售价** | - | ¥345 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-8G-128G.md similarity index 68% rename from 产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-8G-128G.md index f237b2b..f6b2100 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-2代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-2代 | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-2代 | - | | **产品型号** | 亚克力-双-i5-2代-8G-128G | - | | **用途分类** | NAS | - | | **CPU** | i5-2代 | ¥85 | -| **内存** | D3-8G | ¥75 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥318 | -| **建议零售价** | - | ¥398 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | +| **总成本** | - | ¥308 | +| **建议零售价** | - | ¥388 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-4G-128G.md similarity index 57% rename from 产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-4G-128G.md index 0ec2971..a58a724 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-4G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-2代 | - | -| **产品型号** | 亚克力-双-i3-2代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-3代 | - | +| **产品型号** | 亚克力-双-i5-3代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-3代 | ¥85 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥288 | -| **建议零售价** | - | ¥338 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | +| **总成本** | - | ¥265 | +| **建议零售价** | - | ¥345 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-8G-128G.md similarity index 64% rename from 产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-8G-128G.md index 5f11a64..44ab178 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-3代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-3代 | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-3代 | - | | **产品型号** | 亚克力-双-i5-3代-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-3代 | ¥85 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥343 | -| **建议零售价** | - | ¥423 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | +| **总成本** | - | ¥308 | +| **建议零售价** | - | ¥388 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-4G-128G.md similarity index 57% rename from 产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-4G-128G.md index edc4da6..3c8d901 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-4G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-3代 | - | -| **产品型号** | 亚克力-双-i3-3代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-4代 | - | +| **产品型号** | 亚克力-双-i5-4代-4G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-4代 | ¥100 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥298 | -| **建议零售价** | - | ¥358 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | +| **总成本** | - | ¥280 | +| **建议零售价** | - | ¥360 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-8G-128G.md similarity index 56% rename from 产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-128G.md rename to 产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-8G-128G.md index 97da5e0..54fb79c 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-128G.md +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i5-4代-8G-128G.md @@ -3,11 +3,11 @@ | 字段 | 配件名称 | 价格 | |------|---------|------| | **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-5代 | - | -| **产品型号** | 亚克力-双-i3-5代-8G-128G | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i5-4代 | - | +| **产品型号** | 亚克力-双-i5-4代-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-8G | ¥75 | +| **CPU** | i5-4代 | ¥100 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -17,6 +17,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥383 | -| **建议零售价** | - | ¥463 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | +| **总成本** | - | ¥323 | +| **建议零售价** | - | ¥403 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-2代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-2代-8G-128G.md new file mode 100644 index 0000000..15f1afd --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-2代-8G-128G.md @@ -0,0 +1,22 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i7-2代 | - | +| **产品型号** | 亚克力-双-i7-2代-8G-128G | - | +| **用途分类** | NAS | - | +| **CPU** | i7-2代 | ¥100 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-128G | ¥68 | +| **机箱** | 亚-双 | ¥46 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥323 | +| **建议零售价** | - | ¥403 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-3代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-3代-8G-128G.md new file mode 100644 index 0000000..4420f0e --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-3代-8G-128G.md @@ -0,0 +1,22 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i7-3代 | - | +| **产品型号** | 亚克力-双-i7-3代-8G-128G | - | +| **用途分类** | NAS | - | +| **CPU** | i7-3代 | ¥100 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-128G | ¥68 | +| **机箱** | 亚-双 | ¥46 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥323 | +| **建议零售价** | - | ¥403 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-4代-8G-128G.md b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-4代-8G-128G.md new file mode 100644 index 0000000..6a56418 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/sku/亚克力-双-i7-4代-8G-128G.md @@ -0,0 +1,22 @@ +# 产品信息 + +| 字段 | 配件名称 | 价格 | +|------|---------|------| +| **产品编号** | - | - | +| **产品名称** | 飞牛NAS 高性能-i5-i7 亚克力双 i7-4代 | - | +| **产品型号** | 亚克力-双-i7-4代-8G-128G | - | +| **用途分类** | NAS | - | +| **CPU** | i7-4代 | ¥100 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-128G | ¥68 | +| **机箱** | 亚-双 | ¥46 | +| **电源** | 电源-60W | ¥12 | +| **硬盘线** | 硬盘线-双 | ¥5 | +| **电池** | 电池 | ¥1 | +| **网线** | 网线 | ¥1 | +| **运费** | 运费 | ¥10 | +| **包装费** | 包装费 | ¥5 | +| **装机费** | 装机费 | ¥10 | +| **总成本** | - | ¥323 | +| **建议零售价** | - | ¥403 | +| **备注** | 高性能-i5-i7,亚克力双机箱,支持双SATA口 | - | diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图1_白底_AI.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图1_白底_AI.png new file mode 100644 index 0000000..2d1cb1a Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图1_白底_AI.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图2_场景_AI.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图2_场景_AI.png new file mode 100644 index 0000000..e56a254 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图2_场景_AI.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图3_数据中心_AI.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图3_数据中心_AI.png new file mode 100644 index 0000000..cffce4c Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图3_数据中心_AI.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_i5i7处理器.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_i5i7处理器.png new file mode 100644 index 0000000..3b3cec6 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_i5i7处理器.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_企业级存储.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_企业级存储.png new file mode 100644 index 0000000..44c45b8 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_企业级存储.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_双盘位扩展.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_双盘位扩展.png new file mode 100644 index 0000000..c1d1d33 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_双盘位扩展.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_本地AI智能.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_本地AI智能.png new file mode 100644 index 0000000..60e0272 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_本地AI智能.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_极速传输.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_极速传输.png new file mode 100644 index 0000000..c65c76c Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_极速传输.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/主图/主图_高性能NAS_双盘位.png b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_高性能NAS_双盘位.png new file mode 100644 index 0000000..9868532 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/主图/主图_高性能NAS_双盘位.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/价格表.md b/产品/飞牛 NAS/高性能-i5-i7/价格表.md new file mode 100644 index 0000000..4f470bd --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/价格表.md @@ -0,0 +1,46 @@ +# 高性能-i5-i7 产品价格表 + +> 更新日期:2026-04-26 +> 机箱类型:金属3.5寸大(双SATA口)、亚克力双(双SATA口) +> CPU:i5-2/3/4代、i7-2/3/4代 +> 系统盘:mSATA-128G + +## 金属大机箱 i5系列(8款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 3.5大-双-i5-2代-4G-128G | ¥287 | ¥367 | ¥80 | 28% | +| 2 | 3.5大-双-i5-2代-8G-128G | ¥330 | ¥410 | ¥80 | 24% | +| 3 | 3.5大-双-i5-3代-4G-128G | ¥287 | ¥367 | ¥80 | 28% | +| 4 | 3.5大-双-i5-3代-8G-128G | ¥330 | ¥410 | ¥80 | 24% | +| 5 | 3.5大-双-i5-4代-4G-128G | ¥302 | ¥382 | ¥80 | 26% | +| 6 | 3.5大-双-i5-4代-8G-128G | ¥345 | ¥425 | ¥80 | 23% | + +## 金属大机箱 i7系列(3款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 7 | 3.5大-双-i7-2代-8G-128G | ¥345 | ¥425 | ¥80 | 23% | +| 8 | 3.5大-双-i7-3代-8G-128G | ¥345 | ¥425 | ¥80 | 23% | +| 9 | 3.5大-双-i7-4代-8G-128G | ¥345 | ¥425 | ¥80 | 23% | + +## 亚克力双机箱 i5系列(6款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 10 | 亚克力-双-i5-2代-4G-128G | ¥265 | ¥345 | ¥80 | 30% | +| 11 | 亚克力-双-i5-2代-8G-128G | ¥308 | ¥388 | ¥80 | 26% | +| 12 | 亚克力-双-i5-3代-4G-128G | ¥265 | ¥345 | ¥80 | 30% | +| 13 | 亚克力-双-i5-3代-8G-128G | ¥308 | ¥388 | ¥80 | 26% | +| 14 | 亚克力-双-i5-4代-4G-128G | ¥280 | ¥360 | ¥80 | 29% | +| 15 | 亚克力-双-i5-4代-8G-128G | ¥323 | ¥403 | ¥80 | 25% | + +## 亚克力双机箱 i7系列(3款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 16 | 亚克力-双-i7-2代-8G-128G | ¥323 | ¥403 | ¥80 | 25% | +| 17 | 亚克力-双-i7-3代-8G-128G | ¥323 | ¥403 | ¥80 | 25% | +| 18 | 亚克力-双-i7-4代-8G-128G | ¥323 | ¥403 | ¥80 | 25% | + +**合计:18 款 | 成本区间:¥265 - ¥345 | 售价区间:¥345 - ¥425** \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/商品标题.md b/产品/飞牛 NAS/高性能-i5-i7/商品标题.md new file mode 100644 index 0000000..b85bae8 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/商品标题.md @@ -0,0 +1 @@ +飞牛NAS 高性能 i5 i7 主机 \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.html b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.html new file mode 100644 index 0000000..f448ea7 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.html @@ -0,0 +1,96 @@ + + + + + + 高性能-i5-i7 产品特点 + + + +
+
产品特点
+ +
+
+
📦
+
体积小 容量大
+
小巧机身设计,不占空间
+
+
+
🔇
+
低耗静音
+
低功耗设计,安静运行
+
+
+
🌐
+
远程访问
+
随时随地远程访问数据
+
+
+
📶
+
WiFi联网
+
支持WiFi无线连接
+
+
+
+
来电自启
+
断电恢复后自动开机
+
+
+
🔌
+
远程开关机
+
支持远程控制开关机
+
+
+
+ + \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.png b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.png new file mode 100644 index 0000000..5a0b0a5 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_产品特点.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.html b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.html new file mode 100644 index 0000000..41a9982 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.html @@ -0,0 +1,95 @@ + + + + + + 高性能-i5-i7 使用场景 + + + +
+
使用场景
+ +
+
+
📱
+
手机扩容
+
照片视频备份,自动同步,远程同步
+
+
+
💼
+
小型办公/团队协作
+
远程文件访问,多人协作,权限分级,文件共享,文件归档,在线编辑
+
+
+
📹
+
监控视频存储
+
小米摄像头存储,ONVIF协议支持
+
+
+
🎬
+
家庭影院打造
+
流畅播放4K视频,硬解4K
+
+
+
💬
+
微信聊天记录备份
+
支持微信聊天记录备份
+
+
+
🌍
+
远程访问
+
远程访问照片,视频,文件等内容
+
+
+
+ + \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.png b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.png new file mode 100644 index 0000000..f52c090 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_使用场景.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.html b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.html new file mode 100644 index 0000000..2d36e0f --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.html @@ -0,0 +1,99 @@ + + + + + + 高性能-i5-i7 商品卖点 + + + +
+
商品卖点
+ +
+
+
🚀
+
强劲性能
+
i5/i7高性能处理器,多任务流畅运行
+
+
+
💾
+
海量存储
+
双SATA口,支持大容量硬盘扩展
+
+
+
🌐
+
远程访问
+
飞牛系统支持远程访问,随时随地存取文件
+
+
+
📱
+
手机扩容
+
照片视频自动备份,释放手机空间
+
+
+
🎬
+
4K播放
+
流畅播放4K视频,支持硬件解码
+
+
+
🔒
+
数据安全
+
多重备份机制,保障数据安全
+
+
+
+ + \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.png b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.png new file mode 100644 index 0000000..8df19e9 Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_商品卖点.png differ diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.html b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.html new file mode 100644 index 0000000..306d813 --- /dev/null +++ b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.html @@ -0,0 +1,171 @@ + + + + + + 高性能-i5-i7 配置清单 + + + +
+
配置清单
+
飞牛NAS 高性能-i5-i7 主机系列
+ +
+
机箱选择
+
+
+ 亚克力-双机箱 + 小巧精致 +
+
+ 金属3.5寸大机箱 + 容量更大 +
+
+
+ +
+
CPU处理器(可选)
+
+
+ Intel i5-2代 + 双核 2.5GHz +
+
+ Intel i5-3代 + 双核 2.6GHz +
+
+ Intel i5-4代 + 双核 3.0GHz +
+
+ Intel i7-2代 + 四核 2.8GHz +
+
+ Intel i7-3代 + 四核 3.1GHz +
+
+ Intel i7-4代 + 四核 3.3GHz +
+
+
+ +
+
内存容量(可选)
+
+
+ DDR3 4GB + 入门配置 +
+
+ DDR3 8GB + 推荐配置 +
+
+
+ +
+
系统盘容量(可选)
+
+
+ mSATA 128GB + 标准配置 +
+
+
+ +
+
购买须知
+
亚克力机箱需要自己组装,店铺会提供安装视频
+
受成本限制,产品无法做到十全十美,完美主义者慎拍
+
支持双SATA口,可扩展更多硬盘
+
+
+ + \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.png b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.png new file mode 100644 index 0000000..6a60e8e Binary files /dev/null and b/产品/飞牛 NAS/高性能-i5-i7/详情/高性能-i5-i7_配置清单.png differ diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-32G.md deleted file mode 100644 index 8c5d701..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-2代 | - | -| **产品型号** | 亚克力-双-i3-2代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥190 | -| **建议零售价** | - | ¥240 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-64G.md deleted file mode 100644 index 0043bbb..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-2代 | - | -| **产品型号** | 亚克力-双-i3-2代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥210 | -| **建议零售价** | - | ¥260 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-64G.md deleted file mode 100644 index 455aab2..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-2代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-2代 | - | -| **产品型号** | 亚克力-双-i3-2代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥260 | -| **建议零售价** | - | ¥310 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-32G.md deleted file mode 100644 index 5a2b2be..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-3代 | - | -| **产品型号** | 亚克力-双-i3-3代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥200 | -| **建议零售价** | - | ¥260 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-64G.md deleted file mode 100644 index 8984257..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-3代 | - | -| **产品型号** | 亚克力-双-i3-3代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥220 | -| **建议零售价** | - | ¥280 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-64G.md deleted file mode 100644 index 7067d06..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-3代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-3代 | - | -| **产品型号** | 亚克力-双-i3-3代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥270 | -| **建议零售价** | - | ¥330 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-32G.md deleted file mode 100644 index 2c6ede7..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-4代 | - | -| **产品型号** | 亚克力-双-i3-4代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥245 | -| **建议零售价** | - | ¥315 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-64G.md deleted file mode 100644 index db53f60..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-4代 | - | -| **产品型号** | 亚克力-双-i3-4代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥265 | -| **建议零售价** | - | ¥335 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-128G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-128G.md deleted file mode 100644 index 7b3a0e5..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-128G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-4代 | - | -| **产品型号** | 亚克力-双-i3-4代-8G-128G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥343 | -| **建议零售价** | - | ¥413 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-64G.md deleted file mode 100644 index 36dc25f..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-4代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-4代 | - | -| **产品型号** | 亚克力-双-i3-4代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥315 | -| **建议零售价** | - | ¥385 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-32G.md deleted file mode 100644 index 41cb6e8..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-5代 | - | -| **产品型号** | 亚克力-双-i3-5代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥285 | -| **建议零售价** | - | ¥365 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-64G.md deleted file mode 100644 index 2846bf0..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-5代 | - | -| **产品型号** | 亚克力-双-i3-5代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥305 | -| **建议零售价** | - | ¥385 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-64G.md deleted file mode 100644 index 20eb2a2..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/sku/亚克力-双-i3-5代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i3 亚克力-双 i3-5代 | - | -| **产品型号** | 亚克力-双-i3-5代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥355 | -| **建议零售价** | - | ¥435 | -| **备注** | 高性能版-亚-双-i3,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i3/商品标题.md b/产品/飞牛 NAS/高性能版-亚-双-i3/商品标题.md deleted file mode 100644 index 98db668..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i3/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS 高性能版 i3 亚克力双盘位机箱 家用私有云存储服务器 diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-32G.md deleted file mode 100644 index 6e1e2e0..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-2代 | - | -| **产品型号** | 亚克力-双-i5-2代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥220 | -| **建议零售价** | - | ¥300 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-64G.md deleted file mode 100644 index b9b4cd3..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-2代 | - | -| **产品型号** | 亚克力-双-i5-2代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥240 | -| **建议零售价** | - | ¥320 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-64G.md deleted file mode 100644 index 8420a4e..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-2代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-2代 | - | -| **产品型号** | 亚克力-双-i5-2代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥290 | -| **建议零售价** | - | ¥370 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-32G.md deleted file mode 100644 index 884c4b4..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-3代 | - | -| **产品型号** | 亚克力-双-i5-3代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥245 | -| **建议零售价** | - | ¥325 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-64G.md deleted file mode 100644 index a80c3c3..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/sku/亚克力-双-i5-3代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-亚-双-i5 亚克力-双 i5-3代 | - | -| **产品型号** | 亚克力-双-i5-3代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 亚-双 | ¥46 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥315 | -| **建议零售价** | - | ¥395 | -| **备注** | 高性能版-亚-双-i5,亚克力机箱-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-i5/商品标题.md b/产品/飞牛 NAS/高性能版-亚-双-i5/商品标题.md deleted file mode 100644 index bcc4a6f..0000000 --- a/产品/飞牛 NAS/高性能版-亚-双-i5/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS 高性能版 i5 亚克力双盘位机箱 家用私有云存储服务器 diff --git a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-32G.md b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-32G.md index b832ab8..f57051c 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-32G.md +++ b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-32G.md @@ -6,8 +6,8 @@ | **产品名称** | 飞牛NAS 高性能版-亚-双-J1900 亚克力-双 | - | | **产品型号** | 亚克力-双-J1900-4G-32G | - | | **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | +| **CPU** | J1900 | ¥70 | +| **内存** | D3-4G | ¥22 | | **系统盘** | mSATA-32G | ¥20 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -18,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥243 | -| **建议零售价** | - | ¥293 | +| **总成本** | - | ¥230 | +| **建议零售价** | - | ¥280 | | **备注** | 高性能版-亚-双-J1900,亚克力机箱-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-64G.md index 1cc7918..09e523b 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-64G.md +++ b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-4G-64G.md @@ -6,9 +6,9 @@ | **产品名称** | 飞牛NAS 高性能版-亚-双-J1900 亚克力-双 | - | | **产品型号** | 亚克力-双-J1900-4G-64G | - | | **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | +| **CPU** | J1900 | ¥70 | +| **内存** | D3-4G | ¥22 | +| **系统盘** | mSATA-64G | ¥35 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -18,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥263 | -| **建议零售价** | - | ¥313 | +| **总成本** | - | ¥245 | +| **建议零售价** | - | ¥295 | | **备注** | 高性能版-亚-双-J1900,亚克力机箱-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-128G.md b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-128G.md index c231a37..5639fe9 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-128G.md +++ b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-128G.md @@ -6,8 +6,8 @@ | **产品名称** | 飞牛NAS 高性能版-亚-双-J1900 亚克力-双 | - | | **产品型号** | 亚克力-双-J1900-8G-128G | - | | **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | +| **CPU** | J1900 | ¥70 | +| **内存** | D3-8G | ¥65 | | **系统盘** | mSATA-128G | ¥68 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | @@ -18,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥341 | -| **建议零售价** | - | ¥391 | +| **总成本** | - | ¥321 | +| **建议零售价** | - | ¥371 | | **备注** | 高性能版-亚-双-J1900,亚克力机箱-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-64G.md b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-64G.md index 454d1fa..892249e 100644 --- a/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-64G.md +++ b/产品/飞牛 NAS/高性能版-亚-双-j1900/sku/亚克力-双-J1900-8G-64G.md @@ -6,9 +6,9 @@ | **产品名称** | 飞牛NAS 高性能版-亚-双-J1900 亚克力-双 | - | | **产品型号** | 亚克力-双-J1900-8G-64G | - | | **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | +| **CPU** | J1900 | ¥70 | +| **内存** | D3-8G | ¥65 | +| **系统盘** | mSATA-64G | ¥35 | | **机箱** | 亚-双 | ¥46 | | **电源** | 电源-60W | ¥12 | | **硬盘线** | 硬盘线-双 | ¥5 | @@ -18,6 +18,6 @@ | **运费** | 运费 | ¥10 | | **包装费** | 包装费 | ¥5 | | **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥313 | -| **建议零售价** | - | ¥363 | +| **总成本** | - | ¥288 | +| **建议零售价** | - | ¥338 | | **备注** | 高性能版-亚-双-J1900,亚克力机箱-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-亚-双-j1900/价格表.md b/产品/飞牛 NAS/高性能版-亚-双-j1900/价格表.md new file mode 100644 index 0000000..b33bb73 --- /dev/null +++ b/产品/飞牛 NAS/高性能版-亚-双-j1900/价格表.md @@ -0,0 +1,58 @@ +# 高性能版 亚-双 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:i3:2代+50,3代+60,4代+70,5代+80;i5:成本+80;J1900:成本+50;J3160:成本+70 + +## 高性能版 亚-双 i3(16款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-i3-2代-4G-32G | ¥190 | ¥240 | ¥50 | 26% | +| 2 | 亚克力-双-i3-2代-4G-64G | ¥210 | ¥260 | ¥50 | 24% | +| 3 | 亚克力-双-i3-2代-8G-64G | ¥260 | ¥310 | ¥50 | 19% | +| 4 | 亚克力-双-i3-2代-8G-128G | ¥288 | ¥338 | ¥50 | 17% | +| 5 | 亚克力-双-i3-3代-4G-32G | ¥200 | ¥260 | ¥60 | 30% | +| 6 | 亚克力-双-i3-3代-4G-64G | ¥220 | ¥280 | ¥60 | 27% | +| 7 | 亚克力-双-i3-3代-8G-64G | ¥270 | ¥330 | ¥60 | 22% | +| 8 | 亚克力-双-i3-3代-8G-128G | ¥298 | ¥358 | ¥60 | 20% | +| 9 | 亚克力-双-i3-4代-4G-32G | ¥245 | ¥315 | ¥70 | 29% | +| 10 | 亚克力-双-i3-4代-4G-64G | ¥265 | ¥335 | ¥70 | 26% | +| 11 | 亚克力-双-i3-4代-8G-64G | ¥315 | ¥385 | ¥70 | 22% | +| 12 | 亚克力-双-i3-4代-8G-128G | ¥343 | ¥413 | ¥70 | 20% | +| 13 | 亚克力-双-i3-5代-4G-32G | ¥285 | ¥365 | ¥80 | 28% | +| 14 | 亚克力-双-i3-5代-4G-64G | ¥305 | ¥385 | ¥80 | 26% | +| 15 | 亚克力-双-i3-5代-8G-64G | ¥355 | ¥435 | ¥80 | 23% | +| 16 | 亚克力-双-i3-5代-8G-128G | ¥383 | ¥463 | ¥80 | 21% | + +## 高性能版 亚-双 i5(8款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-i5-2代-4G-32G | ¥220 | ¥300 | ¥80 | 36% | +| 2 | 亚克力-双-i5-2代-4G-64G | ¥240 | ¥320 | ¥80 | 33% | +| 3 | 亚克力-双-i5-2代-8G-64G | ¥290 | ¥370 | ¥80 | 28% | +| 4 | 亚克力-双-i5-2代-8G-128G | ¥318 | ¥398 | ¥80 | 25% | +| 5 | 亚克力-双-i5-3代-4G-32G | ¥245 | ¥325 | ¥80 | 33% | +| 6 | 亚克力-双-i5-3代-4G-64G | ¥265 | ¥345 | ¥80 | 30% | +| 7 | 亚克力-双-i5-3代-8G-64G | ¥315 | ¥395 | ¥80 | 25% | +| 8 | 亚克力-双-i5-3代-8G-128G | ¥343 | ¥423 | ¥80 | 23% | + +## 高性能版 亚-双 J1900(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-J1900-4G-32G | ¥243 | ¥293 | ¥50 | 21% | +| 2 | 亚克力-双-J1900-4G-64G | ¥263 | ¥313 | ¥50 | 19% | +| 3 | 亚克力-双-J1900-8G-64G | ¥313 | ¥363 | ¥50 | 16% | +| 4 | 亚克力-双-J1900-8G-128G | ¥341 | ¥391 | ¥50 | 15% | + +## 高性能版 亚-双 J3160(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-J3160-4G-32G | ¥253 | ¥323 | ¥70 | 28% | +| 2 | 亚克力-双-J3160-4G-64G | ¥273 | ¥343 | ¥70 | 26% | +| 3 | 亚克力-双-J3160-8G-64G | ¥323 | ¥393 | ¥70 | 22% | +| 4 | 亚克力-双-J3160-8G-128G | ¥351 | ¥421 | ¥70 | 20% | + +**合计:32 款** \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能版-亚-双-j3160/价格表.md b/产品/飞牛 NAS/高性能版-亚-双-j3160/价格表.md new file mode 100644 index 0000000..b33bb73 --- /dev/null +++ b/产品/飞牛 NAS/高性能版-亚-双-j3160/价格表.md @@ -0,0 +1,58 @@ +# 高性能版 亚-双 产品价格表 + +> 更新日期:2026-04-26 +> 定价策略:i3:2代+50,3代+60,4代+70,5代+80;i5:成本+80;J1900:成本+50;J3160:成本+70 + +## 高性能版 亚-双 i3(16款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-i3-2代-4G-32G | ¥190 | ¥240 | ¥50 | 26% | +| 2 | 亚克力-双-i3-2代-4G-64G | ¥210 | ¥260 | ¥50 | 24% | +| 3 | 亚克力-双-i3-2代-8G-64G | ¥260 | ¥310 | ¥50 | 19% | +| 4 | 亚克力-双-i3-2代-8G-128G | ¥288 | ¥338 | ¥50 | 17% | +| 5 | 亚克力-双-i3-3代-4G-32G | ¥200 | ¥260 | ¥60 | 30% | +| 6 | 亚克力-双-i3-3代-4G-64G | ¥220 | ¥280 | ¥60 | 27% | +| 7 | 亚克力-双-i3-3代-8G-64G | ¥270 | ¥330 | ¥60 | 22% | +| 8 | 亚克力-双-i3-3代-8G-128G | ¥298 | ¥358 | ¥60 | 20% | +| 9 | 亚克力-双-i3-4代-4G-32G | ¥245 | ¥315 | ¥70 | 29% | +| 10 | 亚克力-双-i3-4代-4G-64G | ¥265 | ¥335 | ¥70 | 26% | +| 11 | 亚克力-双-i3-4代-8G-64G | ¥315 | ¥385 | ¥70 | 22% | +| 12 | 亚克力-双-i3-4代-8G-128G | ¥343 | ¥413 | ¥70 | 20% | +| 13 | 亚克力-双-i3-5代-4G-32G | ¥285 | ¥365 | ¥80 | 28% | +| 14 | 亚克力-双-i3-5代-4G-64G | ¥305 | ¥385 | ¥80 | 26% | +| 15 | 亚克力-双-i3-5代-8G-64G | ¥355 | ¥435 | ¥80 | 23% | +| 16 | 亚克力-双-i3-5代-8G-128G | ¥383 | ¥463 | ¥80 | 21% | + +## 高性能版 亚-双 i5(8款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-i5-2代-4G-32G | ¥220 | ¥300 | ¥80 | 36% | +| 2 | 亚克力-双-i5-2代-4G-64G | ¥240 | ¥320 | ¥80 | 33% | +| 3 | 亚克力-双-i5-2代-8G-64G | ¥290 | ¥370 | ¥80 | 28% | +| 4 | 亚克力-双-i5-2代-8G-128G | ¥318 | ¥398 | ¥80 | 25% | +| 5 | 亚克力-双-i5-3代-4G-32G | ¥245 | ¥325 | ¥80 | 33% | +| 6 | 亚克力-双-i5-3代-4G-64G | ¥265 | ¥345 | ¥80 | 30% | +| 7 | 亚克力-双-i5-3代-8G-64G | ¥315 | ¥395 | ¥80 | 25% | +| 8 | 亚克力-双-i5-3代-8G-128G | ¥343 | ¥423 | ¥80 | 23% | + +## 高性能版 亚-双 J1900(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-J1900-4G-32G | ¥243 | ¥293 | ¥50 | 21% | +| 2 | 亚克力-双-J1900-4G-64G | ¥263 | ¥313 | ¥50 | 19% | +| 3 | 亚克力-双-J1900-8G-64G | ¥313 | ¥363 | ¥50 | 16% | +| 4 | 亚克力-双-J1900-8G-128G | ¥341 | ¥391 | ¥50 | 15% | + +## 高性能版 亚-双 J3160(4款) + +| 序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | +|:---:|---------|:----:|:----:|:----:|:------:| +| 1 | 亚克力-双-J3160-4G-32G | ¥253 | ¥323 | ¥70 | 28% | +| 2 | 亚克力-双-J3160-4G-64G | ¥273 | ¥343 | ¥70 | 26% | +| 3 | 亚克力-双-J3160-8G-64G | ¥323 | ¥393 | ¥70 | 22% | +| 4 | 亚克力-双-J3160-8G-128G | ¥351 | ¥421 | ¥70 | 20% | + +**合计:32 款** \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能版-金大-i3/image/.gitkeep b/产品/飞牛 NAS/高性能版-金大-i3/image/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-32G.md deleted file mode 100644 index 028b328..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-2代 | - | -| **产品型号** | 3.5大-双-i3-2代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥212 | -| **建议零售价** | - | ¥262 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-64G.md deleted file mode 100644 index f87f57b..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-2代 | - | -| **产品型号** | 3.5大-双-i3-2代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥232 | -| **建议零售价** | - | ¥282 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-64G.md deleted file mode 100644 index 22ef5e4..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-2代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-2代 | - | -| **产品型号** | 3.5大-双-i3-2代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-2代 | ¥55 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥282 | -| **建议零售价** | - | ¥332 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-32G.md deleted file mode 100644 index f8bc5d8..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-3代 | - | -| **产品型号** | 3.5大-双-i3-3代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥222 | -| **建议零售价** | - | ¥282 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-64G.md deleted file mode 100644 index 94ad699..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-3代 | - | -| **产品型号** | 3.5大-双-i3-3代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥242 | -| **建议零售价** | - | ¥302 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-64G.md deleted file mode 100644 index 9486aed..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-3代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-3代 | - | -| **产品型号** | 3.5大-双-i3-3代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-3代 | ¥65 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥292 | -| **建议零售价** | - | ¥352 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-32G.md deleted file mode 100644 index 691b0d3..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-4代 | - | -| **产品型号** | 3.5大-双-i3-4代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥267 | -| **建议零售价** | - | ¥337 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-64G.md deleted file mode 100644 index e3a00ea..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-4代 | - | -| **产品型号** | 3.5大-双-i3-4代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥287 | -| **建议零售价** | - | ¥357 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-64G.md deleted file mode 100644 index 65300d8..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-4代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-4代 | - | -| **产品型号** | 3.5大-双-i3-4代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-4代 | ¥110 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥337 | -| **建议零售价** | - | ¥407 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-32G.md deleted file mode 100644 index 5a15045..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-5代 | - | -| **产品型号** | 3.5大-双-i3-5代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥307 | -| **建议零售价** | - | ¥387 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-64G.md deleted file mode 100644 index 19740f1..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-5代 | - | -| **产品型号** | 3.5大-双-i3-5代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥327 | -| **建议零售价** | - | ¥407 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-64G.md deleted file mode 100644 index 3dff72a..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/sku/3.5大-双-i3-5代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i3 3.5金属大 i3-5代 | - | -| **产品型号** | 3.5大-双-i3-5代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i3-5代 | ¥150 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥377 | -| **建议零售价** | - | ¥457 | -| **备注** | 高性能版-金大-i3,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i3/主图/.gitkeep b/产品/飞牛 NAS/高性能版-金大-i3/主图/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-i3/商品标题.md b/产品/飞牛 NAS/高性能版-金大-i3/商品标题.md deleted file mode 100644 index 4d40be2..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i3/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS高性能版i3处理器金属大机箱私有云存储4盘位手机备份电脑扩容群晖替代 \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能版-金大-i3/详情/.gitkeep b/产品/飞牛 NAS/高性能版-金大-i3/详情/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-32G.md deleted file mode 100644 index d4adf41..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-2代 | - | -| **产品型号** | 3.5大-双-i5-2代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥242 | -| **建议零售价** | - | ¥322 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-64G.md deleted file mode 100644 index 7c81e66..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-4G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-2代 | - | -| **产品型号** | 3.5大-双-i5-2代-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥262 | -| **建议零售价** | - | ¥342 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-64G.md deleted file mode 100644 index 257dd13..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-2代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-2代 | - | -| **产品型号** | 3.5大-双-i5-2代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-2代 | ¥85 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥312 | -| **建议零售价** | - | ¥392 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-32G.md deleted file mode 100644 index 48af782..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-4G-32G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-3代 | - | -| **产品型号** | 3.5大-双-i5-3代-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥267 | -| **建议零售价** | - | ¥347 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-64G.md deleted file mode 100644 index d55fbaf..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/sku/3.5大-双-i5-3代-8G-64G.md +++ /dev/null @@ -1,22 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-i5 3.5金属大 i5-3代 | - | -| **产品型号** | 3.5大-双-i5-3代-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | i5-3代 | ¥110 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥337 | -| **建议零售价** | - | ¥417 | -| **备注** | 高性能版-金大-i5,3.5金属大-双SATA | - | diff --git a/产品/飞牛 NAS/高性能版-金大-i5/商品标题.md b/产品/飞牛 NAS/高性能版-金大-i5/商品标题.md deleted file mode 100644 index 56b212f..0000000 --- a/产品/飞牛 NAS/高性能版-金大-i5/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS 高性能版 i5 3.5寸金属大机箱 双盘位 家用私有云存储服务器 diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/image/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j1900/image/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-32G.md deleted file mode 100644 index de91cd7..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-32G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J1900 3.5金属大 | - | -| **产品型号** | 3.5大-双-J1900-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥265 | -| **建议零售价** | - | ¥315 | -| **备注** | 高性能版-金大-J1900,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-64G.md deleted file mode 100644 index ed1ad34..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-4G-64G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J1900 3.5金属大 | - | -| **产品型号** | 3.5大-双-J1900-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥285 | -| **建议零售价** | - | ¥335 | -| **备注** | 高性能版-金大-J1900,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-128G.md b/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-128G.md deleted file mode 100644 index 5085e7d..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-128G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J1900 3.5金属大 | - | -| **产品型号** | 3.5大-双-J1900-8G-128G | - | -| **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥363 | -| **建议零售价** | - | ¥413 | -| **备注** | 高性能版-金大-J1900,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-64G.md deleted file mode 100644 index c303bd0..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j1900/sku/3.5大-双-J1900-8G-64G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J1900 3.5金属大 | - | -| **产品型号** | 3.5大-双-J1900-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | J1900 | ¥80 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥335 | -| **建议零售价** | - | ¥385 | -| **备注** | 高性能版-金大-J1900,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/主图/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j1900/主图/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/商品标题.md b/产品/飞牛 NAS/高性能版-金大-j1900/商品标题.md deleted file mode 100644 index 62595f2..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j1900/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS高性能版J1900处理器金属大机箱私有云存储双盘位手机备份电脑扩容群晖替代 \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能版-金大-j1900/详情/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j1900/详情/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/image/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j3160/image/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-32G.md b/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-32G.md deleted file mode 100644 index 7728b4f..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-32G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J3160 3.5金属大 | - | -| **产品型号** | 3.5大-双-J3160-4G-32G | - | -| **用途分类** | NAS | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-32G | ¥20 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥275 | -| **建议零售价** | - | ¥345 | -| **备注** | 高性能版-金大-J3160,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-64G.md b/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-64G.md deleted file mode 100644 index 25fbba2..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-4G-64G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J3160 3.5金属大 | - | -| **产品型号** | 3.5大-双-J3160-4G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-4G | ¥25 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥295 | -| **建议零售价** | - | ¥365 | -| **备注** | 高性能版-金大-J3160,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-128G.md b/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-128G.md deleted file mode 100644 index 44bdd6a..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-128G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J3160 3.5金属大 | - | -| **产品型号** | 3.5大-双-J3160-8G-128G | - | -| **用途分类** | NAS | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-128G | ¥68 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥373 | -| **建议零售价** | - | ¥443 | -| **备注** | 高性能版-金大-J3160,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-64G.md b/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-64G.md deleted file mode 100644 index 0d0fff6..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j3160/sku/3.5大-双-J3160-8G-64G.md +++ /dev/null @@ -1,23 +0,0 @@ -# 产品信息 - -| 字段 | 配件名称 | 价格 | -|------|---------|------| -| **产品编号** | - | - | -| **产品名称** | 飞牛NAS 高性能版-金大-J3160 3.5金属大 | - | -| **产品型号** | 3.5大-双-J3160-8G-64G | - | -| **用途分类** | NAS | - | -| **CPU** | J3160 | ¥90 | -| **内存** | D3-8G | ¥75 | -| **系统盘** | mSATA-64G | ¥40 | -| **机箱** | 金属机箱3.5寸大-双 | ¥68 | -| **电源** | 电源-60W | ¥12 | -| **硬盘线** | 硬盘线-双 | ¥5 | -| **双SATA转换器** | 双SATA转换器 | ¥28 | -| **电池** | 电池 | ¥1 | -| **网线** | 网线 | ¥1 | -| **运费** | 运费 | ¥10 | -| **包装费** | 包装费 | ¥5 | -| **装机费** | 装机费 | ¥10 | -| **总成本** | - | ¥345 | -| **建议零售价** | - | ¥415 | -| **备注** | 高性能版-金大-J3160,3.5金属大-双SATA,单SATA+转换器支持双盘位 | - | diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/主图/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j3160/主图/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/商品标题.md b/产品/飞牛 NAS/高性能版-金大-j3160/商品标题.md deleted file mode 100644 index deeee13..0000000 --- a/产品/飞牛 NAS/高性能版-金大-j3160/商品标题.md +++ /dev/null @@ -1 +0,0 @@ -飞牛NAS高性能版J3160处理器金属大机箱私有云存储双盘位手机备份电脑扩容群晖替代 \ No newline at end of file diff --git a/产品/飞牛 NAS/高性能版-金大-j3160/详情/.gitkeep b/产品/飞牛 NAS/高性能版-金大-j3160/详情/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/配件/配件清单.md b/配件/配件清单.md index e5f4722..c4b9bd7 100644 --- a/配件/配件清单.md +++ b/配件/配件清单.md @@ -2,31 +2,39 @@ | 配件名称 | 配件类型 | 进价 | 备注 | |---------|---------|------|------| -| 1037U | CPU | 55 | 双 SATA 口 | -| 3217U | CPU | 55 | 双 SATA 口,i3-2代 | +| 1037U | CPU | 50 | 双 SATA 口 | +| 3217U | CPU | 65 | 双 SATA 口,i3-3代 | | i3-2代 | CPU | 55 | 双 SATA 口 | | i3-3代 | CPU | 65 | 双 SATA 口 | -| i3-4代 | CPU | 110| 双 SATA 口 | +| i3-4代 | CPU | 75| 双 SATA 口 | | i3-5代 | CPU | 150| 双 SATA 口 | | i5-2代 | CPU | 85| 双 SATA 口 | -| i5-3代 | CPU | 110| 双 SATA 口 | -| 5005U | CPU | 150| 双 SATA 口,i3-5代 | +| i5-3代 | CPU | 85| 双 SATA 口 | +| i5-4代 | CPU | 100| 双 SATA 口 | +| i7-2代 | CPU | 100| 双 SATA 口 | +| i7-3代 | CPU | 100| 双 SATA 口 | +| i7-4代 | CPU | 100| 双 SATA 口 | +| 5005U | CPU | 100| 单 SATA 口,i3-5代 | | 3855U | CPU | 80 | 单 SATA 口 | | N2840 | CPU | 45 | 单 SATA 口 | | N2930 | CPU | 50 | 单 SATA 口 | -| AMD-A4 | CPU | 45 | 单 SATA 口 | -| J1900 | CPU | 80 | 单 SATA 口 | +| AMD-A4 | CPU | 40 | 单 SATA 口 | +| J1900 | CPU | 70 | 单 SATA 口 | | J1800 | CPU | 40 | 单 SATA 口 | -| J3160 | CPU | 90 | 单 SATA 口 | +| J3160 | CPU | 80 | 单 SATA 口 | | D3-2G | 内存 | 13 | -| D3-4G | 内存 | 25 | -| D3-8G | 内存 | 75 | +| D3-4G | 内存 | 22 | +| D3-8G | 内存 | 65 | | mSATA-16G | 系统盘 | 15 | | mSATA-32G | 系统盘 | 20 | -| mSATA-64G | 系统盘 | 40 | +| mSATA-64G | 系统盘 | 35 | | mSATA-128G | 系统盘 | 68 | -| HDD-500G | 数据盘 | 70 | +| HDD-500G | 数据盘 | 55 | +| HDD-1T | 数据盘 | 145 | +| HDD-3T | 数据盘 | 280 | +| HDD-4T | 数据盘 | 400 | +| HDD-6T | 数据盘 | 580 | | 电源 -60W | 电源 | 12 | | 硬盘线 - 双 | 硬盘线 | 5 | | 硬盘线 - 单 | 硬盘线 | 4 |