diff --git a/README.md b/README.md index b07040c..a289e48 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,28 @@ 文档地址:待完成 +## 功能截图 + +### 部门管理 +![部门管理](images/dj_dept.png) + +### 用户管理 +![用户管理](images/dj_user.png) + +### 角色管理 +![角色管理](images/dj_role.png) + +### 岗位管理 +![岗位管理](images/dj_post.png) + +### 菜单管理 +![菜单管理](images/dj_menu.png) + +### 前端界面 +![前端界面](images/dj_vue1.png) + +### 普通员工界面 +![普通员工界面](images/dj_chenze.png) # 许可证 @@ -117,6 +139,68 @@ celery -A backend flower --port=5555 --basic_auth=admin:admin123 # 或 npm run dev / yarn dev ``` + +# Docker 启动与部署 + +## 开发环境一键启动 + +1. 复制开发环境变量模板(如有): + ```bash + cp docker/.env.example docker/.env.dev + # 根据实际情况修改 docker/.env.dev + ``` +2. 构建并启动所有开发服务: + ```bash + docker compose -f docker-compose.dev.yml up -d --build + ``` +3. 关闭所有开发服务: + ```bash + docker compose -f docker-compose.dev.yml down + ``` + +> 如需自定义端口、数据库、Redis 密码等,请修改 `docker/.env.dev` 文件。 + +## 生产环境一键启动 + +本项目支持一键 Docker 部署,推荐生产环境使用。 + +1. 复制环境变量模板: + ```bash + cp docker/.env.example docker/.env.prod + # 根据实际情况修改 docker/.env.prod + ``` +2. 构建并启动所有服务: + ```bash + docker compose -f docker-compose.prod.yml up -d --build + ``` +3. 关闭所有服务: + ```bash + docker compose -f docker-compose.prod.yml down + ``` + +如需自定义端口、数据库、Redis 密码等,请修改 docker/.env.prod 文件。 + +## 阿里云 OSS 配置 + +### 启用 OSS 上传 + +1. 在 `docker/.env.prod` 中配置 OSS 参数: + ```env + VITE_OSS_ENABLED=true + VITE_OSS_REGION=oss-cn-hangzhou + VITE_OSS_ACCESS_KEY_ID=your_access_key_id + VITE_OSS_ACCESS_KEY_SECRET=your_access_key_secret + VITE_OSS_BUCKET=your_bucket_name + VITE_OSS_PREFIX=frontend/ + VITE_OSS_DELETE_LOCAL=false + ``` + +### 禁用 OSS 上传 + +将 `VITE_OSS_ENABLED` 设置为 `false` 或删除相关配置即可。 + +--- + # 技术架构 - **后端**:Django + Django REST framework diff --git a/backend/Dockerfile b/backend/Dockerfile index b1e3149..d8064f4 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -31,3 +31,4 @@ CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] FROM base AS prod +CMD ["gunicorn", "backend.wsgi:application", "--bind", "0.0.0.0:8000"] diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index ea046eb..e143f00 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -10,6 +10,7 @@ services: - dj_admin_network env_file: - ./docker/.env.dev + - ./docker/.env.local healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-pmy-secret-pw" ] interval: 5s @@ -25,6 +26,7 @@ services: - dj_admin_network env_file: - ./docker/.env.dev + - ./docker/.env.local celery_worker: @@ -34,6 +36,7 @@ services: command: celery -A backend worker -l info env_file: - ./docker/.env.dev + - ./docker/.env.local depends_on: - backend - redis @@ -47,6 +50,7 @@ services: command: celery -A backend beat -l info env_file: - ./docker/.env.dev + - ./docker/.env.local depends_on: - backend - redis @@ -60,6 +64,7 @@ services: command: celery -A backend flower --port=5555 env_file: - ./docker/.env.dev + - ./docker/.env.local depends_on: - backend - redis @@ -80,6 +85,7 @@ services: - dj_admin_network env_file: - ./docker/.env.dev + - ./docker/.env.local environment: DATABASE_HOST: "db" depends_on: @@ -100,6 +106,7 @@ services: - dj_admin_network env_file: - ./docker/.env.dev + - ./docker/.env.local networks: dj_admin_network: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index f0b0f1b..dda1353 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,105 +1,110 @@ services: - db: - image: mysql:8 - restart: always - env_file: - - ./docker/.env.prod - environment: - TZ: Asia/Shanghai - ports: - - "33306:3306" - volumes: - - ./sql/django_vue.sql:/docker-entrypoint-initdb.d/django_vue.sql - - ./data/mysql_prod:/var/lib/mysql # <-- 加这一行 - networks: - - app_net + db: + image: mysql:8 + restart: always + env_file: + - ./docker/.env.prod + - ./docker/.env.local + environment: + TZ: Asia/Shanghai + ports: + - "33306:3306" + volumes: + - ./sql/django_vue.sql:/docker-entrypoint-initdb.d/django_vue.sql + - ./data/mysql_prod:/var/lib/mysql # <-- 加这一行 + networks: + - app_net - redis: - image: redis:7 - restart: always - ports: - - "36379:6379" - networks: - - app_net - env_file: - - ./docker/.env.prod + redis: + image: redis:7 + restart: always + ports: + - "36379:6379" + networks: + - app_net + env_file: + - ./docker/.env.prod + - ./docker/.env.local + backend: + build: + context: ./backend + dockerfile: Dockerfile + target: prod + command: gunicorn backend.wsgi:application --bind 0.0.0.0:8000 + env_file: + - ./docker/.env.prod + - ./docker/.env.local + depends_on: + - db + - redis + volumes: + - static_data:/app/static + - media_data:/app/media + ports: + - "38000:8000" + networks: + - app_net - backend: - build: - context: ./backend - dockerfile: Dockerfile - target: prod - command: gunicorn backend.wsgi:application --bind 0.0.0.0:8000 - env_file: - - ./docker/.env.prod - depends_on: - - db - - redis - volumes: - - static_data:/app/static - - media_data:/app/media - ports: - - "38000:8000" - networks: - - app_net + celery_worker: + build: + context: ./backend + dockerfile: Dockerfile + command: celery -A backend worker -l info + env_file: + - ./docker/.env.prod + - ./docker/.env.local + depends_on: + - backend + - redis + networks: + - app_net - celery_worker: - build: - context: ./backend - dockerfile: Dockerfile - command: celery -A backend worker -l info - env_file: - - ./docker/.env.prod - depends_on: - - backend - - redis - networks: - - app_net + celery_beat: + build: + context: ./backend + dockerfile: Dockerfile + command: celery -A backend beat -l info + env_file: + - ./docker/.env.prod + - ./docker/.env.local + depends_on: + - backend + - redis + networks: + - app_net - celery_beat: - build: - context: ./backend - dockerfile: Dockerfile - command: celery -A backend beat -l info - env_file: - - ./docker/.env.prod - depends_on: - - backend - - redis - networks: - - app_net - - flower: - build: - context: ./backend - dockerfile: Dockerfile - command: celery -A backend flower --port=5555 - env_file: - - ./docker/.env.prod - depends_on: - - backend - - redis - ports: - - "35555:5555" - networks: - - app_net + flower: + build: + context: ./backend + dockerfile: Dockerfile + command: celery -A backend flower --port=5555 + env_file: + - ./docker/.env.prod + - ./docker/.env.local + depends_on: + - backend + - redis + ports: + - "35555:5555" + networks: + - app_net - frontend: - build: - context: ./web - dockerfile: Dockerfile - target: prod - depends_on: - - backend - ports: - - "35678:80" - networks: - - app_net - env_file: - - ./docker/.env.prod - + frontend: + build: + context: ./web + dockerfile: Dockerfile + target: prod + depends_on: + - backend + ports: + - "35678:80" + networks: + - app_net + env_file: + - ./docker/.env.prod + - ./docker/.env.local volumes: db_data: diff --git a/docker/.env.example b/docker/.env.example new file mode 100644 index 0000000..9fa3aa1 --- /dev/null +++ b/docker/.env.example @@ -0,0 +1,40 @@ +# web +VITE_BACKEND_URL=http://backend:8000 + +VITE_OSS_ENABLED=false +VITE_OSS_REGION=oss-cn-hangzhou +VITE_OSS_ACCESS_KEY_ID=your_access_key_id +VITE_OSS_ACCESS_KEY_SECRET=your_access_key_secret +VITE_OSS_BUCKET=your_bucket_name +VITE_OSS_PREFIX=frontend/ +VITE_OSS_DELETE_LOCAL=false + +# MySQL +MYSQL_DATABASE=django_vue +MYSQL_USER=chenze +MYSQL_PASSWORD=ca25045c409e60fab517c7327dd527ef27c48ca6 +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=58ce16c2ee80311e130b30f11160ef77e0ac6aa7 + +# Django +DEBUG=False +DJANGO_ALLOWED_HOSTS=* +DB_NAME=django_vue +DB_USER=root +DB_PASSWORD=58ce16c2ee80311e130b30f11160ef77e0ac6aa7 +DB_HOST=db +DB_PORT=3306 + +# Redis +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_PASSWORD=e4c173f1b708e8e90f12bc1481e8b3ef + +# Flower +FLOWER_PORT=5555 + +# 后端服务端口 +BACKEND_PORT=8000 + +# Nginx +NGINX_PORT=80 diff --git a/docker/.env.prod b/docker/.env.prod index c2625c7..f93d27a 100644 --- a/docker/.env.prod +++ b/docker/.env.prod @@ -1,3 +1,6 @@ +# web +VITE_BACKEND_URL=http://backend:8000 + # MySQL MYSQL_DATABASE=django_vue MYSQL_USER=chenze @@ -9,8 +12,8 @@ MYSQL_ROOT_PASSWORD=58ce16c2ee80311e130b30f11160ef77e0ac6aa7 DEBUG=False DJANGO_ALLOWED_HOSTS=* DB_NAME=django_vue -DB_USER=chenze -DB_PASSWORD=ca25045c409e60fab517c7327dd527ef27c48ca6 +DB_USER=root +DB_PASSWORD=58ce16c2ee80311e130b30f11160ef77e0ac6aa7 DB_HOST=db DB_PORT=3306 @@ -27,4 +30,3 @@ BACKEND_PORT=8000 # Nginx NGINX_PORT=80 - diff --git a/images/dj_chenze.png b/images/dj_chenze.png new file mode 100644 index 0000000..171e62d Binary files /dev/null and b/images/dj_chenze.png differ diff --git a/images/dj_dept.png b/images/dj_dept.png new file mode 100644 index 0000000..81d65bc Binary files /dev/null and b/images/dj_dept.png differ diff --git a/images/dj_menu.png b/images/dj_menu.png new file mode 100644 index 0000000..55ab59a Binary files /dev/null and b/images/dj_menu.png differ diff --git a/images/dj_post.png b/images/dj_post.png new file mode 100644 index 0000000..150b3cf Binary files /dev/null and b/images/dj_post.png differ diff --git a/images/dj_role.png b/images/dj_role.png new file mode 100644 index 0000000..f148588 Binary files /dev/null and b/images/dj_role.png differ diff --git a/images/dj_user.png b/images/dj_user.png new file mode 100644 index 0000000..fb3898e Binary files /dev/null and b/images/dj_user.png differ diff --git a/images/dj_vue1.png b/images/dj_vue1.png new file mode 100644 index 0000000..1ea5d92 Binary files /dev/null and b/images/dj_vue1.png differ diff --git a/web/apps/web-antd/.env.production b/web/apps/web-antd/.env.production index 93751cd..0dcb0b5 100644 --- a/web/apps/web-antd/.env.production +++ b/web/apps/web-antd/.env.production @@ -17,3 +17,12 @@ VITE_INJECT_APP_LOADING=true # 打包后是否生成dist.zip VITE_ARCHIVER=true + +# 阿里云oss配置 +VITE_OSS_ENABLED=false +VITE_OSS_REGION= +VITE_OSS_ACCESS_KEY_ID= +VITE_OSS_ACCESS_KEY_SECRET= +VITE_OSS_BUCKET= +VITE_OSS_PREFIX= +VITE_OSS_DELETE_LOCAL= diff --git a/web/apps/web-antd/package.json b/web/apps/web-antd/package.json index c3925c0..f9c1506 100644 --- a/web/apps/web-antd/package.json +++ b/web/apps/web-antd/package.json @@ -47,5 +47,8 @@ "pinia": "catalog:", "vue": "catalog:", "vue-router": "catalog:" + }, + "devDependencies": { + "ali-oss": "^6.23.0" } } diff --git a/web/apps/web-antd/plugins/vite-plugin-oss.mjs b/web/apps/web-antd/plugins/vite-plugin-oss.mjs new file mode 100644 index 0000000..a692ac5 --- /dev/null +++ b/web/apps/web-antd/plugins/vite-plugin-oss.mjs @@ -0,0 +1,77 @@ +import fs from 'node:fs'; +import path from 'node:path'; + +import OSS from 'ali-oss'; + +export default function vitePluginOss(options = {}) { + const { + enabled = false, + region, + accessKeyId, + accessKeySecret, + bucket, + prefix = '', + deleteLocal = false, + } = options; + + if (!enabled) { + return { + name: 'vite-plugin-oss', + apply: 'build', + closeBundle() { + console.log('OSS upload disabled'); + }, + }; + } + + return { + name: 'vite-plugin-oss', + apply: 'build', + async closeBundle() { + console.log('Starting OSS upload...'); + + const client = new OSS({ + region, + accessKeyId, + accessKeySecret, + bucket, + }); + + const distPath = path.resolve(process.cwd(), 'dist'); + + if (!fs.existsSync(distPath)) { + console.error('Dist folder not found'); + return; + } + + try { + await uploadDirectory(client, distPath, prefix); + console.log('OSS upload completed successfully'); + + if (deleteLocal) { + fs.rmSync(distPath, { recursive: true, force: true }); + console.log('Local dist folder deleted'); + } + } catch (error) { + console.error('OSS upload failed:', error); + } + }, + }; +} + +async function uploadDirectory(client, localPath, prefix) { + const files = fs.readdirSync(localPath); + + for (const file of files) { + const localFilePath = path.join(localPath, file); + const stats = fs.statSync(localFilePath); + + if (stats.isDirectory()) { + await uploadDirectory(client, localFilePath, `${prefix}${file}/`); + } else { + const ossKey = `${prefix}${file}`; + await client.put(ossKey, localFilePath); + console.log(`Uploaded: ${ossKey}`); + } + } +} diff --git a/web/apps/web-antd/vite.config.mts b/web/apps/web-antd/vite.config.mts index fb0ba19..a966255 100644 --- a/web/apps/web-antd/vite.config.mts +++ b/web/apps/web-antd/vite.config.mts @@ -1,13 +1,17 @@ +import * as console from 'node:console'; + import { defineConfig } from '@vben/vite-config'; + import { loadEnv } from 'vite'; -import * as console from "node:console"; + +import vitePluginOss from './plugins/vite-plugin-oss.mjs'; export default defineConfig(async ({ mode }) => { // eslint-disable-next-line n/prefer-global/process const env = loadEnv(mode, process.cwd()); // 这样获取 const backendUrl = env.VITE_BACKEND_URL; - console.log(backendUrl) + console.log(backendUrl); return { application: {}, vite: { @@ -21,6 +25,17 @@ export default defineConfig(async ({ mode }) => { }, }, }, + plugins: [ + vitePluginOss({ + enabled: env.VITE_OSS_ENABLED === 'true', + region: env.VITE_OSS_REGION, + accessKeyId: env.VITE_OSS_ACCESS_KEY_ID, + accessKeySecret: env.VITE_OSS_ACCESS_KEY_SECRET, + bucket: env.VITE_OSS_BUCKET, + prefix: env.VITE_OSS_PREFIX || '', + deleteLocal: env.VITE_OSS_DELETE_LOCAL === 'true', + }), + ], }, }; }); diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 3460dad..40300e1 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -642,7 +642,7 @@ importers: version: 9.0.2 nitropack: specifier: 'catalog:' - version: 2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13) + version: 2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13)(xml2js@0.6.2) devDependencies: '@types/jsonwebtoken': specifier: 'catalog:' @@ -716,6 +716,10 @@ importers: vue-router: specifier: 'catalog:' version: 4.5.1(vue@3.5.13(typescript@5.8.3)) + devDependencies: + ali-oss: + specifier: ^6.23.0 + version: 6.23.0 apps/web-ele: dependencies: @@ -1155,7 +1159,7 @@ importers: version: 7.2.0 nitropack: specifier: 'catalog:' - version: 2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13) + version: 2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13)(xml2js@0.6.2) resolve.exports: specifier: 'catalog:' version: 2.0.3 @@ -5031,6 +5035,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -5039,6 +5047,10 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agentkeepalive@3.5.3: + resolution: {integrity: sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw==} + engines: {node: '>= 4.0.0'} + agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} @@ -5079,6 +5091,10 @@ packages: resolution: {integrity: sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg==} engines: {node: '>= 14.0.0'} + ali-oss@6.23.0: + resolution: {integrity: sha512-FipRmyd16Pr/tEey/YaaQ/24Pc3HEpLM9S1DRakEuXlSLXNIJnu1oJtHM53eVYpvW3dXapSjrip3xylZUTIZVQ==} + engines: {node: '>=8'} + alien-signals@0.4.14: resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} @@ -5298,6 +5314,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + bowser@1.9.4: + resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==} + boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} @@ -5341,6 +5360,9 @@ packages: resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} engines: {node: '>=18.20'} + builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -5727,6 +5749,9 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} + copy-to@2.0.1: + resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==} + core-js-compat@3.41.0: resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} @@ -5972,6 +5997,9 @@ packages: date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + dateformat@2.2.0: + resolution: {integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==} + dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -6051,6 +6079,10 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} + default-user-agent@1.0.0: + resolution: {integrity: sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==} + engines: {node: '>= 0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -6103,6 +6135,10 @@ packages: destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -6159,6 +6195,10 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + digest-header@1.1.0: + resolution: {integrity: sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==} + engines: {node: '>= 8.0.0'} + dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -6293,6 +6333,10 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-or-error@1.0.1: + resolution: {integrity: sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==} + engines: {node: '>= 0.11.14'} + enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} @@ -6845,6 +6889,9 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + formstream@1.5.1: + resolution: {integrity: sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -6949,6 +6996,9 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-ready@1.0.0: + resolution: {integrity: sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -7370,6 +7420,9 @@ packages: resolution: {integrity: sha512-Ab9bQDQ11lWootZUI5qxgN2ZXwxNI5hTwnsvOc1wyxQ7zQ8OkEDw79mI0+9jI3x432NfwbVRru+3noJfXF6lSQ==} hasBin: true + is-class-hotfix@0.0.6: + resolution: {integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==} + is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -7542,6 +7595,9 @@ packages: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} + is-type-of@1.4.0: + resolution: {integrity: sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==} + is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -7605,6 +7661,9 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -7628,6 +7687,9 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + js-beautify@1.15.4: resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} engines: {node: '>=14'} @@ -7716,6 +7778,9 @@ packages: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} + jstoxml@2.2.9: + resolution: {integrity: sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==} + junk@4.0.1: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} @@ -8084,6 +8149,9 @@ packages: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge-descriptors@2.0.0: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} @@ -8142,6 +8210,11 @@ packages: engines: {node: '>=4'} hasBin: true + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} @@ -8239,6 +8312,10 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -8393,6 +8470,10 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true + node-hex@1.0.1: + resolution: {integrity: sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==} + engines: {node: '>=8.0.0'} + node-html-parser@5.4.2: resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} @@ -8526,10 +8607,20 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} + os-name@1.0.3: + resolution: {integrity: sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==} + engines: {node: '>=0.10.0'} + hasBin: true + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + osx-release@1.1.0: + resolution: {integrity: sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==} + engines: {node: '>=0.10.0'} + hasBin: true + outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} @@ -8722,6 +8813,9 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} + pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -8781,6 +8875,9 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + playwright-core@1.52.0: resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} engines: {node: '>=18'} @@ -9714,6 +9811,9 @@ packages: scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + sdk-base@2.0.1: + resolution: {integrity: sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==} + search-insights@2.17.3: resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} @@ -9950,6 +10050,10 @@ packages: standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -9961,6 +10065,13 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} + stream-http@2.8.2: + resolution: {integrity: sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==} + + stream-wormhole@1.1.0: + resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==} + engines: {node: '>=4.0.0'} + streamx@2.22.0: resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} @@ -10320,6 +10431,9 @@ packages: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} + to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10495,6 +10609,10 @@ packages: unenv@2.0.0-rc.15: resolution: {integrity: sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==} + unescape@1.0.1: + resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==} + engines: {node: '>=0.10.0'} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -10673,6 +10791,15 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + urllib@2.44.0: + resolution: {integrity: sha512-zRCJqdfYllRDA9bXUtx+vccyRqtJPKsw85f44zH7zPD28PIvjMqIgw9VwoTLV7xTBWZsbebUFVHU5ghQcWku2A==} + engines: {node: '>= 0.10.0'} + peerDependencies: + proxy-agent: ^5.0.0 + peerDependenciesMeta: + proxy-agent: + optional: true + urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} @@ -10682,6 +10809,10 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + utility@1.18.0: + resolution: {integrity: sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==} + engines: {node: '>= 0.12.0'} + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -11055,6 +11186,10 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} + win-release@1.1.1: + resolution: {integrity: sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==} + engines: {node: '>=0.10.0'} + winston-transport@4.9.0: resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} engines: {node: '>= 12.0.0'} @@ -11154,6 +11289,18 @@ packages: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} + xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -14861,6 +15008,8 @@ snapshots: acorn@8.14.1: {} + address@1.2.2: {} + agent-base@6.0.2: dependencies: debug: 4.4.0 @@ -14869,6 +15018,10 @@ snapshots: agent-base@7.1.3: {} + agentkeepalive@3.5.3: + dependencies: + humanize-ms: 1.2.1 + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -14930,6 +15083,37 @@ snapshots: '@algolia/requester-fetch': 5.23.4 '@algolia/requester-node-http': 5.23.4 + ali-oss@6.23.0: + dependencies: + address: 1.2.2 + agentkeepalive: 3.5.3 + bowser: 1.9.4 + copy-to: 2.0.1 + dateformat: 2.2.0 + debug: 4.4.0 + destroy: 1.2.0 + end-or-error: 1.0.1 + get-ready: 1.0.0 + humanize-ms: 1.2.1 + is-type-of: 1.4.0 + js-base64: 2.6.4 + jstoxml: 2.2.9 + lodash: 4.17.21 + merge-descriptors: 1.0.3 + mime: 2.6.0 + platform: 1.3.6 + pump: 3.0.2 + qs: 6.14.0 + sdk-base: 2.0.1 + stream-http: 2.8.2 + stream-wormhole: 1.1.0 + urllib: 2.44.0 + utility: 1.18.0 + xml2js: 0.6.2 + transitivePeerDependencies: + - proxy-agent + - supports-color + alien-signals@0.4.14: {} alien-signals@1.0.13: {} @@ -15173,6 +15357,8 @@ snapshots: boolbase@1.0.0: {} + bowser@1.9.4: {} + boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -15221,6 +15407,8 @@ snapshots: builtin-modules@5.0.0: {} + builtin-status-codes@3.0.0: {} + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 @@ -15636,6 +15824,8 @@ snapshots: dependencies: is-what: 4.1.16 + copy-to@2.0.1: {} + core-js-compat@3.41.0: dependencies: browserslist: 4.24.4 @@ -15949,6 +16139,8 @@ snapshots: date-fns@4.1.0: {} + dateformat@2.2.0: {} + dayjs@1.11.13: {} db0@0.3.2: {} @@ -15986,6 +16178,10 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 + default-user-agent@1.0.0: + dependencies: + os-name: 1.0.3 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -16048,6 +16244,8 @@ snapshots: destr@2.0.5: {} + destroy@1.2.0: {} + detect-file@1.0.0: {} detect-indent@6.1.0: {} @@ -16105,6 +16303,8 @@ snapshots: didyoumean@1.2.2: {} + digest-header@1.1.0: {} + dijkstrajs@1.0.3: {} dir-glob@3.0.1: @@ -16255,6 +16455,8 @@ snapshots: dependencies: once: 1.4.0 + end-or-error@1.0.1: {} + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 @@ -16990,6 +17192,13 @@ snapshots: dependencies: fetch-blob: 3.2.0 + formstream@1.5.1: + dependencies: + destroy: 1.2.0 + mime: 2.6.0 + node-hex: 1.0.1 + pause-stream: 0.0.11 + forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -17105,6 +17314,8 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-ready@1.0.0: {} + get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -17572,6 +17783,8 @@ snapshots: dependencies: ci-info: 4.2.0 + is-class-hotfix@0.0.6: {} + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -17706,6 +17919,12 @@ snapshots: dependencies: text-extensions: 2.4.0 + is-type-of@1.4.0: + dependencies: + core-util-is: 1.0.3 + is-class-hotfix: 0.0.6 + isstream: 0.1.2 + is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 @@ -17753,6 +17972,8 @@ snapshots: isexe@2.0.0: {} + isstream@0.1.2: {} + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -17776,6 +17997,8 @@ snapshots: jju@1.4.0: {} + js-base64@2.6.4: {} + js-beautify@1.15.4: dependencies: config-chain: 1.1.13 @@ -17859,6 +18082,8 @@ snapshots: ms: 2.1.3 semver: 7.7.1 + jstoxml@2.2.9: {} + junk@4.0.1: {} jwa@1.4.1: @@ -18225,6 +18450,8 @@ snapshots: meow@13.2.0: {} + merge-descriptors@1.0.3: {} + merge-descriptors@2.0.0: {} merge-options@3.0.4: @@ -18274,6 +18501,8 @@ snapshots: mime@1.6.0: optional: true + mime@2.6.0: {} + mime@3.0.0: {} mime@4.0.7: {} @@ -18359,6 +18588,10 @@ snapshots: mitt@3.0.1: {} + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mkdirp@1.0.4: {} mkdirp@3.0.1: {} @@ -18472,7 +18705,7 @@ snapshots: p-wait-for: 5.0.2 qs: 6.14.0 - nitropack@2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13): + nitropack@2.11.11(@netlify/blobs@8.2.0)(encoding@0.1.13)(xml2js@0.6.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.1.2(encoding@0.1.13)(rollup@4.40.1) @@ -18545,6 +18778,8 @@ snapshots: unwasm: 0.3.9 youch: 4.1.0-beta.7 youch-core: 0.3.2 + optionalDependencies: + xml2js: 0.6.2 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -18601,6 +18836,8 @@ snapshots: node-gyp-build@4.8.4: {} + node-hex@1.0.1: {} + node-html-parser@5.4.2: dependencies: css-select: 4.3.0 @@ -18757,8 +18994,17 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + os-name@1.0.3: + dependencies: + osx-release: 1.1.0 + win-release: 1.1.1 + os-tmpdir@1.0.2: {} + osx-release@1.1.0: + dependencies: + minimist: 1.2.8 + outdent@0.5.0: {} own-keys@1.0.1: @@ -18928,6 +19174,10 @@ snapshots: pathval@2.0.0: {} + pause-stream@0.0.11: + dependencies: + through: 2.3.8 + pend@1.2.0: {} perfect-debounce@1.0.0: {} @@ -18976,6 +19226,8 @@ snapshots: exsolve: 1.0.5 pathe: 2.0.3 + platform@1.3.6: {} + playwright-core@1.52.0: {} playwright@1.52.0: @@ -19925,8 +20177,7 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 - sax@1.4.1: - optional: true + sax@1.4.1: {} scroll-into-view-if-needed@2.2.31: dependencies: @@ -19940,6 +20191,10 @@ snapshots: scule@1.3.0: {} + sdk-base@2.0.1: + dependencies: + get-ready: 1.0.0 + search-insights@2.17.3: {} section-matter@1.0.0: @@ -19958,8 +20213,7 @@ snapshots: semver-compare@1.0.0: {} - semver@5.7.2: - optional: true + semver@5.7.2: {} semver@6.3.1: {} @@ -20200,12 +20454,24 @@ snapshots: standard-as-callback@2.1.0: {} + statuses@1.5.0: {} + statuses@2.0.1: {} std-env@3.9.0: {} stdin-discarder@0.2.2: {} + stream-http@2.8.2: + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + + stream-wormhole@1.1.0: {} + streamx@2.22.0: dependencies: fast-fifo: 1.3.2 @@ -20653,6 +20919,8 @@ snapshots: tmp@0.2.3: {} + to-arraybuffer@1.0.1: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -20842,6 +21110,10 @@ snapshots: pathe: 2.0.3 ufo: 1.6.1 + unescape@1.0.1: + dependencies: + extend-shallow: 2.0.1 + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -21029,12 +21301,35 @@ snapshots: dependencies: punycode: 2.3.1 + urllib@2.44.0: + dependencies: + any-promise: 1.3.0 + content-type: 1.0.5 + default-user-agent: 1.0.0 + digest-header: 1.1.0 + ee-first: 1.1.1 + formstream: 1.5.1 + humanize-ms: 1.2.1 + iconv-lite: 0.6.3 + pump: 3.0.2 + qs: 6.14.0 + statuses: 1.5.0 + utility: 1.18.0 + urlpattern-polyfill@10.0.0: {} urlpattern-polyfill@8.0.2: {} util-deprecate@1.0.2: {} + utility@1.18.0: + dependencies: + copy-to: 2.0.1 + escape-html: 1.0.3 + mkdirp: 0.5.6 + mz: 2.7.0 + unescape: 1.0.1 + uuid@11.1.0: {} validate-npm-package-license@3.0.4: @@ -21531,6 +21826,10 @@ snapshots: dependencies: string-width: 7.2.0 + win-release@1.1.1: + dependencies: + semver: 5.7.2 + winston-transport@4.9.0: dependencies: logform: 2.7.0 @@ -21708,6 +22007,15 @@ snapshots: xml-name-validator@4.0.0: {} + xml2js@0.6.2: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + xtend@4.0.2: {} + y18n@4.0.3: {} y18n@5.0.8: {}