commit d999a5c0e6f60aa6f6a81a23722e109a7921d09d Author: root Date: Thu Sep 17 12:02:35 2026 +0800 Initial commit Co-Authored-By: Claude Opus 5 (1M context) diff --git a/.cursor/rules/commit-standards.mdc b/.cursor/rules/commit-standards.mdc new file mode 100644 index 0000000..25f5bcc --- /dev/null +++ b/.cursor/rules/commit-standards.mdc @@ -0,0 +1,12 @@ +--- +description: 用户要求 git commit、提交代码、写 commit message 或创建提交时,必须先加载 commit-convention skill 并严格遵守 +alwaysApply: false +--- + +# Git 提交规范自动激活 + +当用户要求**提交代码**、**git commit**、**写提交说明**或执行提交流程时: + +1. 必须先加载 `.cursor/skills/commit-convention/SKILL.md`。 +2. Agent 代提交时 subject **必须**以 `[Ai]` 开头,并写清业务变更或 Bug 修复,禁止敷衍 subject。 +3. 未获用户明确授权不得 commit;不得提交 `.env` 等含密钥文件;默认不 push。 diff --git a/.cursor/settings.json b/.cursor/settings.json new file mode 100644 index 0000000..36b564b --- /dev/null +++ b/.cursor/settings.json @@ -0,0 +1,7 @@ +{ + "plugins": { + "superpowers": { + "enabled": true + } + } +} diff --git a/.cursor/skills/README.md b/.cursor/skills/README.md new file mode 100644 index 0000000..9559ae1 --- /dev/null +++ b/.cursor/skills/README.md @@ -0,0 +1,45 @@ +# Skills 导航 + +本目录提供项目级 Cursor Skills,面向本仓库的 `Vue2 + Element UI` 管理端开发。 + +## 当前可用 Skills + +### 1) 页面与组件开发 + +- 路径:`vue2-element-dev/SKILL.md` +- 适用:新增/修改列表页、表单弹窗、复用组件 +- 重点:页面结构、状态管理、方法组织、交付前检查 + +### 2) 接口联调 + +- 路径:`vue2-api-integration/SKILL.md` +- 适用:接口接入、参数映射、错误处理、鉴权异常处理 +- 重点:请求层与页面层分工、响应兜底、401/403、防重复提交 + +### 3) 路由与权限接入 + +- 路径:`vue2-route-permission/SKILL.md` +- 适用:新增页面后接菜单、接路由、排查可见性/可访问问题 +- 重点:模块路由拆分、`permissionRouter` 聚合、菜单激活与一致性 + +## 推荐使用顺序 + +新增业务功能时,建议按以下顺序使用: + +1. 先看 `vue2-element-dev`,把页面骨架与交互结构搭好 +2. 再用 `vue2-api-integration` 完成查询/提交联调和异常兜底 +3. 最后用 `vue2-route-permission` 接入路由菜单并做入口验证 + +## 每套 Skill 的配套文件 + +每个 skill 目录都包含: + +- `SKILL.md`:主规范与流程 +- `examples.md`:可参考的最小示例 +- `checklist.md`:提交前自检项 + +## 团队使用建议 + +- 优先复用现有页面模式,不做无关重构 +- 新功能至少走一遍对应 `checklist.md` +- 若出现同类问题反复发生,可在对应 skill 中沉淀新增规则 diff --git a/.cursor/skills/commit-convention/SKILL.md b/.cursor/skills/commit-convention/SKILL.md new file mode 100644 index 0000000..6cc90b3 --- /dev/null +++ b/.cursor/skills/commit-convention/SKILL.md @@ -0,0 +1,97 @@ +--- +name: commit-convention +description: 为本仓库生成符合团队规范的 Git 提交信息,并在用户要求提交代码时执行完整提交流程。用于 git commit、提交代码、写 commit message、创建提交、push 前整理提交等场景;Agent 代提交时必须使用 [Ai] 标记并写清业务变更。 +--- + +# Git 提交规范(Agent 代提交) + +## 触发条件 + +满足任一条件,**必须先加载本 skill**,再执行 `git add` / `git commit`: + +- 用户明确要求:提交、commit、git commit、保存提交、push 前先 commit 等 +- 用户规则中的「committing-changes-with-git」流程已启动 + +**未获用户明确授权时,不得执行 commit。** + +--- + +## Agent 代提交:标记规则(强制) + +由 Cursor Agent 发起的提交,**必须**在 subject 前加 `[Ai]`: + +```text +[Ai] (): + + +``` + +- `type`:`feat` | `fix` | `refactor` | `style` | `perf` | `chore` | `docs` | `test` | `build` | `ci` +- `scope`:模块/页面,如 `benefits`、`mine`、`community`、`player` +- 可在正文末尾追加 trailer(可选): + +```text +Co-Authored-By: Cursor +``` + +用户本人手动提交、且明确说明「人工提交」时,建议使用 `[Human]`;Agent **不要**替用户假标 `[Human]`。 + +--- + +## Subject 质量(强制) + +提交说明必须让人一眼看懂**改了什么业务**或**修了什么问题**。 + +### 必须做到 + +1. 先并行执行:`git status`、`git diff`(含 staged)、`git log -5 --oneline` 了解风格与变更范围 +2. subject 用**完整语义**描述,优先中文;可中英混用 scope +3. 多文件、多模块时:一条 commit 只包同一业务目标;若混杂无关改动,先询问是否拆分 +4. body 写:原因、用户可见变化、风险点(如有) + +### 严禁(subject 不得仅为或等同于) + +`test`、`修改`、`update`、`fix`、`xxx`、`111`、`wip`、`temp`、`提交`、`save`、纯标点、纯数字、单字 + +### 示例 + +```text +# ✅ +[Ai] feat(benefits): 新增七日签到弹窗与连续签到奖励展示 +[Ai] fix(player): 修复横屏切换后 HLS 首帧黑屏 +[Ai] refactor(mine): 签到任务列表抽离 useSignTask composable + +# ❌ +[Ai] fix: 修改 +[Ai] feat: test +修改播放器 +111 +``` + +--- + +## 提交流程(与 user rule 对齐) + +1. `git status` + `git diff` + `git log`(可并行) +2. 根据 diff **撰写**符合本规范的 message(HEREDOC 传 `-m`) +3. 只 `git add` 与本次任务相关的文件 +4. **不得**提交 `.env`、密钥、凭据类文件;若用户在 staged 中含此类文件,警告并排除 +5. `git commit` 后 `git status` 确认成功 +6. hook 失败时:**不要** `commit --amend`,修 message 后**新建 commit** +7. **除非用户明确要求,否则不 `git push`** + +--- + +## 输出给用户 + +提交完成后简要说明: + +- commit hash(若有) +- 本次纳入的文件范围 +- message 摘要(一行) + +--- + +## 与本地 Hook / CI 的关系 + +本 skill 约束 **Agent 行为**。若仓库后续接入 `husky` + `commitlint` 或 CI,以仓库脚本校验为准;Agent 仍须预先满足 `[Ai]` 与 subject 质量,避免 hook 拒绝。 diff --git a/.cursor/skills/vue2-api-integration/SKILL.md b/.cursor/skills/vue2-api-integration/SKILL.md new file mode 100644 index 0000000..d289e13 --- /dev/null +++ b/.cursor/skills/vue2-api-integration/SKILL.md @@ -0,0 +1,63 @@ +--- +name: vue2-api-integration +description: Use when implementing or debugging API integration in this Vue2 project, including request parameter mapping, response normalization, business error handling, auth expiry handling, and submit/list flow consistency. +disable-model-invocation: true +--- + +# Vue2 API Integration + +## 适用场景 + +- 新增或修改 `src/api/*.js` 接口方法 +- 页面查询、提交、删除、状态切换的接口联调 +- 线上/测试环境出现接口报错、数据格式不一致、权限失效 + +## 联调核心原则 + +- **一处定义接口**:请求方法统一维护在 `src/api`,页面层不写裸请求 +- **参数先整形再发送**:空值、时间范围、布尔值、数字类型先归一化 +- **响应做兜底**:列表、分页、详情都要有默认值,避免空指针 +- **错误统一反馈**:用户看得懂、可操作;开发可定位 +- **鉴权失效可恢复**:401/403 走统一处理,避免页面卡死 + +## 请求层约定 + +- GET 查询使用 `params`,POST/PUT 使用 `data` +- 接口函数命名表达业务动作:`getXxxList`、`createXxx`、`updateXxx` +- 同类接口保持参数结构一致,降低页面层分支逻辑 + +## 页面层约定 + +- 页面只做调用、状态切换、提示和数据映射 +- 所有异步方法都要有 `loading` 生命周期(开始/结束) +- 提交类动作默认防重复:`submitLoading` 或按钮禁用 +- 删除/危险操作必须确认后调用 + +## 常见数据映射 + +- 时间区间:`[startTime, endTime]` 拆成后端需要字段 +- 开关状态:`true/false` 映射为后端约定值(如 `1/0`) +- 数字输入:提交前转数字,避免 `"1"`/`1` 混用 +- 列表响应:`list`、`total` 必须有默认值 + +## 错误与鉴权处理 + +- 业务失败:提示明确失败原因,不吞错误 +- 网络异常:提示“网络异常,请稍后重试” +- 401:提示登录失效并引导重新登录 +- 403:提示无权限并保持当前页面可回退 +- 异常分支必须收尾:关闭 loading、恢复按钮状态 + +## 推荐联调流程 + +1. 先确认接口文档字段和返回结构 +2. 在 `src/api` 定义/更新请求函数 +3. 页面接入并补齐参数整形与响应兜底 +4. 跑通成功路径(查询/提交) +5. 验证失败路径(业务报错/网络异常/无权限) +6. 执行 lint 或 test-build 确认无新增阻断问题 + +## 快速参考 + +- 示例代码:见 [examples.md](examples.md) +- 联调检查表:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-api-integration/checklist.md b/.cursor/skills/vue2-api-integration/checklist.md new file mode 100644 index 0000000..11c563f --- /dev/null +++ b/.cursor/skills/vue2-api-integration/checklist.md @@ -0,0 +1,30 @@ +# Checklist + +## 接口定义检查 + +- [ ] 接口方法统一定义在 `src/api/*.js` +- [ ] GET 使用 `params`,POST/PUT 使用 `data` +- [ ] 方法名与业务动作匹配(get/create/update/delete) +- [ ] 请求路径、method、参数字段与后端约定一致 + +## 页面联调检查 + +- [ ] 查询参数已整形(时间范围、布尔、数字、空值) +- [ ] 列表响应有默认值(`list`、`total`) +- [ ] 提交按钮有防重复(`submitLoading`/禁用) +- [ ] 删除/危险动作有二次确认 +- [ ] 异常场景会关闭 loading 并提示用户 + +## 错误与权限检查 + +- [ ] 业务错误提示清晰,不吞异常 +- [ ] 网络异常提示可理解(可重试) +- [ ] 401 有登录失效处理 +- [ ] 403 有无权限处理与回退路径 + +## 交付前检查 + +- [ ] 成功路径通过(查询/提交/删除) +- [ ] 失败路径通过(业务失败/网络异常/权限失败) +- [ ] 执行 `npm run lint` 或 `npm run test-build` +- [ ] 不提交无关改动 diff --git a/.cursor/skills/vue2-api-integration/examples.md b/.cursor/skills/vue2-api-integration/examples.md new file mode 100644 index 0000000..bce3ae4 --- /dev/null +++ b/.cursor/skills/vue2-api-integration/examples.md @@ -0,0 +1,78 @@ +# Examples + +## API 方法定义示例 + +```js +import request from "@/utils/request"; + +export function getCheckInList(params) { + return request({ + url: "/signin/checkin/list", + method: "get", + params + }); +} + +export function saveCheckInConfig(data) { + return request({ + url: "/signin/checkin/config/save", + method: "post", + data + }); +} +``` + +## 查询参数整形示例 + +```js +buildQueryParams() { + const { dateRange, status, pageNum, pageSize, keyword } = this.queryForm; + return { + pageNum, + pageSize, + keyword: keyword ? keyword.trim() : "", + status: typeof status === "boolean" ? (status ? 1 : 0) : status, + startTime: dateRange && dateRange.length ? dateRange[0] : "", + endTime: dateRange && dateRange.length ? dateRange[1] : "" + }; +} +``` + +## 列表请求与兜底示例 + +```js +async fetchList() { + this.loading = true; + try { + const params = this.buildQueryParams(); + const res = await getCheckInList(params); + const data = (res && res.data) || {}; + this.tableData = Array.isArray(data.list) ? data.list : []; + this.total = Number(data.total || 0); + } catch (e) { + this.$message.error("列表加载失败,请稍后重试"); + } finally { + this.loading = false; + } +} +``` + +## 提交流程与防重复示例 + +```js +async handleSubmit() { + if (this.submitLoading) return; + this.submitLoading = true; + try { + await this.$refs.formRef.validate(); + await saveCheckInConfig(this.formData); + this.$message.success("保存成功"); + this.dialogVisible = false; + this.fetchList(); + } catch (e) { + this.$message.error("保存失败,请检查后重试"); + } finally { + this.submitLoading = false; + } +} +``` diff --git a/.cursor/skills/vue2-element-dev/SKILL.md b/.cursor/skills/vue2-element-dev/SKILL.md new file mode 100644 index 0000000..7303e0b --- /dev/null +++ b/.cursor/skills/vue2-element-dev/SKILL.md @@ -0,0 +1,70 @@ +--- +name: vue2-element-dev +description: Use when implementing or modifying Vue2 + Element UI pages/components in this repository, especially for list pages, form dialogs, API integration, route/menu wiring, and pre-delivery checks. +disable-model-invocation: true +--- + +# Vue2 Element Dev + +## 适用场景 + +- 新增或修改 `src/views` 下的页面(列表、表单、弹窗) +- 新增或修改 `src/components` 下的复用组件 +- 做接口联调、参数映射、提交与回显 +- 做路由接入、导航菜单接入、权限相关入口调整 + +## 项目默认约定(平衡型) + +- **优先复用现有模式**:先参考同目录页面写法,再补差异 +- **命名可读**:页面目录、组件名、方法名优先语义化 +- **数据分层**:查询参数、表单数据、UI 状态分开管理 +- **接口调用单点化**:统一放到 `src/api/*.js`,页面仅做调用和状态处理 +- **样式就近维护**:页面样式写在组件内,避免全局污染 + +## 页面开发流程 + +1. 先找一个同类型页面作为参考(表格页/配置页/弹窗页) +2. 搭出页面骨架:筛选区、操作区、表格区、分页区 +3. 补齐数据结构:`list`、`loading`、`query`、`pagination` +4. 接入接口:查询、重置、增删改、状态切换 +5. 完成交互反馈:确认弹窗、成功提示、失败兜底 +6. 执行构建或 lint 验证,修复明显问题后再交付 + +## 推荐代码组织 + +- `data` + - 查询模型:`queryForm` + - 列表模型:`tableData` + - 状态模型:`loading` / `dialogVisible` / `submitLoading` +- `computed` + - 放衍生值,不放有副作用逻辑 +- `methods` + - `fetchList`:统一列表查询入口 + - `handleSearch` / `handleReset` + - `handleAdd` / `handleEdit` / `handleDelete` + - `handleSubmit`:表单提交统一出口 + +## 接口联调约定 + +- API 文件里维护请求函数,页面中只做调用 +- 参数透传前做必要整形(时间范围、数字布尔转换) +- 提交前做前端必填校验;提交后统一提示 +- 失败场景要收敛:关闭 loading、保留用户输入、提示可理解信息 + +## 路由与菜单接入约定 + +- 新页面需要补路由入口与导航入口 +- 菜单文案与页面标题保持一致,避免多处命名不一致 +- 权限字段沿用现有规则,不自创新字段名 + +## 交付前最低检查 + +- 页面可正常进入,主流程可跑通(查、增/改、删) +- 列表页分页/筛选联动正常 +- 弹窗表单可回显、可校验、可提交 +- 无明显控制台报错,构建或 lint 不出现新增阻断错误 + +## 快速参考 + +- 详细示例:见 [examples.md](examples.md) +- 提交前清单:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-element-dev/checklist.md b/.cursor/skills/vue2-element-dev/checklist.md new file mode 100644 index 0000000..bebd1bd --- /dev/null +++ b/.cursor/skills/vue2-element-dev/checklist.md @@ -0,0 +1,25 @@ +# Checklist + +## 开发中检查 + +- [ ] 页面结构完整(筛选、表格、分页/操作区) +- [ ] `loading` 状态在请求前后正确切换 +- [ ] 查询、重置、分页逻辑一致 +- [ ] 新增/编辑弹窗支持回显、校验、提交 +- [ ] 删除/状态切换有确认提示与成功反馈 +- [ ] API 参数字段与后端约定一致 + +## 接入检查 + +- [ ] 新页面路由已添加 +- [ ] 导航菜单已添加或已挂接 +- [ ] 页面标题、菜单名称、权限标识一致 +- [ ] 未破坏已有页面入口 + +## 交付前检查 + +- [ ] 至少执行一次 `npm run lint` 或 `npm run test-build` +- [ ] 控制台无新增阻断错误 +- [ ] 主流程可复现(查、增/改、删) +- [ ] 异常分支有兜底(失败提示、loading 关闭) +- [ ] 仅提交与本需求相关改动 diff --git a/.cursor/skills/vue2-element-dev/examples.md b/.cursor/skills/vue2-element-dev/examples.md new file mode 100644 index 0000000..f79c118 --- /dev/null +++ b/.cursor/skills/vue2-element-dev/examples.md @@ -0,0 +1,127 @@ +# Examples + +## 列表页最小骨架(Vue2 + Element UI) + +```vue + + + +``` + +## API 文件示例 + +```js +import request from "@/utils/request"; + +export function getList(params) { + return request({ + url: "/api/demo/list", + method: "get", + params + }); +} + +export function createItem(data) { + return request({ + url: "/api/demo/create", + method: "post", + data + }); +} +``` + +## 表单弹窗处理示例 + +```js +methods: { + openDialog(row) { + this.dialogVisible = true; + this.formData = row + ? { id: row.id, name: row.name } + : { id: "", name: "" }; + }, + async handleSubmit() { + this.submitLoading = true; + try { + await this.$refs.formRef.validate(); + await createItem(this.formData); + this.$message.success("保存成功"); + this.dialogVisible = false; + this.fetchList(); + } finally { + this.submitLoading = false; + } + } +} +``` diff --git a/.cursor/skills/vue2-route-permission/SKILL.md b/.cursor/skills/vue2-route-permission/SKILL.md new file mode 100644 index 0000000..fb37941 --- /dev/null +++ b/.cursor/skills/vue2-route-permission/SKILL.md @@ -0,0 +1,56 @@ +--- +name: vue2-route-permission +description: Use when adding or modifying route/menu/permission access in this Vue2 admin project, including module router files, permissionRouter aggregation, sidebar visibility, and route metadata consistency. +disable-model-invocation: true +--- + +# Vue2 Route Permission + +## 适用场景 + +- 新增一个业务页面,需要接入菜单与路由 +- 新增一个模块路由文件并接入 `permissionRouter` +- 调整页面可见性、菜单结构、入口名称 +- 排查“路由已写但菜单不显示 / 可见但不可访问”问题 + +## 本项目路由结构认知 + +- 模块路由拆分在 `src/router/*.js`(例如 `signin.js`) +- 聚合路由在 `src/router/permissionRouter.js` +- 侧边栏使用 `store.state.routerList` 渲染(见 `src/views/main/components/nav.vue`) + +## 接入原则 + +- **单模块独立**:每个业务域维护自己的路由文件 +- **统一聚合出口**:模块路由必须在 `permissionRouter.js` 引入并加入数组 +- **元信息一致**:`title`、`meta.title`、`name`、`path` 保持语义一致 +- **层级清晰**:一级菜单挂在 `Main` 下,子页面在 `children` + +## 新页面接入流程 + +1. 在 `src/views` 创建页面组件并命名清晰 +2. 在对应模块路由文件新增子路由(或新建模块路由文件) +3. 设置基础字段:`path`、`name`、`title`、`meta.title` +4. 需要缓存时补 `meta.keepAlive` +5. 在 `permissionRouter.js` 引入并追加模块路由 +6. 验证菜单显示、点击跳转、激活状态、刷新后可访问 + +## 字段约定 + +- `path`:使用短横线风格,避免含糊缩写 +- `name`:驼峰命名,保持唯一 +- `title`:用于菜单与页面文案,避免同义不同字 +- `icon`:仅一级菜单使用,沿用 Element 图标 +- `meta.title`:与 `title` 保持一致,方便统一读取 + +## 常见问题处理 + +- **菜单不显示**:检查模块路由是否已加入 `permissionRouter` 聚合数组 +- **菜单显示但跳转异常**:检查 `path` 与组件导入是否正确 +- **激活态不正确**:检查路由跳转后 `activeRouter` 是否对应当前 `path` +- **刷新丢失访问**:检查路由注册时机和权限数据初始化顺序 + +## 快速参考 + +- 接入示例:见 [examples.md](examples.md) +- 自检清单:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-route-permission/checklist.md b/.cursor/skills/vue2-route-permission/checklist.md new file mode 100644 index 0000000..538b89d --- /dev/null +++ b/.cursor/skills/vue2-route-permission/checklist.md @@ -0,0 +1,28 @@ +# Checklist + +## 新增路由检查 + +- [ ] 页面组件已创建且导出正常 +- [ ] 模块路由文件中已添加对应子路由 +- [ ] 子路由包含 `path`、`name`、`title`、`meta.title` +- [ ] `name` 唯一,`path` 可读且与业务语义一致 + +## 聚合与菜单检查 + +- [ ] 新模块路由已在 `permissionRouter.js` 引入 +- [ ] 已加入聚合数组并保持风格一致 +- [ ] 一级菜单 `title/icon` 设置合理 +- [ ] 侧边栏可见,点击可跳转 + +## 权限与体验检查 + +- [ ] 刷新页面后路由仍可访问 +- [ ] 无权限场景有明确反馈(如项目已有拦截逻辑) +- [ ] 当前菜单激活态与页面路径一致 +- [ ] 页面标题与菜单文案一致 + +## 交付前检查 + +- [ ] 至少执行一次 `npm run lint` 或 `npm run test-build` +- [ ] 无新增阻断报错 +- [ ] 仅提交与路由接入相关改动 diff --git a/.cursor/skills/vue2-route-permission/examples.md b/.cursor/skills/vue2-route-permission/examples.md new file mode 100644 index 0000000..db77aaa --- /dev/null +++ b/.cursor/skills/vue2-route-permission/examples.md @@ -0,0 +1,65 @@ +# Examples + +## 模块路由文件示例(`src/router/demo.js`) + +```js +import Main from "../views/main"; +import DemoList from "../views/demo/list"; +import DemoConfig from "../views/demo/config"; + +const DemoRouter = { + path: "/demo", + component: Main, + title: "示例管理", + icon: "el-icon-menu", + meta: { + keepAlive: true + }, + children: [ + { + path: "/demo-list", + component: DemoList, + name: "demoList", + title: "示例列表", + meta: { + title: "示例列表", + keepAlive: true + } + }, + { + path: "/demo-config", + component: DemoConfig, + name: "demoConfig", + title: "示例配置", + meta: { + title: "示例配置", + keepAlive: true + } + } + ] +}; + +export default DemoRouter; +``` + +## 聚合接入示例(`src/router/permissionRouter.js`) + +```js +import DemoRouter from "./demo"; + +const authRouter = [ + // ...existing routers + DemoRouter +]; + +export default authRouter; +``` + +## 路由排查最小步骤 + +```js +// 1. 看 router 文件是否 export default +// 2. 看 permissionRouter 是否 import + push +// 3. 看 path/name/title/meta.title 是否齐全 +// 4. 看页面组件路径是否正确 +``` diff --git a/.env.build b/.env.build new file mode 100644 index 0000000..32a30ce --- /dev/null +++ b/.env.build @@ -0,0 +1,2 @@ +NODE_ENV = 'production' +VUE_APP_TITLE = 'production' \ No newline at end of file diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..f6073d2 --- /dev/null +++ b/.env.test @@ -0,0 +1,2 @@ +NODE_ENV = 'production' +VUE_APP_TITLE = 'test' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0dddc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..44620c8 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ + +# node 版本使用 12.18.1 \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..ba17966 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c4c6fb7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15800 @@ +{ + "name": "admin-server", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@achrinza/node-ipc": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz", + "integrity": "sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==", + "dev": true, + "requires": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + } + }, + "@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + } + }, + "@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true + }, + "@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "requires": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "requires": { + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "requires": { + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==" + }, + "@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "requires": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "requires": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "requires": { + "@babel/types": "^7.29.8" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz", + "integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-decorators": "^7.29.7" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz", + "integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", + "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.8" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", + "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", + "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==" + }, + "@babel/runtime-corejs2": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.29.7.tgz", + "integrity": "sha512-5GidEBf/rOQlv4sUknPRgboZEvzt/je7CpbkCZ2o7ojs9JbldxdXJinGLYE0sYR9mfPpRz3Q3D7rP+oSCal70g==", + "dev": true, + "requires": { + "core-js": "^2.6.12" + } + }, + "@babel/runtime-corejs3": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.7.tgz", + "integrity": "sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==", + "requires": { + "core-js-pure": "^3.48.0" + } + }, + "@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + } + }, + "@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "requires": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "@liripeng/vue-audio-player": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@liripeng/vue-audio-player/-/vue-audio-player-1.1.1.tgz", + "integrity": "sha512-Uc/U7iCgLJAj24uvu7PqU2w+nnoGglUSLHMcdosPjfNk9hk3dKeQ6pmH1FfKJrlf9xx16tNcY5W0mE8onh2HrQ==", + "requires": { + "@liripeng/vue-audio-player": "^1.0.8", + "@moefe/vue-aplayer": "^2.0.0-beta.5", + "hammer-touchemulator": "^0.0.2", + "vue": "^2.6.12", + "vue-router": "^3.4.9" + } + }, + "@moefe/vue-aplayer": { + "version": "2.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@moefe/vue-aplayer/-/vue-aplayer-2.0.0-beta.5.tgz", + "integrity": "sha512-ytzp4GStzjftuh7H1rIS/ziqwV1FO67iTLSkDxgN0J2bqlO+rBgDDr83Y+pZKBIgRUc30uu/UZHqmE4QiBHHeg==", + "requires": { + "vue": "^2.5.17" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "requires": { + "easy-stack": "1.0.1" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "@types/express-serve-static-core": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", + "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/minimatch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz", + "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==", + "dev": true, + "requires": { + "minimatch": "*" + } + }, + "@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "@types/node": { + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", + "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "dev": true, + "requires": { + "undici-types": "~8.3.0" + } + }, + "@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "dev": true + }, + "@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.40", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", + "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-dev-server": { + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", + "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/serve-static": "*", + "@types/webpack": "^4", + "http-proxy-middleware": "^1.0.0" + } + }, + "@types/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true + } + } + }, + "@videojs/http-streaming": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.3.tgz", + "integrity": "sha512-91CJv5PnFBzNBvyEjt+9cPzTK/xoVixARj2g7ZAvItA+5bx8VKdk5RxCz/PP2kdzz9W+NiDUMPkdmTsosmy69Q==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "3.0.5", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "^0.22.1", + "mux.js": "6.0.1", + "video.js": "^6 || ^7" + } + }, + "@videojs/vhs-utils": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", + "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", + "requires": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0", + "url-toolkit": "^2.2.1" + } + }, + "@videojs/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==", + "requires": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", + "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz", + "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz", + "integrity": "sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz", + "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz", + "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz", + "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz", + "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz", + "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz", + "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz", + "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz", + "integrity": "sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "babel-loader": "^8.0.5", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.12.1", + "babel-eslint": "^10.0.1", + "eslint": "^4.19.1", + "eslint-loader": "^2.1.2", + "eslint-plugin-vue": "^4.7.1", + "globby": "^9.2.0", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz", + "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", + "dev": true, + "optional": true, + "requires": { + "vue-eslint-parser": "^2.0.3" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "optional": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "optional": true + } + } + }, + "@vue/cli-plugin-router": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz", + "integrity": "sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.5.19" + }, + "dependencies": { + "@vue/cli-shared-utils": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz", + "integrity": "sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "9.2.2", + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "@vue/cli-plugin-vuex": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz", + "integrity": "sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==", + "dev": true + }, + "@vue/cli-service": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.19.tgz", + "integrity": "sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA==", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.19", + "@vue/cli-plugin-router": "^4.5.19", + "@vue/cli-plugin-vuex": "^4.5.19", + "@vue/cli-shared-utils": "^4.5.19", + "@vue/component-compiler-utils": "^3.1.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", + "cssnano": "^4.1.10", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", + "postcss-loader": "^3.0.0", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^1.4.4", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.1.0", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "@vue/cli-shared-utils": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz", + "integrity": "sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "9.2.2", + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz", + "integrity": "sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + } + }, + "@vue/compiler-sfc": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", + "requires": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "^0.6.1" + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", + "dev": true + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xmldom/xmldom": { + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", + "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==" + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", + "dev": true, + "optional": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "aes-decrypter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz", + "integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true + }, + "async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "requires": { + "babel-runtime": "6.x" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "dev": true, + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "balloon-css": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-1.2.0.tgz", + "integrity": "sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "baseline-browser-mapping": { + "version": "2.11.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.11.tgz", + "integrity": "sha512-/yImnXwyTvgMkhgekLHok/Rx5vO6E0BmStWlSqKWMVm2a2ITuZ1Tn+9bgLS+gZRdZmWtd8nxuhHpdmCUOWsTQQ==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.5.tgz", + "integrity": "sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg==", + "dev": true + }, + "body-parser": { + "version": "1.20.6", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz", + "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==", + "dev": true, + "requires": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.1.tgz", + "integrity": "sha512-xONzj4PfpPJw6xSqCcT2SmQkBOXpUINUz3o3qXcWJwYlXbkZNcNaUae0o5lle7tKt4HHV6dTgkIRhAXZ3nBMsQ==", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^7.2.3", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + } + }, + "browserify-sign": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.6.tgz", + "integrity": "sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==", + "dev": true, + "requires": { + "bn.js": "^5.2.3", + "browserify-rsa": "^4.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.6.1", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.9", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "dev": true, + "requires": { + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", + "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz", + "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", + "dev": true, + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", + "dev": true, + "optional": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", + "dev": true, + "optional": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "dependencies": { + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "dev": true, + "optional": true + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true, + "optional": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "optional": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true + } + } + }, + "compression-webpack-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz", + "integrity": "sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug==", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", + "neo-async": "^2.5.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "ssri": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", + "integrity": "sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", + "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, + "requires": { + "browserslist": "^4.28.1" + } + }, + "core-js-pure": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "requires": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz", + "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "optional": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "dplayer": { + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/dplayer/-/dplayer-1.27.1.tgz", + "integrity": "sha512-2laBMXs5V1B9zPwJ7eAIw/OBo+Xjvy03i4GHTk3Cg+IWbrq8rKMFO0fFr6ClAYotYOCcFGOvaJDkOZcgKllsCA==", + "requires": { + "axios": "1.2.3", + "balloon-css": "^1.0.3", + "promise-polyfill": "8.3.0" + }, + "dependencies": { + "axios": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + } + } + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz", + "integrity": "sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA==", + "requires": { + "zrender": "4.3.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.5.399", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.399.tgz", + "integrity": "sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==", + "dev": true + }, + "element-ui": { + "version": "2.15.14", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz", + "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + } + }, + "elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + } + }, + "es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "requires": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + } + }, + "es5-shim": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.7.tgz", + "integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==" + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "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==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + } + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "eslint-plugin-vue": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", + "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", + "dev": true, + "requires": { + "vue-eslint-parser": "^5.0.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "dev": true, + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "vue-eslint-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", + "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.1.0", + "esquery": "^1.0.1", + "lodash": "^4.17.11" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "optional": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "optional": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", + "dev": true, + "optional": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-babel-config": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.2.tgz", + "integrity": "sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==", + "dev": true, + "requires": { + "json5": "^1.0.2", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "optional": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==" + }, + "for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "requires": { + "is-callable": "^1.2.7" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gif.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/gif.js/-/gif.js-0.2.0.tgz", + "integrity": "sha512-bYxCoT8OZKmbxY8RN4qDiYuj4nrQDTzgLRcFVovyona1PTWNePzI4nzOmotnlOFIzTk/ZxAHtv+TfVLiBWj/hw==" + }, + "gifuct-js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", + "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", + "requires": { + "js-binary-schema-parser": "^2.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", + "dev": true + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "hammer-touchemulator": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/hammer-touchemulator/-/hammer-touchemulator-0.0.2.tgz", + "integrity": "sha512-NnH4nBhI18GeT2PdfJWmTeuTAR8IowNtvxL6QQLNk6lo2uJ29rFSstOJ9ZjdVsqbjosVXFCi3SEChiagCPo0aQ==" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "requires": { + "has-symbols": "^1.0.3" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "hls.js": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.16.tgz", + "integrity": "sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg==", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "requires": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", + "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.2.tgz", + "integrity": "sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==", + "dev": true, + "requires": { + "hasown": "^2.0.3" + } + }, + "is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "requires": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "requires": { + "has-bigints": "^1.0.2" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "requires": { + "hasown": "^2.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "requires": { + "call-bound": "^1.0.4" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "requires": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + } + }, + "is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.16" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, + "is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-binary-schema-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", + "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-queue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz", + "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", + "dev": true, + "requires": { + "easy-stack": "^1.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", + "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==" + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "launch-editor": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", + "dev": true, + "requires": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" + } + }, + "launch-editor-middleware": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.14.1.tgz", + "integrity": "sha512-Y8rM8ujxag67bXKCML5RLK5neOwj9rcgYlhgPAG0roa3sM6gjBjq7Bl/mE63XcdAmjMMsPtJhd1ry8+wstwQew==", + "dev": true, + "requires": { + "launch-editor": "^2.14.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libphonenumber-js": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.10.tgz", + "integrity": "sha512-xJxrdqvbl2rtn2MaUJrUejz8J7/uZNC0V77oks2LxYrO/+ZtVpRmz+fEQMuu6VusnEB1fmpByiLS1WXecOnAnw==" + }, + "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==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "m3u8-parser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-4.8.0.tgz", + "integrity": "sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "min-document": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "mpd-parser": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz", + "integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "mux.js": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz", + "integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==", + "requires": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz", + "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.17", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", + "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", + "dev": true + } + } + }, + "node-ipc": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.2.1.tgz", + "integrity": "sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ==", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "node-releases": { + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true + }, + "object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz", + "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.8", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "gopd": "^1.2.0", + "safe-array-concat": "^1.1.3" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "requires": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "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==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", + "dev": true, + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" + } + }, + "parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.6.tgz", + "integrity": "sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==", + "dev": true, + "requires": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.2" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "optional": true + }, + "pnp-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "dev": true, + "requires": { + "async": "^3.2.6", + "debug": "^4.3.6" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true + }, + "postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "requires": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "optional": true + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-polyfill": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", + "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "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==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "requires": { + "punycode": "^2.3.1" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "qrcodejs2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz", + "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA==" + }, + "qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "dev": true, + "requires": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "@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" + } + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "optional": true + }, + "regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "dev": true, + "requires": { + "jsesc": "~3.1.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz", + "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "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==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", + "dev": true, + "optional": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA==", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", + "dev": true, + "optional": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "dev": true, + "requires": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "dependencies": { + "hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + } + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==", + "requires": { + "individual": "^2.0.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", + "dev": true, + "optional": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", + "dev": true, + "optional": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==", + "requires": { + "rust-result": "^1.0.0" + } + }, + "safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "dev": true, + "requires": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", + "dev": true + }, + "shvl": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz", + "integrity": "sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==" + }, + "side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "dev": true + } + } + }, + "simple-uploader.js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/simple-uploader.js/-/simple-uploader.js-0.5.6.tgz", + "integrity": "sha512-ukjL0wZhK1dNMaQa6sd+UpCSmnUjblaUGbAd/B8f5IFrChMzDsC/7eFSK4bs4BS5NPJFSZVLI+l6Ri7THTkQtw==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "ssf": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", + "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "dev": true + }, + "stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padstart": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.7.tgz", + "integrity": "sha512-hc5ZFzw8H2Bl4AeHxE5s+CniFg+bPcr7lRRS189GCM6KhJQBACNRhtMsdcnpBNbjc1XisnUOqbP0c94RZU4GCw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-object-atoms": "^1.1.1" + } + }, + "string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "dev": true, + "optional": true + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "dev": true, + "requires": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "tsml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tsml/-/tsml-1.0.1.tgz", + "integrity": "sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + } + }, + "typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, + "unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + } + }, + "undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-toolkit": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", + "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "video.js": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.7.tgz", + "integrity": "sha512-T2s3WFAht7Zjr2OSJamND9x9Dn2O+Z5WuHGdh8jI5SYh5mkMdVTQ7vSRmA5PYpjXJ2ycch6jpMjkJEIEU2xxqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "2.16.3", + "@videojs/vhs-utils": "^3.0.4", + "@videojs/xhr": "2.6.0", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "keycode": "^2.2.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "0.22.1", + "mux.js": "6.0.1", + "safe-json-parse": "4.0.0", + "videojs-font": "3.2.0", + "videojs-vtt.js": "^0.15.5" + } + }, + "videojs-contrib-hls": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz", + "integrity": "sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==", + "requires": { + "aes-decrypter": "1.0.3", + "global": "^4.3.0", + "m3u8-parser": "2.1.0", + "mux.js": "4.3.2", + "url-toolkit": "^2.1.3", + "video.js": "^5.19.1 || ^6.2.0", + "videojs-contrib-media-sources": "4.7.2", + "webwackify": "0.1.6" + }, + "dependencies": { + "aes-decrypter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-1.0.3.tgz", + "integrity": "sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==", + "requires": { + "pkcs7": "^0.2.3" + } + }, + "m3u8-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-2.1.0.tgz", + "integrity": "sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ==" + }, + "mux.js": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", + "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" + }, + "pkcs7": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-0.2.3.tgz", + "integrity": "sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + }, + "video.js": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", + "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", + "requires": { + "babel-runtime": "^6.9.2", + "global": "4.3.2", + "safe-json-parse": "4.0.0", + "tsml": "1.0.1", + "videojs-font": "2.1.0", + "videojs-ie8": "1.1.2", + "videojs-vtt.js": "0.12.6", + "xhr": "2.4.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + } + } + }, + "videojs-font": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", + "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" + }, + "videojs-vtt.js": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", + "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", + "requires": { + "global": "^4.3.1" + } + } + } + }, + "videojs-contrib-media-sources": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz", + "integrity": "sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==", + "requires": { + "global": "^4.3.0", + "mux.js": "4.3.2", + "video.js": "^5.17.0 || ^6.2.0", + "webwackify": "0.1.6" + }, + "dependencies": { + "mux.js": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", + "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + }, + "video.js": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", + "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", + "requires": { + "babel-runtime": "^6.9.2", + "global": "4.3.2", + "safe-json-parse": "4.0.0", + "tsml": "1.0.1", + "videojs-font": "2.1.0", + "videojs-ie8": "1.1.2", + "videojs-vtt.js": "0.12.6", + "xhr": "2.4.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + } + } + }, + "videojs-font": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", + "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" + }, + "videojs-vtt.js": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", + "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", + "requires": { + "global": "^4.3.1" + } + } + } + }, + "videojs-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz", + "integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==" + }, + "videojs-ie8": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/videojs-ie8/-/videojs-ie8-1.1.2.tgz", + "integrity": "sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==", + "requires": { + "es5-shim": "^4.5.1" + } + }, + "videojs-vtt.js": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", + "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", + "requires": { + "global": "^4.3.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "requires": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + } + }, + "vue-aplayer": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vue-aplayer/-/vue-aplayer-1.6.1.tgz", + "integrity": "sha512-c+ZAwZ63bVDsKkcHeKLAonIL2gY4nrVRdKypoPRXSkh+8B1cVhFT2tx8HSTNT6eX6WZyDtaYrEJfcgetrfvcdQ==" + }, + "vue-count-to": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz", + "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==" + }, + "vue-cropper": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.4.9.tgz", + "integrity": "sha512-Uf1i/sCh+ZqSM9hb2YTGRENzJFH+mvDuv8N2brGLjK7UBuF7XDP7zbis8g/dcqZiMojAcBDtObFCn4ERFbRMxQ==", + "dev": true + }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-router": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", + "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==" + }, + "vue-simple-uploader": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/vue-simple-uploader/-/vue-simple-uploader-0.7.6.tgz", + "integrity": "sha512-DYddedNi+ZZzqxmKgW2t4lBN3aiB66oKOxgAfS9Hz9J1FHv7Xt+u1Pq8F48BFS4vG0+MFHCNzjzS2xaEUOIcHQ==", + "requires": { + "simple-uploader.js": "^0.5.6" + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "vuex": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==" + }, + "vuex-persistedstate": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-2.7.1.tgz", + "integrity": "sha512-Ktvp6Bt6ApYj35MuxTClu+9Lpukcgl3Z/0o4PU12+Z4jU6lyOMzos0k6zGT5xrukAkGM1VV3EYNwz1TnHPhgFA==", + "requires": { + "deepmerge": "^4.2.2", + "shvl": "^2.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + } + } + }, + "wangeditor": { + "version": "4.7.15", + "resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz", + "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", + "requires": { + "@babel/runtime": "^7.11.2", + "@babel/runtime-corejs3": "^7.11.2", + "tslib": "^2.1.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", + "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "dev": true, + "requires": { + "ansi-html-community": "0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "webwackify": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/webwackify/-/webwackify-0.1.6.tgz", + "integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "requires": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + } + }, + "which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + } + }, + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.6.tgz", + "integrity": "sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + } + } + }, + "xlsx": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.15.6.tgz", + "integrity": "sha512-7vD9eutyLs65iDjNFimVN+gk/oDkfkCgpQUjdE82QgzJCrBHC4bGPH7fzKVyy0UPp3gyFVQTQEFJaWaAvZCShQ==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.3", + "wmf": "~1.0.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.2.tgz", + "integrity": "sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "zrender": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.2.tgz", + "integrity": "sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2ea8848 --- /dev/null +++ b/package.json @@ -0,0 +1,87 @@ +{ + "name": "admin-server", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "vue-cli-service serve", + "build": "NODE_ENV=production vue-cli-service build", + "test-build": "vue-cli-service build --mode test", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@liripeng/vue-audio-player": "1.1.1", + "core-js": "^2.6.5", + "dplayer": "^1.26.0", + "echarts": "^4.5.0", + "element-ui": "^2.15.8", + "gif.js": "^0.2.0", + "gifuct-js": "^2.1.2", + "hls.js": "^1.0.0", + "js-base64": "^2.5.2", + "js-md5": "^0.7.3", + "libphonenumber-js": "^1.7.48", + "lodash": "^4.17.15", + "moment": "^2.24.0", + "qrcodejs2": "0.0.2", + "spark-md5": "^3.0.1", + "video.js": "^7.6.5", + "videojs-contrib-hls": "^5.15.0", + "vue": "^2.6.10", + "vue-aplayer": "^1.6.1", + "vue-count-to": "^1.0.13", + "vue-router": "^3.0.3", + "vue-simple-uploader": "^0.7.2", + "vuex": "^3.0.1", + "vuex-persistedstate": "^2.7.1", + "wangeditor": "^4.6.12", + "xlsx": "^0.15.6" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^3.11.0", + "@vue/cli-plugin-eslint": "^3.11.0", + "@vue/cli-service": "^4.1.1", + "axios": "^0.19.0", + "babel-eslint": "^10.0.1", + "compression-webpack-plugin": "^3.1.0", + "eslint": "^5.16.0", + "eslint-plugin-vue": "^5.0.0", + "node-sass": "^4.9.0", + "qs": "^6.9.0", + "sass-loader": "^7.1.0", + "vue-cropper": "^0.4.9", + "vue-template-compiler": "^2.6.10" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "rules": { + "no-console": "off", + "no-debugger": "off", + "no-restricted-syntax": [ + "error", + { + "selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(log|warn|error|info|trace)$/]", + "message": "Unexpected property on console object was called" + } + ] + }, + "parserOptions": { + "parser": "babel-eslint" + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/prod_build.sh b/prod_build.sh new file mode 100755 index 0000000..f84fe89 --- /dev/null +++ b/prod_build.sh @@ -0,0 +1,6 @@ +# sh 执行打包到正式服上 +npm run build +zip -q -r dist.zip dist +scp dist.zip root@172.104.39.32:/tmp/dist.zip +ssh root@172.104.39.32 "cd /server/91fans/webadmin/dist/ && rm -rf ./* && unzip -q /tmp/dist.zip -d /tmp/extract && mv /tmp/extract/dist/* . && rm -rf /tmp/extract /tmp/dist.zip && echo DEPLOY_OK" +rm dist.zip diff --git a/project.md b/project.md new file mode 100644 index 0000000..8698723 --- /dev/null +++ b/project.md @@ -0,0 +1,162 @@ +--- +项目名称: 91pron 管理后台客户端 # 与 DMP 或内部命名一致时请自行替换 +一级部门: 北斗 # 请填写一级部门名称 +二级部门: 瑞升 # 请填写二级部门名称,无则留空 + +DMP编码: JHA-204 # 无则留空 + +项目类型: PC + # 可选值: + # H5 / APP / PC / 服务 / 组件 / 工具 / AI / 中间件 + +开发语言: Node + # 可选值: + # GO / Java / PHP / Node + +项目负责人: DN4929,DN4868 # 员工编号,多个用逗号隔开,这里的负责是这套代码的负责人 + +运维负责人: DN9460,DN9651,DN4792 # 负责部署、监控、K8S、发布、证书等 + +产品负责人: YY1145,YY1208 # 项目产品经理 + +项目成员: DN4929,DN4868 + +项目状态: 开发中 + # 可选值: + # 开发中 / 维护中 / 已停止 / 已归档 + +项目级别: 中 + # 可选值: + # 高 / 中 / 低 + +核心分支: main + +代码仓库: + - https://bd-git.jsyyds.com/ruisheng/jha-204-91pron/frontend/91porn-admin-client.git + +最后审计人: + +最后审计时间: + +告警群: + +备注: + - `package.json` 中 `name` 为 `admin-server`,仓库/目录名为 `91pron-admin-client`。 + - 业务 API 根路径由 **`src/utils/serverUrlConfig.js`** 中的 **`baseServerUrl`** 决定,与 **`NODE_ENV`**、**`VUE_APP_TITLE`**(见 `.env.build` / `.env.test` 等)组合有关;请勿将含密钥、内网或未脱敏的生产地址对外发布。 +--- + +# 1. 项目说明 + +本仓库为面向 **桌面浏览器** 的 **Vue 2 + Vue CLI + Webpack** 单页 **管理后台**,UI 基于 **Element UI 2**,状态管理为 **Vuex 3**(`vuex-persistedstate` 在依赖中,当前 `src/stroe/index.js` 内持久化插件为注释状态),路由为 **Vue Router 3**,模式为 **`hash`**(见 `src/router/index.js`)。入口为 **`src/main.js`**,挂载 Vuex、Router、Element、全局组件/过滤器、**LoginPlugin**、分片上传与音频播放等插件;全局路由守卫见 **`src/permission.js`**(登录态、权限路由刷新、多页签相关 store 动作)。 + +动态业务路由由 **`src/router/permissionRouter.js`** 聚合各业务子路由文件(如 `activity.js`、`user` 相关、`cinema.js` 等),经 **`src/stroe/actions.js`** 中 `refreshRouter` 与用户 **`localStorage` 中的 `role`** 做 **`recursionRouter`** 过滤后注入 **`/main`** 子路由;基础白名单路由见 **`src/router/baseRouter.js`**(登录、`/main` 下欢迎页与角色页等)。 + +业务页面在 **`src/views/`** 下按模块划分,示例包括:**用户**(`user`)、**视频/媒资**(`videoManagement`、`mediaLibrary`、`lsjMediaLibrary`)、**影院**(`cinemaManagement`)、**渠道与落地**(`channelManagement`、`channelBackground`、`landManagement`)、**活动/签到/产品/交易**(`activityManagement`、`signinManagement`、`productManagement`、`transactionManagement`)、**代理与区县**(`agentManagement`、`agentDistrictProvider`)、**AI / ACG / 小说**(`aiManagement`、`animationManage`、`fiction`)、**统计与系统**(`statistics`、`systemManagement`、`systemMessage`、`administrators`)等;接口封装在 **`src/api/`**,按域拆分为多个 `.js` 文件,请求统一走 **`src/utils/request.js`** 封装的 **`axios`** 实例。 + +**技术栈要点:** + +- 构建:**Vue CLI 4**(`vue-cli-service`),生产可选 **compression-webpack-plugin** 对 js/css/html/mp4 等做 gzip(见 `vue.config.js`);**`publicPath: './'`**,适合静态目录或相对路径部署。 +- 样式:**node-sass** + **sass-loader**,通过 `vue.config.js` 的 `css.loaderOptions.sass.data` 向各组件注入 **`@/assets/scss/base.scss`**;Element 主题变量见 **`src/assets/scss/element-variables.scss`**。 +- 网络:**axios**(`baseURL` 在实例中空字符串,真实前缀在 `request.js` 的 `ajax` 内拼接 **`config.baseServerUrl`**),**Authorization** 头、**refresh-authorization** 触发的 token 刷新与请求队列、`code === 1003` 时登出确认等逻辑均在 **`src/utils/request.js`**。 +- 媒体与编辑:**video.js**、**hls.js**、**dplayer**、**wangeditor**、**vue-cropper**、**vue-simple-uploader**、**echarts** 等。 +- 其他:**lodash**、**moment**、**js-md5** / **spark-md5**、**xlsx**、**qrcodejs2** 等。 + +**Node 版本:** 仓库 `README.md` 建议使用 **12.18.1**。 + +**常用脚本(`package.json`):** + +| 命令 | 说明 | +|------|------| +| `npm run dev` | 本地开发(`vue-cli-service serve`) | +| `npm run build` | 生产构建(`NODE_ENV=production vue-cli-service build`,默认读取项目根目录 `.env` 系列中变量) | +| `npm run test-build` | 测试环境构建(`--mode test`,配合 `.env.test` 等) | +| `npm run lint` | ESLint(`vue-cli-service lint`) | + +**开发环境代理:** 当前 `vue.config.js` 未配置 `devServer.proxy`;本地联调后端地址主要在 **`serverUrlConfig.js`** 中维护(以文件内实际配置为准)。 + +**项目目录结构(核心):** + +``` +91pron-admin-client/ +├── public/ +├── src/ +│ ├── main.js # 入口:Vuex、Router、Element、插件、permission +│ ├── App.vue +│ ├── permission.js # 路由守卫:登录、动态路由刷新、页签状态 +│ ├── router/ +│ │ ├── index.js # Router(hash) +│ │ ├── baseRouter.js # 登录 / main / welcome / role +│ │ ├── permissionRouter.js # 全量业务子路由聚合 +│ │ └── *.js # 各业务模块路由片段 +│ ├── stroe/ # Vuex(目录名为 stroe,非 store) +│ ├── views/ # 管理端各业务页面 +│ ├── api/ # 接口方法(按域拆分 .js) +│ ├── components/ # 通用组件 +│ ├── utils/ # request、serverUrlConfig、过滤器、全局方法等 +│ ├── plugins/ # 如 LoginPlugin +│ └── assets/ # scss、图片等 +├── vue.config.js +├── prod_build.sh # 示例打包/发布脚本(环境差异大,使用前请内部确认) +└── project.md # 本文件 +``` + +**接口基址:** + +- 详见 **`src/utils/serverUrlConfig.js`**:根据 **`NODE_ENV`** 与 **`VUE_APP_TITLE`** 切换 **`baseServerUrl`**(例如生产构建下相对路径 **`/api/web/admin`** 与测试包差异);**`playVideoUrl` / `imgUrl` / `downLoadUrl`** 等同文件内字段用于播放与资源地址拼接。 +- 静态部署若使用相对 **`/api/web/admin`**,需由 **网关 / Nginx** 将浏览器同源下的路径转发到实际管理端后端。 + +--- + +# 2. 基础设施与中间件 + +本仓库为 **纯前端工程**,不内置后端;运行时依赖: + +- **业务 API**:由 `serverUrlConfig.js` 的 **`baseServerUrl`** 决定;部署时需保证管理端 **API 反代** 与 HTTPS 策略一致。 +- **静态资源托管**:`build` / `test-build` 产物在 **`dist/`**,由 Web 服务器或 CDN 提供;当前为 **hash 路由**,服务器层面对路径回退要求通常低于 history 模式,但仍需正确配置 **`publicPath`** 与资源根路径。 +- **媒体、图片与下载域名**:见 `serverUrlConfig` 与接口返回(勿在文档中粘贴未脱敏的内网或密钥配置)。 + +--- + +# 3. 运维部署 + +**构建产物:** 执行 `npm run build` 或 `npm run test-build` 后,在 **`dist/`** 生成静态资源;生产构建可能生成 gzip 压缩产物(见 `vue.config.js` 插件配置)。 + +**推荐发布流程(示例):** + +1. 使用约定 **Node** 版本安装依赖:`npm ci` 或 `npm install`。 +2. 确认 **`.env.*`** 或构建 **mode** 下 **`VUE_APP_TITLE`** 等与 **`serverUrlConfig.js`** 逻辑一致。 +3. 执行 `npm run build` 或 `npm run test-build`。 +4. 将 **`dist/`** 同步至静态服务器;确认 **API 反代** 与 **`publicPath: './'`** 的访问路径一致。 +5. 仓库内 **`prod_build.sh`** 为示例流程,**主机与路径以实际运维规范为准**,避免泄露账号与内网信息。 + +**环境变量说明(摘录,完整以实际 `.env.*` 与构建命令为准):** + +| 变量 | 作用 | +|------|------| +| `NODE_ENV` | 构建/运行环境标识 | +| `VUE_APP_TITLE` | 与 `serverUrlConfig.js` 中测试/生产基址分支等逻辑配合(见 `.env.build`、`.env.test`) | + +--- + +# 4. 风险说明 + +- **强依赖后端与反代**:`baseServerUrl` 或网关配置错误会导致 **整站接口不可用**。 +- **登录与权限**:`permission.js` 依赖 **`localStorage`** 中 `userInfo`、`role` 与 Vuex **`routerList`** 刷新逻辑,权限数据异常可能导致无法进入业务页或反复刷新路由。 +- **Token 刷新**:`request.js` 中刷新队列与 **1003** 等业务码处理与后端约定强相关,变更需联调。 +- **配置敏感信息**:联调用的完整域名、内网 IP 等 **勿提交到公开仓库**;依赖锁定文件建议纳入审计流程。 +- **目录命名**:Vuex 目录为 **`stroe`**,新人接手时注意路径与导入,避免误认为缺失 `store`。 + +--- + +# 5. 历史事故(可选) + +- 暂无(请运维/研发后续补充) + +--- + +# 6. 交接说明(可选) + +- 路由与权限核心在 **`src/permission.js`**、**`src/stroe/actions.js`** 的 **`refreshRouter`**、**`src/router/permissionRouter.js`** 及各 **`src/router/*.js`**;新增菜单需在权限路由与后端角色配置侧同步。 +- 用户信息、标签页等多与 **`src/stroe/`** 及 **`localStorage`** 配合;业务请求请统一走 **`src/utils/request.js`**,避免散落裸 **`axios`**。 +- 接口目录:**`src/api/`**。 +- **请勿将含密钥、生产内网地址的环境文件或未脱敏脚本提交至对外可见仓库**;YAML 头部元数据若与真实组织不一致,请在内部系统中核对后修改。 diff --git a/public/ai-image-v12.html b/public/ai-image-v12.html new file mode 100644 index 0000000..cf2ae13 --- /dev/null +++ b/public/ai-image-v12.html @@ -0,0 +1,2913 @@ + + + + + + + ai-image-rs + + + + + +
+

AI-IMAGE-RS

+

版本: V1.2

+
+ + +
+
+ + + 留空 = 内置默认 +
+ + +
+ + + +
+ + + + +
+
+ + +
+
输入
+ + +
+ 源图 — 可用画笔在图上标注区域 +
+
+
🖼️
点击上传图片
+ + +
+ + + + +
+ 🔴红 🟢绿 🔵蓝 🟡黄 🟣紫 ⬜白 — 标注后提示词写:去掉红色区域 等 +
+ + +
+ +
+
+ 📎 点击或拖拽参考图 +
+ +
+ +
+ + +
+ + +
+ + +
+ 高级设置 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+ + +
+
+ + +
+
结果
+
+ 🎨编辑结果将显示在这里 +
+
+
+ + +
+
+ ⬇️ 下载结果 + +
+
+
+ +
+
+ + + + +
+
+ + +
+
素材
+ + +
+ +
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+ +
+ 📎 点击或拖拽添加 PNG +
+ +
+
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放 · + Shift+滚轮旋转
+
+
+ +
+
+ +
+ + + + + — +
+ + + + 0° + + +
+ + + + 100% +
+
+ + +
+
+
+ +
+
+ + + + +
+
+ + +
+ + +
+
底图
+
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放
+
+
+ +
+
+ +
+ + + + — +
+ + + + 0° + + +
+ + + + 100% +
+
+ 💡 滚轮缩放 · Shift+滚轮旋转 · 拖拽移动 +
+
+ + +
+
+ +
+
+ + + + + + diff --git a/public/ai-image-v16.html b/public/ai-image-v16.html new file mode 100644 index 0000000..039a2df --- /dev/null +++ b/public/ai-image-v16.html @@ -0,0 +1,17597 @@ + + + + + + + ai-image-rs + + + + + + + + + +
+

AI-IMAGE-RS

+

版本: V1.6

+
+ + +
+
+ + + + 留空 = 内置默认 +
+ + +
+ + + + + + +
+ + + + +
+
+ + +
+
输入
+ + +
+ 源图 — 可用画笔在图上标注区域 +
+
+
🖼️
点击上传图片
+ + +
+ + + + +
+ 🔴红 🟢绿 🔵蓝 🟡黄 🟣紫 ⬜白 — 标注后提示词写:去掉红色区域 等 +
+ + +
+ + +
+ + + 1.00 +
+
+ + +
+ +
+
+ 📎 点击或拖拽参考图 +
+ +
+ +
+ + +
+ + +
+ + +
+ 高级设置 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+ + +
+
+ + +
+
结果
+
+ 🎨编辑结果将显示在这里 +
+
+
+ + +
+ ⬇️ 下载结果 +
+
+ +
+
+ + + + +
+
+ + +
+
素材
+ + +
+ +
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+ +
+ 📎 点击或拖拽添加 PNG +
+ +
+
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放 · + Shift+滚轮旋转
+
+
+ +
+
+ +
+ + + + + — +
+ + + + 0° + + +
+ + + + 100% +
+ +
+
+ +
+
+ + + + +
+
+ + +
+
+ ◀ 收起 +
+ + +
+
底图
+
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+
+ + + +
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + + + +
+ +
+
+
+ +
+
+ + +
+
+
+ + +
+ + +
+
截图蒙版图层
+
+ 无底图时自动创建空白画板(下方设置尺寸/颜色) +
+
+ +
+ + + +
+
+
+ +
+
+
+ + +
+
+ +
+ 📎 点击或拖拽添加截图 +
+ +
+
+ +
+ 🎬 点击或拖拽添加视频 +
+
+
+ + +
+ + +
+ +
+
+ 画板 — 拖拽移动 · 滚轮缩放 +
+ + +
+
+ +
+
+
+ + + + + +
+
+
+ +
+ + + + — +
+ + + + 0° + + +
+ + + + 100% +
+ + + +
+ +
+
+ 💡 滚轮缩放 · Shift+滚轮旋转 · 拖拽移动 · 窗口模式下 Alt+滚轮缩放图片内容 +
+ + +
+
+
+ 📚 图层(0) + ▼ +
+
+
+ + + +
+ + +
+ + + + + + +
+ +
+ +
+
+ + + + +
+
+ + +
+
+ + + + Key 自动保存到浏览器 +
+ + +
+ + + + +
+ +
+ + +
+
+
文生图 · Text to Image
+ + + + + +
+ 反向提示词(可选) + +
+ + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + +
+
+ + + +
+
模型和风格会自动匹配当前模式的默认值,也可手动修改
+ + +
+
+ LoRA 列表 +
+ + +
+
+ + + +
+
暂无 LoRA — 点击「刷新可用列表」或「手动添加」
+
+
权重 0~2(默认1.0),LoRA 列表来自服务端 AI 应用数据 + 手动输入
+
+ + +
+ + +
+
+
+ + +
+
+ AI 应用 + +
+
+ 服务端预设的AI应用模板,选择后上传参考图一键生成 +
+
+
点击「刷新列表」加载可用应用
+
+ + +
+ + +
+
任务查询
+ +
+ + + +
+
支持输入单个或多个 Task ID(逗号分隔),Enter 快捷查询
+
+ +
+
+
+ + +
+
+
生成结果
+
+ + + +
+
提交任务后,结果会显示在这里
+
+
+
+ + +
+
任务历史
+
+
暂无历史任务
+
+
+ +
+
+
+ +
+
+
+ + + +
+
+
+ + +
+
+
模型选择
+ +
+ + +
+ + + + + +
提示词
+ + +
+ + +
+
+ LoRA 叠加 0 / 3 +
+ +
+ +
+ + +
+
+ + +
+ +
+ + +
+
输出尺寸
+
+ + + + + + + +
+
+ + + × + +
+
+ + +
+
高级参数
+
+
+ +
+ + 8 +
+
+
+ +
+ + 1.0 +
+
+
+ +
+ + 1.00 +
+
+
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
生成结果
+
+ ✦ + 点击「生成图像」开始 + 空间地址:jing96963-zzz.hf.space +
+
+ 生成结果 +
+ + +
+ + +
+
本次历史 + +
+
+ 暂无历史 +
+
+
+ +
+
+
+ + + +
+
+ +
+ +
+ + +
+ + + + +
+ 要合成的文本 + 14 / 600 +
+ + +
+ 高级参数 +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
合成结果
+
+ 🎙️ + 点击「合成语音」开始 + 空间地址:jing96963-yousheng.hf.space +
+ + +
+
+
+ + + + + + + + + +
+ + + \ No newline at end of file diff --git a/public/favicon1.ico b/public/favicon1.ico new file mode 100644 index 0000000..79622d4 Binary files /dev/null and b/public/favicon1.ico differ diff --git a/public/gif.worker.js b/public/gif.worker.js new file mode 100644 index 0000000..269624e --- /dev/null +++ b/public/gif.worker.js @@ -0,0 +1,3 @@ +// gif.worker.js 0.2.0 - https://github.com/jnordberg/gif.js +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=ByteArray.pageSize)this.newPage();this.pages[this.page][this.cursor++]=val};ByteArray.prototype.writeUTFBytes=function(string){for(var l=string.length,i=0;i=0)this.dispose=disposalCode};GIFEncoder.prototype.setRepeat=function(repeat){this.repeat=repeat};GIFEncoder.prototype.setTransparent=function(color){this.transparent=color};GIFEncoder.prototype.addFrame=function(imageData){this.image=imageData;this.colorTab=this.globalPalette&&this.globalPalette.slice?this.globalPalette:null;this.getImagePixels();this.analyzePixels();if(this.globalPalette===true)this.globalPalette=this.colorTab;if(this.firstFrame){this.writeLSD();this.writePalette();if(this.repeat>=0){this.writeNetscapeExt()}}this.writeGraphicCtrlExt();this.writeImageDesc();if(!this.firstFrame&&!this.globalPalette)this.writePalette();this.writePixels();this.firstFrame=false};GIFEncoder.prototype.finish=function(){this.out.writeByte(59)};GIFEncoder.prototype.setQuality=function(quality){if(quality<1)quality=1;this.sample=quality};GIFEncoder.prototype.setDither=function(dither){if(dither===true)dither="FloydSteinberg";this.dither=dither};GIFEncoder.prototype.setGlobalPalette=function(palette){this.globalPalette=palette};GIFEncoder.prototype.getGlobalPalette=function(){return this.globalPalette&&this.globalPalette.slice&&this.globalPalette.slice(0)||this.globalPalette};GIFEncoder.prototype.writeHeader=function(){this.out.writeUTFBytes("GIF89a")};GIFEncoder.prototype.analyzePixels=function(){if(!this.colorTab){this.neuQuant=new NeuQuant(this.pixels,this.sample);this.neuQuant.buildColormap();this.colorTab=this.neuQuant.getColormap()}if(this.dither){this.ditherPixels(this.dither.replace("-serpentine",""),this.dither.match(/-serpentine/)!==null)}else{this.indexPixels()}this.pixels=null;this.colorDepth=8;this.palSize=7;if(this.transparent!==null){this.transIndex=this.findClosest(this.transparent,true)}};GIFEncoder.prototype.indexPixels=function(imgq){var nPix=this.pixels.length/3;this.indexedPixels=new Uint8Array(nPix);var k=0;for(var j=0;j=0&&x1+x=0&&y1+y>16,(c&65280)>>8,c&255,used)};GIFEncoder.prototype.findClosestRGB=function(r,g,b,used){if(this.colorTab===null)return-1;if(this.neuQuant&&!used){return this.neuQuant.lookupRGB(r,g,b)}var c=b|g<<8|r<<16;var minpos=0;var dmin=256*256*256;var len=this.colorTab.length;for(var i=0,index=0;i=0){disp=dispose&7}disp<<=2;this.out.writeByte(0|disp|0|transp);this.writeShort(this.delay);this.out.writeByte(this.transIndex);this.out.writeByte(0)};GIFEncoder.prototype.writeImageDesc=function(){this.out.writeByte(44);this.writeShort(0);this.writeShort(0);this.writeShort(this.width);this.writeShort(this.height);if(this.firstFrame||this.globalPalette){this.out.writeByte(0)}else{this.out.writeByte(128|0|0|0|this.palSize)}};GIFEncoder.prototype.writeLSD=function(){this.writeShort(this.width);this.writeShort(this.height);this.out.writeByte(128|112|0|this.palSize);this.out.writeByte(0);this.out.writeByte(0)};GIFEncoder.prototype.writeNetscapeExt=function(){this.out.writeByte(33);this.out.writeByte(255);this.out.writeByte(11);this.out.writeUTFBytes("NETSCAPE2.0");this.out.writeByte(3);this.out.writeByte(1);this.writeShort(this.repeat);this.out.writeByte(0)};GIFEncoder.prototype.writePalette=function(){this.out.writeBytes(this.colorTab);var n=3*256-this.colorTab.length;for(var i=0;i>8&255)};GIFEncoder.prototype.writePixels=function(){var enc=new LZWEncoder(this.width,this.height,this.indexedPixels,this.colorDepth);enc.encode(this.out)};GIFEncoder.prototype.stream=function(){return this.out};module.exports=GIFEncoder},{"./LZWEncoder.js":2,"./TypedNeuQuant.js":3}],2:[function(require,module,exports){var EOF=-1;var BITS=12;var HSIZE=5003;var masks=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];function LZWEncoder(width,height,pixels,colorDepth){var initCodeSize=Math.max(2,colorDepth);var accum=new Uint8Array(256);var htab=new Int32Array(HSIZE);var codetab=new Int32Array(HSIZE);var cur_accum,cur_bits=0;var a_count;var free_ent=0;var maxcode;var clear_flg=false;var g_init_bits,ClearCode,EOFCode;function char_out(c,outs){accum[a_count++]=c;if(a_count>=254)flush_char(outs)}function cl_block(outs){cl_hash(HSIZE);free_ent=ClearCode+2;clear_flg=true;output(ClearCode,outs)}function cl_hash(hsize){for(var i=0;i=0){disp=hsize_reg-i;if(i===0)disp=1;do{if((i-=disp)<0)i+=hsize_reg;if(htab[i]===fcode){ent=codetab[i];continue outer_loop}}while(htab[i]>=0)}output(ent,outs);ent=c;if(free_ent<1<0){outs.writeByte(a_count);outs.writeBytes(accum,0,a_count);a_count=0}}function MAXCODE(n_bits){return(1<0)cur_accum|=code<=8){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}if(free_ent>maxcode||clear_flg){if(clear_flg){maxcode=MAXCODE(n_bits=g_init_bits);clear_flg=false}else{++n_bits;if(n_bits==BITS)maxcode=1<0){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}flush_char(outs)}}this.encode=encode}module.exports=LZWEncoder},{}],3:[function(require,module,exports){var ncycles=100;var netsize=256;var maxnetpos=netsize-1;var netbiasshift=4;var intbiasshift=16;var intbias=1<>betashift;var betagamma=intbias<>3;var radiusbiasshift=6;var radiusbias=1<>3);var i,v;for(i=0;i>=netbiasshift;network[i][1]>>=netbiasshift;network[i][2]>>=netbiasshift;network[i][3]=i}}function altersingle(alpha,i,b,g,r){network[i][0]-=alpha*(network[i][0]-b)/initalpha;network[i][1]-=alpha*(network[i][1]-g)/initalpha;network[i][2]-=alpha*(network[i][2]-r)/initalpha}function alterneigh(radius,i,b,g,r){var lo=Math.abs(i-radius);var hi=Math.min(i+radius,netsize);var j=i+1;var k=i-1;var m=1;var p,a;while(jlo){a=radpower[m++];if(jlo){p=network[k--];p[0]-=a*(p[0]-b)/alpharadbias;p[1]-=a*(p[1]-g)/alpharadbias;p[2]-=a*(p[2]-r)/alpharadbias}}}function contest(b,g,r){var bestd=~(1<<31);var bestbiasd=bestd;var bestpos=-1;var bestbiaspos=bestpos;var i,n,dist,biasdist,betafreq;for(i=0;i>intbiasshift-netbiasshift);if(biasdist>betashift;freq[i]-=betafreq;bias[i]+=betafreq<>1;for(j=previouscol+1;j>1;for(j=previouscol+1;j<256;j++)netindex[j]=maxnetpos}function inxsearch(b,g,r){var a,p,dist;var bestd=1e3;var best=-1;var i=netindex[g];var j=i-1;while(i=0){if(i=bestd)i=netsize;else{i++;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist=0){p=network[j];dist=g-p[1];if(dist>=bestd)j=-1;else{j--;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist>radiusbiasshift;if(rad<=1)rad=0;for(i=0;i=lengthcount)pix-=lengthcount;i++;if(delta===0)delta=1;if(i%delta===0){alpha-=alpha/alphadec;radius-=radius/radiusdec;rad=radius>>radiusbiasshift;if(rad<=1)rad=0;for(j=0;j + + + + + + + + 91PORN后台管理系统 + + + + + + +
+ + + + \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100755 index 0000000..d0c7a34 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/api/activeManagement.js b/src/api/activeManagement.js new file mode 100755 index 0000000..6e560da --- /dev/null +++ b/src/api/activeManagement.js @@ -0,0 +1,439 @@ +import ajax from "../utils/request"; +const activeApi = { + /********************************活动列表*********************************** */ + // 活动列表 + getWebActivity(params) { + return ajax({ + url: "/activity", + type: "get", + params: params, + }); + }, + // 新增活动 + addWebActivity(params) { + return ajax({ + url: "/activity", + type: "post", + params: params, + }); + }, + + //编辑活动 + editWebActive(params) { + return ajax({ + url: "/activity", + type: "put", + params: params, + }); + }, + + /********************************新版活动列表*********************************** */ + // 活动列表 + getActivity(params) { + return ajax({ + url: "/actv/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addActivity(params) { + return ajax({ + url: "/actv/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editActive(params) { + return ajax({ + url: "/actv/update", + type: "post", + params: params, + }); + }, + + /********************************一次活动列表*********************************** */ + // 活动列表 + getOneActivity(params) { + return ajax({ + url: "/task/once/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addOneActivity(params) { + return ajax({ + url: "/task/once/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editOneActive(params) { + return ajax({ + url: "/task/once/edit", + type: "post", + params: params, + }); + }, + /********************************每日活动列表*********************************** */ + // 活动列表 + getDailyActivity(params) { + return ajax({ + url: "/task/daily/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addDailyActivity(params) { + return ajax({ + url: "/task/daily/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editDailyActive(params) { + return ajax({ + url: "/task/daily/edit", + type: "post", + params: params, + }); + }, + /********************************成长活动任务列表*********************************** */ + // 活动列表 + getGrowthList(params) { + return ajax({ + url: "/task/growth/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addGrowthActivity(params) { + return ajax({ + url: "/task/growth/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editGrowthActive(params) { + return ajax({ + url: "/task/growth/edit", + type: "post", + params: params, + }); + }, + /********************************活动奖品列表*********************************** */ + //获取奖品 + getWebPrice(params) { + return ajax({ + url: "/activity/prize", + type: "get", + params: params, + }); + }, + //新增奖品 + addWebPrice(params) { + return ajax({ + url: "/activity/prize", + type: "post", + params: params, + }); + }, + //修改奖品 + editWebPrice(params) { + return ajax( + { + url: "/activity/prize", + type: "put", + params: params, + }, + true + ); + }, + //获取活动ID + getActiveityId(params) { + return ajax({ + url: "/activity/box", + type: "get", + params: params, + }); + }, + //获取会员卡ID + getVipcardId(params) { + return ajax({ + url: "/activity/prize/vipBox", + type: "get", + params: params, + }); + }, + + /********************************奖池*********************************** */ + // 获取奖池 + getPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "get", + params: params, + }); + }, + // 新增奖池 + addPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "post", + params: params, + }); + }, + // 修改奖池 + editPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "put", + params: params, + }); + }, + + /********************************奖池*********************************** */ + + /********************************活动奖品列表*********************************** */ + /** + * 奖品列表 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + getActivityPrize(params) { + return ajax({ + url: "/activity/reward/list", + type: "get", + params: params, + }); + }, + /** + * 新增奖品 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + addActivityPrize(params) { + return ajax({ + url: "/activity/reward/add", + type: "post", + params: params, + }); + }, + /** + * 编辑奖品 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + editActivityPrize(params) { + return ajax({ + url: "/activity/reward/modify", + type: "post", + params: params, + }); + }, + /********************************兑换码列表*********************************** */ + // 兑换码列表 + redemptionCodeList(params) { + return ajax({ + url: "/exchange/code/list", + type: "get", + params: params, + }); + }, + // 添加兑换码 + addCode(params) { + return ajax({ + url: "/exchange/code/add", + type: "post", + params: params, + }); + }, + // 修改兑换码 + editCode(params) { + return ajax({ + url: "/exchange/code/update", + type: "post", + params: params, + }); + }, + // 删除兑换码 + delCode(params) { + return ajax({ + url: "/exchange/code/del", + type: "delete", + params: params, + }); + }, + /********************************兑换码兑换日志*********************************** */ + redemptionLogList(params) { + return ajax({ + url: "/exchange/log/list", + type: "get", + params: params, + }); + }, + + /********************************获奖记录列表(嫩模活动)*********************************** */ + + //添加获奖记录列表 + addWinRecord(params) { + return ajax({ + url: "/newactivity/addWinRecord", + type: "post", + params: params, + }); + }, + + //导入所有嫩模 + importModels(params) { + return ajax({ + url: "/newactivity/importModels", + type: "post", + params: params, + }); + }, + + //写入参数活动人数 + updateJoinNum(params) { + return ajax({ + url: "/newactivity/updateJoinNum", + type: "post", + params: params, + }); + }, + // + // 嫩模获奖记录 + winRecordPage(params) { + return ajax({ + url: "/newactivity/winRecordPage", + type: "post", + params: params, + }); + }, + + /********************************购买列表*********************************** */ + + //购买列表 + buyPage(params) { + return ajax({ + url: "/newactivity/buyPage", + type: "post", + params: params, + }); + }, + + /******************************** 摇奖号列表*********************************** */ + + //请求列表 + getLottery(params) { + return ajax({ + url: "/lottnum/list", + type: "get", + params: params, + }); + }, + + /********************************兑换码类型*********************************** */ + // 兑换码类型列表 + // redemptionTypeList(params) { + // return ajax({ + // url: '/exchange/type/list', + // type: 'get', + // params: params + // }) + // }, + // // 添加兑换码类型 + // addType(params) { + // return ajax({ + // url: '/exchange/type/add', + // type: 'post', + // params: params + // }) + // }, + // // 删除兑换码类型 + // delType(params) { + // return ajax({ + // url: '/exchange/type/del', + // type: 'delete', + // params: params + // }) + // }, + // // 修改兑换码类型 + // editType(params) { + // return ajax({ + // url: '/exchange/type/update', + // type: 'post', + // params: params + // }) + // } + /** ********************楼凤列表************************* */ + // 获取楼凤列表 + getLouFengList(params) { + return ajax({ + url: "/loufeng/list", + type: "post", + params: params, + }); + }, + // 新增 + addLoufeng(params) { + return ajax({ + url: "/loufeng/add", + type: "post", + params: params, + }); + }, + // 修改 + updateLoufeng(params) { + return ajax({ + url: "/loufeng/edit", + type: "post", + params: params, + }); + }, + // 删除 + deleteLoufeng(params) { + return ajax({ + url: "/loufeng/del", + type: "delete", + params: params, + }); + }, + + /** **************砸蛋活动流水********************* */ + // 获取砸蛋活动流水 + getWinRecord(params) { + return ajax({ + url: "/activity/record", + type: "get", + params: params, + }); + }, + // 获取奖品名字列表 + getPrizeNames(params) { + return ajax({ + url: "/sge/winRecord/prizeNames", + type: "get", + params: params, + }); + }, +}; + +export default activeApi; diff --git a/src/api/actressManagement.js b/src/api/actressManagement.js new file mode 100644 index 0000000..bcfbd7e --- /dev/null +++ b/src/api/actressManagement.js @@ -0,0 +1,32 @@ +import ajax from "../utils/request"; +const actressApi = { + /********************************活动列表*********************************** */ + // 女优列表 + queryActressList(params) { + return ajax({ + url: "/actor/list", + type: "get", + params: params, + }); + }, + // 新增女优 + addActress(params) { + return ajax({ + url: "/actor/add", + type: "post", + params: params, + }); + }, + + //编辑女优 + editActress(params) { + return ajax({ + url: "/actor/update", + type: "post", + params: params, + }); + }, + +}; + +export default actressApi; \ No newline at end of file diff --git a/src/api/administrators.js b/src/api/administrators.js new file mode 100755 index 0000000..885135e --- /dev/null +++ b/src/api/administrators.js @@ -0,0 +1,53 @@ +import ajax from '../utils/request'; +const admApi = { + /********************************系统管理*********************************** */ + // 添加管理员 + addAdm(params) { + return ajax({ + url: '/manage/add', + type: 'post', + params: params + }); + }, + // 请求管理员列表 + getAdmList(params) { + return ajax({ + url: '/manage/list', + type: 'get', + params: params + }); + }, + // 修改权限 + updateAdm(params) { + return ajax({ + url: '/manage/update', + type: 'post', + params: params + }); + }, + // 删除权限 + delAdm(params) { + return ajax({ + url: '/manage/del', + type: 'delete', + params: params + }); + }, + // 请求管理员日志 + getAdminLog(params) { + return ajax({ + url: '/log/operator', + type: 'get', + params: params + }); + }, + // 编辑管理员操作日志 + editAdminLog(params) { + return ajax({ + url: '/log/operator/modify', + type: 'post', + params: params + }) + } +}; +export default admApi; diff --git a/src/api/advertisingManagement.js b/src/api/advertisingManagement.js new file mode 100755 index 0000000..d57f925 --- /dev/null +++ b/src/api/advertisingManagement.js @@ -0,0 +1,79 @@ +import ajax from '../utils/request' +const adsApi = { + /********************************广告管理*********************************** */ + // 请求广告列表 + getAdList(params) { + return ajax({ + url: '/ads/list', + type: 'get', + params: params + }) + }, + // 新增广告 + addAds(params) { + return ajax({ + url: '/ads/add', + type: 'post', + params: params + }) + }, + // 编辑广告 + editAds(params) { + return ajax({ + url: '/ads/update', + type: 'post', + params: params + }) + }, + // 删除广告 + delAds(params) { + return ajax({ + url: '/ads/del', + type: 'delete', + params: params + }) + }, + // 请求点击日志列表 + getClickLog(params) { + return ajax({ + url: '/log/ads', + type: 'get', + params: params + }) + }, + /********************************公告管理*********************************** */ + // 请求公告列表 + getAnnouList(params) { + return ajax({ + url: '/annou/list', + type: 'get', + params: params + }) + }, + // 新增公告 + addAnnou(params) { + return ajax({ + url: '/annou/add', + type: 'post', + params: params + }) + }, + // 编辑公告 + editAnnou(params) { + return ajax({ + url: '/annou/update', + type: 'post', + params: params + }) + }, + // 删除公告 + delAnnou(params) { + return ajax({ + url: '/annou/del', + type: 'delete', + params: params + }) + }, + +} +export default adsApi diff --git a/src/api/agentDistrictProvider.js b/src/api/agentDistrictProvider.js new file mode 100644 index 0000000..809e096 --- /dev/null +++ b/src/api/agentDistrictProvider.js @@ -0,0 +1,260 @@ +import ajax from "../utils/request"; + +const angentDistrictApi = { + /*************************代理列表*************************/ + // 获取商区代理列表 or 下级代理 (共用接口,传参数不同) + getDistrictList(params) { + return ajax({ + url: "/district/list", + type: "get", + params: params, + }); + }, + // 新增商区代理 + addDistrict(params) { + return ajax({ + url: "/district/add", + type: "post", + params: params, + }); + }, + + //编辑---修改基础数据 + updateBase(params) { + return ajax({ + url: "/district/update/update/base", + type: "post", + params: params, + }); + }, + //编辑---修改充值配置 + updateDedRecharge(params) { + return ajax({ + url: "/district/update/update/dedRecharge", + type: "post", + params: params, + }); + }, + //编辑---修改用户配置 + updateDedNewUser(params) { + return ajax({ + url: "/district/update/update/dedNewUser", + type: "post", + params: params, + }); + }, + //编辑---修改落地页配置 + updateLandPage(params) { + return ajax({ + url: "/district/update/update/ldy", + type: "post", + params: params, + }); + }, + // // 编辑商区代理 + // updateDistrict(params) { + // return ajax({ + // url: "/district/update", + // type: "post", + // params: params, + // }); + // }, + + // 删除商区代理 + delDistrict(params) { + return ajax({ + url: "/district/delete", + type: "delete", + params: params, + }); + }, + /*** 禁用 */ + disDistrict(params) { + return ajax({ + url: "/district/disable", + type: "post", + params: params, + }); + }, + + /*** 购买记录 */ + getPayHisList(params) { + return ajax({ + url: "/district/agent/trans/BuyVip/list", + type: "get", + params: params, + }); + }, + /** 每日统计 */ + getStatDailyList(params) { + return ajax({ + url: "/district/agent/stat/daily/list", + type: "get", + params: params, + }); + }, + /** 结算账单*/ + getStatSettlementList(params) { + return ajax({ + url: "/district/agent/bill/list", + type: "get", + params: params, + }); + }, + // 提现记录 + getWithdrawLists(params) { + return ajax({ + url: "/district/agent/order/withdraw/list", + type: "get", + params: params, + }); + }, + // 充值记录 + getRechargeList(params) { + return ajax({ + url: "/district/agent/order/recharge/list", + type: "get", + params: params, + }); + }, + //编辑--扣用户 + handleNewUserAnalysis(params) { + return ajax({ + url: "/district/deduct/newUser/analysis", + type: "post", + params, + }); + }, + //编辑--扣充值 + handleRechargeAnalysis(params) { + return ajax({ + url: "/district/deduct/recharge/analysis", + type: "post", + params, + }); + }, + //下级代理--添加 + addSubAgent(params) { + return ajax({ + url: "/district/agent/add", + type: "post", + params: params, + }); + }, + + /************************* 代理权限*************************/ + //获取权限列表 + getRoleList(params) { + return ajax({ + url: "/district/author/list", + type: "get", + params: params, + }); + }, + // 新增权限列表 + addRole(params) { + return ajax({ + url: "/district/author/add", + type: "post", + params: params, + }); + }, + // 修改权限列表 + updateRole(params) { + return ajax({ + url: "/district/author/update", + type: "post", + params: params, + }); + }, + // 删除权限列表 + deleteRole(params) { + return ajax({ + url: "/district/author/del", + type: "delete", + params: params, + }); + }, + // 克隆权限 + clone(params) { + return ajax({ + url: "/district/author/cloneToChild", + type: "post", + params: params, + }); + }, + + /************************* 每日报表*************************/ + // 获取每日报表列表 + getDailyList(params) { + return ajax({ + url: "/district/agent/report/daily/list", + type: "get", + params: params, + }); + }, + + /************************* 每日报表*************************/ + // 获取每日报表列表 + getMonthlyList(params) { + return ajax({ + url: "/district/agent/report/monthly/list", + type: "get", + params: params, + }); + }, + + /************************* 域名列表*************************/ + // 获取域名表列表 + getDomainList(params) { + return ajax({ + url: "/district/domain/list", + type: "get", + params: params, + }); + }, + // 修改域名 + updateDomain(params) { + return ajax({ + url: "/district/domain/update", + type: "post", + params: params, + }); + }, + // 删除域名 + delDomain(params) { + return ajax({ + url: "/district/domain/del", + type: "delete", + params: params, + }); + }, + //添加域名 + addDomain(params) { + return ajax({ + url: "/district/domain/add", + type: "post", + params: params, + }); + }, + + /*********************广告审核**************************/ + // 请求广告审核列表 + getAdReviewList(params) { + return ajax({ + url: "/district/ad/review/list", + type: "get", + params: params, + }); + }, + //广告审核 + AdReview(params) { + return ajax({ + url: "/district/ad/review/check", + type: "post", + params: params, + }); + }, +}; + +export default angentDistrictApi; diff --git a/src/api/ai.js b/src/api/ai.js new file mode 100755 index 0000000..ca8b18b --- /dev/null +++ b/src/api/ai.js @@ -0,0 +1,230 @@ +import ajax from "../utils/request"; +const voteApi = { + /********************************AI交易列表*********************************** */ + // 请求AI交易列表 + getAiTransList(params) { + return ajax({ + url: "/ai/undress/list", + type: "get", + params: params, + }); + }, + // AI交易审核 + aiTransExamine(params) { + return ajax({ + url: "/ai/undress/update", + type: "post", + params: params, + }); + }, + // AI交易自动处理 + aiTransAuto(params) { + return ajax({ + url: "/ai/undress/auto", + type: "post", + params: params, + }); + }, + // AI交易批量自动处理 + aiTransBatchAuto(params) { + return ajax({ + url: "/ai/undress/auto/batch", + type: "post", + params: params, + }); + }, + /********************************AI图片换脸交易列表*********************************** */ + // 请求AI图片换脸交易列表 + getAiImgTransList(params) { + return ajax({ + url: "/ai/change_face_img/list", + type: "get", + params: params, + }); + }, + // AI图片换脸交易审核 + aiImgTransExamine(params) { + return ajax({ + url: "/ai/change_face_img/update", + type: "post", + params: params, + }); + }, + /********************************AI换脸模版*********************************** */ + // 获取AI换脸模版列表 + getChangeFaceModList(params) { + return ajax({ + url: "/ai/changeface/mod/list", + type: "get", + params: params, + }); + }, + // 添加AI换脸模版 + addChangeFaceMod(params) { + return ajax({ + url: "/ai/changeface/mod/add", + type: "post", + params: params, + }); + }, + // 修改AI换脸模版 + updateChangeFaceMod(params) { + return ajax( + { + url: "/ai/changeface/mod/update", + type: "post", + params: params, + }, + true + ); + }, + // 获取AI换脸交易列表 + getChangeFaceList(params) { + return ajax({ + url: "/ai/changeface/list", + type: "get", + params: params, + }); + }, + // 编辑AI换脸交易列表 + updChangeFaceList(params) { + return ajax({ + url: "/ai/changeface/update", + type: "post", + params: params, + }); + }, + // 给用户添加AI换脸折扣券 + addUserAiChangeFaceDiscount(params) { + return ajax({ + url: "/user/generate/aiChangeFaceDiscount", + type: "post", + params: params, + }); + }, + // 查询AI换脸折扣券奖品列表 + getAiChangeFaceDiscountList() { + return ajax({ + url: "/user/gainAiPrize", + type: "get", + }); + }, + /********************************AI模块列表*********************************** */ + getTemplateList(params) { + return ajax({ + url: "/ai_template_module/list", + type: "get", + params: params, + }); + }, + addTemplate(params) { + return ajax({ + url: "/ai_template_module/create", + type: "post", + params: params, + }); + }, + updateTemplate(params) { + return ajax({ + url: "/ai_template_module/update", + type: "post", + params: params, + }); + }, + deleteTemplate(params) { + return ajax({ + url: "/ai_template_module/delete", + type: "post", + params: params, + }); + }, + getTemplateAll() { + return ajax({ + url: "/ai_template_module/all", + type: "get", + }); + }, + setTemplateAll(params) { + return ajax({ + url: "/ai/changeface/mod/batch/update", + type: "post", + params: params, + }); + }, + /********************************AI广场列表*********************************** */ + geTaiplazaList(params) { + return ajax({ + url: "/aiplaza/list", + type: "get", + params: params, + }); + }, + createAiplaza(params) { + return ajax({ + url: "/aiplaza/create", + type: "post", + params: params, + }); + }, + + updateAiplaza(params) { + return ajax({ + url: "/aiplaza/update", + type: "post", + params: params, + }); + }, + // 批量修改 + updateBatchAiplaza(params) { + return ajax({ + url: "/aiplaza/batch/update", + type: "post", + params: params, + }); + }, + deleteAiplaza(params) { + return ajax({ + url: "/aiplaza/delete", + type: "post", + params: params, + }); + }, + getAllScene(params) { + return ajax({ + url: "/ai/changeface/mod/all/scene", + type: "get", + params, + }); + }, + /******************************** AI小说订单 *********************************** */ + getAiNovelList(params) { + return ajax({ + url: "/ai/text_to_novel/list", + type: "get", + params, + }); + }, + delAiNovel(params) { + return ajax({ + url: "/ai/text_to_novel/delete", + type: "post", + params, + }); + }, + updateAiNovel(params) { + return ajax({ + url: "/ai/text_to_novel/update", + type: "post", + params, + }); + }, + /********************************AI女友V2消费流水*********************************** */ + getAimatev2OrderLogs(params) { + return ajax({ + url: "/aimatev2/order_logs", + type: "get", + params: params, + }); + }, +}; +export default voteApi; diff --git a/src/api/angentManagement.js b/src/api/angentManagement.js new file mode 100755 index 0000000..2bf0caa --- /dev/null +++ b/src/api/angentManagement.js @@ -0,0 +1,42 @@ +import ajax from '../utils/request'; + +const angentApi = { + /***************************金币流水管理****************************** */ + // 获取用户推广日志 + getExtensionList(params) { + return ajax({ + url: '/proxy/log', + type: 'get', + params: params + }); + }, + // 获取用户推广查询列表 + getUserExtensionList(parmas) { + return ajax({ + url: '/proxy/promotion', + type: 'get', + params: parmas + }); + }, + +/***************************代理列表****************************** */ + // 代理列表配置 + getProxyList(params) { + return ajax({ + url: '/proxy/totalIncome', + type: 'get', + params: params + }); + }, + // 代理列表详情记录 + getProxyDetails(params) { + return ajax({ + url: '/proxy/income/details', + type: 'get', + params: params + }); + }, +}; + + +export default angentApi; diff --git a/src/api/animation.js b/src/api/animation.js new file mode 100644 index 0000000..4f216f2 --- /dev/null +++ b/src/api/animation.js @@ -0,0 +1,340 @@ +import ajax from "../utils/request"; +const animationApi = { + /********************************动漫列表*********************************** */ + // 获取动漫列表 + getAnimeList(params) { + return ajax({ + url: "/media/list", + type: "get", + params: params, + }); + }, + // 添加动漫 + addAnime(params) { + return ajax({ + url: "/media/create", + type: "post", + params: params, + }); + }, + // 删除动漫 + delAnime(params) { + return ajax({ + url: "/media/delete", + type: "post", + params: params, + }); + }, + // 修改动漫 + updateAnime(params) { + return ajax({ + url: "/media/update", + type: "post", + params: params, + }); + }, + // 动漫导出 + exportMediaList(params) { + return ajax({ + url: "/media/export", + type: "post", + responseType: "blob", + params: params, + }); + }, + // 批量删除动漫列表 + batchDelMedia(params) { + return ajax({ + url: "/media/batch/delete", + type: "post", + params: params, + }); + }, + /********************************动漫推荐列表*********************************** */ + // 获取动漫推荐列表 + getMediaRecommendList(params) { + return ajax({ + url: "/media_recommend/list", + type: "get", + params: params, + }); + }, + // 添加动漫推荐 + addMediaRecommend(params) { + return ajax({ + url: "/media_recommend/create", + type: "post", + params: params, + }); + }, + // 删除动漫推荐 + delMediaRecommend(params) { + return ajax({ + url: "/media_recommend/delete", + type: "post", + params: params, + }); + }, + // 修改动漫推荐 + updateMediaRecommend(params) { + return ajax({ + url: "/media_recommend/update", + type: "post", + params: params, + }); + }, + // 获取动漫推荐信息 + getMediaRecommendInfo(params) { + return ajax({ + url: "/media_recommend/info", + type: "get", + params: params, + }); + }, + /********************************动漫任务列表*********************************** */ + // 获取动漫任务列表 + getMediaTaskList(params) { + return ajax({ + url: "/media_task/list", + type: "get", + params: params, + }); + }, + // 添加动漫任务 + addMediaTask(params) { + return ajax({ + url: "/media_task/create", + type: "post", + params: params, + }); + }, + // 删除动漫任务 + delMediaTask(params) { + return ajax({ + url: "/media_task/delete", + type: "post", + params: params, + }); + }, + // 修改动漫任务 + updateMediaTask(params) { + return ajax({ + url: "/media_task/update", + type: "post", + params: params, + }); + }, + /********************************动漫上传列表*********************************** */ + // 视频上传 + uploadMedia(params) { + return ajax({ + url: "/media/create", + type: "post", + params: params, + }); + }, + // 子媒体上传 + subUploadMedia(params) { + return ajax({ + url: "/media_content/create", + type: "post", + params: params, + }); + }, + // 校验媒体是否存在 + getMediaInfo(params) { + return ajax({ + url: "/media/find", + type: "get", + params: params, + }); + }, + // 获取种类、维度下的标签 + getMediaTagByKindDimension(params) { + return ajax({ + url: "/media_tag/all", + type: "get", + params: params, + }); + }, + // 设置媒体状态 + setMediaStatus(params) { + return ajax({ + url: "/media/batch/update", + type: "post", + params: params, + }); + }, + // 获取动漫专题 + queryModuleCartoonAll(params) { + return ajax({ + url: "/module/conf/cartoon/all", + type: "get", + params: params, + }); + }, + /********************************动漫内容列表*********************************** */ + // 获取动漫内容列表 + getAnimeContentList(params) { + return ajax({ + url: "/media_content/list", + type: "get", + params: params, + }); + }, + // 添加动漫内容 + addAnimeContent(params) { + return ajax({ + url: "/media_content/create", + type: "post", + params: params, + }); + }, + // 删除动漫内容 + delAnimeContent(params) { + return ajax({ + url: "/media_content/delete", + type: "post", + params: params, + }); + }, + // 修改动漫内容 + updateAnimeContent(params) { + return ajax({ + url: "/media_content/update", + type: "post", + params: params, + }); + }, + // 修改动漫内容 + setSubMediaStatus(params) { + return ajax({ + url: "/media_content/batch/update", + type: "post", + params: params, + }); + }, + // 查询剧集转码状态 + getMediaContentView(id) { + return ajax({ + url: "/media_content/view/" + id, + type: "get", + }); + }, + /********************************动漫标签列表*********************************** */ + // 获取动漫标签列表 + getAnimeTagList(params) { + return ajax({ + url: "/media_tag/list", + type: "get", + params: params, + }); + }, + // 获取动漫所有纬度 + getAnimeAllLatitude(params) { + return ajax({ + url: "/media_tag_dimension/all", + type: "get", + params: params, + }); + }, + // 添加动漫标签 + addAnimeTag(params) { + return ajax({ + url: "/media_tag/create", + type: "post", + params: params, + }); + }, + // 删除动漫标签 + delAnimeTag(params) { + return ajax({ + url: "/media_tag/delete", + type: "post", + params: params, + }); + }, + // 修改动漫标签 + updateAnimeTag(params) { + return ajax({ + url: "/media_tag/update", + type: "post", + params: params, + }); + }, + /********************************纬度列表*********************************** */ + // 获取纬度列表 + getLatitudeList(params) { + return ajax({ + url: "/media_tag_dimension/list", + type: "get", + params: params, + }); + }, + // 添加纬度 + addLatitude(params) { + return ajax({ + url: "/media_tag_dimension/create", + type: "post", + params: params, + }); + }, + // 删除纬度 + delLatitude(params) { + return ajax({ + url: "/media_tag_dimension/delete", + type: "post", + params: params, + }); + }, + // 修改纬度 + updateLatitude(params) { + return ajax({ + url: "/media_tag_dimension/update", + type: "post", + params: params, + }); + }, + /***********************acg媒体资源库************************ */ + // 查询acg媒体资源库列表 + queryAcgMediaResConfig(params) { + return ajax({ + url: "/mediaResource/media/list", + type: "get", + params: params, + }); + }, + // 查询acg媒体资源库列表(子) + queryAcgMediaContentResConfig(params) { + return ajax({ + url: "/mediaResource/media/content_list", + type: "get", + params: params, + }); + }, + // acg媒体使用 + useAcgMediaRes(params) { + return ajax({ + url: "/mediaResource/media/use", + type: "post", + params: params, + }); + }, + // acg媒体使用 + ignoreAcgMediaRes(params) { + return ajax({ + url: "/mediaResource/media/ignore", + type: "post", + params: params, + }); + }, + // acg媒体同步 + acgMediaSync(params) { + return ajax({ + url: "/mediaResource/media/sync", + type: "post", + params: params, + }); + }, +}; +export default animationApi; diff --git a/src/api/author.js b/src/api/author.js new file mode 100755 index 0000000..1845c3e --- /dev/null +++ b/src/api/author.js @@ -0,0 +1,38 @@ +import ajax from '../utils/request' +const authorApi = { + /********************************主后台权限管理*********************************** */ + // 删除权限 + delAuthor(params) { + return ajax({ + url: '/author/del', + type: 'delete', + params: params + }) + }, + // 获取权限/角色列表 + getAuthorList(params) { + return ajax({ + url: '/author/list', + type: 'get', + params: params + }) + }, + // 修改权限 + updateAuthor(params) { + return ajax({ + url: '/author/update', + type: 'post', + params: params + }) + }, + // 添加角色 + addAuthor(params) { + return ajax({ + url: '/author/add', + type: 'post', + params: params + }) + }, + +} +export default authorApi \ No newline at end of file diff --git a/src/api/avComment.js b/src/api/avComment.js new file mode 100755 index 0000000..c5b60e9 --- /dev/null +++ b/src/api/avComment.js @@ -0,0 +1,28 @@ +import ajax from '../utils/request' +const avCommentApi = { + // 获取AV解说列表 + getAvCommentList(params) { + return ajax({ + url: '/avcomment/list', + type: 'post', + params: params + }) + }, + // 添加 + addAvComment(params) { + return ajax({ + url: '/avcomment/add', + type: 'post', + params: params + }) + }, + // 编辑 + editAvComment(params) { + return ajax({ + url: '/avcomment/edit', + type: 'post', + params: params + }) + }, +} +export default avCommentApi diff --git a/src/api/balance.js b/src/api/balance.js new file mode 100644 index 0000000..9b82a6c --- /dev/null +++ b/src/api/balance.js @@ -0,0 +1,14 @@ +import ajax from '../utils/request'; +const balanceApi = { + /*******************************商人上分管理*********************************** */ + +getBalanceList(params) { + return ajax({ + url:'/daichong/merchant/balanceList', + type:'get', + params + }) + } +} +export default balanceApi; + diff --git a/src/api/businessman.js b/src/api/businessman.js new file mode 100644 index 0000000..af80d77 --- /dev/null +++ b/src/api/businessman.js @@ -0,0 +1,169 @@ +import ajax from '../utils/request'; +const businessmanApi = { + /********************************代充,商人管理*********************************** */ + /** + * 编辑商人 + * @param {*} params + * @param {String} params.uid 商户id + * @param {String} params.name 账户名 + * @param {String} params.password 密码 + * @param {String} params.nickname 昵称 + * @param {String} params.email 邮箱 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {String} params.wechat 微信号码 + * @param {Number} params.balance 商人余额 + */ + editBusinessman(params) { + return ajax({ + url: '/daichong/merchant/edit', + type: 'post', + params: params + }) + }, + /** + * 删除商人 + * @param {*} params + * @param {Array} params.uids 商人id + */ + delBusinessman(params){ + return ajax({ + url:'/daichong/merchant/del', + type:'delete', + params, + + }) + }, +/** + * 商人列表 + * @param {*} params + * @param {String} params.uid 商户id + * @param {String} params.name 账户名 + * @param {String} params.nickname 昵称 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {Number} params.pageNumber 当前页 + * @param {Number} params.pageSize 每页条数 + */ + getBusinessmanList(params) { + return ajax({ + url:'/daichong/merchant/list', + type:'get', + params + }) + }, + /** + * 增加商人 + * @param {*} params + * @param {String} params.name 账户名 + * @param {String} params.password 密码 + * @param {String} params.nickname 昵称 + * @param {String} params.email 邮箱 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {String} params.wechat 微信号码 + * @param {Number} params.balance 商人余额 + */ + addBusinessman(params) { + return ajax({ + url:'/daichong/merchant/add', + type:'post', + params, + // headers: { + // 'Content-Type': 'multipart/form-data' + // } + }) + }, + //商人上分 + addOrDebitScore(params) { + return ajax({ + url:'/daichong/merchant/addOrDebitScore', + type:'post', + params + }) + }, +// 商人追分 + seekScore(params) { + return ajax({ + url:'/daichong/merchant/seekScore', + type:'post', + params + }) + }, +// ----------------------聚商管理模块 + // 增 + addGatheringList(params) { + return ajax({ + url: '/jushang/merchant/add', + type: 'post', + params + }) + }, + // 删 + delGatheringList(params) { + return ajax({ + url: '/jushang/merchant/del', + type: 'delete', + params + }) + }, + // 改 + editGatheringList(params) { + return ajax({ + url: '/jushang/merchant/edit', + type: 'post', + params + }) + }, + // 查询 + getGatheringList(params) { + return ajax({ + url: '/jushang/merchant/list', + type: 'get', + params + }) + }, + // 商人余额信息 + businessblBalance(params) { + return ajax({ + url: '/jushang/merchant/info', + type: 'get', + params + }) + }, + // 商人上分 + onPointsGathering(params) { + return ajax({ + url: '/jushang/merchant/addOrDebitScore', + type: 'post', + params + }) + }, + // 商人追分 + chasePointsGathering(params) { + return ajax({ + url: '/jushang/merchant/seekScore', + type: 'post', + params + }) + }, + // 聚商商人上分列表 + JushangList(params) { + return ajax({ + url: '/jushang/merchant/balanceList', + type: 'get', + params + }) + }, +} + + + + + + +export default businessmanApi; + diff --git a/src/api/channelBackground.js b/src/api/channelBackground.js new file mode 100755 index 0000000..fd9e811 --- /dev/null +++ b/src/api/channelBackground.js @@ -0,0 +1,57 @@ +import ajax from '../utils/request' + +const channelBApi = { + /***************************渠道明细****************************** */ + // 请求渠道查询,日志(同一个)列表列表 + getChannelDetailList(params) { + return ajax({ + url: '/channel/manage/detail', + type: 'get', + params: params + }) + }, +/***************************渠道账簿****************************** */ + getBookList(params) { + return ajax({ + url: '/channel/manage/accountbook', + type: 'get', + params: params + }) + }, +/***************************自助结算审核****************************** */ +// 自助结算审核列表数据 + getAutoAccountList(params) { + return ajax({ + url: '/channel/manage/autoaccount', + type: 'get', + params: params + }) + }, + // 编辑账单 + automaticBillGeneration(params) { + return ajax({ + url: '/channel/manage/autoaccount/modify', + type: 'post', + params: params + }) + }, + // 编辑银行卡信息 + editBank(params) { + return ajax({ + url: '/channel/manage/autoaccount/addbank', + type: 'post', + params: params + }) + }, +/***************************银行卡配置****************************** */ + // 银行卡列表数据 + getBankList(params) { + return ajax({ + url: '/channel/manage/bank', + type: 'get', + params: params + }) + }, +} + +export default channelBApi diff --git a/src/api/channelManagement.js b/src/api/channelManagement.js new file mode 100755 index 0000000..9c36545 --- /dev/null +++ b/src/api/channelManagement.js @@ -0,0 +1,131 @@ +import ajax from '../utils/request' + +const channelApi = { + /***************************渠道查询****************************** */ + // 请求渠道查询,日志(同一个)列表列表 + getChannelLogList(params) { + return ajax({ + url: '/channel/channelLog/list', + type: 'get', + params: params + }) + }, + // 修改渠道日志 + updateChannelLog(params) { + return ajax({ + url: '/channel/channelLog/update', + type: 'post', + params: params + }) + }, + /***************************渠道号管理****************************** */ + // 请求渠道号列表 + getNumberList(params) { + return ajax({ + url: '/channel/list', + type: 'get', + params: params + }) + }, + // 删除渠道号 + delNumberList(params) { + return ajax({ + url: '/channel/delete', + type: 'delete', + params: params + }) + }, + // 请求渠道成本列表 + getChannelCostList(params) { + return ajax({ + url: '/channel/channelCost/list', + type: 'get', + params: params + }) + }, + // 请求渠道成本列表 + updateChannelCost(params) { + return ajax({ + url: '/channel/channelCost/update', + type: 'post', + params: params + }) + }, + // 新增渠道号 + addNumber(params) { + return ajax({ + url: '/channel/add', + type: 'post', + params: params + }) + }, + // 编辑渠道号 + updateNumber(params) { + return ajax({ + url: '/channel/update', + type: 'post', + params: params + }) + }, + /***************************渠道商管理****************************** */ + // 请求渠道商列表 + getAgentList(params) { + return ajax({ + url: '/channel/channelAgent/list', + type: 'get', + params: params + }) + }, + // 新增渠道商 + addAgent(params) { + return ajax({ + url: '/channel/channelAgent/add', + type: 'post', + params: params + }) + }, + // 编辑渠道商 + updateAgent(params) { + return ajax({ + url: '/channel/channelAgent/update', + type: 'post', + params: params + }) + }, + // 删除渠道商 + delAgent(params) { + return ajax({ + url: '/channel/channelAgent/delete', + type: 'delete', + params: params + }) + }, + /***************************渠道页面配置****************************** */ + // 渠道页面配置列表 + getChannelConfigList(params) { + return ajax({ + url: '/channel/channelPage/list', + type: 'get', + params: params + }) + }, + // 渠道页面修改 + updateChannelConfig(params) { + return ajax({ + url: '/channel/channelPage/update', + type: 'post', + params: params + }) + }, + /***************************渠道页面配置****************************** */ + // 渠道成本修改记录 + getChannelUpdateList(params) { + return ajax({ + url: '/channel/changeRecord/list', + type: 'get', + params: params + }) + } +} + +export default channelApi diff --git a/src/api/contentReview.js b/src/api/contentReview.js new file mode 100644 index 0000000..9a6b65d --- /dev/null +++ b/src/api/contentReview.js @@ -0,0 +1,123 @@ +import ajax from "../utils/request"; +import axios from "axios"; +import config from "../utils/serverUrlConfig"; +import local from "../utils/localStroage.js"; + +function authHeaders() { + const token = local.get("userInfo") ? local.get("userInfo").token : ""; + return token ? { Authorization: token } : {}; +} + +const contentReviewApi = { + /** 敏感词列表 */ + sensitiveWordList(params) { + return ajax({ + url: "/sensitive-word/list", + type: "get", + params, + }); + }, + sensitiveWordAdd(params) { + return ajax({ + url: "/sensitive-word/add", + type: "post", + params, + }); + }, + sensitiveWordUpdate(params) { + return ajax({ + url: "/sensitive-word/update", + type: "post", + params, + }); + }, + sensitiveWordDelete(params) { + return ajax({ + url: "/sensitive-word/delete", + type: "post", + params, + }); + }, + /** xlsx 导出(GET + query) */ + sensitiveWordExport(params) { + return ajax({ + url: "/sensitive-word/export", + type: "get", + params, + responseType: "blob", + }); + }, + /** 下载导入模版(空 xlsx) */ + sensitiveWordTemplate() { + return ajax({ + url: "/sensitive-word/template", + type: "get", + responseType: "blob", + }); + }, + /** 发起检测任务 */ + contentReviewCreate(params) { + return ajax({ + url: "/content-review/create", + type: "post", + params, + }); + }, + contentReviewList(params) { + return ajax({ + url: "/content-review/list", + type: "get", + params, + }); + }, + contentReviewDetail(params) { + return ajax({ + url: "/content-review/detail", + type: "get", + params, + }); + }, + contentReviewIssues(params) { + return ajax({ + url: "/content-review/issues", + type: "get", + params, + }); + }, + contentReviewIssueResolve(params) { + return ajax({ + url: "/content-review/issue/resolve", + type: "post", + params, + }); + }, + contentReviewIssueReject(params) { + return ajax({ + url: "/content-review/issue/reject", + type: "post", + params, + }); + }, + /** 批量下架命中记录对应资源 */ + contentReviewIssueBatchOffshelf(params) { + return ajax({ + url: "/content-review/issue/batch-offshelf", + type: "post", + params, + }); + }, + /** 敏感词 xlsx 导入(multipart) */ + sensitiveWordImport(file) { + const fd = new FormData(); + fd.append("upload", file); + return axios + .post(`${config.baseServerUrl}/sensitive-word/import`, fd, { + headers: { + ...authHeaders(), + }, + }) + .then((r) => r.data); + }, +}; + +export default contentReviewApi; diff --git a/src/api/discountAreaManagement.js b/src/api/discountAreaManagement.js new file mode 100644 index 0000000..ea70401 --- /dev/null +++ b/src/api/discountAreaManagement.js @@ -0,0 +1,71 @@ +import ajax from "../utils/request"; +const discountAreaManagementApi = { + /********************************折扣专区列表*********************************** */ + // 请求折扣专区列表 + getDiscountAreaList(params) { + return ajax({ + url: "/discount_area/list", + type: "get", + params: params, + }); + }, + // 添加折扣专区 + addDiscountArea(params) { + return ajax({ + url: "/discount_area/add", + type: "post", + params: params, + }); + }, + // 修改折扣专区 + updateDiscountArea(params) { + return ajax({ + url: "/discount_area/update", + type: "post", + params: params, + }); + }, + // 删除折扣专区 + deleteDiscountArea(params) { + return ajax({ + url: "/discount_area/delete", + type: "post", + params: params, + }); + }, + /********************************折扣专区视频列表*********************************** */ + // 请求折扣专区视频列表 + getDiscountAreaVideoList(params) { + return ajax({ + url: "/discount_area/vid/list", + type: "get", + params: params, + }); + }, + // 添加折扣专区视频 + addDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/add", + type: "post", + params: params, + }); + }, + // 修改折扣专区视频 + updateDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/update", + type: "post", + params: params, + }); + }, + // 删除折扣专区视频 + deleteDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/delete", + type: "post", + params: params, + }); + }, +}; + +export default discountAreaManagementApi; diff --git a/src/api/fiction.js b/src/api/fiction.js new file mode 100755 index 0000000..c5e685c --- /dev/null +++ b/src/api/fiction.js @@ -0,0 +1,126 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-12-17 20:38:54 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-26 14:38:36 + */ +import ajax from '../utils/request' + +const fictionApi = { + /***************************小说列表****************************** */ + // 获取列表 + getfFiction(params) { + return ajax({ + url: '/fiction/list', + type: 'post', + params: params + }) + }, + // 修改 + updateFiction(params) { + return ajax({ + url: '/fiction/edit', + type: 'post', + params: params + }) + }, + // 新增 + addFiction(params) { + return ajax({ + url: '/fiction/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteFiction(params) { + return ajax({ + url: '/fiction/del', + type: 'delete', + params: params + }) + }, + // 查看报错小详情 + getErr(params) { + return ajax({ + url: '/fiction/get', + type: 'post', + params: params + }) + }, + /***************************举报列表****************************** */ + // 获取列表 + getErrFeedback(params) { + return ajax({ + url: '/errFeedback/list', + type: 'post', + params: params + }) + }, + // 修改 + updateErrFeedback(params) { + return ajax({ + url: '/errFeedback/edit', + type: 'post', + params: params + }) + }, + // 新增 + addErrFeedback(params) { + return ajax({ + url: '/errFeedback/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteErrFeedback(params) { + return ajax({ + url: '/errFeedback/del', + type: 'delete', + params: params + }) + }, + /***************************有声小说列表****************************** */ + // 获取列表 + getAudiobook(params) { + return ajax({ + url: '/audiobook/list', + type: 'post', + params: params + }) + }, + // 本书配置 + updateAudiobook(params) { + return ajax({ + url: '/audiobook/edit', + type: 'post', + params: params + }) + }, + // 新增 + addAudiobook(params) { + return ajax({ + url: '/audiobook/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteAudiobook(params) { + return ajax({ + url: '/audiobook/del', + type: 'delete', + params: params + }) + } , + // 一键配置 + editPrice(params) { + return ajax({ + url: '/audiobook/editBatch', + type: 'post', + params: params + }) + }, +} +export default fictionApi diff --git a/src/api/groupChatManagement.js b/src/api/groupChatManagement.js new file mode 100644 index 0000000..7020dca --- /dev/null +++ b/src/api/groupChatManagement.js @@ -0,0 +1,86 @@ +import ajax from '../utils/request' +const groupChatManagementApi = { + // 群组列表 + getImgroupList(params) { + return ajax({ + url: '/imgroup/list', + type: 'get', + params: params + }) + }, + // 群组新增 + createImgroup(params) { + return ajax({ + url: '/imgroup/create', + type: 'post', + params: params + }) + }, + // 群组修改 + updateImgroup(params) { + return ajax({ + url: '/imgroup/update', + type: 'post', + params: params + }) + }, + + // 群成员列表 + getImgroupmemberList(params) { + return ajax({ + url: '/imgroupmember/list', + type: 'get', + params: params + }) + }, + // 群成员新增 + createImgroupmember(params) { + return ajax({ + url: '/imgroupmember/create', + type: 'post', + params: params + }) + }, + // 群成员修改 + updateImgroupmember(params) { + return ajax({ + url: '/imgroupmember/update', + type: 'post', + params: params + }) + }, + + // 群消息列表 + getImmessageList(params) { + return ajax({ + url: '/immessage/list', + type: 'get', + params: params + }) + }, + // 群消息新增 + createImmessage(params) { + return ajax({ + url: '/immessage/create', + type: 'post', + params: params + }) + }, + // 群消息修改 + updateImmessage(params) { + return ajax({ + url: '/immessage/update', + type: 'post', + params: params + }) + }, + // 群消息删除 + deleteImmessage(params) { + return ajax({ + url: '/immessage/delete', + type: 'post', + params: params + }) + }, +} +export default groupChatManagementApi \ No newline at end of file diff --git a/src/api/home.js b/src/api/home.js new file mode 100755 index 0000000..5dd1d51 --- /dev/null +++ b/src/api/home.js @@ -0,0 +1,46 @@ +import ajax from '../utils/request' +const homeApi = { + /********************************首页*********************************** */ + // 登陆 + getStatData(params) { + return ajax({ + url: '/home/statData', + type: 'get', + params: params + }) + }, + // 上传图片接口 + uploadImg(param) { + return ajax({ + url: '/vid/uploadStatic', + type: 'post', + params: param + }) + }, + // 视频上传成功回调通知接口 + uploadSuccess(param) { + return ajax({ + url: '/vid/uploadSuccess', + type: 'post', + params: param + }) + }, + // 访问量折线图数据接口 + getViewsData(params) { + return ajax({ + url: '/home/points/visit', + type: 'get', + params:params + }) + }, + // 注册量折线图数据接口 + getRegisteredChart(params) { + return ajax({ + url: '/home/points/regist', + type: 'get', + params:params + }) + }, + +} +export default homeApi diff --git a/src/api/hotManagement.js b/src/api/hotManagement.js new file mode 100644 index 0000000..91e28e0 --- /dev/null +++ b/src/api/hotManagement.js @@ -0,0 +1,40 @@ +import ajax from '../utils/request' +const hotApi = { +/***************************热点管理****************************** */ +/*************************排行页面***************************** */ + // 排行列表 + getRankList(params) { + return ajax({ + ulr: '', + type: 'get', + params: params + }) + }, + // 编辑排行 + updateRank(params) { + return ajax({ + url: '', + type: 'post', + params: params + }) + }, +/*************************发现精彩***************************** */ + // 发现精彩列表 + getWonderfulList(params) { + return ajax({ + url: '', + type: 'get', + params: params + }) + }, +// 编辑精彩 + updateWonderful(params) { + return ajax({ + url: '', + type: 'post', + params: params + }) + }, +} + +export default hotApi \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js new file mode 100755 index 0000000..834e314 --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,121 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-13 17:37:19 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 21:44:43 + */ +// 首页统计数据接口 +// 活动管理接口 +import activeApi from "./activeManagement"; +// 女优管理接口 +import actressApi from "./actressManagement"; +// 系统管理接口 +import admApi from "./administrators"; +// 广告管理api接口 +import adsApi from "./advertisingManagement"; +// 代理管理Api接口 +import angentApi from "./angentManagement"; +// 权限管理接口 +import authorApi from "./author"; +import businessmanApi from "./businessman"; +import balanceApi from "./balance"; +// 渠道后台管理api +import channelBApi from "./channelBackground"; +// 渠道管理api +import channelApi from "./channelManagement"; +import homeApi from "./home"; +// 热点管理接口 +import hotApi from "./hotManagement"; +// 落地页配置接口 +import LandPageApi from "./landPage"; +// 登陆api接口 +import loginApi from "./login"; +// 产品管理api接口 +import productApi from "./productManagement"; +// 用户配置api接口 +import discountAreaManagementApi from "./discountAreaManagement"; +// 机器人借口管理 +import roBotApi from "./robot"; +// 统计管理接口 +import staticsAPi from "./statistics"; +// 系统管理api接口 +import systemApi from "./systemManagement"; +// 热点管理接口 +import systemMessage from "./systemMessage"; +// 交易管理api接口 +import transApi from "./transactionManagement"; +// 用户api接口 +import userApi from "./user"; +// 视频api接口 +import videoApi from "./videoManagement"; +// 商区代理接口 +import angentDistrictApi from "./agentDistrictProvider"; +//楼凤模块接口 +import loufApi from "./loufeng"; +//裸聊专区接口 +import nakedChatApi from "./nakedChatManage"; +//小说管理接口 +import fictionApi from "./fiction"; +//av解说管理接口 +import avCommentApi from "./avComment"; +//标签配置接口 +import tagConfigAPi from "./tagConfigList"; +//模块配置接口 +import moduleConfigApi from "./moduleConfig"; +//签到管理 +import signinApi from "./signin"; +//AI +import aiApi from "./ai"; +//动漫 +import animationApi from "./animation"; +// 群组 +import groupChatManagementApi from "./groupChatManagement"; +//老司机媒体模块接口 +import lsjMediaLibApi from './lsjMediaLib'; +//二部媒资库接口 +import mediaLibApi from './mediaLib'; +import contentReviewApi from './contentReview'; +import officialWebsiteApi from './officialWebsite'; +import shortVideoRecommendApi from './shortVideoRecommend'; +const Api = Object.assign({ + ...loginApi, + ...videoApi, + ...userApi, + ...productApi, + ...discountAreaManagementApi, + ...transApi, + ...adsApi, + ...admApi, + ...authorApi, + ...systemApi, + ...activeApi, + ...actressApi, + ...angentApi, + ...staticsAPi, + ...channelApi, + ...channelBApi, + ...homeApi, + ...LandPageApi, + ...hotApi, + ...systemMessage, + ...roBotApi, + ...businessmanApi, + ...balanceApi, + ...angentDistrictApi, + ...loufApi, + ...nakedChatApi, + ...fictionApi, + ...avCommentApi, + ...signinApi, + ...tagConfigAPi, + ...moduleConfigApi, + ...aiApi, + ...animationApi, + ...groupChatManagementApi, + ...lsjMediaLibApi, + ...mediaLibApi, + ...contentReviewApi, + ...officialWebsiteApi, + ...shortVideoRecommendApi, +}); +export default Api; diff --git a/src/api/landPage.js b/src/api/landPage.js new file mode 100755 index 0000000..bcff9b4 --- /dev/null +++ b/src/api/landPage.js @@ -0,0 +1,88 @@ +import ajax from "../utils/request"; +const landPageApi = { + /******************* 域名配置**********************8*/ + // 域名配置请求列表 + getLangPageList(params) { + return ajax({ + url: "/webplt/list", + type: "get", + params: params, + }); + }, + // 新增域名配置 + addLandPage(params) { + return ajax({ + url: "/webplt/add", + type: "post", + params: params, + }); + }, + // 删除域名配置 + deleteLandPage(params) { + return ajax({ + url: "/webplt/del", + type: "delete", + params: params, + }); + }, + // 编辑落地页配置 + editLandPage(params) { + return ajax({ + url: "/webplt/update", + type: "post", + params: params, + }); + }, + /********************* 落地页配置************************/ + // 获取落地页配置 + getLdyList(params) { + return ajax({ + url: "/ldy/cfg", + type: "get", + params: params, + }); + }, + //编辑 + updateLdy(params) { + return ajax({ + url: "/ldy/update", + type: "post", + params, + }); + }, + + // // 添加按钮状态 + // addSwitchFlag(params) { + // return ajax({ + // url: '/switch/add', + // type: 'post', + // params: params + // }); + // }, + // // 获取开关 + // getSwitchList(params) { + // return ajax({ + // url: '/switch/list', + // type: 'get', + // params: params + // }); + // } + // // 删除开关 + // deleteSwitch(params) { + // return ajax({ + // url: '/switch/del', + // type: 'delete', + // params: params + // }); + // }, + // // 获取开关 + // getSwitchList(params) { + // return ajax({ + // url: '/switch/list', + // type: 'get', + // params: params + // }); + // } +}; + +export default landPageApi; diff --git a/src/api/login.js b/src/api/login.js new file mode 100755 index 0000000..006df31 --- /dev/null +++ b/src/api/login.js @@ -0,0 +1,45 @@ +import ajax from '../utils/request' +const loginApi = { + /********************************登陆管理*********************************** */ + // 登陆 + login(params) { + return ajax({ + url: '/login', + type: 'post', + params: params + }) + }, + // sso登陆 + slogin(params) { + return ajax({ + url: '/slogin', + type: 'post', + params: params + }) + }, + // 登陆验证 + verify(params) { + return ajax({ + url: '/verify', + type: 'post', + params: params + }) + }, + // 刷新token + refreshToken(params) { + return ajax({ + url: '/refresh', + type: 'get', + params: params + }) + }, + // 登出 + logout(params) { + return ajax({ + url: '/logout', + type: 'post', + params: params + }) + }, +} +export default loginApi diff --git a/src/api/loufeng.js b/src/api/loufeng.js new file mode 100644 index 0000000..505b3b4 --- /dev/null +++ b/src/api/loufeng.js @@ -0,0 +1,121 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-21 14:11:47 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 19:43:50 + */ +import ajax from "../utils/request"; +const loufApi={ + /** ********************楼凤列表************************* */ + // 获取楼凤列表 + getLouFengList(params) { + return ajax({ + url: '/loufeng/list', + type: 'post', + params: params + }) + }, + // 新增 + addLoufeng(params) { + return ajax({ + url: '/loufeng/add', + type: 'post', + params: params + }) + }, + // 修改 + updateLoufeng(params) { + return ajax({ + url: '/loufeng/edit', + type: 'post', + params: params + }) + }, + // 删除 + deleteLoufeng(params) { + return ajax({ + url: '/loufeng/del', + type: 'delete', + params: params + }) + }, + // 取消置顶 + cancelToplf(params) { + return ajax({ + url: '/loufeng/cancelTop', + type: 'post', + params: params + }) + }, + /**************楼凤配置******************/ + // 获取楼凤列表 + getLoufCfgList(params) { + return ajax({ + url: '/loufeng/getConfig', + type: 'get', + params: params + }) + }, + // 修改 + editLoufCfg(params) { + return ajax({ + url: '/loufeng/setConfig', + type: 'post', + params: params + }) + }, + + /**************举报信息列表******************/ + // 获取举报信息 + getFeedbList(params) { + return ajax({ + url: '/loufeng/getFeedback', + type: 'post', + params: params + }) + }, + // 修改举报信息 + editFeedb (params) { + return ajax({ + url: '/loufeng/processFeedback', + type: 'post', + params: params + }) + }, + + /** ********************楼凤广告配置************************* */ + // 获取列表 + getLfAdList(params) { + return ajax({ + url: '/loufengad/list', + type: 'post', + params: params + }) + }, + // 新增 + addLfAd(params) { + return ajax({ + url: '/loufengad/add', + type: 'post', + params: params + }) + }, + // 修改 + updateLfAd(params) { + return ajax({ + url: '/loufengad/edit', + type: 'post', + params: params + }) + }, + // 删除 + deleteLfAd(params) { + return ajax({ + url: '/loufengad/del', + type: 'post', + params: params + }) + }, +} + + export default loufApi; \ No newline at end of file diff --git a/src/api/lsjMediaLib.js b/src/api/lsjMediaLib.js new file mode 100644 index 0000000..429adeb --- /dev/null +++ b/src/api/lsjMediaLib.js @@ -0,0 +1,143 @@ +import request from "../utils/request"; + +export default { + /** + * 动漫相关接口 + */ + // 获取视频列表 + lsjComicsList(params) { + return request({ + url: '/laosiji/comics/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjComicsDel(params) { + return request({ + url: '/laosiji/comics/search', + type: 'post', + params + }) + }, + lsjComicsDetail(params) { + return request({ + url: '/laosiji/comics/detail', + type: 'post', + params + }) + }, + lsjComicsAdd(params) { + return request({ + url: '/laosiji/comics/add', + type: 'post', + params + }) + }, + /** + * 小说相关接口 + */ + + // 获取视频列表 + lsjNovelList(params) { + return request({ + url: '/laosiji/novel/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjNovelDel(params) { + return request({ + url: '/laosiji/novel/search', + type: 'post', + params + }) + }, + lsjNovelDetail(params) { + return request({ + url: '/laosiji/novel/detail', + type: 'post', + params + }) + }, + lsjNovelAdd(params) { + return request({ + url: '/laosiji/novel/add', + type: 'post', + params + }) + }, + + /** + * 帖子相关接口 + */ + // 获取视频列表 + lsjPostList(params) { + return request({ + url: '/laosiji/post/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjPostDel(params) { + return request({ + url: '/laosiji/post/search', + type: 'post', + params + }) + }, + lsjPostDetail(params) { + return request({ + url: '/laosiji/post/detail', + type: 'post', + params + }) + }, + lsjPostAdd(params) { + return request({ + url: '/laosiji/post/add', + type: 'post', + params + }) + }, + + /** + * 视频相关接口 + */ + // 获取视频列表 + lsjVideoList(params) { + return request({ + url: '/laosiji/movie/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjVideoDel(params) { + return request({ + url: '/laosiji/movie/search', + type: 'post', + params + }) + }, + lsjVideoDetail(params) { + return request({ + url: '/laosiji/movie/detail', + type: 'post', + params + }) + }, + lsjVideoAdd(params) { + return request({ + url: '/laosiji/movie/add', + type: 'post', + params + }) + } +} \ No newline at end of file diff --git a/src/api/marquee.js b/src/api/marquee.js new file mode 100644 index 0000000..6fe8bb9 --- /dev/null +++ b/src/api/marquee.js @@ -0,0 +1,37 @@ +import axios from '../utils/request'; + +// 获取跑马灯列表 +export function getAnnounceList(params) { + return axios({ + url: '/announce/list', + type: 'get', + params + }) +} + +// 新增跑马灯 +export function addAnnounce(params) { + return axios({ + url: '/announce/add', + type: 'post', + params + }) +} + +// 修改跑马灯 +export function updateAnnounce(params) { + return axios({ + url: '/announce/update', + type: 'post', + params + }) +} + +// 删除跑马灯 +export function deleteAnnounce(params) { + return axios({ + url: '/announce/del', + type: 'delete', + params + }) +} diff --git a/src/api/mediaLib.js b/src/api/mediaLib.js new file mode 100644 index 0000000..375a386 --- /dev/null +++ b/src/api/mediaLib.js @@ -0,0 +1,48 @@ +import request from "../utils/request"; + +export default { + /** + * 视频相关接口 + */ + // 获取视频列表 + mediaSearch(params) { + return request({ + url: '/tianyu/search', + type: 'post', + params + }) + }, + + // 删除视频 + mediaDel(params) { + return request({ + url: '/mediafile/del', + type: 'post', + params + }) + }, + // 添加资源 + mediaAdd(params) { + return request({ + url: '/tianyu/add', + type: 'post', + params + }) + }, + // 资源更新 + mediaUpdate(params) { + return request({ + url: '/mediafile/update', + type: 'post', + params + }) + }, + // 资源更新预览时长 + updatePreTime(params) { + return request({ + url: '/mediafile/update/prefile', + type: 'post', + params + }) + } +} \ No newline at end of file diff --git a/src/api/moduleConfig.js b/src/api/moduleConfig.js new file mode 100644 index 0000000..1515152 --- /dev/null +++ b/src/api/moduleConfig.js @@ -0,0 +1,178 @@ +import axios from '../utils/request'; + +// 模块配置 +const moduleConfApi = { + // 获取标签配置列表 + getTagConfigs(params) { + return axios({ + url: '/tag/conf', + type: 'get', + params + }) + }, + // 获取模块配置列表 + getModules(params) { + return axios({ + url: '/module/conf/list', + type: 'post', + params + }) + }, + // 新增模块 + addModule(params, noFiltering) { + return axios({ + url: '/module/conf/add', + type: 'post', + params + }, noFiltering) + }, + // 修改模块 + editModule(params, noFiltering) { + return axios({ + url: '/module/conf/edit', + type: 'post', + params + }, noFiltering) + }, + // 删除模块 + deleteModule(params) { + return axios({ + url: '/module/conf/delete', + type: 'post', + params + }) + }, + + // 获取专题列表 + getSections(params) { + return axios({ + url: '/module/section/list', + type: 'post', + params + }) + }, + // 新增专题 + addSection(params) { + return axios({ + url: '/module/section/add', + type: 'post', + params + }) + }, + // 修改专题 + editSection(params) { + return axios({ + url: '/module/section/edit', + type: 'post', + params + }) + }, + // 删除专题 + deleteSection(params) { + return axios({ + url: '/module/section/delete', + type: 'post', + params + }) + }, + // 查询专题点击量 + queryClicks(params) { + return axios({ + url: '/module/section/clicks', + type: 'post', + params + }) + }, + + // 获取视频列表 + getVideos(params) { + return axios({ + url: '/module/video/list', + type: 'post', + params + }) + }, + // 新增视频 + addVideo(params) { + return axios({ + url: '/module/video/add', + type: 'post', + params + }) + }, + // 批量新增视频 + addVideos(params) { + return axios({ + url: '/module/video/add/batch', + type: 'post', + params + }) + }, + // 修改视频 + editVideo(params) { + return axios({ + url: '/module/video/edit', + type: 'post', + params + }) + }, + // 删除视频 + deleteVideo(params) { + return axios({ + url: '/module/video/delete', + type: 'post', + params + }) + }, + // 获取跑马灯内容 + queryMarquee(params) { + return axios({ + url: '/module/conf/marquee', + type: 'get', + params + }) + }, + // 编辑跑马灯 + modifyMarquee(params) { + return axios({ + url: '/module/conf/marquee', + type: 'post', + params + }) + }, + // 金刚区 + // 金刚区列表查询 + queryKingKongList(params) { + return axios({ + url: '/jingang/list', + type: 'get', + params + }) + }, + // 金刚区添加 + addKingKong(params) { + return axios({ + url: '/jingang/add', + type: 'post', + params + }) + }, + // 金刚区修改 + modifyKingKong(params) { + return axios({ + url: '/jingang/update', + type: 'post', + params + }) + }, + // 金刚区删除 + delKingKong(params) { + return axios({ + url: '/jingang/delete', + type: 'post', + params + }) + }, +} + +export default moduleConfApi; \ No newline at end of file diff --git a/src/api/nakedChatManage.js b/src/api/nakedChatManage.js new file mode 100644 index 0000000..2177526 --- /dev/null +++ b/src/api/nakedChatManage.js @@ -0,0 +1,104 @@ +import ajax from "../utils/request"; + +const nakedChatApi = { + /** ********************裸聊专区列表************************* */ + // 商品复选框 + getProductCheckbox(params) { + return ajax({ + url: '/business/product/checkbox', + type: 'get', + params: params + }) + }, + // 获取裸聊列表 + getNakedChatList(params) { + return ajax({ + url: '/nakedchat/list', + type: 'get', + params: params + }) + }, + // 新增 + addNakedChat(params) { + return ajax({ + url: '/nakedchat/create', + type: 'post', + params: params + }) + }, + // 修改 + updateNakedChat(params) { + return ajax({ + url: '/nakedchat/update', + type: 'post', + params: params + }) + }, + // 批量修改裸聊模块 + batchUpdateNakedChat(params) { + return ajax({ + url: '/nakedchat/batch/update', + type: 'post', + params: params + }) + }, + // 官方公告 + nakedChatConfig(params) { + return ajax({ + url: '/nude/chat/config', + type: 'get', + params: params + }) + }, + // 修改官方公告 + updateNakedChatConfig(params) { + return ajax({ + url: '/nude/chat/config', + type: 'put', + params: params + }) + }, + // 获取裸聊购买列表 + getNakedChatBuyList(params) { + return ajax({ + url: '/nakedchatorder/list', + type: 'get', + params: params + }) + }, + // 更新裸聊购买 + updateNakedchatorder(params) { + return ajax({ + url: '/nakedchatorder/update', + type: 'post', + params: params + }) + }, + // 获取裸聊购买列表 + confirmUseCode(params) { + return ajax({ + url: '/nude/chat/use/code', + type: 'put', + params: params + }) + }, + + // 获取裸聊举报信息列表 + queryFeedback(params) { + return ajax({ + url: '/nude/chat/feedback', + type: 'get', + params: params + }) + }, + + operateFeedback(params) { + return ajax({ + url: '/nude/chat/feedback/operate', + type: 'post', + params: params + }) + }, +} + +export default nakedChatApi; \ No newline at end of file diff --git a/src/api/officialWebsite.js b/src/api/officialWebsite.js new file mode 100644 index 0000000..e85466b --- /dev/null +++ b/src/api/officialWebsite.js @@ -0,0 +1,171 @@ +import ajax from '../utils/request'; + +const BASE = '/officialWebsite'; + +const officialWebsiteApi = { + // 基础数据 + getOfficialWebsiteBasic() { + return ajax({ url: BASE, type: 'get' }); + }, + createOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'post', params }); + }, + updateOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'put', params }, true); + }, + deleteOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'delete', params }); + }, + + // 创作者 + getHeroList(params) { + return ajax({ url: `${BASE}/hero/list`, type: 'get', params }); + }, + createHero(params) { + return ajax({ url: `${BASE}/hero/create`, type: 'post', params }); + }, + updateHero(params) { + return ajax({ url: `${BASE}/hero/update`, type: 'put', params }, true); + }, + deleteHero(params) { + return ajax({ url: `${BASE}/hero/delete`, type: 'delete', params }); + }, + + // 专辑 + getAlbumList(params) { + return ajax({ url: `${BASE}/album/list`, type: 'get', params }); + }, + createAlbum(params) { + return ajax({ url: `${BASE}/album/create`, type: 'post', params }); + }, + updateAlbum(params) { + return ajax({ url: `${BASE}/album/update`, type: 'put', params }, true); + }, + deleteAlbum(params) { + return ajax({ url: `${BASE}/album/delete`, type: 'delete', params }); + }, + + // 视频 + getOfficialVideoList(params) { + return ajax({ url: `${BASE}/video/list`, type: 'get', params }); + }, + createOfficialVideo(params) { + return ajax({ url: `${BASE}/video/create`, type: 'post', params }); + }, + updateOfficialVideo(params) { + return ajax({ url: `${BASE}/video/update`, type: 'put', params }, true); + }, + deleteOfficialVideo(params) { + return ajax({ url: `${BASE}/video/delete`, type: 'delete', params }); + }, + batchOfficialVideo(params) { + return ajax({ url: `${BASE}/video/batch`, type: 'put', params }, true); + }, + // 导入后台视频库视频 + importOfficialVideo(params) { + return ajax({ url: `${BASE}/video/import`, type: 'put', params }, true); + }, + getOfficialVideoListFromVid(params) { + return ajax({ url: `${BASE}/video/listFromVid`, type: 'get', params }); + }, + + // 写真 + getPhotographList(params) { + return ajax({ url: `${BASE}/photograph/list`, type: 'get', params }); + }, + createPhotograph(params) { + return ajax({ url: `${BASE}/photograph/create`, type: 'post', params }); + }, + updatePhotograph(params) { + return ajax({ url: `${BASE}/photograph/update`, type: 'put', params }, true); + }, + deletePhotograph(params) { + return ajax({ url: `${BASE}/photograph/delete`, type: 'delete', params }); + }, + batchPhotograph(params) { + return ajax({ url: `${BASE}/photograph/batch`, type: 'put', params }, true); + }, + + // 标签 + getOfficialTagList(params) { + return ajax({ url: `${BASE}/tag/list`, type: 'get', params }); + }, + createOfficialTag(params) { + return ajax({ url: `${BASE}/tag/create`, type: 'post', params }); + }, + updateOfficialTag(params) { + return ajax({ url: `${BASE}/tag/update`, type: 'put', params }, true); + }, + deleteOfficialTag(params) { + return ajax({ url: `${BASE}/tag/delete`, type: 'delete', params }); + }, + + // 招聘表单 + getRecruitFormList(params) { + return ajax({ url: `${BASE}/recruitForm/list`, type: 'get', params }); + }, + updateRecruitForm(params) { + return ajax({ url: `${BASE}/recruitForm/update`, type: 'put', params }, true); + }, + deleteRecruitForm(params) { + return ajax({ url: `${BASE}/recruitForm/delete`, type: 'delete', params }); + }, + + // 职位 + getJobList(params) { + return ajax({ url: `${BASE}/jobList/list`, type: 'get', params }); + }, + createJob(params) { + return ajax({ url: `${BASE}/jobList/create`, type: 'post', params }); + }, + updateJob(params) { + return ajax({ url: `${BASE}/jobList/update`, type: 'put', params }, true); + }, + deleteJob(params) { + return ajax({ url: `${BASE}/jobList/delete`, type: 'delete', params }); + }, + + // 新闻 + getNewsList(params) { + return ajax({ url: `${BASE}/news/list`, type: 'get', params }); + }, + createNews(params) { + return ajax({ url: `${BASE}/news/create`, type: 'post', params }); + }, + updateNews(params) { + return ajax({ url: `${BASE}/news/update`, type: 'put', params }, true); + }, + deleteNews(params) { + return ajax({ url: `${BASE}/news/delete`, type: 'delete', params }); + }, + + // 合作伙伴 + getPartnerList(params) { + return ajax({ url: `${BASE}/partner/list`, type: 'get', params }); + }, + createPartner(params) { + return ajax({ url: `${BASE}/partner/create`, type: 'post', params }); + }, + updatePartner(params) { + return ajax({ url: `${BASE}/partner/update`, type: 'put', params }, true); + }, + deletePartner(params) { + return ajax({ url: `${BASE}/partner/delete`, type: 'delete', params }); + }, + + // Business + getBusinessList(params) { + return ajax({ url: `${BASE}/business/list`, type: 'get', params }); + }, + createBusiness(params) { + return ajax({ url: `${BASE}/business/create`, type: 'post', params }); + }, + updateBusiness(params) { + return ajax({ url: `${BASE}/business/update`, type: 'put', params }, true); + }, + deleteBusiness(params) { + return ajax({ url: `${BASE}/business/delete`, type: 'delete', params }); + }, +}; + +export default officialWebsiteApi; diff --git a/src/api/productManagement.js b/src/api/productManagement.js new file mode 100755 index 0000000..c632bba --- /dev/null +++ b/src/api/productManagement.js @@ -0,0 +1,458 @@ +import ajax from "../utils/request"; + +const productApi = { + /********************************产品和订单管理*********************************** */ + /********************************VIP商品列表*********************************** */ + // VIP商品列表 + getPruductList(params) { + return ajax({ + url: "/business/product/list", + type: "get", + params: params, + }); + }, + // VIP所有权益列表 + getProductAllList() { + return ajax({ + url: "/productBenefit/all/list", + type: "get", + }); + }, + // 新增栏目 + getNewSection(params) { + return ajax({ + url: "/business/product", + type: "post", + params: params, + }); + }, + // 编辑栏目 + getEditSection(params) { + return ajax({ + url: "/business/product/update", + type: "post", + params: params, + }); + }, + // 删除栏目 + getDeleteSection(params) { + return ajax({ + url: "/business/product", + type: "delete", + params: params, + }); + }, + /********************************VIP权益列表*********************************** */ + // VIP权益列表 + getProductBenefitList(params) { + return ajax({ + url: "/productBenefit/list", + type: "get", + params: params, + }); + }, + // 新增权益 + newProductBenefit(params) { + return ajax({ + url: "/productBenefit/add", + type: "post", + params: params, + }); + }, + // 编辑权益 + editProductBenefit(params) { + return ajax({ + url: "/productBenefit/update", + type: "post", + params: params, + }); + }, + // 删除权益 + deleteProductBenefit(params) { + return ajax({ + url: "/productBenefit/del", + type: "delete", + params: params, + }); + }, + /********************************金币列表*********************************** */ + // 新增金币 + addGold(params) { + return ajax({ + url: "/recharge/gold/add", + type: "post", + params: params, + }); + }, + // 获取金币配置列表 + getGoldList(params) { + return ajax({ + url: "/recharge/gold/list", + type: "get", + params: params, + }); + }, + // 修改金币配置 + updateGold(params) { + return ajax({ + url: "/recharge/gold/update", + type: "post", + params: params, + }); + }, + // 删除金币配置 + delGold(params) { + return ajax({ + url: "/recharge/gold/delete", + type: "delete", + params: params, + }); + }, + /********************************积分配置列表*********************************** */ + // 获取积分配置列表 + getIntegralConfigList(params) { + return ajax({ + url: "/integral_config", + type: "get", + params: params, + }); + }, + // 添加积分配置 + addIntegralConfig(params) { + return ajax({ + url: "/integral_config", + type: "post", + params: params, + }); + }, + // 修改积分配置 + updateIntegralConfig(params) { + return ajax({ + url: "/integral_config", + type: "put", + params: params, + }); + }, + /********************************预售配置列表*********************************** */ + // 获取预售配置 + getAdvanceConfigList(params) { + return ajax({ + url: "/advance_config/list", + type: "get", + params: params, + }); + }, + // 添加预售配置 + addAdvanceConfig(params) { + return ajax({ + url: "/advance_config/create", + type: "post", + params: params, + }); + }, + // 删除预售配置 + delAdvanceConfig(params) { + return ajax({ + url: "/advance_config/delete", + type: "post", + params: params, + }); + }, + // 修改预售配置 + updateAdvanceConfig(params) { + return ajax({ + url: "/advance_config/update", + type: "post", + params: params, + }); + }, + /********************************游戏金币列表*********************************** */ + // 新增游戏金币 + addGameGold(params) { + return ajax({ + url: "/recharge/game/gold/add", + type: "post", + params: params, + }); + }, + // 获取游戏金币配置列表 + getGameGoldList(params) { + return ajax({ + url: "/recharge/game/gold/list", + type: "get", + params: params, + }); + }, + // 修改游戏金币配置 + updateGameGold(params) { + return ajax({ + url: "/recharge/game/gold/update", + type: "post", + params: params, + }); + }, + // 删除游戏金币配置 + delGameGold(params) { + return ajax({ + url: "/recharge/game/gold/delete", + type: "delete", + params: params, + }); + }, + + /********************************货币列表*********************************** */ + // 新增货币 + addCurrency(params) { + return ajax({ + url: "/currency", + type: "post", + params: params, + }); + }, + // 获取货币配置列表 + getCurrencyList(params) { + return ajax({ + url: "/currency", + type: "get", + params: params, + }); + }, + // 修改货币配置 + updateCurrency(params, noFiltering) { + return ajax( + { + url: "/currency", + type: "put", + params: params, + }, + noFiltering + ); + }, + + /********************************金币优惠配置*********************************** */ + // 新增金币优惠配置 + addPayGold(params) { + return ajax({ + url: "/gold/cfg/add", + type: "post", + params: params, + }); + }, + // 获取金币支付配置列表 + getPayGoldList(params) { + return ajax({ + url: "/gold/cfg/list", + type: "get", + params: params, + }); + }, + // 编辑金币支付配置 + updatePayGold(params) { + return ajax({ + url: "/gold/cfg/edit", + type: "post", + params: params, + }); + }, + // 删除金币支付配置 + delPayGold(params) { + return ajax({ + url: "/gold/cfg/del", + type: "delete", + params: params, + }); + }, + /********************************推广落地页列表*********************************** */ + // 新增推广落地页 + addPromote(params) { + return ajax({ + url: "/promoteUrl/insert", + type: "post", + params: params, + }); + }, + // 获取推广落地页配置列表 + getPromoteList(params) { + return ajax({ + url: "/promoteUrl/list", + type: "get", + params: params, + }); + }, + // 修改推广落地页配置 + updatePromote(params) { + return ajax({ + url: "/promoteUrl/update", + type: "post", + params: params, + }); + }, + // 删除推广落地页配置 + delPromote(params) { + return ajax({ + url: "/promoteUrl/delete", + type: "delete", + params: params, + }); + }, + /********************************支付方式列表*********************************** */ + // 新增支付方式 + addChannel(params) { + return ajax({ + url: "/recharge/channel/add", + type: "post", + params: params, + }); + }, + // 获取支付方式配置列表 + getChannelList(params) { + return ajax({ + url: "/recharge/channel/list", + type: "get", + params: params, + }); + }, + // 修改支付方式配置 + updateChannel(params) { + return ajax({ + url: "/recharge/channel/update", + type: "post", + params: params, + }); + }, + // 删除支付方式配置 + delChannel(params) { + return ajax({ + url: "/recharge/channel/delete", + type: "delete", + params: params, + }); + }, + + /********************************产品展示位置配置列表*********************************** */ + // 获取列表 + getPositionList(params) { + return ajax({ + url: "/business/productPosition/list", + type: "post", + params: params, + }); + }, + // 新增 + addPosition(params) { + return ajax({ + url: "/business/productPosition/add", + type: "post", + params: params, + }); + }, + // 编辑 + editPosition(params) { + return ajax({ + url: "/business/productPosition/edit", + type: "post", + params: params, + }); + }, + //删除 + deletePosition(params) { + return ajax({ + url: "/business/productPosition/del", + type: "post", + params: params, + }); + }, + // 产品展示位置 + getNames(params) { + return ajax({ + url: "/business/productPosition/names", + type: "post", + params: params, + }); + }, + /********************************VIP升级配置*********************************** */ + // 获取VIP升级配置信息 + getConfig(params) { + return ajax({ + url: "/business/getConfig", + type: "get", + params: params, + }); + }, + //编辑配置信息 + setConfig(params) { + return ajax({ + url: "/business/setConfig", + type: "post", + params: params, + }); + }, + /********************************官方下载管理*********************************** */ + // 官方下载管理列表 + getOfficialList(params) { + return ajax({ + url: "/official/list", + type: "get", + params: params, + }); + }, + // 新增官方下载 + addOfficial(params) { + return ajax({ + url: "/official/add", + type: "post", + params: params, + }); + }, + // 编辑官方下载 + updOfficial(params) { + return ajax({ + url: "/official/update", + type: "post", + params: params, + }); + }, + // 删除栏目 + delOfficial(params) { + return ajax({ + url: "/official/delete", + type: "delete", + params: params, + }); + }, + /********************************banner活动管理*********************************** */ + // 获取banner活动列表 + getBannerjumpList(params) { + return ajax({ + url: "/bannerjump/list", + type: "get", + params, + }); + }, + // 新增banner活动 + addBannerjump(params) { + return ajax({ + url: "/bannerjump/create", + type: "post", + params, + }); + }, + // 修改banner活动 + updateBannerjump(params) { + return ajax({ + url: "/bannerjump/update", + type: "post", + params, + }); + }, + // 删除banner活动 + deleteBannerjump(params) { + return ajax({ + url: "/bannerjump/delete", + type: "post", + params, + }); + }, +}; + +export default productApi; diff --git a/src/api/robot.js b/src/api/robot.js new file mode 100644 index 0000000..ca8f19c --- /dev/null +++ b/src/api/robot.js @@ -0,0 +1,57 @@ +import ajax from '../utils/request'; + +const robotApi = { + + /***************************机器人配置****************************** */ + // 请求机器人列表 + getRbotList(params) { + return ajax({ + url: '/robot/conf/list', + type: 'get', + params: params + }); + }, + // 添加机器人配置 + addRbot(params) { + return ajax({ + url: '/robot/conf/add', + type: 'post', + params: params + }); + }, + // 修改机器人列表 + updateRbot(params) { + return ajax({ + url: '/robot/conf/update', + type: 'post', + params: params + }); + }, +/***************************聊天内容****************************** */ + // 机器人聊天内容列表 + getContentList(params) { + return ajax({ + url: '/robot/content/list', + type: 'get', + params: params + }) + }, + // 增加聊天内容 + addContent(params) { + return ajax({ + url: '/robot/content/add', + type: 'post', + params: params + }) + }, + // 删除聊天内容 + delContent(params) { + return ajax({ + url: '/robot/content/del', + type: 'delete', + params: params + }) + } +}; + +export default robotApi; diff --git a/src/api/shortVideoRecommend.js b/src/api/shortVideoRecommend.js new file mode 100644 index 0000000..aa3722e --- /dev/null +++ b/src/api/shortVideoRecommend.js @@ -0,0 +1,97 @@ +import ajax from '../utils/request'; + +const shortVideoRecommendApi = { + // 付费引导配置 + getPaymentGuideList(params) { + return ajax({ + url: '/payment-guide/list', + type: 'get', + params, + }); + }, + addPaymentGuide(params) { + return ajax({ + url: '/payment-guide/add', + type: 'post', + params, + }); + }, + editPaymentGuide(params) { + return ajax({ + url: '/payment-guide/edit', + type: 'post', + params, + }); + }, + deletePaymentGuide(params) { + // id 走 query(params),request 对非 get 会把 params 放进 data + return ajax({ + url: `/payment-guide/delete?id=${encodeURIComponent(params.id)}`, + type: 'delete', + }); + }, + + // 评论 Banner 配置 + getCommentBannerList(params) { + return ajax({ + url: '/banner/list', + type: 'get', + params: { + scene: 'COMMENT_TOP', + ...params, + }, + }); + }, + addCommentBanner(params) { + return ajax({ + url: '/banner/add', + type: 'post', + params, + }); + }, + editCommentBanner(params) { + return ajax({ + url: '/banner/edit', + type: 'post', + params, + }); + }, + deleteCommentBanner(params) { + return ajax({ + url: '/banner/delete', + type: 'delete', + params, + }); + }, + + // VIP 卡片实验 + getVipCardExperimentCurrent() { + return ajax({ + url: '/vip-card-experiment/current', + type: 'get', + }); + }, + publishVipCardExperiment(params) { + return ajax({ + url: '/vip-card-experiment/publish', + type: 'post', + params, + }); + }, + disableVipCardExperiment(params) { + return ajax({ + url: '/vip-card-experiment/disable', + type: 'post', + params, + }); + }, + getVipCardExperimentStatistics(params) { + return ajax({ + url: '/vip-card-experiment/statistics', + type: 'get', + params, + }); + }, +}; + +export default shortVideoRecommendApi; diff --git a/src/api/signin.js b/src/api/signin.js new file mode 100644 index 0000000..e0fbb40 --- /dev/null +++ b/src/api/signin.js @@ -0,0 +1,125 @@ +import ajax from '../utils/request'; + +const signinApi = { + // 新增奖品 + addSignin(params) { + return ajax({ + url: '/task/prize', + type: 'post', + params: params + }); + }, + // 修改奖品 + editSignin(params) { + return ajax({ + url: '/task/prize', + type: 'put', + params: params + }, true); + }, + // 查询奖品 + querySignin(params) { + return ajax({ + url: '/task/prize', + type: 'get', + params: params + }); + }, + + // 查询奖品--配置页面 + queryPrizeBox(params) { + return ajax({ + url: '/activity/prize/box', + type: 'get', + params: params + }); + }, + // 新增配置 + addSigninConfig(params) { + return ajax({ + url: '/task/sign/add', + type: 'post', + params: params + }); + }, + // 修改配置 + editSigninConfig(params) { + return ajax({ + url: '/task/sign/edit', + type: 'post', + params: params + }); + }, + // 查询配置 + querySigninConfig(params) { + return ajax({ + url: '/task/sign/list', + type: 'get', + params: params + }); + }, + + // 签到历史记录(参考 qiyou2_admin_client) + getCheckinHistoryList(params) { + return ajax({ + url: '/checkin/history/list', + type: 'post', + params + }); + }, + deleteCheckinHistory(params) { + return ajax({ + url: '/checkin/history/del', + type: 'post', + params + }); + }, + + // 签到奖品配置列表(参考 qiyou2_admin_client) + checkinCfgAdd(params) { + return ajax({ + url: '/checkinprize/add', + type: 'post', + params + }); + }, + checkinCfgDel(params) { + return ajax({ + url: '/checkinprize/del', + type: 'post', + params + }); + }, + checkinCfgSearch(params) { + return ajax({ + url: '/checkinprize/list', + type: 'post', + params + }); + }, + checkinCfgUpdate(params) { + return ajax({ + url: '/checkinprize/update', + type: 'post', + params + }); + }, + + // 文档后台管理接口 + getCheckingCg(params = {}) { + return ajax({ + url: '/checkin/conf/get', + type: 'post', + params + }); + }, + updateCheckingCg(params) { + return ajax({ + url: '/checkin/conf/update', + type: 'post', + params + }); + }, +} + +export default signinApi; \ No newline at end of file diff --git a/src/api/statistics.js b/src/api/statistics.js new file mode 100755 index 0000000..fa234d5 --- /dev/null +++ b/src/api/statistics.js @@ -0,0 +1,98 @@ +import ajax from '../utils/request' + +const staticsApi = { + /***************************金币流水统计管理****************************** */ + // 请求金币流水列表 + getGlodList(params) { + return ajax({ + url: '/log/gold', + type: 'get', + params: params + }) + }, + // 请求金币流水-用途列表 + getUseList(params) { + return ajax({ + url: '/log/goldType', + type: 'get', + params: params + }) + }, + /***************************营收数据****************************** */ + getRevenue(params) { + return ajax({ + url: '/stats/revenue/list', + type: 'get', + params: params + }) + }, + /***************************用户今日统计****************************** */ + getUserTody(params) { + return ajax({ + url: '/stats/user/daily/list', + type: 'get', + params: params + }) + }, + /***************************提现充值成功统计****************************** */ + getOrderStats(params) { + return ajax({ + url: '/stats/order/list', + type: 'get', + params: params + }) + }, + /** + * 获取交易统计里 趋势图详情接口 + * @param {*} params + */ + getEchartData(data) { + return ajax({ + url: '/stats/order/sucRate', + type: 'post', + params:data + }) + }, + /***************************视频收入统计****************************** */ + getVIncomeList(params) { + return ajax({ + url: '/stats/video/earn/list', + type: 'get', + params: params + }) + }, + /***************************广告点击统计****************************** */ + getClickStatistics(params) { + return ajax({ + url: '/log/ads/statistical', + type: 'get', + params: params + }) + }, + /***************************广告ab用户分析****************************** */ + getAdgroupList(params) { + return ajax({ + url: '/adgroup/list', + type: 'post', + params: params + }) + }, + /***************************视频销售金币统计****************************** */ + getVideoPayGoldStat(params) { + return ajax({ + url: '/stats/video/earn/aggregate', + type: 'get', + params: params + }) + }, + /***************************视频扣量金币统计****************************** */ + getVideoKlGoldStat(params) { + return ajax({ + url: '/stats/video/publisher/deduction', + type: 'get', + params: params + }) + }, +} + +export default staticsApi diff --git a/src/api/systemManagement.js b/src/api/systemManagement.js new file mode 100755 index 0000000..6c922f5 --- /dev/null +++ b/src/api/systemManagement.js @@ -0,0 +1,70 @@ +import ajax from '../utils/request' +const systemApi = { + /********************************版本管理*********************************** */ + // 请求版本管理模块配置列表 + getVersionList(params) { + return ajax({ + url: '/ver/list', + type: 'get', + params: params + }) + }, + // 删除tags + getVersionDelets(params) { + return ajax({ + url: '/ver', + type: 'delete', + params: params + }) + }, + // 编辑tags + getVersionPut(params) { + return ajax({ + url: '/ver/update', + type: 'post', + params: params + }) + }, + // 增加tags + getVersionPost(params) { + return ajax({ + url: '/ver', + type: 'post', + params: params + }) + }, + /** ***********************ip配置************************** */ + // 请求列表 + getIpConfigList(params) { + return ajax({ + url: '/ipwhite/list', + type: 'get', + params: params + }) + }, + // 新增 + addIpConfig(params) { + return ajax({ + url: '/ipwhite/add', + type: 'post', + params: params + }) + }, + // 编辑 + updateIpConfig(params) { + return ajax({ + url: '/ipwhite/edit', + type: 'post', + params: params + }) + }, + // 删除 + delIpConfig(params) { + return ajax({ + url: '/ipwhite/del', + type: 'delete', + params: params + }) + } +} +export default systemApi diff --git a/src/api/systemMessage.js b/src/api/systemMessage.js new file mode 100644 index 0000000..729c9cd --- /dev/null +++ b/src/api/systemMessage.js @@ -0,0 +1,104 @@ +import ajax from "../utils/request"; +const systemMessageApi = { + /********************************系统管理*********************************** */ + // 获取消息通知列表 + getSystemMessage(params) { + return ajax({ + url: "/infmt/notice/list", + type: "get", + params: params, + }); + }, + // 删除消息通知 + removeMessage(params) { + return ajax({ + url: "/infmt/notice/delete", + type: "delete", + params: params, + }); + }, + addMessage(params) { + return ajax({ + url: "/infmt/notice/add", + type: "post", + params: params, + }); + }, + // 编辑通知 + editMessage(params) { + return ajax({ + url: "/infmt/notice/update", + type: "post", + params: params, + }); + }, + // 获取邮件列表 + getEmailList(params) { + return ajax({ + url: "/infmt/mail/list", + type: "get", + params: params, + }); + }, + // 添加邮件 + addEmail(params) { + return ajax({ + url: "/infmt/mail/add", + type: "post", + params: params, + }); + }, + // 删除邮件 + removeEmail(params) { + return ajax({ + url: "/infmt/mail/delete", + type: "delete", + params: params, + }); + }, + /********************************系统配置列表*********************************** */ + // 获取系统配置列表 + getSysconfAll(params) { + return ajax({ + url: "/sysconf/all", + type: "get", + params: params, + }); + }, + // 添加系统配置 + addSysconf(params) { + return ajax({ + url: "/sysconf/create", + type: "post", + params: params, + }); + }, + // 删除系统配置 + delSysconf(params) { + return ajax({ + url: "/sysconf/delete", + type: "post", + params: params, + }); + }, + // 修改系统配置 + updateSysconf(params) { + return ajax( + { + url: "/sysconf/update", + type: "post", + params: params, + }, + true + ); + }, + // selectValues下拉框选项修改 + updateSysSelect(params) { + return ajax({ + url: "/sysconf/update/select", + type: "post", + params: params, + }); + }, +}; +export default systemMessageApi; diff --git a/src/api/tagConfigList.js b/src/api/tagConfigList.js new file mode 100644 index 0000000..7a2d7a0 --- /dev/null +++ b/src/api/tagConfigList.js @@ -0,0 +1,30 @@ +import ajax from "../utils/request"; + +const tagConfigsListApi = { + // 新增标签配置 + addTagConfig(params) { + return ajax({ + url: '/tag/conf/add', + type: 'post', + params + }) + }, + // 删除标签配置 + delTagConfig(params) { + return ajax({ + url: '/tag/conf/delete', + type: 'post', + params + }) + }, + // 修改标签配置 + editTagConfig(params) { + return ajax({ + url: '/tag/conf/update', + type: 'post', + params + }) + } +} + +export default tagConfigsListApi; \ No newline at end of file diff --git a/src/api/transactionManagement.js b/src/api/transactionManagement.js new file mode 100755 index 0000000..b10156f --- /dev/null +++ b/src/api/transactionManagement.js @@ -0,0 +1,250 @@ +import ajax from "../utils/request"; + +const transApi = { + /********************************充值订单管理列表*********************************** */ + // 请求充值订单列表 + getOrderList(params) { + return ajax({ + url: "/recharge/order/list", + type: "get", + params: params, + }); + }, + // 编辑状态说明 + editStatusText(params) { + return ajax({ + url: "/recharge/order/update", + type: "post", + params: params, + }); + }, + // 把订单信息通知到第三方平台 + handAddScore(params) { + return ajax({ + url: "/daichong/order/handScore", + type: "post", + params: params, + }); + }, + /********************************积分兑换列表*********************************** */ + // 获取积分兑换列表 + getIntegralExchangeList(params) { + return ajax({ + url: "/integral_exchange", + type: "get", + params: params, + }); + }, + // 修改积分兑换 + updateIntegralExchange(params) { + return ajax({ + url: "/integral_exchange", + type: "put", + params: params, + }); + }, + /********************************提现订单管理列表*********************************** */ + // 请求提现列表 + getWithdrawList(params) { + return ajax({ + url: "/withdraw/list", + type: "get", + params: params, + }); + }, + // 提现审核 + WithdrawExamine(params) { + return ajax({ + url: "/withdraw/check", + type: "post", + params: params, + }); + }, + /********************************预售订单管理列表*********************************** */ + // 请求预售订单列表 + getAdvanceOrderList(params) { + return ajax({ + url: "/advance_order", + type: "get", + params: params, + }); + }, + exportAdvanceOrder(params) { + return ajax({ + url: "/advance_order/export", + type: "post", + params: params, + }); + }, + /********************************提现方式*********************************** */ + // 新增提现方式 + addWChannel(params) { + return ajax({ + url: "/withdraw/channel/add", + type: "post", + params: params, + }); + }, + // 获取提现方式配置列表 + getWChannelList(params) { + return ajax({ + url: "/withdraw/channel/list", + type: "get", + params: params, + }); + }, + // 修改提现方式配置 + updateWChannel(params) { + return ajax({ + url: "/withdraw/channel/update", + type: "post", + params: params, + }); + }, + // 修改提现税率 + updateTax(params) { + return ajax({ + url: "/withdraw/channel/batch", + type: "post", + params: params, + }); + }, + // 删除提现方式配置 + delWChannel(params) { + return ajax({ + url: "/withdraw/channel/delete", + type: "delete", + params: params, + }); + }, + /********************************提现银行配置*********************************** */ + // 提现银行配置列表配置 + cashBankList(params) { + return ajax({ + url: "/bankType/list", + type: "get", + params: params, + }); + }, + // 提现银行配置新增 + addCashBank(params) { + return ajax({ + url: "/bankType/add", + type: "post", + params: params, + }); + }, + // 提现银行配置编辑 + editCashBank(params) { + return ajax({ + url: "/bankType/update", + type: "post", + params: params, + }); + }, + // 提现银行配置删除 + delCashBank(params) { + return ajax({ + url: "/bankType/del ", + type: "delete", + params: params, + }); + }, + + /******************************财务转账列表******************************/ + // 获取财务转账列表 + getTransferList(params) { + return ajax({ + url: "/withdraw/finan/list", + type: "get", + params: params, + }); + }, + // 回执请求 + receipt(params) { + return ajax({ + url: "/withdraw/finan/receipt", + type: "post", + params: params, + }); + }, + /******************************会员购买记录******************************/ + getVipCardPurchaseRecord(params) { + return ajax({ + url: "/business/product/order", + type: "get", + params: params, + }); + }, + + // 导出会员购买记录(POST) + exportVipCardPurchaseRecord(params) { + return ajax({ + url: "/business/product/order/export", + type: "post", + params: params, + }); + }, + + /******************************退款列表******************************/ + // 获取退款列表 + getRefundList(params) { + return ajax({ + url: "/withdraw/refund/list", + type: "get", + params: params, + }); + }, + // 请求 + Refund(params) { + return ajax({ + url: "/withdraw/refund/dealwith ", + type: "post", + params: params, + }); + }, + /******************************** AI图生视频订单 *********************************** */ + getAiImageToVideoList(params) { + return ajax({ + url: "/ai/image_to_video/list", + type: "get", + params, + }); + }, + delAiImageToVideo(params) { + return ajax({ + url: "/ai/image_to_video/delete", + type: "post", + params, + }); + }, + updateAiImageToVideo(params) { + return ajax({ + url: "/ai/image_to_video/update", + type: "post", + params, + }); + }, + getAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/list", + type: "get", + params + }); + }, + delAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/delete", + type: "post", + params + }); + }, + updateAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/update", + type: "post", + params + }); + }, +}; +export default transApi; diff --git a/src/api/user.js b/src/api/user.js new file mode 100755 index 0000000..a2c64a5 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,556 @@ +import ajax from "../utils/request"; +const userApi = { + /********************************用户管理*********************************** */ + // 添加用户 + addUser(params) { + return ajax({ + url: "/user/add", + type: "post", + params: params, + }); + }, + // 更新用户设备id + resetDev(params) { + return ajax({ + url: "/user/devID/reset", + type: "post", + params: params, + }); + }, + // 请求用户管理模块禁言用户 + getUserBan(params) { + return ajax({ + url: "/user/banned", + type: "post", + params: params, + }); + }, + // 设置用户是否打广告 + setUserAdv(params) { + return ajax({ + url: "/user/advertiser", + type: "post", + params: params, + }); + }, + // 神评或者取消神评 + updateComment(params) { + return ajax({ + url: "/comment/update", + type: "post", + params: params, + }); + }, + // 删除用户评论 + delUserComment(params) { + return ajax({ + url: "/user/deleteComment", + type: "post", + params: params, + }); + }, + // 请求用户列表 + getUserList(params) { + return ajax({ + url: "/user/list", + type: "get", + params: params, + }); + }, + // 更新用户禁止上传状态 + resetForbid(params) { + return ajax({ + url: "/user/forbid", + type: "post", + params: params, + }); + }, + // 请求查看或生成验证码 + getViewCaptcha(params) { + return ajax({ + url: "/extend/viewCaptcha", + type: "get", + params: params, + }); + }, + // 请求用户观看视频详情列表 + getUserPlay(params) { + return ajax({ + url: "/user/record/play", + type: "get", + params: params, + }); + }, + // 请求用户管理模块禁止用户登陆 + getUserLock(params) { + return ajax({ + url: "/user/lock", + type: "post", + params: params, + }); + }, + // 设置ai伴侣余额 + creditAiMateBalance(params) { + return ajax({ + url: "/user/credit/aiMateBalance", + type: "post", + params: params, + }); + }, + // 编辑用户 + editUser(params) { + return ajax({ + url: "/user/update", + type: "post", + params: params, + }); + }, + //重置用户银行卡姓名 + restBankUserName(params) { + return ajax( + { + url: "/user/update", + type: "post", + params: params, + }, + true + ); + }, + // 理由列表 + getReasonList(params) { + return ajax({ + url: "/rejectTemp/list", + type: "get", + params: params, + }); + }, + // 新增理由 + addReasonList(params) { + return ajax({ + url: "/rejectTemp/insert", + type: "post", + params: params, + }); + }, + // 删除理由 + delReasonList(params) { + return ajax({ + url: "/rejectTemp/del", + type: "post", + params: params, + }); + }, + // 编辑理由 + editReasonList(params) { + return ajax({ + url: "/rejectTemp/update", + type: "post", + params: params, + }); + }, + + // 用户加金币 + addUserGold(params) { + return ajax({ + url: "/user/credit", + type: "post", + params: params, + }); + }, + // 用户加AI脱衣免费次数 + addAiUndressFreeTimes(params) { + return ajax({ + url: "/user/update/freeTimes", + type: "post", + params: params, + }); + }, + // 用户加下载次数 + addDownloadTimes(params) { + return ajax({ + url: "/user/update/download", + type: "post", + params: params, + }); + }, + // 用户加抽奖次数 + addLotteryTimes(params) { + return ajax({ + url: "/user/update/lotteryTimes", + type: "post", + params: params, + }); + }, + // 用户加积分 + addUserIntegral(params) { + return ajax({ + url: "/user/integral", + type: "post", + params: params, + }); + }, + // 用户加果币 + addUserFruitCoin(params) { + return ajax({ + url: "/user/credit/fruitCoin", + type: "post", + params: params, + }); + }, + // 用户VIP权益 + getUserVipInfo(params) { + return ajax({ + url: "/user/vipInfo", + type: "get", + params: params, + }); + }, + // 获取账号凭证 + getQrcode(params) { + return ajax({ + url: "/user/qr_code", + type: "post", + params: params, + }); + }, + // 查询会员卡 + queryVipCard(params) { + return ajax({ + url: "/business/product/list", + type: "get", + params: params, + }); + }, + // 查询游戏码 + queryUserGameCode(params) { + return ajax({ + url: "/user/queryGameCode", + type: "get", + params: params, + }); + }, + // 用户导出 + exportUserList(params) { + return ajax({ + url: "/export/userList", + type: "get", + params: params, + }); + }, + /********************************背包列表*********************************** */ + // 获取背包列表 + getBackpackList(params) { + return ajax({ + url: "/backpack", + type: "get", + params: params, + }); + }, + /********************************用户私信列表*********************************** */ + // 请求用户私信列表 + getChatMessageList(params) { + return ajax({ + url: "/user/chatMessage/list", + type: "get", + params: params, + }); + }, + // 请求用户私信列表 + chatMessageSend(params) { + return ajax({ + url: "/user/chatMessage/send", + type: "post", + params: params, + }); + }, + /********************************用户登陆日志*********************************** */ + // 请求用户登陆日志列表 + getLoginLog(params) { + return ajax({ + url: "/user/login/list", + type: "get", + params: params, + }); + }, + /********************************用户ip限制*********************************** */ + // 请求ip限制列表 + getIpBlock(params) { + return ajax({ + url: "/ipblock/list", + type: "get", + params: params, + }); + }, + // 修改IP限制 + editIpBlock(params) { + return ajax({ + url: "/ipblock/edit", + type: "post", + params: params, + }); + }, + // 删除IP限制 + delIpBlock(params) { + return ajax({ + url: "/ipblock/del", + type: "delete", + params: params, + }); + }, + // 添加IP限制 + addIpBlock(params) { + return ajax({ + url: "/ipblock/add", + type: "post", + params: params, + }); + }, + /********************************用户观看日志*********************************** */ + // 请求用户观看记录列表 + getWatchLog(params) { + return ajax({ + url: "/user/play/list", + type: "get", + params: params, + }); + }, + /********************************用户常见问题*********************************** */ + //请求用户常见问题列表 + + //请求用户常见问题列表 + getUserQuestionList(params) { + return ajax({ + url: "/user/faq/list", + type: "get", + params, + }); + }, + //请求用户常见问题分类列表 + getClassificationList(params) { + return ajax({ + url: "/user/faq/cate/list ", + type: "get", + params, + }); + }, + // 新增问题 + AddQuestion(params) { + return ajax({ + url: "/user/faq/add", + type: "post", + params, + }); + }, + // 编辑问题 + EditQuestion(params) { + return ajax({ + url: "/user/faq/update", + type: "post", + params, + }); + }, + // 删除问题 + DeleteQuestion(params) { + return ajax({ + url: "/user/faq/del", + type: "delete", + params, + }); + }, + /********************************用户举报列表*********************************** */ + // 请求用户举报列表 + getUserReport(params) { + return ajax({ + url: "/user/report/list", + type: "get", + params: params, + }); + }, + // 请求用户举报列表 + setRept(params) { + return ajax({ + url: "/user/report/setStatus", + type: "post", + params: params, + }); + }, + // 请求举报分类列表 + getReportTypes(params) { + return ajax({ + url: "/user/report/types/list", + type: "get", + params: params, + }); + }, + /********************************黑名单列表*********************************** */ + //请求黑名单列表 + getBlackList(params) { + return ajax({ + url: "/blacklist/list", + type: "get", + params, + }); + }, + // 移除黑名单 + removeBlackList(params) { + return ajax({ + url: "/blacklist/delete", + type: "delete", + params: params, + }); + }, + // 添加黑名单 + addBlackList(params) { + return ajax({ + url: "/blacklist/add", + type: "post", + params: params, + }); + }, + + /********************************用户推荐列表*********************************** */ + // 请求用户推荐列表 + getRecommendationList(params) { + return ajax({ + url: "/user/reco/list", + type: "get", + params: params, + }); + }, + // 用户推荐修改 + updateRecommendation(params) { + return ajax({ + url: "/user/reco/modify", + type: "post", + params: params, + }); + }, + // 用户推荐新增 + addRecommendation(params) { + return ajax({ + url: "/user/reco/add", + type: "post", + params: params, + }); + }, + // 用户推荐删除 + delRecommendation(params) { + return ajax({ + url: "/user/reco/del", + type: "post", + params: params, + }); + }, + + /**********************用户反馈列表******************** */ + // 请求用户反馈列表 + getFeedbackList(params) { + return ajax({ + url: "/user/feedback/list", + type: "get", + params: params, + }); + }, + //用户反馈修改 + updateFeedback(params) { + return ajax({ + url: "/user/feedback/update", + type: "post", + params: params, + }); + }, + //用户反馈删除 + delFeedback(params) { + return ajax({ + url: "/user/feedback/del", + type: "delete", + params: params, + }); + }, + //查询游戏余额 + queryBalance(params) { + return ajax({ + url: "/game/wali/balance/get", + type: "post", + params: params, + }); + }, + //回收游戏余额 + recycleGameBal(params) { + return ajax({ + url: "/game/wali/transfer", + type: "post", + params: params, + }); + }, + //回收金币 + recycleIncome(params) { + return ajax({ + url: "/user/credit/gold", + type: "post", + params: params, + }); + }, + + /**********************用户操作日志列表******************** */ + // 请求用户日志列表 + getUserLogList(params) { + return ajax({ + url: "/operation/log/list", + type: "get", + params: params, + }); + }, + + // 查询所有工作室用户 + queryStudioList(params) { + return ajax({ + url: "/user/madou/list ", + type: "post", + params: params, + }); + }, + /********************************用户资源配置*********************************** */ + // 请求用户资源配置列表 + getResource(params) { + return ajax({ + url: "/user/resource/list", + type: "get", + params: params, + }); + }, + // 删除用户资源配置 + delResource(params) { + return ajax({ + url: "/user/resource/del", + type: "post", + params: params, + }); + }, + // 新增用户资源配置 + addResource(params) { + return ajax({ + url: "/user/resource/add", + type: "post", + params: params, + }); + }, + // 编辑用户资源配置 + updResource(params) { + return ajax({ + url: "/user/resource/update", + type: "post", + params: params, + }); + }, + // 请求用户ai伴侣交易列表 + getUserAiMateTransList(params) { + return ajax({ + url: "/aimate/trans_list", + type: "get", + params: params, + }); + }, +}; + +export default userApi; diff --git a/src/api/videoManagement.js b/src/api/videoManagement.js new file mode 100755 index 0000000..f08eb43 --- /dev/null +++ b/src/api/videoManagement.js @@ -0,0 +1,813 @@ +import ajax from "../utils/request"; +const videoApi = { + /********************************审核视频相关接口*********************************** */ + queryTagList(params) { + return ajax({ + url: "/tag/pure/list", + type: "get", + params: params, + }); + }, + getVideoList(params) { + return ajax({ + url: "/vid/list", + type: "get", + params: params, + }); + }, + queryHappTopList(params) { + return ajax({ + url: "/image/list", + type: "post", + params: params, + }); + }, + delHappTopList(params) { + return ajax({ + url: "/image/delete", + type: "post", + params: params, + }); + }, + updataHappTopList(params) { + return ajax({ + url: "/image/update", + type: "post", + params: params, + }); + }, + queryVidHot(params) { + return ajax({ + url: "/vid/search", + type: "post", + params: params, + }); + }, + exportVideoList(params) { + return ajax({ + url: "/vid/export", + type: "post", + // responseType: "blob", + params: params, + }); + }, + // 视频删除接口 + deleteVideos(params) { + return ajax({ + url: "/vid/del", + type: "delete", + params: params, + }); + }, + // 单个视频审核接口 + examineVideo(params) { + return ajax({ + url: "/vid/batch/pass", + type: "post", + params: params, + }); + }, + // 批量视频审核接口 + batchReview(params) { + return ajax({ + url: "/vid/batch/edit", + type: "post", + params: params, + }); + }, + // 从专题批量视频删除接口 + batchDelete(params) { + return ajax({ + url: "/module/video/delete/batch", + type: "post", + params: params, + }); + }, + // 视频编辑 + editVideoInfo(params) { + return ajax( + { + url: "/vid/update", + type: "post", + params: params, + }, + true + ); + }, + // 上传图片 + fileUpload(params) { + return ajax({ + url: "/vid/uploadStatic", + type: "post", + headers: { + "Content-Type": "multipart/form-data", + }, + params: params, + }); + }, + // 推送为精选 + setChosen(params) { + return ajax({ + url: "/vid/batch/update", + type: "post", + params: params, + }); + }, + + // 是否推荐 + setRecommend(params) { + return ajax({ + url: "/vid/push", + type: "post", + params: params, + }); + }, + // 批量是否推荐 + batchSetRecommend(params) { + return ajax({ + url: "/vid/batch/reco", + type: "post", + params: params, + }); + }, + // 批量修改帖子类型 + batchSetVideoType(params) { + return ajax({ + url: "/vid/batch/newsType/update", + type: "post", + params: params, + }); + }, + // 取消推送 + cancelRecommend(params) { + return ajax({ + url: "/vid/push/delete", + type: "post", + params: params, + }); + }, + // 推送列表 + recommendList(params) { + return ajax({ + url: "/vid/push/list", + type: "get", + params: params, + }); + }, + + // 视频上传 + uploadVideo(params) { + return ajax({ + url: "/vid/submit", + type: "post", + params: params, + }); + }, + // 精选视频推送 + pushVideo(params) { + return ajax({ + url: "/vid/push", + type: "post", + params: params, + }); + }, + // 审核不通过理由列表 + // 查询 + queryFailList(params) { + return ajax({ + url: "/rejectTemp/vid/list", + type: "get", + params: params, + }); + }, + // 新增 + addFailList(params) { + return ajax({ + url: "/rejectTemp/vid/insert", + type: "post", + params: params, + }); + }, + // 删除 + delFailList(params) { + return ajax({ + url: "/rejectTemp/vid/del", + type: "post", + params: params, + }); + }, + // 编辑 + editFailList(params) { + return ajax({ + url: "/rejectTemp/vid/update", + type: "post", + params: params, + }); + }, + // 视频审查 + videoFeviewList(params, urll) { + return ajax({ + url: "/vid/view/" + urll, + type: "get", + params: params, + }); + }, + // 获取专题 + sectionList(params) { + return ajax({ + url: "/module/section/all", + type: "post", + params: params, + }); + }, + // 批量新增视频 + batch(params) { + return ajax({ + url: "/module/video/add/batch", + type: "post", + params: params, + }); + }, + // 批量新增视频 + getVideoActivity(params) { + return ajax({ + url: "/video_activity/box", + type: "get", + params: params, + }); + }, + + /** + * 断点续传视频验证是否分片上传完毕 + * @param {*} data + */ + uploadDotJson(params) { + return ajax({ + url: "/vid/uploadDotJson", + type: "post", + params: params, + headers: { + "Content-Type": "application/json; charset=utf-8", + }, + }); + }, + uploadDotStream(params) { + return ajax({ + url: "/vid/uploadDotStream", + type: "post", + params: params, + }); + }, + // 批量编辑标签 + batchEditTags(params) { + return ajax({ + url: "/vid/batch/update/tags", + type: "post", + params: params, + }); + }, + /********************************城市列表*********************************** */ + // 删除城市 + deleteCity(params) { + return ajax({ + url: "/vid/location/hotCity/delete", + type: "post", + params: params, + }); + }, + // 获取城市列表 + getCityList(params) { + return ajax({ + url: "/vid/location/city/list", + type: "get", + params: params, + }); + }, + // 编辑 + updateCity(params) { + return ajax({ + url: "/vid/location/city/update", + type: "post", + params: params, + }); + }, + /********************************热门城市*********************************** */ + // 新增热门城市 + addHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/add", + type: "post", + params: params, + }); + }, + // 删除热门城市 + deleteHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/delete", + type: "delete", + params: params, + }); + }, + // 获取热门城市列表 + getHotCityList(params) { + return ajax({ + url: "/vid/location/hotCity/list", + type: "get", + params: params, + }); + }, + // 编辑热门城市 + editHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/update", + type: "post", + params: params, + }); + }, + /********************************评论管理*********************************** */ + // 回复评论 + replyComment(params) { + return ajax({ + url: "/comment/send", + type: "post", + params: params, + }); + }, + // 请求评论管理模块配置列表 + getCommentList(params) { + return ajax({ + url: "/comment/list", + type: "get", + params: params, + }); + }, + // 请求评论管理模块封禁用户 + getCommentBan(params) { + return ajax({ + url: "/comment/ban", + type: "post", + params: params, + }); + }, + // 请求评论管理模块通过审核 + getCommentAccess(params) { + return ajax({ + url: "/comment/access", + type: "post", + params: params, + }); + }, + // 评论批量通过 + commentBatchPass(params) { + return ajax({ + url: "/comment/batch/access", + type: "post", + params: params, + }); + }, + // 删除评论 + delComment(params) { + return ajax({ + url: "/comment/delete", + type: "post", + params: params, + }); + }, + // 根据评论内容删除评论 + deleteContent(params) { + return ajax({ + url: "/web/comment/delete", + type: "post", + params: params, + }); + }, + // 根据评论内容删除评论 + // upLoadContent(params) { + // return ajax({ + // url: '/comment/importExcel', + // type: 'post', + // params: params + // }) + // }, + + //导入评论内容 + iExcel(params) { + return ajax({ + url: "/comment/importExcel", + type: "post", + params: params, + }); + }, + /********************************短视频最热*********************************** */ + // 请求萝莉岛最热模块配置列表 + getVideoHotList(params) { + return ajax({ + url: "/vid/tone/list", + type: "get", + params: params, + }); + }, + // 编辑萝莉岛最热 + editVideoHot(params) { + return ajax({ + url: "/vid/tone/update", + type: "post", + params: params, + }); + }, + /********************************标签管理*********************************** */ + // 添加标签 + addTags(params) { + return ajax({ + url: "/tag/add", + type: "post", + params: params, + }); + }, + // 请求标签列表 + getTagList(params) { + return ajax({ + url: "/tag/list", + type: "get", + params: params, + }); + }, + // 请求推荐标签列表 + getRecmdList(params) { + return ajax({ + url: "/recmd/list", + type: "get", + params: params, + }); + }, + // 请求新增推荐标签 + addRecmdList(params) { + return ajax({ + url: "/recmd/add", + type: "post", + params: params, + }); + }, + // 编辑推荐标签 + editRecmdList(params) { + return ajax({ + url: "/recmd/update", + type: "post", + params: params, + }); + }, + // 删除推荐标签 + deleteRecmdList(params) { + return ajax({ + url: "/recmd/delete", + type: "delete", + params: params, + }); + }, + // 删除tags + deleteTags(params) { + return ajax({ + url: "/tag/delete", + type: "delete", + params: params, + }); + }, + // 编辑标签 + editTags(params) { + return ajax({ + url: "/tag/update", + type: "post", + params: params, + }); + }, + // 推送至精彩 + pushWonder(params) { + return ajax({ + url: "/vid/wonder/add", + type: "post", + params: params, + }); + }, + /********************************发现精彩*********************************** */ + // 删除推荐精彩 + deleteWonder(params) { + return ajax({ + url: "/vid/wonder/delete", + type: "delete", + params: params, + }); + }, + // 获取精彩视频列表 + getWonderList(params) { + return ajax({ + url: "/vid/wonder/list", + type: "get", + params: params, + }); + }, + // 编辑发现精彩 + editWonder(params) { + return ajax({ + url: "/vid/wonder/update", + type: "post", + params: params, + }); + }, + /********************************视频热度计算方式*********************************** */ + // 获取视频热度计算方式 + queryVidPopularity(params) { + return ajax({ + url: "/vid/popularity/config", + type: "get", + params, + }); + }, + // 修改视频热度计算方式 + modifyVidPopularity(params) { + return ajax({ + url: "/vid/popularity/config", + type: "post", + params, + }); + }, + /********************************资源管理*********************************** */ + // 删除资源 + deleteSource(params) { + return ajax({ + url: "/source/del", + type: "delete", + params: params, + }); + }, + // 获取资源列表 + getSourceList(params) { + return ajax({ + url: "/source/list", + type: "get", + params: params, + }); + }, + // 添加资源 + addSource(params) { + return ajax({ + url: "/source/add", + type: "post", + params: params, + }); + }, + // 编辑资源 + editSource(params) { + return ajax({ + url: "/source/edit", + type: "post", + params: params, + }); + }, + /********************************过滤词管理*********************************** */ + // 过滤词列表 + filterList(params) { + return ajax({ + url: "/filter/list", + type: "get", + params: params, + }); + }, + // 过滤词删除 + filterDelete(params) { + return ajax({ + url: "/filter/delete", + type: "delete", + params: params, + }); + }, + // 过滤词添加 + filterAdd(params) { + return ajax({ + url: "/filter/add", + type: "post", + params: params, + }); + }, + + /***********************免费视频观看配置列表************************ */ + // 过滤词列表 + // 删除 + deletefreeVid(params) { + return ajax({ + url: "/freeVid/cfg/del", + type: "delete", + params: params, + }); + }, + // 获取请求列表 + getfreeVidList(params) { + return ajax({ + url: "/freeVid/cfg/list", + type: "get", + params: params, + }); + }, + // 添加 + addfreeVid(params) { + return ajax({ + url: "/freeVid/cfg/add", + type: "post", + params: params, + }); + }, + // 编辑 + editfreeVid(params) { + return ajax({ + url: "/freeVid/cfg/edit", + type: "post", + params: params, + }); + }, + + /***********************活动配置************************ */ + + // 查询活动配置 + queryActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "get", + params: params, + }); + }, + + // 新增活动配置 + addActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "post", + params: params, + }); + }, + + // 编辑活动配置 + eidtActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "put", + params: params, + }); + }, + /********************************金币视频配置*********************************** */ + // 请求金币视频配置 + getVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "get", + params: params, + }); + }, + // 添加金币视频配置 + addVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "post", + params: params, + }); + }, + // 修改金币视频配置 + editVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "put", + params: params, + }); + }, + // 删除金币视频配置 + deleteVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "delete", + params: params, + }); + }, + /***********************视频资源库************************ */ + // 查询资源库列表 + queryMediaResConfig(params) { + return ajax({ + url: "/mediaResource/list", + type: "get", + params: params, + }); + }, + // 使用 + useMediaRes(params) { + return ajax({ + url: "/mediaResource/use", + type: "post", + params: params, + }); + }, + // 使用 + ignoreMediaRes(params) { + return ajax({ + url: "/mediaResource/ignore", + type: "post", + params: params, + }); + }, + /**************************自动上线视频配置**************************/ + // 视频自动上线列表接口 + getVidTimeOnlineList(params) { + return ajax({ + url: "/vid/timeOnline/list", + type: "get", + params: params, + }); + }, + // 视频自动上线新增接口 + editVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/edit", + type: "post", + params: params, + }); + }, + // 视频自动上线删除接口 + delVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/del", + type: "post", + params: params, + }); + }, + // 视频自动上线批量新增接口 + batchVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/batchAudit", + type: "post", + params: params, + }); + }, + /********************************快捷搜索管理*********************************** */ + // 获取快捷搜索列表 + getQuickSearchList(params) { + return ajax({ + url: "/quickSearch/list", + type: "get", + params: params, + }); + }, + // 新增快捷搜索 + addQuickSearch(params) { + return ajax({ + url: "/quickSearch/create", + type: "post", + params: params, + }); + }, + // 删除快捷搜索 + deleteQuickSearch(params) { + return ajax({ + url: "/quickSearch/delete", + type: "post", + params: params, + }); + }, + // 编辑快捷搜索 + editQuickSearch(params) { + return ajax({ + url: "/quickSearch/update", + type: "post", + params: params, + }); + }, + /***********************表情包管理************************ */ + // 获取表情包列表 + getEmojiList(params) { + return ajax({ + url: "/emoji/list", + type: "get", + params, + }); + }, + // 新增表情包 + addEmoji(params) { + return ajax({ + url: "/emoji/create", + type: "post", + params, + }); + }, + // 修改表情包 + updateEmoji(params) { + return ajax({ + url: "/emoji/update", + type: "post", + params, + }); + }, + // 删除表情包 + deleteEmoji(params) { + return ajax({ + url: "/emoji/delete", + type: "post", + params, + }); + }, +}; +export default videoApi; diff --git a/src/assets/images/1.png b/src/assets/images/1.png new file mode 100755 index 0000000..96e920f Binary files /dev/null and b/src/assets/images/1.png differ diff --git a/src/assets/images/2.png b/src/assets/images/2.png new file mode 100755 index 0000000..37760ea Binary files /dev/null and b/src/assets/images/2.png differ diff --git a/src/assets/images/3.png b/src/assets/images/3.png new file mode 100755 index 0000000..a2201ed Binary files /dev/null and b/src/assets/images/3.png differ diff --git a/src/assets/images/5.jpg b/src/assets/images/5.jpg new file mode 100755 index 0000000..a9f12ab Binary files /dev/null and b/src/assets/images/5.jpg differ diff --git a/src/assets/images/bg.jpeg b/src/assets/images/bg.jpeg new file mode 100755 index 0000000..cece6b3 Binary files /dev/null and b/src/assets/images/bg.jpeg differ diff --git a/src/assets/images/bind.png b/src/assets/images/bind.png new file mode 100755 index 0000000..3140905 Binary files /dev/null and b/src/assets/images/bind.png differ diff --git a/src/assets/images/czje.png b/src/assets/images/czje.png new file mode 100755 index 0000000..c1e2a77 Binary files /dev/null and b/src/assets/images/czje.png differ diff --git a/src/assets/images/czrs.png b/src/assets/images/czrs.png new file mode 100755 index 0000000..a8a3068 Binary files /dev/null and b/src/assets/images/czrs.png differ diff --git a/src/assets/images/dl.png b/src/assets/images/dl.png new file mode 100755 index 0000000..7da7f18 Binary files /dev/null and b/src/assets/images/dl.png differ diff --git a/src/assets/images/dsp.png b/src/assets/images/dsp.png new file mode 100755 index 0000000..a55bd11 Binary files /dev/null and b/src/assets/images/dsp.png differ diff --git a/src/assets/images/fzsj.png b/src/assets/images/fzsj.png new file mode 100755 index 0000000..bf0b388 Binary files /dev/null and b/src/assets/images/fzsj.png differ diff --git a/src/assets/images/gm.png b/src/assets/images/gm.png new file mode 100755 index 0000000..24a1ada Binary files /dev/null and b/src/assets/images/gm.png differ diff --git a/src/assets/images/header-bg.png b/src/assets/images/header-bg.png new file mode 100755 index 0000000..01f8361 Binary files /dev/null and b/src/assets/images/header-bg.png differ diff --git a/src/assets/images/icon.png b/src/assets/images/icon.png new file mode 100644 index 0000000..3c2ff5b Binary files /dev/null and b/src/assets/images/icon.png differ diff --git a/src/assets/images/jb.png b/src/assets/images/jb.png new file mode 100755 index 0000000..befc39e Binary files /dev/null and b/src/assets/images/jb.png differ diff --git a/src/assets/images/jbtx.png b/src/assets/images/jbtx.png new file mode 100755 index 0000000..3b7914a Binary files /dev/null and b/src/assets/images/jbtx.png differ diff --git a/src/assets/images/timg.jpeg b/src/assets/images/timg.jpeg new file mode 100755 index 0000000..fa6eaac Binary files /dev/null and b/src/assets/images/timg.jpeg differ diff --git a/src/assets/images/tx.png b/src/assets/images/tx.png new file mode 100755 index 0000000..93474e5 Binary files /dev/null and b/src/assets/images/tx.png differ diff --git a/src/assets/images/user.png b/src/assets/images/user.png new file mode 100755 index 0000000..a0e11ce Binary files /dev/null and b/src/assets/images/user.png differ diff --git a/src/assets/images/vip.png b/src/assets/images/vip.png new file mode 100755 index 0000000..1c7a298 Binary files /dev/null and b/src/assets/images/vip.png differ diff --git a/src/assets/images/welcome.jpg b/src/assets/images/welcome.jpg new file mode 100755 index 0000000..1dac02f Binary files /dev/null and b/src/assets/images/welcome.jpg differ diff --git a/src/assets/images/xf.png b/src/assets/images/xf.png new file mode 100755 index 0000000..da8d111 Binary files /dev/null and b/src/assets/images/xf.png differ diff --git a/src/assets/images/xfz.png b/src/assets/images/xfz.png new file mode 100755 index 0000000..4925aaf Binary files /dev/null and b/src/assets/images/xfz.png differ diff --git a/src/assets/images/yq.png b/src/assets/images/yq.png new file mode 100755 index 0000000..e663f4f Binary files /dev/null and b/src/assets/images/yq.png differ diff --git a/src/assets/images/zj.png b/src/assets/images/zj.png new file mode 100755 index 0000000..e32a0ad Binary files /dev/null and b/src/assets/images/zj.png differ diff --git a/src/assets/images/zxyh.png b/src/assets/images/zxyh.png new file mode 100755 index 0000000..8e2037b Binary files /dev/null and b/src/assets/images/zxyh.png differ diff --git a/src/assets/scss/base.scss b/src/assets/scss/base.scss new file mode 100755 index 0000000..304d2bc --- /dev/null +++ b/src/assets/scss/base.scss @@ -0,0 +1,291 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} +html, +body { + height: 100%; +} +a { + text-decoration: none; +} +li { + list-style: none; +} +i { + font-style: normal; +} + +/*公共样式*/ +.el-pagination { + margin-top: 4px; + float: right; +} +.el-dialog__header { + text-align: center; +} +.el-menu-item-group { + .el-menu-item { + font-size: 14px; + padding-left: 60px !important; + text-align: left; + } +} +.el-table { + .el-button--mini { + padding: 7px 11px !important; + font-weight: normal !important; + } +} + // 表头数据可以复制 +.el-table th { + user-select: unset; +} +/*操作栏样式*/ +.action-bar { + width: 100%; + //height: 30px; + height: auto; + font-size: 14px; + color: #666; + margin-bottom: 15px !important; + .el-select { + width: 150px; + margin-right: 10px; + margin-bottom: 10px; + } + .el-button { + margin-left: 10px; + margin-bottom: 10px; + } + .block { + margin-top: 30px; + } + .param-input { + width: 180px; + margin-right: 10px; + margin-bottom: 10px; + } +} + +.color-1 { + background-image: linear-gradient( + to right, + #25aae1, + #40e495, + #30dd8a, + #2bb673 + ); + box-shadow: 0 4px 15px 0 rgba(49, 196, 190, 0.75); +} +.color-2 { + background-image: linear-gradient( + to right, + #f5ce62, + #e43603, + #fa7199, + #e85a19 + ); + box-shadow: 0 4px 15px 0 rgba(229, 66, 10, 0.75); +} +.color-3 { + background-image: linear-gradient( + to right, + #667eea, + #764ba2, + #6b8dd6, + #8e37d7 + ); + box-shadow: 0 4px 15px 0 rgba(116, 79, 168, 0.75); +} +.color-4 { + background-image: linear-gradient( + to right, + #fc6076, + #ff9a44, + #ef9d43, + #e75516 + ); + box-shadow: 0 4px 15px 0 rgba(252, 104, 110, 0.75); +} +.color-5 { + background-image: linear-gradient( + to right, + #0ba360, + #3cba92, + #30dd8a, + #2bb673 + ); + box-shadow: 0 4px 15px 0 rgba(23, 168, 108, 0.75); +} +.color-6 { + background-image: linear-gradient( + to right, + #009245, + #fcee21, + #00a8c5, + #d9e021 + ); + box-shadow: 0 4px 15px 0 rgba(83, 176, 57, 0.75); +} +.color-7 { + background-image: linear-gradient( + to right, + #6253e1, + #852d91, + #a3a1ff, + #f24645 + ); + box-shadow: 0 4px 15px 0 rgba(126, 52, 161, 0.75); +} +.color-8 { + background-image: linear-gradient( + to right, + #29323c, + #485563, + #2b5876, + #4e4376 + ); + box-shadow: 0 4px 15px 0 rgba(45, 54, 65, 0.75); +} +.color-9 { + background-image: linear-gradient( + to right, + #25aae1, + #4481eb, + #04befe, + #3f86ed + ); + box-shadow: 0 4px 15px 0 rgba(65, 132, 234, 0.75); +} +.color-10 { + background-image: linear-gradient( + to right, + #ed6ea0, + #ec8c69, + #f7186a, + #fbb03b + ); + box-shadow: 0 4px 15px 0 rgba(236, 116, 149, 0.75); +} +.color-11 { + background-image: linear-gradient( + to right, + #eb3941, + #04befe, + #e14e53, + #3f86ed + ); + box-shadow: 0 5px 15px rgba(242, 97, 103, 0.4); +} +.color-12 { + background-image: linear-gradient( + to right, + #ed6ea0, + #ec8c69, + #ec8c69, + #ed6ea0 + ); + box-shadow: 0 5px 15px rgba(242, 97, 103, 0.4); +} +.color-13 { + background-image: linear-gradient( + to right, + #25aae1, + #40e495, + #30dd8a, + #2bb673 + ); + box-shadow: 0 4px 15px 0 rgba(49, 196, 190, 0.75); +} +.color-14 { + background-image: linear-gradient( + to right, + #f5ce62, + #e43603, + #fa7199, + #e85a19 + ); + box-shadow: 0 4px 15px 0 rgba(229, 66, 10, 0.75); +} +.color-15 { + background-image: linear-gradient( + to right, + #667eea, + #764ba2, + #6b8dd6, + #8e37d7 + ); + box-shadow: 0 4px 15px 0 rgba(116, 79, 168, 0.75); +} +.color-16 { + background-image: linear-gradient( + to right, + #fc6076, + #ff9a44, + #ef9d43, + #e75516 + ); + box-shadow: 0 4px 15px 0 rgba(252, 104, 110, 0.75); +} +.color-17 { + background-image: linear-gradient( + to right, + #0ba360, + #3cba92, + #30dd8a, + #2bb673 + ); + box-shadow: 0 4px 15px 0 rgba(23, 168, 108, 0.75); +} +.color-18 { + background-image: linear-gradient( + to right, + #009245, + #fcee21, + #00a8c5, + #d9e021 + ); + box-shadow: 0 4px 15px 0 rgba(83, 176, 57, 0.75); +} +.color-19 { + background-image: linear-gradient( + to right, + #6253e1, + #852d91, + #a3a1ff, + #f24645 + ); + box-shadow: 0 4px 15px 0 rgba(126, 52, 161, 0.75); +} +.color-20 { + background-image: linear-gradient( + to right, + #29323c, + #485563, + #2b5876, + #4e4376 + ); + box-shadow: 0 4px 15px 0 rgba(45, 54, 65, 0.75); +} +.color-9 { + background-image: linear-gradient( + to right, + #25aae1, + #4481eb, + #04befe, + #3f86ed + ); + box-shadow: 0 4px 15px 0 rgba(65, 132, 234, 0.75); +} +.color-10 { + background-image: linear-gradient( + to right, + #ed6ea0, + #ec8c69, + #f7186a, + #fbb03b + ); + box-shadow: 0 4px 15px 0 rgba(236, 116, 149, 0.75); +} diff --git a/src/assets/scss/element-variables.scss b/src/assets/scss/element-variables.scss new file mode 100755 index 0000000..c6f6d61 --- /dev/null +++ b/src/assets/scss/element-variables.scss @@ -0,0 +1,7 @@ +/* 改变主题色变量 */ +$--color-primary: #e63765; + +/* 改变 icon 字体路径变量,必需 */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import '~element-ui/packages/theme-chalk/src/index'; diff --git a/src/components/ConfigForms/index.vue b/src/components/ConfigForms/index.vue new file mode 100644 index 0000000..5e8aa98 --- /dev/null +++ b/src/components/ConfigForms/index.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/components/ConfigTable/index.vue b/src/components/ConfigTable/index.vue new file mode 100644 index 0000000..7dcf9bf --- /dev/null +++ b/src/components/ConfigTable/index.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/components/Gallery/index.vue b/src/components/Gallery/index.vue new file mode 100644 index 0000000..d0e43a5 --- /dev/null +++ b/src/components/Gallery/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/LongText.vue b/src/components/LongText.vue new file mode 100644 index 0000000..ac926e5 --- /dev/null +++ b/src/components/LongText.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/components/ShowVideo/index.vue b/src/components/ShowVideo/index.vue new file mode 100644 index 0000000..a06d9dc --- /dev/null +++ b/src/components/ShowVideo/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/components/VueDplayerHls/index.vue b/src/components/VueDplayerHls/index.vue new file mode 100644 index 0000000..052b11e --- /dev/null +++ b/src/components/VueDplayerHls/index.vue @@ -0,0 +1,140 @@ + + + + diff --git a/src/components/baseUpload.vue b/src/components/baseUpload.vue new file mode 100755 index 0000000..b796d9a --- /dev/null +++ b/src/components/baseUpload.vue @@ -0,0 +1,274 @@ + + + diff --git a/src/components/baseUploadNew.vue b/src/components/baseUploadNew.vue new file mode 100755 index 0000000..92bab2f --- /dev/null +++ b/src/components/baseUploadNew.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/components/baseUploadOld.vue b/src/components/baseUploadOld.vue new file mode 100755 index 0000000..1c710f2 --- /dev/null +++ b/src/components/baseUploadOld.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/components/batchTagsPopup.vue b/src/components/batchTagsPopup.vue new file mode 100755 index 0000000..4a116e0 --- /dev/null +++ b/src/components/batchTagsPopup.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/clipboardPic.vue b/src/components/clipboardPic.vue new file mode 100644 index 0000000..3d51b57 --- /dev/null +++ b/src/components/clipboardPic.vue @@ -0,0 +1,140 @@ + + + diff --git a/src/components/commentAction.vue b/src/components/commentAction.vue new file mode 100644 index 0000000..68531cf --- /dev/null +++ b/src/components/commentAction.vue @@ -0,0 +1,134 @@ + + diff --git a/src/components/cropper.vue b/src/components/cropper.vue new file mode 100755 index 0000000..562f391 --- /dev/null +++ b/src/components/cropper.vue @@ -0,0 +1,186 @@ + + + + \ No newline at end of file diff --git a/src/components/decrypt-img/index.vue b/src/components/decrypt-img/index.vue new file mode 100644 index 0000000..6edd697 --- /dev/null +++ b/src/components/decrypt-img/index.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/components/decrypt-img/tool.js b/src/components/decrypt-img/tool.js new file mode 100644 index 0000000..5dd8776 --- /dev/null +++ b/src/components/decrypt-img/tool.js @@ -0,0 +1,60 @@ +export const decryptTool = { + decryptKey: "2019ysapp7527", + cachedBlobs: {}, + // 并发控制 + maxConcurrency: 10, + activeCount: 0, + queue: [], + /** + * @description 图片解密 + * @param url 需要解密的url + * @returns 解密过后的图片链接 + */ + async imgDecypt(url) { + return new Promise((resolve, reject) => { + const task = async () => { + try { + const r = await fetch(url); + const rb = await r.arrayBuffer(); + const blobUrl = this.imgEncrypt(rb); + resolve(blobUrl); + } catch (e) { + reject(e); + } finally { + // 任务完成,减少计数并尝试启动下一个队列任务 + this.activeCount = Math.max(0, this.activeCount - 1); + if (this.queue.length > 0) { + const next = this.queue.shift(); + this.activeCount++; + next(); + } + } + }; + + if (this.activeCount < this.maxConcurrency) { + this.activeCount++; + task(); + } else { + this.queue.push(task); + } + }); + }, + /** + * 图片解密 + * @param buffer buffer + * @returns + */ + imgEncrypt(buffer) { + const bytes = new Uint8Array(buffer); + const encoder = new TextEncoder(); + const KEY = encoder.encode(this.decryptKey); + for (let i = 0; i < 100; i++) { + bytes[i] ^= KEY[i % KEY.length]; + } + const blob = new Blob([bytes], { + type: "image/png", + }); + const url = URL.createObjectURL(blob); + return url; + }, +}; diff --git a/src/components/globalUploader.vue b/src/components/globalUploader.vue new file mode 100644 index 0000000..863ae3d --- /dev/null +++ b/src/components/globalUploader.vue @@ -0,0 +1,389 @@ + + + + + + \ No newline at end of file diff --git a/src/components/imgLoad.vue b/src/components/imgLoad.vue new file mode 100755 index 0000000..4f30cc2 --- /dev/null +++ b/src/components/imgLoad.vue @@ -0,0 +1,50 @@ + + + + \ No newline at end of file diff --git a/src/components/imgsUpload.vue b/src/components/imgsUpload.vue new file mode 100644 index 0000000..b404713 --- /dev/null +++ b/src/components/imgsUpload.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/components/media-popup.vue b/src/components/media-popup.vue new file mode 100755 index 0000000..e3440e0 --- /dev/null +++ b/src/components/media-popup.vue @@ -0,0 +1,161 @@ + + + + diff --git a/src/components/mediaTagSelector.vue b/src/components/mediaTagSelector.vue new file mode 100644 index 0000000..025ae2e --- /dev/null +++ b/src/components/mediaTagSelector.vue @@ -0,0 +1,128 @@ + + + \ No newline at end of file diff --git a/src/components/multipleChannels.vue b/src/components/multipleChannels.vue new file mode 100644 index 0000000..c55fff5 --- /dev/null +++ b/src/components/multipleChannels.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/components/radioChannel.vue b/src/components/radioChannel.vue new file mode 100644 index 0000000..187307f --- /dev/null +++ b/src/components/radioChannel.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/components/reasonAction.vue b/src/components/reasonAction.vue new file mode 100644 index 0000000..a75b145 --- /dev/null +++ b/src/components/reasonAction.vue @@ -0,0 +1,240 @@ + + + + diff --git a/src/components/rich-editor/index.vue b/src/components/rich-editor/index.vue new file mode 100644 index 0000000..80d6a71 --- /dev/null +++ b/src/components/rich-editor/index.vue @@ -0,0 +1,418 @@ + + + + + diff --git a/src/components/rich-preview/content.vue b/src/components/rich-preview/content.vue new file mode 100644 index 0000000..4f4816d --- /dev/null +++ b/src/components/rich-preview/content.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/components/rich-preview/index.vue b/src/components/rich-preview/index.vue new file mode 100644 index 0000000..afcb98b --- /dev/null +++ b/src/components/rich-preview/index.vue @@ -0,0 +1,89 @@ + + + + diff --git a/src/components/selectReasonAction.vue b/src/components/selectReasonAction.vue new file mode 100644 index 0000000..479b5e3 --- /dev/null +++ b/src/components/selectReasonAction.vue @@ -0,0 +1,292 @@ + + + + diff --git a/src/components/tagSelector.vue b/src/components/tagSelector.vue new file mode 100644 index 0000000..9efc25c --- /dev/null +++ b/src/components/tagSelector.vue @@ -0,0 +1,143 @@ + + + diff --git a/src/main.js b/src/main.js new file mode 100755 index 0000000..1bb1bfa --- /dev/null +++ b/src/main.js @@ -0,0 +1,58 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-30 14:43:04 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-18 11:31:13 + */ +import Vue from "vue"; +import App from "./App.vue"; +import router from "./router"; +import store from "./stroe"; +import ElementUI from "element-ui"; +import Router from "vue-router"; +import filters from "@/utils/filter"; +import "./assets/scss/element-variables.scss"; +import "video.js/dist/video-js.css"; +import "./permission"; +import components from "@/utils/gloabalComponents"; +import uploader from "vue-simple-uploader"; +import VueCropper from "vue-cropper"; +import AudioPlayer from '@liripeng/vue-audio-player' +import '@liripeng/vue-audio-player/lib/vue-audio-player.css' +Vue.prototype.$store = store; +// 引入lodash +import _ from "lodash"; +import { LoginPlugin } from "./plugins/LoginPlugin"; + +Vue.prototype._ = _; +const originalPush = Router.prototype.push; +Router.prototype.push = function push(location) { + return originalPush.call(this, location).catch((err) => err); +}; +// 注册全局过滤器 +Object.keys(filters).forEach((k) => Vue.filter(k, filters[k])); + +// 全局组件注册 +Vue.use(components); +// 图片裁剪组件注册 +Vue.use(VueCropper); +// 全局路由 +Vue.use(Router); +// 登陆插件 +Vue.use(LoginPlugin, { router }); +// 引入element-ui +Vue.use(ElementUI); +// 引入分片上传 +Vue.use(uploader); +//引入音频插件 +Vue.use(AudioPlayer); +//阻止启动生产模式的消息 +Vue.config.productionTip = false; + +const vue = new Vue({ + router, + store, // 注册store选项 把 store 对象提供给 “store” 选项,实现把 store 的实例注入所有的子组件 + render: (h) => h(App), //生成VNodes树<=>虚拟DOM +}).$mount("#app"); + +export default vue; diff --git a/src/permission.js b/src/permission.js new file mode 100755 index 0000000..6a2fbd7 --- /dev/null +++ b/src/permission.js @@ -0,0 +1,67 @@ +import router from "./router"; +import store from "./stroe"; +import local from "@/utils/localStroage.js"; +import { getQueryString } from "@/utils/index.js"; +/** + * @description 设置全局路由守卫,判断用户是否登陆 + * @param to 开始路由 + * @param form 目的路由 + * @param next 做拦截处理 + * @public + */ +router.beforeEach((to, form, next) => { + let userInfo = local.get("userInfo"); + // 获取当前用户权限 + let userRouter = local.get("role"); + // 判断用户是否登陆 + if (userInfo) { + // 在登陆状态下跳转到登录页面,则自动跳转到当前页 + if (to.path === "/login" || to.path === "/") { + next({ + path: "/welcome", + }); + // 移除所有的标签 + store.dispatch("removeAllTag"); + } else { + // 用户没有页面权限时,直接跳转到欢迎页 + if (!userRouter || userRouter.length === 0) { + next({ + path: "/welcome", + }); + return; + } + // 用户有页面权限,判断路由是否存在,不存在则实时刷新路由 + let hasRoles = + store.state.routerList && store.state.routerList.length > 0; + if (hasRoles) { + next(); + } else { + // 用户刷新后,vuex的数据被清空实时刷新数据,从locastorage中获取数据并刷新。 + store.dispatch("refreshRouter"); + // 重定向到该页面 + next({ + ...to, + replace: true, + }); + } + store.dispatch("setRouterActive", to.path); + } + const n = getQueryString('n'); + const p = getQueryString('p'); + if (n && p) { + const hostname = window.location.origin + window.location.pathname; + window.history.replaceState(null, null, hostname); + } + } else { + if (to.path !== "/login" && to.path !== "/") { + next({ + path: "/login", + query: { + redirect: to.fullPath, + }, + }); + } else { + next(); + } + } +}); diff --git a/src/plugins/LoginPlugin.js b/src/plugins/LoginPlugin.js new file mode 100644 index 0000000..2ea03ec --- /dev/null +++ b/src/plugins/LoginPlugin.js @@ -0,0 +1,145 @@ +import API from "@/api"; + +function getUserInfoRaw() { + return localStorage.getItem("userInfo"); +} + +/** 用 token 识别会话,避免 refresh 改写 userInfo JSON 后误清线路缓存 */ +function getSessionKey(userInfoRaw) { + if (!userInfoRaw) return ""; + try { + const info = JSON.parse(userInfoRaw); + return info && info.token ? String(info.token) : userInfoRaw; + } catch (e) { + return userInfoRaw; + } +} + +export const LoginPlugin = { + install(Vue, { router }) { + console.log("Login plugin:::", Vue.prototype, router); + + // 已请求失败(如 token 失效)后不再重复拉;重新登录后会重置 + let sourceInfoLoadFailed = false; + // 并发去重:同一时刻只允许一次 getSourceList + let sourceInfoPromise = null; + // 递增以作废进行中的请求结果,避免登出后旧请求回写 + let loadSeq = 0; + let lastSessionKey = ""; + + const showError = (error) => { + console.error("update or sync source info error:::", error); + Vue.prototype.$message.error("图片、视频资源将无法展示,推出重新登陆"); + }; + + const resetSourceInfoLoadState = () => { + loadSeq += 1; + sourceInfoLoadFailed = false; + sourceInfoPromise = null; + Vue.prototype.$sourceInfo = null; + }; + + const updateSourceInfo = async () => { + const userInfoRaw = getUserInfoRaw(); + if (!userInfoRaw) { + lastSessionKey = ""; + resetSourceInfoLoadState(); + return; + } + + const sessionKey = getSessionKey(userInfoRaw); + // 会话切换(重新登录 / 换账号)后允许再拉;同会话仅 token 刷新不清理已成功的线路 + if (lastSessionKey && lastSessionKey !== sessionKey) { + resetSourceInfoLoadState(); + } + lastSessionKey = sessionKey; + + if (Vue.prototype.$sourceInfo || sourceInfoLoadFailed) return; + if (sourceInfoPromise) return sourceInfoPromise; + + const seq = ++loadSeq; + sourceInfoPromise = (async () => { + try { + const r = await API.getSourceList(); + // 请求返回时会话已变(登出 / 重登),丢弃结果 + if (seq !== loadSeq || getSessionKey(getUserInfoRaw()) !== sessionKey) { + return; + } + if (r.code !== 200) { + sourceInfoLoadFailed = true; + throw new Error(r.tip || r.msg || "getSourceList failed"); + } + syncSourceInfo(r.data); + } catch (error) { + if (seq !== loadSeq || getSessionKey(getUserInfoRaw()) !== sessionKey) { + return; + } + sourceInfoLoadFailed = true; + showError(error); + } finally { + if (seq === loadSeq) { + sourceInfoPromise = null; + } + } + })(); + + return sourceInfoPromise; + }; + + const syncSourceInfo = (info) => { + info = info || []; + Vue.prototype.$sourceInfo = info; + sourceInfoLoadFailed = false; + try { + let _index = localStorage.getItem("overallSituationLine") || 0; + if (findUrls(info, "AdminImage")) { + Vue.prototype.$imgUrls = [ + ...findUrls(info, "IMAGE"), + ...findUrls(info, "AdminImage"), + ]; + } else { + Vue.prototype.$imgUrls = [...findUrls(info, "IMAGE")]; + } + Vue.prototype.$vidUrls = findUrls(info, "VID"); + Vue.prototype.$audUrls = findUrls(info, "AUDIO"); + Vue.prototype.$imgUrl = + Vue.prototype.$imgUrls[_index].url || Vue.prototype.$imgUrls[0].url; + Vue.prototype.$vidUrl = Vue.prototype.$vidUrls[0].url; + Vue.prototype.$audUrl = Vue.prototype.$audUrls[0].url; + } catch (error) { + sourceInfoLoadFailed = true; + showError(error); + } + }; + + const findUrls = (info, key) => { + return ( + info.find((kv) => kv.type === key) && + info.find((kv) => kv.type === key).domain + ); + }; + + Vue.prototype.$syncSourceInfo = syncSourceInfo; + Vue.prototype.$setOverallSituationLine = (index) => { + localStorage.setItem("overallSituationLine", index); + Vue.prototype.$imgUrl = + Vue.prototype.$imgUrls[index].url || Vue.prototype.$imgUrls[0].url; + Vue.prototype.$vidUrl = Vue.prototype.$vidUrls[0].url; + Vue.prototype.$audUrl = Vue.prototype.$audUrls[0].url; + location.reload(); + }; + + router.beforeEach(async (to, from, next) => { + if (to.path === "/" || to.path === "/login") { + // 回到登录页且本地已无登录态时,清理失败标记,便于重新登录后拉取 + if (!getUserInfoRaw()) { + lastSessionKey = ""; + resetSourceInfoLoadState(); + } + return next(); + } + await updateSourceInfo(); + return next(); + }); + }, +}; diff --git a/src/router/activity.js b/src/router/activity.js new file mode 100755 index 0000000..1a12f61 --- /dev/null +++ b/src/router/activity.js @@ -0,0 +1,184 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-13 17:37:19 + * @LastEditors: 王枫叶x + * @LastEditTime: 2020-10-21 14:27:58 + */ +import WebActivity from "../views/activityManagement/webActivity"; +import RedemptionCode from "../views/activityManagement/redemptionCode"; +import RedemptionLog from "../views/activityManagement/redemptionLog"; +// 活动-奖品列表 +import RedemptionPrize from "../views/activityManagement/redemptionPrize"; +import TenderActivity from "../views/activityManagement/tenderActivity"; +import BuyPage from "../views/activityManagement/buyPage"; +import PrizePoolList from "../views/activityManagement/prizepoolList"; +import ConfigurationList from "../views/activityManagement/configurationList"; +import DailyTaskList from "../views/activityManagement/dailyTaskList"; +import GrowingTaskList from "../views/activityManagement/growingTaskList"; +import OneTaskList from "../views/activityManagement/oneTaskList"; +import NewActivityList from "../views/activityManagement/newActivityList"; +// import ListOfPrizes from "../views/activityManagement/listOfPrizes"; +// import LotteryList from "../views/activityManagement/lotteryList"; +import GoldeneggLog from "../views/activityManagement/goldeneggLog"; +import Main from "../views/main"; + +const ActivityRouter = { + path: "/activity-list", + component: Main, + title: "活动管理", + icon: "el-icon-s-promotion", + meta: { + keepAlive: true, + }, + children: [ + { + path: "/web-activity", + component: WebActivity, + name: "webActivity", + title: "活动列表", + meta: { + title: "活动列表", + keepAlive: true, + }, + }, + { + path: "/newActivityList", + component: NewActivityList, + name: "newActivityList", + title: "新版活动列表", + meta: { + title: "新版活动列表", + keepAlive: true, + }, + }, + { + path: "/redemption-code", + component: RedemptionCode, + name: "redemptionCode", + title: "兑换码列表", + meta: { + title: "兑换码列表", + keepAlive: true, + }, + }, + { + path: "/redemption-log", + component: RedemptionLog, + name: "redemptionLog", + title: "兑换码兑换日志", + meta: { + title: "兑换码兑换日志", + keepAlive: true, + }, + }, + // 活动-奖品列表 + { + path: "/redemption-prize", + component: RedemptionPrize, + name: "redemptionPrize", + title: "奖品列表", + meta: { + title: "奖品列表", + keepAlive: true, + }, + }, + { + path: "/prize-pool-list", + component: PrizePoolList, + name: "prizePoolList", + title: "奖池列表", + meta: { + title: "奖池列表", + keepAlive: true, + }, + }, + // { + // path: '/list-prizes', + // component: ListOfPrizes, + // name: 'listOfPrizes', + // title: '任务福利列表', + // meta: { + // title: '任务福利列表', + // keepAlive: true + // } + // }, + { + path: "/configuration-list", + component: ConfigurationList, + name: "configurationList", + title: "签到任务", + meta: { + title: "签到任务", + keepAlive: true, + }, + }, + { + path: "/one-task-list", + component: OneTaskList, + name: "oneTaskList", + title: "一次性任务列表", + meta: { + title: "一次性任务列表", + keepAlive: true, + }, + }, + { + path: "/daily-task-list", + component: DailyTaskList, + name: "dailyTaskList", + title: "日常任务列表", + meta: { + title: "日常任务列表", + keepAlive: true, + }, + }, + { + path: "/growing-task-list", + component: GrowingTaskList, + name: "growingTaskList", + title: "成长任务列表", + meta: { + title: "成长任务列表", + keepAlive: true, + }, + }, + { + path: "/tender-activity", + component: TenderActivity, + name: "tenderActivity", + title: "嫩模获奖记录", + meta: { + title: "嫩模获奖记录", + keepAlive: true, + }, + }, + { + path: "/buy-page", + component: BuyPage, + name: "buyPage", + title: "嫩模购买列表", + meta: { + title: "嫩模购买列表", + keepAlive: true, + }, + }, + // { + // path: "/lottery-list", + // component: LotteryList, + // name: "lotteryList", + // title: "摇奖号列表", + // meta: { title: "摇奖号列表", keepAlive: true }, + // }, + { + path: "/goldeneggLog", + component: GoldeneggLog, + name: "goldeneggLog", + title: "活动记录", + meta: { + title: "活动记录", + keepAlive: true, + }, + }, + ], +}; +export default ActivityRouter; diff --git a/src/router/actress.js b/src/router/actress.js new file mode 100644 index 0000000..46f3299 --- /dev/null +++ b/src/router/actress.js @@ -0,0 +1,25 @@ +import ActressList from "../views/actressManagement/actressList"; +import Main from "../views/main"; + +const ActressRouter = { + path: "/actress", + component: Main, + title: "女优管理", + icon: "el-icon-s-promotion", + meta: { + keepAlive: true + }, + children: [{ + path: "/actressList", + component: ActressList, + name: "actressList", + title: "女优列表", + meta: { + title: "女优列表", + keepAlive: true + }, + }, + + ], +}; +export default ActressRouter; \ No newline at end of file diff --git a/src/router/administrators.js b/src/router/administrators.js new file mode 100755 index 0000000..b869a78 --- /dev/null +++ b/src/router/administrators.js @@ -0,0 +1,29 @@ +import AdminList from '../views/administrators/adminList'; +import AdminLog from '../views/administrators/adminLog'; + +import Main from '../views/main'; + +const Administrators = { + path: '/admin-list', + component: Main, + title: '系统管理员', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/admin-list', + component: AdminList, + name: 'adminList', + title: '管理员列表', + meta: { title: '管理员列表' ,keepAlive: true } + }, + { + path: '/admin-log', + component: AdminLog, + name: 'adminLog', + title: '管理员操作日志', + meta: { title: '管理员操作日志' ,keepAlive: true } + } + ] +}; +export default Administrators; diff --git a/src/router/advertising.js b/src/router/advertising.js new file mode 100755 index 0000000..a04f8de --- /dev/null +++ b/src/router/advertising.js @@ -0,0 +1,36 @@ +import AdList from '../views/advertisingManagement/adList' +import ClickLog from '../views/advertisingManagement/clickLog' +import AnnouncementManagement from '../views/advertisingManagement/announcementManagement' + +import Main from '../views/main' +const AdvertisingRouter = { + path: '/ad-List', + component: Main, + title: '广告管理', + icon: 'el-icon-s-fold', + meta: { keepAlive: true }, + children: [ + { + path: '/ad-List', + component: AdList, + name: 'adList', + title: '广告列表', + meta: { title: '广告列表' ,keepAlive: true } + }, + { + path: '/click-Log', + component: ClickLog, + name: 'clickLog', + title: '点击日志', + meta: { title: '点击日志' ,keepAlive: true } + }, + { + path: '/announcement-Management', + component: AnnouncementManagement, + name: 'announcementManagement', + title: '公告管理', + meta: { title: '公告管理' ,keepAlive: true } + } + ] +} +export default AdvertisingRouter diff --git a/src/router/agent.js b/src/router/agent.js new file mode 100755 index 0000000..66a5308 --- /dev/null +++ b/src/router/agent.js @@ -0,0 +1,53 @@ +import ProxyList from '../views/agentManagement/proxyList' +import ExtensionLog from '../views/agentManagement/extensionLog' +// import DomainManagement from '../views/agentManagement/domainManagement' +// import DistrictProvider from '../views/agentManagement/districtProvider' +import PromotionHierarchy from '../views/agentManagement/promotionHierarchy' +import Main from '../views/main' + +const VideoRouter = { + path: '/proxy-list', + component: Main, + title: '代理管理', + icon: 'el-icon-s-cooperation', + meta: { keepAlive: true }, + children: [ + { + path: '/proxy-list', + component: ProxyList, + name: 'proxyList', + title: '代理列表', + meta: { title: '代理列表' ,keepAlive:true} + }, + // 暂时和落地页配置重复,待删除 TODO + //{ + // path: '/domain-management', + // component: DomainManagement, + // name: 'domainManagement', + // title: '域名管理', + // meta: { title: '域名管理' ,keepAlive:true} + //}, + { + path: '/extension-log', + component: ExtensionLog, + name: 'extensionLog', + title: '用户推广日志', + meta: { title: '用户推广日志' ,keepAlive:true} + }, + // { + // path: '/district-provider', + // component: DistrictProvider, + // name: 'districtProvider', + // title: '商区代理管理', + // meta: { title: '商区代理管理' ,keepAlive:true} + // }, + { + path: '/promotion-hierarchy', + component: PromotionHierarchy, + name: 'promotionHierarchy', + title: '用户推广查询', + meta: { title: '用户推广查询' ,keepAlive:true} + } + ] +} +export default VideoRouter diff --git a/src/router/agentDistrictProvider.js b/src/router/agentDistrictProvider.js new file mode 100644 index 0000000..37e4207 --- /dev/null +++ b/src/router/agentDistrictProvider.js @@ -0,0 +1,59 @@ +import DistrictProvider from "../views/agentDistrictProvider/districtProvider"; +import DayTable from "../views/agentDistrictProvider/dayTable"; +import MonthTable from "../views/agentDistrictProvider/monthTable"; +import DomainList from "../views/agentDistrictProvider/domainList"; +import AdReview from "../views/agentDistrictProvider/adReview"; +import ManageAuthrity from "../views/agentDistrictProvider/manageAuthrity"; +import Main from "../views/main"; + +const AgentDistrictRouter = { + path: "/district-provider", + component: Main, + title: "商区管理", + icon: "el-icon-s-cooperation", + meta: { keepAlive: true }, + children: [ + { + path: "/month-table", + component: MonthTable, + name: "monthTable", + title: "每月报表", + meta: { title: "每月报表", keepAlive: true }, + }, + { + path: "/day-table", + component: DayTable, + name: "dayTable", + title: "每日报表", + meta: { title: "每日报表", keepAlive: true }, + }, + { + path: "/district-provider", + component: DistrictProvider, + name: "districtProvider", + title: "代理列表", + }, + { + path: "/domain-list", + component: DomainList, + name: "domainList", + title: " 域名绑定", + meta: { title: "域名绑定", keepAlive: true }, + }, + { + path: "/ad-review", + component: AdReview, + name: "adReview", + title: "广告审核", + meta: { title: "广告审核", keepAlive: true }, + }, + { + path: "/mg-review", + component: ManageAuthrity, + name: "manageAuthrity", + title: "代理权限", + meta: { title: "代理权限", keepAlive: true }, + }, + ], +}; +export default AgentDistrictRouter; diff --git a/src/router/ai.js b/src/router/ai.js new file mode 100644 index 0000000..569b3ae --- /dev/null +++ b/src/router/ai.js @@ -0,0 +1,91 @@ +import AiTradeList from "../views/aiManagement/aiTradeList"; +import AiChangeFaceStencil from "../views/aiManagement/aiChangeFaceStencil"; +import AiChangeFaceList from "../views/aiManagement/aiChangeFaceList"; +import AiChangeFaceImgList from "../views/aiManagement/aiChangeFaceImgList"; +import AiImageToVideoList from "../views/aiManagement/aiImageToVideoList"; +// import AiTemplate from "../views/aiManagement/AiTemplate"; +import AIDrawList from "../views/aiManagement/AIDrawList"; +import AiNovelList from "../views/aiManagement/aiNovelList"; +import AIPlazaList from "../views/aiManagement/aiPlazaList"; +import Aimatev2OrderLogs from "../views/aiManagement/aimatev2OrderLogs"; +import Main from "../views/main"; +const AiRouter = { + path: "/aiModule", + component: Main, + title: "AI管理", + icon: "el-icon-sort", + meta: { keepAlive: true }, + children: [ + // { + // path: "/ai-template", + // component: AiTemplate, + // name: "AiTemplate", + // title: "AI模版模块列表", + // meta: { title: "AI模版模块列表", keepAlive: true }, + // }, + { + path: "/ai-change-face-stencil", + component: AiChangeFaceStencil, + name: "aiChangeFaceStencil", + title: "AI模版列表", + meta: { title: "AI模版列表", keepAlive: true }, + }, + { + path: "/ai-trade-list", + component: AiTradeList, + name: "aiTradeList", + title: "AI脱衣交易列表", + meta: { title: "AI脱衣交易列表", keepAlive: true }, + }, + { + path: "/ai-change-face-list", + component: AiChangeFaceList, + name: "aiChangeFaceList", + title: "AI换脸交易列表", + meta: { title: "AI换脸交易列表", keepAlive: true }, + }, + { + path: "/ai-change-face-img-list", + component: AiChangeFaceImgList, + name: "aiChangeFaceImgList", + title: "AI图片换脸交易列表", + meta: { title: "AI图片换脸交易列表", keepAlive: true }, + }, + { + path: "/ai-image-to-video-list", + component: AiImageToVideoList, + name: "AiImageToVideoList", + title: "AI图生视频列表", + meta: { title: "AI图生视频列表", keepAlive: true }, + }, + { + path: "/ai-draw-list", + component: AIDrawList, + name: "AiDrawList", + title: "AI绘图列表", + meta: { title: "AI绘图列表", keepAlive: true }, + }, + { + path: "/ai-novel-list", + component: AiNovelList, + name: "AiNovelList", + title: "AI小说列表", + meta: { title: "AI小说列表", keepAlive: true }, + }, + { + path: "/ai-plaza-list", + component: AIPlazaList, + name: "AiPlazaList", + title: "AI广场列表", + meta: { title: "AI广场列表", keepAlive: true }, + }, + { + path: "/aimatev2-order-logs", + component: Aimatev2OrderLogs, + name: "Aimatev2OrderLogs", + title: "AI女友消费流水", + meta: { title: "AI女友消费流水", keepAlive: true }, + }, + ], +}; +export default AiRouter; diff --git a/src/router/animation.js b/src/router/animation.js new file mode 100644 index 0000000..ce98842 --- /dev/null +++ b/src/router/animation.js @@ -0,0 +1,106 @@ +import AnimeList from "../views/animationManage/animeList"; +import LatitudeList from "../views/animationManage/latitudeList"; +import AnimeTagsList from "../views/animationManage/animeTagsList"; +// import AnimeContentList from "../views/animationManage/animeContentList"; +import CartoonBatchUpdList from "../views/animationManage/bulkUpload"; +import SubsetBatchUpdList from "../views/animationManage/subsetBatchUpdList"; +import AcgVidResCfg from "../views/animationManage/acgVidResCfg"; +// import RecommendList from "../views/animationManage/recommendList"; +// import RecommendSignature from "../views/animationManage/recommendSignature"; +// import TaskList from "../views/animationManage/taskList"; +import Main from "../views/main"; + +const animeRouter = { + path: "/animeList", + component: Main, + title: "媒体管理", + icon: "el-icon-video-camera-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/animeList", + component: AnimeList, + name: "animeList", + title: "媒体列表", + meta: { title: "媒体列表", keepAlive: true }, + }, + { + path: "/dramaList", + component: AnimeList, + name: "dramaList", + title: "短剧列表", + meta: { title: "短剧列表", keepAlive: false }, + }, + // { + // path: "/recommendList", + // component: RecommendList, + // name: "recommendList", + // title: "推荐列表", + // meta: { title: "推荐列表", keepAlive: true }, + // }, + // { + // path: "/taskList", + // component: TaskList, + // name: "taskList", + // title: "任务列表", + // meta: { title: "任务列表", keepAlive: true }, + // }, + { + path: "/cartoon-batchUpd-list", + component: CartoonBatchUpdList, + name: "cartoonBatchUpdList", + title: "批量上传", + meta: { + title: "批量上传", + keepAlive: true, + }, + }, + { + path: "/subset-batchUpd-list", + component: SubsetBatchUpdList, + name: "subsetBatchUpdList", + title: "子媒体批量上传", + meta: { + title: "子媒体批量上传", + keepAlive: true, + }, + }, + // { + // path: "/animeContentList", + // component: AnimeContentList, + // name: "animeContentList", + // title: "动漫内容列表", + // meta: { title: "动漫内容列表", keepAlive: true }, + // }, + { + path: "/animeTagsList", + component: AnimeTagsList, + name: "animeTagsList", + title: "标签列表", + meta: { title: "标签列表", keepAlive: true }, + }, + // { + // path: "/recommend-signature", + // component: RecommendSignature, + // name: "recommendSignature", + // title: "推荐标签", + // meta: { title: "推荐标签", keepAlive: true }, + // }, + { + path: "/latitudeList", + component: LatitudeList, + name: "latitudeList", + title: "纬度列表", + meta: { title: "纬度列表", keepAlive: true }, + }, + { + path: "/acg-vid-res-cfg", + component: AcgVidResCfg, + name: "acgVidResCfg", + title: "Acg媒体资源库", + meta: { title: "Acg媒体资源库", keepAlive: true }, + }, + ], +}; + +export default animeRouter; diff --git a/src/router/avcomment.js b/src/router/avcomment.js new file mode 100755 index 0000000..ccf8579 --- /dev/null +++ b/src/router/avcomment.js @@ -0,0 +1,33 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-09-28 16:52:13 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-09-30 18:00:06 + */ +import AvCommentConfig from "../views/avcomment/avCommentConfig"; +import AvCommentList from "../views/avcomment/list"; +import Main from "../views/main"; +const ShuiguoRouter = { + path: "/avcomment-list", + component: Main, + title: "AV图文管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/avcomment-list", + component: AvCommentList, + name: "avCommentList", + title: "AV图文列表", + meta: { title: "AV图文列表", keepAlive: false }, + }, + { + path: "/avcomment-config", + component: AvCommentConfig, + name: "avCommentConfig", + title: "AV图文配置", + meta: { title: "AV图文配置", keepAlive: false }, + }, + ], +}; +export default ShuiguoRouter; diff --git a/src/router/baseRouter.js b/src/router/baseRouter.js new file mode 100755 index 0000000..bbfa290 --- /dev/null +++ b/src/router/baseRouter.js @@ -0,0 +1,40 @@ +import Login from '../views/login' +import Main from '../views/main' + +// 不需要权限控制的路由 +const baseRouter = [ + { + path: '/', + // name: 'login', + component: Login + }, + { + path: '/login', + name: 'login', + component: Login + }, + { + path: '/main', + component: Main, + redirect: '', + title: '', + icon: '', + children: [ + { + path: '/welcome', + component: () => import('@/views/welcome/index'), + name: 'welcome', + title: '欢迎页', + icon: '' + }, + { + path: '/role', + component: () => import('../views/role/index'), + name: 'role', + title: '权限', + icon: '' + } + ] + } +] +export default baseRouter diff --git a/src/router/business.js b/src/router/business.js new file mode 100644 index 0000000..bce2bcc --- /dev/null +++ b/src/router/business.js @@ -0,0 +1,38 @@ + +import Main from '../views/main'; +import BusinessmanList from '../views/businessmanManagement/businessmanList' +import BalanceList from '../views/businessmanManagement/balanceList' +import RechargeList from '../views/businessmanManagement/rechargeList' +const BusinessRouter = { + + path: '/Business', + component: Main, + title: '商人管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/businessmanList', + component:BusinessmanList, + name: 'BusinessmanList', + title: '商人列表', + meta: { title: '商人列表' ,keepAlive:true} + }, + { + path: '/balanceList', + component:BalanceList, + name: 'BalanceList', + title: '商人上分列表', + meta: { title: '商人上分列表' ,keepAlive:true} + }, + { + path: '/rechargeList', + component:RechargeList, + name: 'RechargeList', + title: '商人代充订单', + meta: { title: '商人代充订单' ,keepAlive:true} + } + ] + +} +export default BusinessRouter \ No newline at end of file diff --git a/src/router/channel.js b/src/router/channel.js new file mode 100755 index 0000000..2b75fad --- /dev/null +++ b/src/router/channel.js @@ -0,0 +1,68 @@ +import ChannelConfiguration from '../views/channelManagement/channelconfiguration' +import ChannelNumber from '../views/channelManagement/channelNumber' +import ChannelProvider from '../views/channelManagement/channelProvider' +import ChannelLog from '../views/channelManagement/channelLog' +import ChannelManagement from '../views/channelManagement/channelManagement' +import ChannelCost from '../views/channelManagement/channelCost' +import ChannelQuery from '../views/channelManagement/channelQuery' +import Main from '../views/main' + +const ChannelRouter = { + path: '/channel-query', + component: Main, + title: '渠道管理', + icon: 'el-icon-s-marketing', + meta: { keepAlive: true }, + children: [ + { + path: '/channel-query', + component: ChannelQuery, + name: 'channelQuery', + title: '渠道查询', + meta: { title: '渠道查询' ,keepAlive:true} + }, + { + path: '/channel-log', + component: ChannelLog, + name: 'channelLog', + title: '渠道日志', + meta: { title: '渠道日志' ,keepAlive:true} + }, + { + path: '/channel-number', + component: ChannelNumber, + name: 'channelNumber', + title: '渠道号管理', + meta: { title: '渠道号管理' ,keepAlive:true} + }, + { + path: '/channel-provider', + component: ChannelProvider, + name: 'channelProvider', + title: '渠道商管理', + meta: { title: '渠道商管理' ,keepAlive:true} + }, + { + path: '/channel-management', + component: ChannelManagement, + name: 'channelManagement', + title: '渠道成本管理', + meta: { title: '渠道成本管理' ,keepAlive:true} + }, + { + path: '/channel-configuration', + component: ChannelConfiguration, + name: 'channelconfiguration', + title: '渠道页面配置', + meta: { title: '渠道页面配置' ,keepAlive:true} + }, + { + path: '/channel-cost', + component: ChannelCost, + name: 'channelCost', + title: '渠道成本修改记录', + meta: { title: '渠道成本修改记录' ,keepAlive:true} + } + ] +} +export default ChannelRouter diff --git a/src/router/channelBack.js b/src/router/channelBack.js new file mode 100755 index 0000000..f2161c6 --- /dev/null +++ b/src/router/channelBack.js @@ -0,0 +1,45 @@ +import ChannelDetails from '../views/channelBackground/channelDetails' +import ChannelBook from '../views/channelBackground/channelBook' +import AutomaticBilling from '../views/channelBackground/automaticBilling' +import BankConfiguration from '../views/channelBackground/bankConfiguration' + +import Main from '../views/main' + +const ChannelBRouter = { + path: '/channel-details', + component: Main, + title: '渠道后台', + icon: 'el-icon-set-up', + meta: { keepAlive: true }, + children: [ + { + path: '/channel-details', + component: ChannelDetails, + name: 'channelDetails', + title: '渠道明细', + meta: { title: '渠道明细' ,keepAlive:true} + }, + { + path: '/channel-book', + component: ChannelBook, + name: 'channelBook', + title: '渠道账簿', + meta: { title: '渠道账簿' ,keepAlive:true} + }, + { + path: '/automatic-billing', + component: AutomaticBilling, + name: 'automaticBilling', + title: '自助结算审核', + meta: { title: '自助结算审核' ,keepAlive:true} + }, + { + path: '/bank-configuration', + component: BankConfiguration, + name: 'BankConfiguration', + title: '银行卡信息', + meta: { title: '银行卡信息' ,keepAlive:true} + } + ] +} +export default ChannelBRouter diff --git a/src/router/cinema.js b/src/router/cinema.js new file mode 100644 index 0000000..8502088 --- /dev/null +++ b/src/router/cinema.js @@ -0,0 +1,85 @@ +import TodayRecommend from '../views/cinemaManagement/todayRecommend' +import MoveList from '../views/cinemaManagement/movieList' +import ActressList from '../views/cinemaManagement/actressList' +import ChannelsManagement from '../views/cinemaManagement/channelsManagement' +import WatchHistory from '../views/cinemaManagement/watchHistory' +import FavoriteHistory from '../views/cinemaManagement/favoriteHistory' +import RecommendedList from '../views/cinemaManagement/recommendedList' +import ActressCollection from '../views/cinemaManagement/actressCollection' +import ActressRating from '../views/cinemaManagement/actressRating' + +import Main from '../views/main' + +const CinemaRouter = { + path: '/today-recommend', + component: Main, + title: '影院管理', + icon: 'el-icon-video-camera', + meta: { keepAlive: true }, + children: [ + { + path: '/today-recommend', + component: TodayRecommend, + name: 'todayRecommend', + title: '今日推荐', + meta: { title: '今日推荐' ,keepAlive:true} + }, + { + path: '/move-list', + component: MoveList, + name: 'moveList', + title: '影片列表', + meta: { title: '影片列表' ,keepAlive:true} + }, + { + path: '/actress-list', + component: ActressList, + name: 'cinemaActressList', + title: '女优列表', + meta: { title: '女优列表' ,keepAlive:true} + }, + { + path: '/channels-management', + component: ChannelsManagement, + name: 'channelsmanagement', + title: '频道管理', + meta: { title: '频道管理' ,keepAlive:true} + }, + { + path: '/watch-history', + component: WatchHistory, + name: 'watchHistory', + title: '影片观看记录', + meta: { title: '影片观看记录' ,keepAlive:true} + }, + { + path: '/favorite-history', + component: FavoriteHistory, + name: 'favoriteHistory', + title: '影片收藏记录', + meta: { title: '影片收藏记录' ,keepAlive:true} + }, + { + path: '/recommended-list', + component: RecommendedList, + name: 'recommendedList', + title: '影片推荐列表', + meta: { title: '影片推荐列表' ,keepAlive:true} + }, + { + path: '/actress-collection', + component: ActressCollection, + name: 'actressCollection', + title: '女优收藏记录', + meta: { title: '女优收藏记录' ,keepAlive:true} + }, + { + path: '/actress-rating', + component: ActressRating, + name: 'actressRating', + title: '女优评分记录', + meta: { title: '女优评分记录' ,keepAlive:true} + }, + ] +} +export default CinemaRouter \ No newline at end of file diff --git a/src/router/contentReview.js b/src/router/contentReview.js new file mode 100644 index 0000000..a151ac2 --- /dev/null +++ b/src/router/contentReview.js @@ -0,0 +1,44 @@ +import Main from "../views/main"; + +const ContentReviewRouter = { + path: "/content-review", + component: Main, + title: "内容审查", + icon: "el-icon-view", + meta: { keepAlive: true }, + children: [ + { + path: "/content-review/sensitive-word", + component: () => import("@/views/contentReview/sensitiveWord/index.vue"), + name: "contentReviewSensitiveWord", + title: "敏感词管理", + meta: { + title: "敏感词管理", + keepAlive: true, + }, + }, + { + path: "/content-review/review-task", + component: () => import("@/views/contentReview/reviewTask/index.vue"), + name: "contentReviewReviewTask", + title: "检测任务", + meta: { + title: "检测任务", + keepAlive: true, + }, + }, + { + path: "/content-review/review-task/detail/:taskId", + component: () => import("@/views/contentReview/reviewTask/detail.vue"), + name: "contentReviewTaskDetail", + title: "任务详情", + meta: { + title: "任务详情", + keepAlive: false, + hideInMenu: true, + }, + }, + ], +}; + +export default ContentReviewRouter; diff --git a/src/router/discountAreaManagement.js b/src/router/discountAreaManagement.js new file mode 100644 index 0000000..3b49352 --- /dev/null +++ b/src/router/discountAreaManagement.js @@ -0,0 +1,27 @@ +import DiscountAreaList from "../views/discountAreaManagement/discountAreaList"; +import DiscountAreaVideoList from "../views/discountAreaManagement/discountAreaVideoList"; +import Main from "../views/main"; +const discountAreaManagementRouter = { + path: "/discount-area-list", + component: Main, + title: "折扣专区管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/discount-area-list", + component: DiscountAreaList, + name: "discountAreaList", + title: "折扣专区列表", + meta: { title: "折扣专区列表", keepAlive: true }, + }, + { + path: "/discount-area-video-list", + component: DiscountAreaVideoList, + name: "discountAreaVideoList", + title: "折扣专区视频列表", + meta: { title: "折扣专区视频列表", keepAlive: true }, + }, + ], +}; +export default discountAreaManagementRouter; diff --git a/src/router/fiction.js b/src/router/fiction.js new file mode 100644 index 0000000..bfc15a1 --- /dev/null +++ b/src/router/fiction.js @@ -0,0 +1,52 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-12-17 20:50:49 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-26 14:41:16 + */ + +import Main from '../views/main'; +import audiobook from '../views/fiction/audiobook' +import novel from '../views/fiction/novel' +import report from '../views/fiction/report' +import audiobookCfg from '../views/fiction/audiobookCfg' +const fictionRouter = { + + path: '/fiction', + component: Main, + title: '小说管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/novel', + component:novel, + name: 'novel', + title: '小说列表', + meta: { title: '小说列表' ,keepAlive:true} + }, + { + path: '/audiobook', + component:audiobook, + name: 'audiobook', + title: '有声小说', + meta: { title: '有声小说' ,keepAlive:true} + }, + { + path: '/report', + component:report, + name: 'report', + title: '举报列表', + meta: { title: '举报列表' ,keepAlive:true} + }, + { + path: '/audiobookCfg', + component:audiobookCfg, + name: 'audiobookCfg', + title: '折扣率配置', + meta: { title: '折扣率配置' ,keepAlive:true} + } + ] + +} +export default fictionRouter diff --git a/src/router/gathering.js b/src/router/gathering.js new file mode 100644 index 0000000..9bcd12f --- /dev/null +++ b/src/router/gathering.js @@ -0,0 +1,30 @@ + +import Main from '../views/main'; +import GatheringBalanceList from '../views/gatheringManagement/gatheringBalanceList' +import GatheringBusinessmen from '../views/gatheringManagement/gatheringBusinessmen' +const GatheringRouter = { + + path: '/Gathering', + component: Main, + title: '聚商管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/gatheringBusinessmen', + component:GatheringBusinessmen, + name: 'gatheringBusinessmen', + title: '聚商列表', + meta: { title: '聚商列表' ,keepAlive:true} + }, + { + path: '/gatheringBalanceList', + component:GatheringBalanceList, + name: 'gatheringBalanceList', + title: '聚商上分列表', + meta: { title: '聚商上分列表' ,keepAlive:true} + } + ] + +} +export default GatheringRouter diff --git a/src/router/groupChatManagement.js b/src/router/groupChatManagement.js new file mode 100644 index 0000000..6c0ebc9 --- /dev/null +++ b/src/router/groupChatManagement.js @@ -0,0 +1,36 @@ +import GroupList from "../views/groupChatManagement/groupList"; +import ImgroupmemberList from "../views/groupChatManagement/imgroupmemberList"; +import ImmessageList from "../views/groupChatManagement/immessageList"; +import Main from "../views/main"; + +const GroupChatManagementRouter = { + path: "/groupChatManagement", + component: Main, + title: "群聊管理", + icon: "el-icon-s-cooperation", + meta: { keepAlive: true }, + children: [ + { + path: "/groupList", + component: GroupList, + name: "groupList", + title: "群组列表", + meta: { title: "群组列表", keepAlive: true }, + }, + { + path: "/imgroupmemberList", + component: ImgroupmemberList, + name: "imgroupmemberList", + title: "群成员列表", + meta: { title: "群成员列表", keepAlive: true }, + }, + { + path: "/immessageList", + component: ImmessageList, + name: "immessageList", + title: "群消息列表", + meta: { title: "群消息列表", keepAlive: true }, + }, + ], +}; +export default GroupChatManagementRouter; diff --git a/src/router/hotSpot.js b/src/router/hotSpot.js new file mode 100644 index 0000000..9dc0bd5 --- /dev/null +++ b/src/router/hotSpot.js @@ -0,0 +1,30 @@ +import FindWonderful from '../views/hotManagement/findWonderful' +import RankPage from '../views/hotManagement/rankPage' + +import Main from '../views/main' + +const hotRouter = { + path: '/find-wonderful', + component: Main, + title: '热点管理', + icon: 'el-icon-s-flag', + meta: { keepAlive: true }, + children: [ + { + path: '/rank-page', + component: RankPage, + name: 'rankPage', + title: '排行页面', + meta: { title: '排行页面' ,keepAlive:true} + }, + { + path: '/find-wonderful', + component: FindWonderful, + name: 'findWonderful', + title: '发现精彩', + meta: { title: '发现精彩' ,keepAlive:true} + } + ] +} + + export default hotRouter \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js new file mode 100755 index 0000000..0e6d17b --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,15 @@ +import Vue from "vue"; +import Router from "vue-router"; + +// 引入公共路由 +import baseRouter from "./baseRouter"; + +Vue.use(Router); + +// 实例化vue-router +const router = new Router({ + mode: "hash", + base: process.env.BASE_URL, + routes: baseRouter, +}); +export default router; diff --git a/src/router/land.js b/src/router/land.js new file mode 100644 index 0000000..9968f5e --- /dev/null +++ b/src/router/land.js @@ -0,0 +1,29 @@ +import landCfg from "../views/landManagement/landCfg"; +import landPage from "../views/landManagement/landPage"; + +import Main from "../views/main"; + +const LandRouter = { + path: "/land-button", + component: Main, + title: "落地页管理", + icon: "el-icon-platform-eleme", + meta: { keepAlive: true }, + children: [ + { + path: "/land-page", + component: landPage, + name: "landPage", + title: "域名配置", + meta: { title: "域名配置", keepAlive: true }, + }, + { + path: "/land-cfg", + component: landCfg, + name: "landCfg", + title: "落地页配置", + meta: { title: "落地页配置", keepAlive: true }, + }, + ], +}; +export default LandRouter; diff --git a/src/router/loufeng.js b/src/router/loufeng.js new file mode 100644 index 0000000..0a0ab14 --- /dev/null +++ b/src/router/loufeng.js @@ -0,0 +1,50 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-21 14:16:37 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-10-29 20:58:33 + */ +import LouFengList from "../views/loufengManagement/louFengList"; +import LoufCfg from "../views/loufengManagement/loufCfg"; +import Feedback from "../views/loufengManagement/feedback"; +import loufadCfg from "../views/loufengManagement/loufadCfg"; +import Main from "../views/main"; + +const loufRouter={ + path: "/loufeng-list", + component: Main, + title: "楼凤管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/loufeng-list", + component: LouFengList, + name: "LouFengList", + title: "楼凤列表", + meta: { title: "楼凤列表", keepAlive: true }, + }, + { + path: "/louf-cfg", + component: LoufCfg, + name: "LoufCfg", + title: "城市和折扣配置", + meta: { title: "城市和折扣配置", keepAlive: true }, + } , + { + path: "/loufad-cfg", + component: loufadCfg, + name: "loufadCfg", + title: "广告配置", + meta: { title: "广告配置", keepAlive: true }, + } , + { + path: "/feedback", + component: Feedback, + name: "feedback", + title: "举报信息列表", + meta: { title: "举报信息列表", keepAlive: true }, + } + ] +} +export default loufRouter; \ No newline at end of file diff --git a/src/router/lsjMediaLibRouter.js b/src/router/lsjMediaLibRouter.js new file mode 100644 index 0000000..506771a --- /dev/null +++ b/src/router/lsjMediaLibRouter.js @@ -0,0 +1,48 @@ + +import VideoList from "../views/lsjMediaLibrary/videoList"; +import ComicsList from "../views/lsjMediaLibrary/comicsList"; +import PostList from "../views/lsjMediaLibrary/postList"; +import NovelList from "../views/lsjMediaLibrary/novelList"; +import Main from "../views/main"; + +const lsjMediaLibRouter = { + path: '/lsjMediaLibrary', + component: Main, + redirect: '/lsjMediaLibraryVideoList', + name: 'LsjMediaLibrary', + title: '老司机媒资库管理', + icon: 'el-icon-film', + children: [ + { + path: '/lsjMediaLibraryVideoList', + name: 'LsjMediaLibraryVideoList', + title: '影片列表', + component: VideoList, + meta: { title: "老司机影片列表", keepAlive: true }, + }, + { + path: '/lsjMediaLibraryPostList', + name: 'LsjMediaLibraryPostList', + title: '帖子列表', + component: PostList, + meta: { title: "老司机帖子列表", keepAlive: true }, + + }, + { + path: '/lsjMediaLibraryComicsList', + name: 'LsjMediaLibraryComicsList', + title: '漫画列表', + component: ComicsList, + meta: { title: "老司机漫画列表", keepAlive: true }, + + }, + { + path: '/lsjMediaLibraryNovelList', + name: 'LsjMediaLibraryNovelList', + title: '小说列表', + component: NovelList, + meta: { title: "老司机小说列表", keepAlive: true }, + } + ] +} +export default lsjMediaLibRouter; \ No newline at end of file diff --git a/src/router/mainChild.js b/src/router/mainChild.js new file mode 100755 index 0000000..4e2d2da --- /dev/null +++ b/src/router/mainChild.js @@ -0,0 +1,76 @@ +// // 首页 +// import Home from '../views/mainChild/home' +// // 系统管理员 +// import Administrators from '../views/mainChild/administrators' +// // 用户路由 +// import UserRouter from './user' +// // 视频路由 +// import VideoRouter from './video' +// // 统计路由 +// import StatisticsRouter from './statistics' +// // 渠道管理 +// // import SystemRouter from './system' +// // 系统管理 +// import productRouter from './product' +// // 活动管理 +// import ActivityRouter from './activity' +// // 代理管理 +// import AgentRouter from './agent' +// // 广告管理 +// import AdvertisingRouter from './advertising' +// // 交易管理 +// import TransactionRouter from './transaction' +// // 渠道代理后台 +// // import AgentBRouter from './channelBack' +// // 渠道管理 +// import ChannelMRouter from './channel' +// // 落地页管理 +// import LandRouter from './land' +// // 热点管理 +// import hotRouter from './hotSpot' +// // 影院管理 +// import CinemaRouter from './cinema' +// import Welcome from '../views/welcome' + +// let MainChildrenRouter = [ +// { +// path: '/home', +// name: 'home', +// component: Home, +// meta: { +// title: '首页' +// } +// }, +// { +// path: '/administrators', +// name: 'administrators', +// component: Administrators, +// meta: { +// title: '系统管理员' +// } +// }, +// { +// path: '/welcome', +// name: 'welcome', +// component: Welcome +// } +// ] +// MainChildrenRouter = MainChildrenRouter.concat( +// UserRouter, +// VideoRouter, +// StatisticsRouter, +// // SystemRouter, +// ActivityRouter, +// AgentRouter, +// TransactionRouter, +// AgentRouter, +// // AgentBRouter, +// AdvertisingRouter, +// productRouter, +// ChannelMRouter, +// LandRouter, +// hotRouter, +// CinemaRouter +// ) + +// export default MainChildrenRouter diff --git a/src/router/mediaLibRouter.js b/src/router/mediaLibRouter.js new file mode 100644 index 0000000..dcebe6f --- /dev/null +++ b/src/router/mediaLibRouter.js @@ -0,0 +1,22 @@ + +import VideoList from "../views/mediaLibrary/videoList"; +import Main from "../views/main"; + +const mediaLibRouter = { + path: '/mediaLibrary', + component: Main, + redirect: '/mediaLibraryVideoList', + name: 'MediaLibrary', + title: '二部媒资库管理', + icon: 'el-icon-film', + children: [ + { + path: '/mediaLibraryVideoList', + name: 'MediaLibraryVideoList', + title: '影片列表', + component: VideoList, + meta: { title: "二部媒资库管理", keepAlive: true }, + }, + ] +} +export default mediaLibRouter; \ No newline at end of file diff --git a/src/router/moduleConfig.js b/src/router/moduleConfig.js new file mode 100644 index 0000000..e32d020 --- /dev/null +++ b/src/router/moduleConfig.js @@ -0,0 +1,52 @@ +import moduleList from '../views/moduleConfManagement/moduleList' +import sectionList from '../views/moduleConfManagement/sectionList' +import moduleVideoList from '../views/moduleConfManagement/videoList' +import HappinessPlazaTopList from '../views/moduleConfManagement/happinessPlazaTopList' +import kingKongDistrict from '../views/moduleConfManagement/kingKongDistrict' +import Main from "../views/main"; + +const moduleConfRouter={ + path: "/module-conf-management", + component: Main, + title: "模块配置管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/module-list", + component: moduleList, + name: "moduleList", + title: "模块列表", + meta: { title: "模块列表", keepAlive: true }, + }, + { + path: "/section-list", + component: sectionList, + name: "sectionList", + title: "专题列表", + meta: { title: "专题列表", keepAlive: true }, + }, + { + path: "/module-video-list", + component: moduleVideoList, + name: "moduleVideoList", + title: "视频列表", + meta: { title: "视频列表", keepAlive: true }, + }, + { + path: '/happinessPlaza', + component: HappinessPlazaTopList, + name: 'happinessPlazaTopList', + title: '幸福广场置顶列表', + meta: { title: '幸福广场置顶列表' ,keepAlive:true} + }, + { + path: '/kingKongDistrict', + component: kingKongDistrict, + name: 'kingKongDistrict', + title: '金刚区', + meta: { title: '金刚区列表' ,keepAlive:true} + }, + ] +} +export default moduleConfRouter; \ No newline at end of file diff --git a/src/router/nakedChat.js b/src/router/nakedChat.js new file mode 100644 index 0000000..5177334 --- /dev/null +++ b/src/router/nakedChat.js @@ -0,0 +1,36 @@ +import nakedChatList from "../views/nakedChatManage/nakedChatList"; +import nakedChatBuyList from "../views/nakedChatManage/nakedChatBuyList"; +import NakedChatFeedback from "../views/nakedChatManage/nakedChatFeedback"; +import Main from "../views/main"; + +const nakedChatRouter={ + path: "/nakedChat-list", + component: Main, + title: "裸聊专区管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/nakedChat-list", + component: nakedChatList, + name: "nakedChatList", + title: "裸聊专区列表", + meta: { title: "裸聊专区列表", keepAlive: true }, + }, + { + path: "/nakedChatBuy-list", + component: nakedChatBuyList, + name: "nakedChatBuyList", + title: "裸聊购买记录", + meta: { title: "裸聊购买记录", keepAlive: true }, + }, + { + path: "/nakedChat-feedback", + component: NakedChatFeedback, + name: "nakedChatFeedback", + title: "举报信息列表", + meta: { title: "举报信息列表", keepAlive: true }, + } + ] +} +export default nakedChatRouter; \ No newline at end of file diff --git a/src/router/officialWebsite.js b/src/router/officialWebsite.js new file mode 100644 index 0000000..508826b --- /dev/null +++ b/src/router/officialWebsite.js @@ -0,0 +1,101 @@ +import Main from '../views/main'; +import OfficialWebsiteBasic from '../views/officialWebsite/basicData'; +import OfficialWebsiteHero from '../views/officialWebsite/heroList'; +import OfficialWebsiteAlbum from '../views/officialWebsite/albumList'; +import OfficialWebsiteVideo from '../views/officialWebsite/videoList'; +import OfficialWebsitePhotograph from '../views/officialWebsite/photographList'; +import OfficialWebsiteTag from '../views/officialWebsite/tagList'; +import OfficialWebsitePartner from '../views/officialWebsite/partnerList'; +import OfficialWebsiteRecruitForm from '../views/officialWebsite/recruitFormList'; +import OfficialWebsiteJob from '../views/officialWebsite/jobList'; +import OfficialWebsiteNews from '../views/officialWebsite/newsList'; +import OfficialWebsiteBusiness from '../views/officialWebsite/businessList'; + +const OfficialWebsiteRouter = { + path: '/official-website-basic', + component: Main, + title: '品牌站', + icon: 'el-icon-s-flag', + meta: { keepAlive: true }, + children: [ + { + path: '/official-website-basic', + component: OfficialWebsiteBasic, + name: 'officialWebsiteBasic', + title: '基础数据', + meta: { title: '基础数据', keepAlive: true }, + }, + { + path: '/official-website-hero', + component: OfficialWebsiteHero, + name: 'officialWebsiteHero', + title: '创作者管理', + meta: { title: '创作者管理', keepAlive: true }, + }, + { + path: '/official-website-album', + component: OfficialWebsiteAlbum, + name: 'officialWebsiteAlbum', + title: '专辑管理', + meta: { title: '专辑管理', keepAlive: true }, + }, + { + path: '/official-website-video', + component: OfficialWebsiteVideo, + name: 'officialWebsiteVideo', + title: '视频管理', + meta: { title: '视频管理', keepAlive: true }, + }, + { + path: '/official-website-photograph', + component: OfficialWebsitePhotograph, + name: 'officialWebsitePhotograph', + title: '写真管理', + meta: { title: '写真管理', keepAlive: true }, + }, + { + path: '/official-website-tag', + component: OfficialWebsiteTag, + name: 'officialWebsiteTag', + title: '标签管理', + meta: { title: '标签管理', keepAlive: true }, + }, + { + path: '/official-website-partner', + component: OfficialWebsitePartner, + name: 'officialWebsitePartner', + title: '合作伙伴', + meta: { title: '合作伙伴', keepAlive: true }, + }, + { + path: '/official-website-recruit-form', + component: OfficialWebsiteRecruitForm, + name: 'officialWebsiteRecruitForm', + title: '招聘表单', + meta: { title: '招聘表单', keepAlive: true }, + }, + { + path: '/official-website-job', + component: OfficialWebsiteJob, + name: 'officialWebsiteJob', + title: '职位管理', + meta: { title: '职位管理', keepAlive: true }, + }, + { + path: '/official-website-news', + component: OfficialWebsiteNews, + name: 'officialWebsiteNews', + title: '新闻管理', + meta: { title: '新闻管理', keepAlive: true }, + }, + { + path: '/official-website-business', + component: OfficialWebsiteBusiness, + name: 'officialWebsiteBusiness', + title: '业务管理', + meta: { title: '业务管理', keepAlive: true }, + }, + ], +}; + +export default OfficialWebsiteRouter; diff --git a/src/router/permissionRouter.js b/src/router/permissionRouter.js new file mode 100755 index 0000000..fa50099 --- /dev/null +++ b/src/router/permissionRouter.js @@ -0,0 +1,143 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-31 17:53:35 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 21:24:56 + */ +import Main from "../views/main"; +// 活动管理 +import ActivityRouter from "./activity"; +import AiRouter from "./ai"; +// 管理员路由 +import Administrators from "./administrators"; +// 广告管理 +import AdvertisingRouter from "./advertising"; +// 代理管理 +import AgentRouter from "./agent"; +// 渠道管理 +import VideoRouter from "./video"; +// 影院管理 +import CinemaRouter from "./cinema"; +// 热点管理 +import hotRouter from "./hotSpot"; +// 裸聊专区 +import NakedChatRouter from "./nakedChat"; +// 落地页管理 +import LandRouter from "./land"; +// 产品管理 +import productRouter from "./product"; +// 产品管理 +import discountAreaManagementRouter from "./discountAreaManagement"; +// 机器人管理 +import RobotConfig from "./robot"; +// 统计路由 +import StatisticsRouter from "./statistics"; +// 系统管理 +import SystemRouter from "./system"; +// 系统消息 +import SystemMessageRouter from "./systemMessage"; +// 交易管理 +import TransactionRouter from "./transaction"; +// 用户路由 +import UserRouter from "./user"; +//商区代理路由 +import AgentDistrictRouter from "./agentDistrictProvider"; +// 聚商路由 +import GatheringRouter from "./gathering"; +//商人路由 +import BusinessRouter from "./business"; +//楼凤管理 +import Loufeng from "./loufeng"; +//小说管理 +import FictionRouter from "./fiction"; +//水果管理 +import AvComment from "./avcomment"; +//女优管理 +import ActressRouter from "./actress"; +//签到管理 +import SigninRouter from "./signin"; +//模块配置管理 +import moduleConf from "./moduleConfig"; +//动漫管理 +import AnimeRouter from "./animation"; +// 群聊管理 +import groupChatManagementRouter from './groupChatManagement'; +// 老司机资源库 +import LsjMediaLibRouter from "./lsjMediaLibRouter"; +// 二部媒资库 +import MediaLibRouter from "./mediaLibRouter"; +import ContentReviewRouter from "./contentReview"; +import OfficialWebsiteRouter from "./officialWebsite"; +// 不需要权限控制的路由 +const authRouter = [ + { + path: "/home", + component: Main, + title: "首页", + icon: "el-icon-s-home", + level: 0, + children: [ + { + path: "/home", + component: () => import("@/views/home/index"), + name: "home", + title: "首页", + meta: { + title: "首页", + }, + }, + ], + }, + Administrators, + AiRouter, + VideoRouter, + AnimeRouter, + LsjMediaLibRouter, + MediaLibRouter, + ContentReviewRouter, + OfficialWebsiteRouter, + UserRouter, + StatisticsRouter, + TransactionRouter, + productRouter, + discountAreaManagementRouter, + AgentRouter, + NakedChatRouter, + LandRouter, + AdvertisingRouter, + SystemMessageRouter, + SystemRouter, + RobotConfig, + ActivityRouter, + hotRouter, + CinemaRouter, + GatheringRouter, + BusinessRouter, + Loufeng, + AvComment, + ActressRouter, + FictionRouter, + moduleConf, + groupChatManagementRouter, + SigninRouter, + { + path: "/roleManagement", + component: Main, + title: "权限管理", + icon: "el-icon-s-custom", + level: 0, + children: [ + { + path: "/roleManagement", + component: () => import("@/views/role/index"), + name: "roleManagement", + title: "权限管理", + meta: { + title: "权限管理", + }, + }, + ], + }, + AgentDistrictRouter, +]; +export default authRouter; diff --git a/src/router/product.js b/src/router/product.js new file mode 100755 index 0000000..7ffa3fe --- /dev/null +++ b/src/router/product.js @@ -0,0 +1,149 @@ +import VipProductList from "../views/productManagement/vipProductList"; +import ProductBenefitList from "../views/productManagement/productBenefitList"; +import IntegralConfigure from "../views/productManagement/integralConfigure"; +import MarqueeList from "../views/productManagement/marqueeList"; +import BannerActivityList from "../views/productManagement/bannerActivityList"; +import GlodList from "../views/productManagement/glodList"; +import GameGlodList from "../views/productManagement/gameGlodList"; +import CurrencyList from "../views/productManagement/currencyList"; +import GlodPayList from "../views/productManagement/glodPayList"; +import PromoteUrl from "../views/productManagement/promoteUrl"; +import PayMethod from "../views/productManagement/payMethod"; +import VipCfg from "../views/productManagement/vipCfg"; +import Main from "../views/main"; +import ProductPositionList from "../views/productManagement/productPositionList"; +import OfficialList from "../views/productManagement/officialList"; +import PreSaleConfigure from "../views/productManagement/preSaleConfigure"; +import QuickSearch from "../views/videoManagement/quickSearch"; +import GoldCoinVideoConfig from "../views/videoManagement/goldCoinVideoConfig"; +const ProductRouter = { + path: "/vip-product-list", + component: Main, + title: "产品管理", + icon: "el-icon-s-order", + meta: { keepAlive: true }, + children: [ + { + path: "/vip-product-list", + component: VipProductList, + name: "vipProductList", + title: "VIP商品列表", + meta: { title: "VIP商品列表", keepAlive: true }, + }, + { + path: "/product-benefit-list", + component: ProductBenefitList, + name: "productBenefitList", + title: "VIP权益列表", + meta: { title: "VIP权益列表", keepAlive: true }, + }, + { + path: "/integral-configure", + component: IntegralConfigure, + name: "integralConfigure", + title: "积分配置", + meta: { title: "积分配置", keepAlive: true }, + }, + { + path: "/preSale-configure", + component: PreSaleConfigure, + name: "preSaleConfigure", + title: "预售配置", + meta: { title: "预售配置", keepAlive: true }, + }, + { + path: "/marquee-list", + component: MarqueeList, + name: "marqueeList", + title: "跑马灯列表", + meta: { title: "跑马灯列表", keepAlive: true }, + }, + { + path: "/banner-activity-list", + component: BannerActivityList, + name: "bannerActivityList", + title: "banner活动列表", + meta: { title: "banner活动列表", keepAlive: true }, + }, + + { + path: "/glod-list", + component: GlodList, + name: "glod-list", + title: "金币列表", + meta: { title: "金币列表", keepAlive: true }, + }, + { + path: "/gameGlod-list", + component: GameGlodList, + name: "gameGlod-list", + title: "游戏金币列表", + meta: { title: "游戏金币列表", keepAlive: true }, + }, + { + path: "/currency-list", + component: CurrencyList, + name: "currency-list", + title: "货币列表", + meta: { title: "货币列表", keepAlive: true }, + }, + { + path: "/glod-pay-list", + component: GlodPayList, + name: "glod-pay-list", + title: "金币优惠配置", + meta: { title: "金币优惠配置", keepAlive: true }, + }, + { + path: "/promote-url", + component: PromoteUrl, + name: "promote-url", + title: "推广落地页配置", + meta: { title: "推广落地页配置", keepAlive: true }, + }, + { + path: "/pay-method", + component: PayMethod, + name: "payMethod", + title: "充值渠道管理", + meta: { title: "充值渠道管理", keepAlive: true }, + }, + { + path: "/productPosition-list", + component: ProductPositionList, + name: "productPositionList", + title: "产品位置配置", + }, + { + path: "/vip_Cfg", + component: VipCfg, + name: "vipCfg", + title: "VIP升级配置", + }, + { + path: "/official-list", + component: OfficialList, + name: "officialList", + title: "官方下载列表", + meta: { title: "官方下载列表", keepAlive: true }, + }, + { + path: "/quick-search", + component: QuickSearch, + name: "quickSearch", + title: "官方置顶评论", + meta: { + title: "官方置顶评论", + keepAlive: true, + }, + }, + { + path: "/gold-coin-video-config", + component: GoldCoinVideoConfig, + name: "goldCoinVideoConfig", + title: "预售展示视频", + meta: { title: "预售展示视频", keepAlive: true }, + }, + ], +}; +export default ProductRouter; diff --git a/src/router/robot.js b/src/router/robot.js new file mode 100644 index 0000000..232c0d4 --- /dev/null +++ b/src/router/robot.js @@ -0,0 +1,27 @@ +import RobotConfig from '../views/robot/robotConfig'; +import ChatLibrary from '../views/robot/chatLibrary'; +import Main from '../views/main'; +const RbotRouter = { + path: '/robot-config', + component: Main, + title: '机器人管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/robot-config', + component: RobotConfig, + name: 'robotConfig', + title: '机器人配置', + meta: { title: '机器人配置' ,keepAlive:true} + }, + { + path: '/chat-library', + component: ChatLibrary, + name: 'chatLibrary', + title: '聊天内容', + meta: { title: '聊天内容' ,keepAlive:true} + } + ] +}; +export default RbotRouter; diff --git a/src/router/signin.js b/src/router/signin.js new file mode 100644 index 0000000..c68f2e9 --- /dev/null +++ b/src/router/signin.js @@ -0,0 +1,45 @@ +import CheckinHistoryList from '../views/signinManagement/checkInList'; +import CheckinPrizeCfgList from '../views/signinManagement/checkInCfgList'; +import ConfigurationList from '../views/signinManagement/configurationList'; +import Main from '../views/main'; +const SigninRouter = { + path: '/signinManger', + component: Main, + title: '签到管理', + icon: 'el-icon-s-custom', + meta: { + keepAlive: true + }, + children: [{ + path: '/checkin-history-list', + component: CheckinHistoryList, + name: 'checkinHistoryList', + title: '签到历史记录', + meta: { + title: '签到历史记录', + keepAlive: true + } + }, + { + path: '/checkin-prize-cfg-list', + component: CheckinPrizeCfgList, + name: 'checkinPrizeCfgList', + title: '签到奖品配置列表', + meta: { + title: '签到奖品配置列表', + keepAlive: true + } + }, + { + path: '/checkin-configuration', + component: ConfigurationList, + name: 'checkinConfiguration', + title: '签到配置', + meta: { + title: '签到配置', + keepAlive: true + } + }, + ] +}; +export default SigninRouter; \ No newline at end of file diff --git a/src/router/statistics.js b/src/router/statistics.js new file mode 100755 index 0000000..d21d932 --- /dev/null +++ b/src/router/statistics.js @@ -0,0 +1,108 @@ +import GoldWater from "../views/statistics/goldWater"; +// import UserData from '../views/statistics/userData' +// import RevenueData from '../views/statistics/revenueData' +import UserToday from "../views/statistics/userToday"; +import VideoIncome from "../views/statistics/videoIncome"; +import RechargeLog from "../views/statistics/rechargeLog"; +import WithdrawLog from "../views/statistics/withdrawLog"; +import ClickStatistics from "../views/statistics/clickStatistics"; +import Statistical from "../views/statistics/statistical"; +import VideoPayGoldStat from "../views/statistics/videoPayGoldStat"; +import VideoKlGoldStat from "../views/statistics/videoKlGoldStat"; +import AdvAnalysis from "../views/statistics/advAnalysis"; +import Main from "../views/main"; + +const StatisticsRouter = { + path: "/gold-water", + component: Main, + title: "统计管理", + icon: "el-icon-s-data", + meta: { keepAlive: true }, + children: [ + { + path: "/gold-water", + component: GoldWater, + name: "goldWater", + title: "金币流水统计", + meta: { title: "金币流水统计", keepAlive: true }, + }, + //{ + // path: '/revenue-data', + // component: RevenueData, + // name: 'revenueData', + // title: '营收数据', + // meta: { title: '营收数据' ,keepAlive:true} + //}, + //{ + // path: '/user-data', + // component: UserData, + // name: 'userData', + // title: '用户观看统计', + // meta: { title: '用户观看统计' ,keepAlive:true} + //}, + { + path: "/user-today", + component: UserToday, + name: "userToday", + title: "用户每日统计", + meta: { title: "用户每日统计", keepAlive: true }, + }, + { + path: "/video-income", + component: VideoIncome, + name: "videoIncome", + title: "视频收入统计", + meta: { title: "视频收入统计", keepAlive: true }, + }, + { + path: "/recharge-log", + component: RechargeLog, + name: "rechargeLog", + title: "充值成功统计", + meta: { title: "充值成功统计", keepAlive: true }, + }, + { + path: "/withdraw-log", + component: WithdrawLog, + name: "withdrawLog", + title: "提现成功统计", + meta: { title: "提现成功统计", keepAlive: true }, + }, + { + path: "/click-statistics", + component: ClickStatistics, + name: "clickStatistics", + title: "广告点击统计", + meta: { title: "广告点击统计", keepAlive: true }, + }, + { + path: "/advAnalysis", + component: AdvAnalysis, + name: "advAnalysis", + title: "广告ab测分析", + meta: { title: "广告ab测分析", keepAlive: true }, + }, + { + path: "/statistical", + component: Statistical, + name: "statistical", + title: "统计报表", + meta: { title: "统计报表", keepAlive: true }, + }, + { + path: "/videoPayGoldStat", + component: VideoPayGoldStat, + name: "videoPayGoldStat", + title: "视频销售金币统计", + meta: { title: "视频销售金币统计", keepAlive: true }, + }, + { + path: "/videoKlGoldStat", + component: VideoKlGoldStat, + name: "videoKlGoldStat", + title: "视频扣量金币统计", + meta: { title: "视频扣量金币统计", keepAlive: true }, + }, + ], +}; +export default StatisticsRouter; diff --git a/src/router/system.js b/src/router/system.js new file mode 100755 index 0000000..2b42d08 --- /dev/null +++ b/src/router/system.js @@ -0,0 +1,43 @@ +import VersionManagement from "../views/systemManagement/versionManagement"; +import ApplicationManagement from "../views/systemManagement/applicationManagement"; +import IpConfig from "../views/systemManagement/ipConfig"; +import SystemConfig from "../views/systemManagement/systemConfig"; +import Main from "../views/main"; +const SystemRouter = { + path: "/version-management", + component: Main, + title: "系统管理", + icon: "el-icon-s-tools", + meta: { keepAlive: true }, + children: [ + { + path: "/system-config", + component: SystemConfig, + name: "systemConfig", + title: "系统配置", + meta: { title: "系统配置", keepAlive: true }, + }, + { + path: "/version-management", + component: VersionManagement, + name: "versionManagement", + title: "版本管理", + meta: { title: "版本管理", keepAlive: true }, + }, + { + path: "/application-management", + component: ApplicationManagement, + name: "applicationManagement", + title: "应用管理", + meta: { title: "应用管理", keepAlive: true }, + }, + { + path: "/ipConfig", + component: IpConfig, + name: "ipConfig", + title: "ip白名单配置", + meta: { title: "ip白名单配置", keepAlive: true }, + }, + ], +}; +export default SystemRouter; diff --git a/src/router/systemMessage.js b/src/router/systemMessage.js new file mode 100644 index 0000000..64a20d3 --- /dev/null +++ b/src/router/systemMessage.js @@ -0,0 +1,27 @@ +import MessagePush from '../views/systemMessage/messagePush'; +import EmailPush from '../views/systemMessage/emailPush'; +import Main from '../views/main'; +const SystemMessageRouter = { + path: '/message-push', + component: Main, + title: '系统消息', + icon: 'el-icon-message-solid', + meta: { keepAlive: true }, + children: [ + { + path: '/message-push', + component: MessagePush, + name: 'messagePush', + title: '消息推送', + meta: { title: '消息推送' ,keepAlive:true} + }, + { + path: '/email-push', + component: EmailPush, + name: 'emailPush', + title: '邮件推送', + meta: { title: '邮件推送' ,keepAlive:true} + } + ] +}; +export default SystemMessageRouter; diff --git a/src/router/transaction.js b/src/router/transaction.js new file mode 100755 index 0000000..90da18e --- /dev/null +++ b/src/router/transaction.js @@ -0,0 +1,83 @@ +import WithdrawList from "../views/transactionManagement/withdrawList"; +import WithdrawMethod from "../views/transactionManagement/withdrawMethod"; +import AdvanceOrderList from "../views/transactionManagement/advanceOrderList"; +import RechargeList from "../views/transactionManagement/rechargeList"; +import WithdrawBank from "../views/transactionManagement/withdrawBank"; +import TransferList from "../views/transactionManagement/transferList"; +import WithdrawRefund from "../views/transactionManagement/withdrawRefund"; +import IntegralExchange from "../views/transactionManagement/integralExchange"; +import VipCardPurchaseRecord from "../views/transactionManagement/vipCardPurchaseRecord"; +import Main from "../views/main"; +const TransactionRouter = { + path: "/recharge-list", + component: Main, + title: "交易管理", + icon: "el-icon-sort", + meta: { keepAlive: true }, + children: [ + { + path: "/recharge-list", + component: RechargeList, + name: "rechargeList", + title: "充值订单管理", + meta: { title: "充值订单管理", keepAlive: true }, + }, + { + path: "/withdraw-list", + component: WithdrawList, + name: "withdrawList", + title: "提现订单列表", + meta: { title: "提现订单列表", keepAlive: true }, + }, + { + path: "/advance-order-list", + component: AdvanceOrderList, + name: "advanceOrderList", + title: "预售订单列表", + meta: { title: "预售订单列表", keepAlive: true }, + }, + { + path: "/integral-exchange", + component: IntegralExchange, + name: "integralExchange", + title: "积分兑换", + meta: { title: "积分兑换", keepAlive: true }, + }, + { + path: "/vipCardPurchaseRecord", + component: VipCardPurchaseRecord, + name: "vipCardPurchaseRecord", + title: "会员卡购买记录", + meta: { title: "会员卡购买记录", keepAlive: true }, + }, + { + path: "/withdraw-method", + component: WithdrawMethod, + name: "withdrawMethod", + title: "提现方式配置", + meta: { title: "提现方式配置", keepAlive: true }, + }, + { + path: "/withdraw-bank", + component: WithdrawBank, + name: "withdrawBank", + title: "提现银行配置", + meta: { title: "提现银行配置", keepAlive: true }, + }, + { + path: "/transfer-list", + component: TransferList, + name: "transferList", + title: "财务转账列表", + meta: { title: "财务转账列表", keepAlive: true }, + }, + { + path: "/withdraw-refund", + component: WithdrawRefund, + name: "withdrawRefund", + title: "提现退款列表", + meta: { title: "提现退款列表", keepAlive: true }, + }, + ], +}; +export default TransactionRouter; diff --git a/src/router/user.js b/src/router/user.js new file mode 100755 index 0000000..21d01aa --- /dev/null +++ b/src/router/user.js @@ -0,0 +1,129 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-09-28 16:52:13 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-09-30 18:00:06 + */ +import UserList from "../views/user/userList"; +import BackpackList from "../views/user/backpackList"; +import UserMessageList from "../views/user/userMessageList"; +import UserLog from "../views/user/userLog"; +import UserIpBlock from "../views/user/userIpBlock"; +import UserWatch from "../views/user/userWatch"; +import UserReport from "../views/user/userReport"; +import UserResource from "../views/user/userResource"; +// import CommonQuestion from '../views/user/commonQuestion' +import BlackList from "../views/user/blackList"; +import UserRecommendation from "../views/user/userRecommendation"; +import FeedbackList from "../views/user/feedbackList"; +import UserFans from "../views/user/userFollow"; +import UserPostsLog from "../views/user/userPostsLog"; +import Main from "../views/main"; +const UserRouter = { + path: "/user-list", + component: Main, + title: "用户管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/user-list", + component: UserList, + name: "userList", + title: "用户列表", + meta: { title: "用户列表", keepAlive: true }, + }, + { + path: "/backpack-list", + component: BackpackList, + name: "backpackList", + title: "背包列表", + meta: { title: "背包列表", keepAlive: true }, + }, + { + path: "/user-message-list", + component: UserMessageList, + name: "userMessageList", + title: "用户私信列表", + meta: { title: "用户私信列表", keepAlive: true }, + }, + { + path: "/user-log", + component: UserLog, + name: "userLog", + title: "用户登陆日志", + meta: { title: "用户登陆日志", keepAlive: true }, + }, + { + path: "/user-ip-block", + component: UserIpBlock, + name: "userIpBlock", + title: "用户IP限制", + meta: { title: "用户IP限制", keepAlive: true }, + }, + { + path: "/user-resource", + component: UserResource, + name: "userResource", + title: "用户资源配置", + meta: { title: "用户资源配置", keepAlive: true }, + }, + { + path: "/user-watch", + component: UserWatch, + name: "userWatch", + title: "用户观看列表", + meta: { title: "用户观看列表", keepAlive: true }, + }, + //{ + // path: '/common-question', + // component: CommonQuestion, + // name: 'commonQuestion', + // title: '用户常见问题', + // meta: { title: '用户常见问题' ,keepAlive:true} + //}, + { + path: "/user-report", + component: UserReport, + name: "userReport", + title: "用户举报列表", + meta: { title: "用户举报列表", keepAlive: true }, + }, + { + path: "/black-list", + component: BlackList, + name: "blackList", + title: "黑名单列表", + meta: { title: "黑名单列表", keepAlive: true }, + }, + { + path: "/user-recommendation", + component: UserRecommendation, + name: "userRecommendation", + title: "用户推荐列表", + meta: { title: "用户推荐列表", keepAlive: true }, + }, + { + path: "/feedback-list", + component: FeedbackList, + name: "feedbackList", + title: "用户反馈列表", + meta: { title: "用户反馈列表", keepAlive: true }, + }, + { + path: "/user-fans", + component: UserFans, + name: "userFans", + title: "用户自动关注配置", + meta: { title: "用户自动关注配置", keepAlive: true }, + }, + { + path: "/user-posts-log", + component: UserPostsLog, + name: "userPostsLog", + title: "用户、帖子操作日志", + meta: { title: "用户、帖子操作日志", keepAlive: true }, + }, + ], +}; +export default UserRouter; diff --git a/src/router/video.js b/src/router/video.js new file mode 100755 index 0000000..fda793e --- /dev/null +++ b/src/router/video.js @@ -0,0 +1,177 @@ +import VideoExamine from "../views/videoManagement/videoExamine"; +import VideoList from "../views/videoManagement/videoList"; +import PushList from "../views/videoManagement/pushList"; +import EmojiList from "../views/videoManagement/emojiList"; +import CityList from "../views/videoManagement/cityList"; +import TagList from "../views/videoManagement/tagList"; +import ActiveConfig from "../views/videoManagement/activeConfig"; +import CommentList from "../views/videoManagement/commentList"; +import VideoHot from "../views/videoManagement/videoHot"; +import HotCity from "../views/videoManagement/hotCity"; +import ResourceManage from "../views/videoManagement/resourceManage"; +import FilterManagement from "../views/videoManagement/filterManagement"; +import RecommendSignature from "../views/videoManagement/recommendSignature"; +import FreeVidCfg from "../views/videoManagement/freeVidCfg"; +import VidResCfg from "../views/videoManagement/vidResCfg"; +import TagConfiguration from "../views/videoManagement/tagConfiguration"; +import VideoTimeOnlineList from "../views/videoManagement/videoTimeOnlineList"; +import PaymentGuideList from "../views/shortVideoRecommend/paymentGuideList"; +import CommentBannerList from "../views/shortVideoRecommend/commentBannerList"; +import VipCardExperiment from "../views/shortVideoRecommend/vipCardExperiment"; +import Main from "../views/main"; + +const VideoRouter = { + path: "/video-examine", + component: Main, + title: "帖子管理", + icon: "el-icon-video-camera-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/video-examine", + component: VideoExamine, + name: "videoExamine", + title: "帖子审核", + meta: { title: "帖子审核", keepAlive: true }, + }, + { + path: "/video-time-online-list", + component: VideoTimeOnlineList, + name: "videoTimeOnlineList", + title: "帖子定时上线列表", + meta: { + title: "帖子定时上线列表", + keepAlive: true, + }, + }, + { + path: "/video-list", + component: VideoList, + name: "videoList", + title: "帖子列表", + meta: { title: "帖子列表", keepAlive: true }, + }, + { + path: "/emoji-list", + component: EmojiList, + name: "emojiList", + title: "表情包列表", + meta: { title: "表情包列表", keepAlive: true }, + }, + // 推送列表 + { + path: "/push-list", + component: PushList, + name: "pushList", + title: "推送列表", + meta: { title: "推送列表", keepAlive: true }, + }, + { + path: "/tag-list", + component: TagList, + name: "tagList", + title: "标签管理", + meta: { title: "标签管理", keepAlive: true }, + }, + { + path: "/active-config", + component: ActiveConfig, + name: "activeConfig", + title: "活动配置", + meta: { title: "活动配置", keepAlive: true }, + }, + { + path: "/tag-configuration", + component: TagConfiguration, + name: "tagConfiguration", + title: "标签配置", + meta: { title: "标签配置", keepAlive: true }, + }, + { + path: "/city-list", + component: CityList, + name: "cityList", + title: "城市列表", + meta: { title: "城市列表", keepAlive: true }, + }, + { + path: "/hot-city", + component: HotCity, + name: "hotCity", + title: "热门城市", + meta: { title: "热门城市", keepAlive: true }, + }, + { + path: "/comment-list", + component: CommentList, + name: "commentList", + title: "评论管理", + meta: { title: "评论管理", keepAlive: true }, + }, + { + path: "/resource-management", + component: ResourceManage, + name: "resourceManage", + title: "资源管理", + meta: { title: "资源管理", keepAlive: true }, + }, + { + path: "/video-hot", + component: VideoHot, + name: "videoHot", + title: "短视频最热", + meta: { title: "短视频最热", keepAlive: true }, + }, + { + path: "/filter-management", + component: FilterManagement, + name: "filterManagement", + title: "过滤词管理", + meta: { title: "过滤词管理", keepAlive: true }, + }, + { + path: "/recommend-signature", + component: RecommendSignature, + name: "recommendSignature", + title: "推荐标签", + meta: { title: "推荐标签", keepAlive: true }, + }, + { + path: "/free-vid-cfg", + component: FreeVidCfg, + name: "freeVidCfg", + title: "免费观看配置", + meta: { title: "免费观看配置", keepAlive: true }, + }, + { + path: "/vid-res-cfg", + component: VidResCfg, + name: "vidResCfg", + title: "视频资源库", + meta: { title: "视频资源库", keepAlive: true }, + }, + { + path: "/payment-guide-list", + component: PaymentGuideList, + name: "paymentGuideList", + title: "付费引导配置", + meta: { title: "付费引导配置", keepAlive: true }, + }, + { + path: "/comment-banner-list", + component: CommentBannerList, + name: "commentBannerList", + title: "评论Banner配置", + meta: { title: "评论Banner配置", keepAlive: true }, + }, + { + path: "/vip-card-experiment", + component: VipCardExperiment, + name: "vipCardExperiment", + title: "VIP卡片实验", + meta: { title: "VIP卡片实验", keepAlive: true }, + }, + ], +}; + +export default VideoRouter; diff --git a/src/stroe/actions.js b/src/stroe/actions.js new file mode 100755 index 0000000..e0e0907 --- /dev/null +++ b/src/stroe/actions.js @@ -0,0 +1,41 @@ +import local from "@/utils/localStroage.js"; +import list from "@/router/permissionRouter"; +import { recursionRouter } from "@/utils/global"; +// action类似与mutation,action提交的是mutation而不是直接变更状态,action可以包含任意一步操作 +const actions = { + setRouterTag: ({ commit }, tag) => commit("SET_TAGS", tag), // 设置tag + setRouterIndex: ({ commit }, index) => commit("SET_INDEX", index), // 设置当前选中的路由 + setRouterActive: ({ commit }, router) => commit("SET_ROUTER_ACTIVE", router), // 设置导航栏动态路由选中 + removeRouterTag: ({ commit }, index) => commit("REMOVE_TAGS", index), // 删除tag并切换路由 + removeAllTag: ({ commit }) => commit("REMOVE_ALL_TAGS"), // 删除全部tags + setRouter: ({ commit }, list) => commit("SET_ROUTER", list), // 存储动态路由 + setBeilv: ({ commit }, beilv) => commit("SET_BEILV", beilv), // 存储模拟倍率 + setToken: ({ commit }, token) => { + commit("SET_TOKEN", token); + }, // 存储token,主要用来刷新token后,被上传图片监听到,可以修改页面 + removeToken: ({ commit }) => commit("REMOVE_TOKEN"), //删除token + + /** + * @description 刷新路由:从logcastorage中获取权限路由,对比本地的总路由,获取新的路由,保存到routerList中。 + */ + refreshRouter: ({ dispatch, commit }) => { + const role = local.get("role"); + if (!role || !Array.isArray(role) || role.length === 0) { + commit("SET_ROUTER", []); + return; + } + // 重新创建新的本地权限路由,避免修改原始权限数据 + const newList = list.map((item) => Object.assign({}, item)); + const newRouter = recursionRouter(role, newList); + // 触发vuex函数对新路由进行存储(主要针对页面刷新后vux保存的路由无法存留,注:不能将获取的用户路由存存在localstroge里面,因为路由的components在本地存储当中会被转化),注:localstorage里面的数据不能被实时监听 + dispatch("setRouter", newRouter); + }, + + // 设置登陆弹窗的弹出次数 + setConfirmFlag: ({ commit }) => { + commit("SET_CONFIRM_FLAG"); + }, + actJson: ({ commit }, actJson) => commit("ACT_JSON", actJson), +}; + +export default actions; diff --git a/src/stroe/getters.js b/src/stroe/getters.js new file mode 100755 index 0000000..f1407e6 --- /dev/null +++ b/src/stroe/getters.js @@ -0,0 +1,8 @@ +// getters相当于是 store 的计算属性。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算 +const getters = { + routerList: state => state.routerList, + expansionFactor: state => state.beilv, + header: state => ({ Authorization: state.token }), +} + +export default getters diff --git a/src/stroe/index.js b/src/stroe/index.js new file mode 100755 index 0000000..79209bb --- /dev/null +++ b/src/stroe/index.js @@ -0,0 +1,20 @@ +import Vue from "vue"; +import Vuex from "vuex"; +import state from "./state"; +import actions from "./actions"; +import mutations from "./mutations"; +import getters from "./getters"; +import modules from "./modules"; +// import createPersistedState from "vuex-persistedstate"; + +//调用方法,使用插件 +Vue.use(Vuex); + +export default new Vuex.Store({ + state, + getters, + actions, + mutations, + modules, + // plugins: [createPersistedState()], +}); diff --git a/src/stroe/modules/index.js b/src/stroe/modules/index.js new file mode 100644 index 0000000..c695384 --- /dev/null +++ b/src/stroe/modules/index.js @@ -0,0 +1,6 @@ +import loginModule from './login' +const modules = { + loginModule +} + +export default modules \ No newline at end of file diff --git a/src/stroe/modules/login.js b/src/stroe/modules/login.js new file mode 100644 index 0000000..3db77fa --- /dev/null +++ b/src/stroe/modules/login.js @@ -0,0 +1,100 @@ +// import Api from '../../api' +// import vue from '@/main' + +const state = { + token: "", + links: [], + // 后端返回的用户信息 + userInfo: {}, + // 前端登陆保存的登陆信息 + loginInfo: {}, +}; + +const getters = { + getLinks: (state) => { + return state.links; + }, +}; + +const mutations = { + // 保存token到vuex中 + COMMIT_TOKEN(state, object) { + state.token = object; + }, + // 保存用户信息到vuex中 + COMMIT_USERINFO(state, obj) { + state.userInfo = Object.assign({}, obj); + state.links = state.userInfo.inviteLink; + }, + // 保存登陆信息到vuex中 + COMMIT_LOGININFO(state, object) { + state.loginInfo = object; + }, + COMMIT_USERINFO_BALANCE(state, balance) { + state.userInfo.balance = balance; + }, + COMMIT_USERINFO_MOBILE(state, mobile) { + state.userInfo.mobile = mobile; + }, + // 登出重置用户信息,token,渠道信息 + COMMIT_LOGOUT(state) { + state.userInfo = {}; + state.token = ""; + }, + // 设置链接信息 + SET_LINK(state, linkarr) { + state.links = linkarr; + }, +}; + +const actions = { + setToken({ commit }, obj) { + commit("COMMIT_TOKEN", obj); + }, + setBalance({ commit }, balance) { + commit("COMMIT_USERINFO_BALANCE", balance); + }, + setMobile({ commit }, mobile) { + commit("COMMIT_USERINFO_MOBILE", mobile); + }, + // adminLogin({ commit }, params) { + // return new Promise((resolve, reject) => { + // Api.login(params).then(res => { + // if (res.code === 200 && res.data.token && res.data.channels) { + // commit('COMMIT_TOKEN', res.data) + // commit('COMMIT_USERINFO', { + // name: res.data.name, + // account: res.data.account, + // // role: res.data.role + // }) + // resolve(res) + // } else { + // vue.$message.error('账号或密码错误,请重新登陆') + // reject() + // } + // }) + // }) + // }, + saveLoginInfo({ commit }, loginInfo) { + commit("COMMIT_LOGININFO", loginInfo); + }, + saveUserInfo({ commit }, userInfo) { + commit("COMMIT_USERINFO", userInfo); + }, + logout({ commit }) { + commit("COMMIT_LOGOUT"); + }, + setLink({ commit }, linkArr) { + commit("SET_LINK", linkArr); + }, +}; + +const login = { + namespaced: true, + state, + getters, + mutations, + actions, +}; + +export default login; diff --git a/src/stroe/mutations.js b/src/stroe/mutations.js new file mode 100755 index 0000000..c1de163 --- /dev/null +++ b/src/stroe/mutations.js @@ -0,0 +1,72 @@ +import Router from "vue-router"; +import router from "../router"; +import baseRouter from "../router/baseRouter"; +const mutations = { + SET_TOKEN: (state, token) => { + state.token = token; + }, + REMOVE_TOKEN: (state) => { + state.token = ""; + }, + // 设置面包屑路由tag和数量 + SET_TAGS: (state, tag) => { + state.routerTags.push(tag); + if (state.routerTags.length > 11) { + state.routerTags.shift(); + } + state.routerIndex = state.routerTags.length; + }, + // 设置当前被选中的路由tags + SET_INDEX: (state, index) => { + state.routerIndex = index; + }, + + // 设置模拟倍率 + SET_BEILV: (state, beilv) => { + state.beilv = beilv; + }, + + // 动态设置导航栏选中router + SET_ROUTER_ACTIVE: (state, router) => { + state.activeRouter = router; + }, + // 删除全部tags + REMOVE_ALL_TAGS: (state) => { + state.routerTags = []; + }, + // 删除路由tags + REMOVE_TAGS: (state, index) => { + if (state.routerTags.length === 1) { + return; + } + state.routerTags.splice(index, 1); + state.routerIndex = state.routerTags.length; + }, + // 设置动态路由 + SET_ROUTER: (state, list) => { + state.routerList = list; + const freshRouter = new Router({ + mode: "hash", + base: process.env.BASE_URL, + routes: baseRouter, + }); + router.matcher = freshRouter.matcher; + // 兼容:vue-router 3.5+ 用 addRoute;更低版本回退 addRoutes + if (typeof router.addRoute === "function") { + list.forEach((route) => { + router.addRoute(route); + }); + } else { + router.addRoutes(list); + } + }, + // 防止弹窗重复弹出 + SET_CONFIRM_FLAG: (state) => { + state.confirmFlag = false; + }, + ACT_JSON: (state, actJson) => { + state.actJson = actJson; + }, +}; + +export default mutations; diff --git a/src/stroe/state.js b/src/stroe/state.js new file mode 100755 index 0000000..56bdc6c --- /dev/null +++ b/src/stroe/state.js @@ -0,0 +1,11 @@ +const state = { + routerTags: [], + routerIndex: 0, + activeRouter: "", + routerList: [], + token: "", + beilv: "", + confirmFlag: true, + actJson: "", +}; +export default state; diff --git a/src/utils/common.js b/src/utils/common.js new file mode 100644 index 0000000..d6bec87 --- /dev/null +++ b/src/utils/common.js @@ -0,0 +1,20 @@ +// 内链 +export const internalLinks = [ + { label: "会员中心", value: "yinseinner://vip_page" }, + { label: "福利任务", value: "yinseinner://taskHall" }, + { label: "短视频", value: "yinseinner://shortVideo" }, + { label: "预售卡", value: "yinseinner://advancePage" }, + { label: "视频详情页", value: "yinseinner://video_page?id=" }, + { label: "亚模块", value: "yinseinner://submodule?id=" }, + { label: "抽奖", value: "yinseinner://Lottery" }, + { label: "分享推广", value: "yinseinner://universal_agent" }, + { label: "AI科技", value: "yinseinner://science" }, + { label: "金币钱包", value: "yinseinner://wallet_page" }, + { label: "社区指定板块", value: "yinseinner://Community_module?id=" }, + { label: "排行榜", value: "yinseinner://rankingList" }, + { label: "帖子详情", value: "yinseinner://postdetail?id=" }, + { label: "直播", value: "yinseinner://live_streaming" }, + { label: "导航栏", value: "yinseinner://Navigation_bar" }, + { label: "绑定手机号", value: "yinseinner://binding_page" }, + +]; diff --git a/src/utils/compressImage.js b/src/utils/compressImage.js new file mode 100644 index 0000000..f595e8d --- /dev/null +++ b/src/utils/compressImage.js @@ -0,0 +1,265 @@ +import GIF from 'gif.js' +import { parseGIF, decompressFrames } from 'gifuct-js' + +const SKIP_SIZE = 300 * 1024 +const MAX_OUTPUT_SIZE = 1024 * 1024 +const MAX_DIMENSION = 2048 +const INITIAL_QUALITY = 0.92 +const MIN_QUALITY = 0.8 +const GIF_WORKER = `${process.env.BASE_URL || '/'}gif.worker.js` + +function toFile(blob, name, type) { + return new File([blob], name, { type, lastModified: Date.now() }) +} + +function replaceExt(name, ext) { + const base = name.replace(/\.[^.]+$/, '') + return `${base}${ext}` +} + +function loadImage(file) { + return new Promise((resolve, reject) => { + const url = URL.createObjectURL(file) + const img = new Image() + img.onload = () => { + URL.revokeObjectURL(url) + resolve(img) + } + img.onerror = () => { + URL.revokeObjectURL(url) + reject(new Error('图片加载失败')) + } + img.src = url + }) +} + +function calcSize(width, height, maxDim) { + if (width <= maxDim && height <= maxDim) { + return { width, height } + } + const ratio = Math.min(maxDim / width, maxDim / height) + return { + width: Math.round(width * ratio), + height: Math.round(height * ratio), + } +} + +function canvasToBlob(canvas, type, quality) { + return new Promise((resolve) => { + canvas.toBlob(resolve, type, quality) + }) +} + +function hasTransparency(ctx, width, height) { + const { data } = ctx.getImageData(0, 0, width, height) + for (let i = 3; i < data.length; i += 4) { + if (data[i] < 255) return true + } + return false +} + +async function compressStaticImage(file) { + const img = await loadImage(file) + let { width, height } = calcSize(img.width, img.height, MAX_DIMENSION) + + const drawToCanvas = (w, h) => { + const canvas = document.createElement('canvas') + canvas.width = w + canvas.height = h + const ctx = canvas.getContext('2d') + if (file.type !== 'image/png') { + ctx.fillStyle = '#fff' + ctx.fillRect(0, 0, w, h) + } + ctx.drawImage(img, 0, 0, w, h) + return { canvas, ctx } + } + + let { canvas, ctx } = drawToCanvas(width, height) + const isPng = file.type === 'image/png' + const transparent = isPng && hasTransparency(ctx, width, height) + + let outputType = transparent + ? 'image/png' + : file.type === 'image/webp' + ? 'image/webp' + : 'image/jpeg' + let ext = transparent ? '.png' : outputType === 'image/webp' ? '.webp' : '.jpg' + let quality = INITIAL_QUALITY + + let blob = await canvasToBlob(canvas, outputType, quality) + + while (blob && blob.size > MAX_OUTPUT_SIZE && quality > MIN_QUALITY) { + quality -= 0.04 + blob = await canvasToBlob(canvas, outputType, quality) + } + + while (blob && blob.size > MAX_OUTPUT_SIZE && width > 640) { + width = Math.round(width * 0.85) + height = Math.round(height * 0.85) + ;({ canvas, ctx } = drawToCanvas(width, height)) + blob = await canvasToBlob(canvas, outputType, quality) + } + + if (!blob || blob.size >= file.size) { + return file + } + + return toFile(blob, replaceExt(file.name, ext), outputType) +} + +function applyDisposal(ctx, frame) { + if (frame.disposalType === 2) { + ctx.clearRect(frame.dims.left, frame.dims.top, frame.dims.width, frame.dims.height) + } +} + +function drawFramePatch(ctx, frame) { + const imageData = ctx.createImageData(frame.dims.width, frame.dims.height) + imageData.data.set(frame.patch) + const frameCanvas = document.createElement('canvas') + frameCanvas.width = frame.dims.width + frameCanvas.height = frame.dims.height + frameCanvas.getContext('2d').putImageData(imageData, 0, 0) + ctx.drawImage(frameCanvas, frame.dims.left, frame.dims.top) +} + +function encodeGifFrames(frames, sourceWidth, sourceHeight, targetWidth, targetHeight, quality) { + return new Promise((resolve, reject) => { + const composeCanvas = document.createElement('canvas') + composeCanvas.width = sourceWidth + composeCanvas.height = sourceHeight + const composeCtx = composeCanvas.getContext('2d') + + const outputCanvas = document.createElement('canvas') + outputCanvas.width = targetWidth + outputCanvas.height = targetHeight + const outputCtx = outputCanvas.getContext('2d') + + const gif = new GIF({ + workers: 2, + workerScript: GIF_WORKER, + width: targetWidth, + height: targetHeight, + quality, + repeat: 0, + }) + + gif.on('finished', (blob) => resolve(blob)) + gif.on('abort', () => reject(new Error('GIF 压缩已取消'))) + + frames.forEach((frame) => { + drawFramePatch(composeCtx, frame) + outputCtx.clearRect(0, 0, targetWidth, targetHeight) + outputCtx.drawImage(composeCanvas, 0, 0, targetWidth, targetHeight) + gif.addFrame(outputCanvas, { + copy: true, + delay: Math.max((frame.delay || 10) * 10, 20), + }) + applyDisposal(composeCtx, frame) + }) + + gif.render() + }) +} + +async function compressGif(file) { + const buffer = await file.arrayBuffer() + let gifData + try { + gifData = parseGIF(buffer) + } catch (error) { + return file + } + + const frames = decompressFrames(gifData, true) + if (!frames.length) { + return file + } + + const sourceWidth = gifData.lsd.width + const sourceHeight = gifData.lsd.height + let scale = Math.min(1, MAX_DIMENSION / sourceWidth, MAX_DIMENSION / sourceHeight) + + if (file.size > MAX_OUTPUT_SIZE * 2) { + scale = Math.min(scale, 0.85) + } + + let targetWidth = Math.max(1, Math.round(sourceWidth * scale)) + let targetHeight = Math.max(1, Math.round(sourceHeight * scale)) + let quality = 10 + + let blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + + while (blob && blob.size > MAX_OUTPUT_SIZE && quality < 20) { + quality += 2 + blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + } + + while (blob && blob.size > MAX_OUTPUT_SIZE && targetWidth > 320) { + targetWidth = Math.round(targetWidth * 0.85) + targetHeight = Math.round(targetHeight * 0.85) + blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + } + + if (!blob || blob.size >= file.size) { + return file + } + + return toFile(blob, replaceExt(file.name, '.gif'), 'image/gif') +} + +/** + * 上传前压缩图片,尽量保持视觉质量;GIF 保留动画。 + * 小于 300KB 的图片不压缩。 + */ +export async function compressImage(file) { + if (!file || !(file instanceof Blob)) { + return file + } + + if (file.size <= SKIP_SIZE) { + return file + } + + const type = (file.type || '').toLowerCase() + + try { + if (type === 'image/gif') { + return await compressGif(file) + } + if ( + type === 'image/jpeg' || + type === 'image/jpg' || + type === 'image/png' || + type === 'image/webp' + ) { + return await compressStaticImage(file) + } + } catch (error) { + console.warn('图片压缩失败,将上传原图:', error) + } + + return file +} diff --git a/src/utils/contentReview.js b/src/utils/contentReview.js new file mode 100644 index 0000000..501b4fb --- /dev/null +++ b/src/utils/contentReview.js @@ -0,0 +1,31 @@ +/** + * 内容审查模块通用工具 + */ +export function isCrApiSuccess(res) { + return res && (res.code === 200 || res.code === 0); +} + +/** 与 request 拦截器一致:优先 msg,兼容 tip */ +export function getCrApiErrorMessage(res) { + if (!res) return ""; + return res.msg || res.tip || res.message || ""; +} + +/** 编辑提交前去掉服务端包裹的 mark 标签 */ +export function stripHighlightMark(html) { + if (html == null || html === "") return ""; + return String(html).replace(/(.*?)<\/mark>/gi, "$1"); +} + +export const TASK_STATUS_MAP = { + 0: "待执行", + 1: "执行中", + 2: "已完成", + 3: "失败", +}; + +export const RESOLVE_STATUS_MAP = { + 0: "未解决", + 1: "已搁置", + 2: "已解决", +}; diff --git a/src/utils/eventBus.js b/src/utils/eventBus.js new file mode 100644 index 0000000..8d2b2c8 --- /dev/null +++ b/src/utils/eventBus.js @@ -0,0 +1,3 @@ +import Vue from 'vue' +// export const Bus = new Vue() +export default new Vue(); \ No newline at end of file diff --git a/src/utils/filter.js b/src/utils/filter.js new file mode 100755 index 0000000..06be630 --- /dev/null +++ b/src/utils/filter.js @@ -0,0 +1,560 @@ +import moment from "moment"; +import { changePosition } from "../views/lsjMediaLibrary/config"; +// 时间转换 +const changeTime = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 19) + "+08:00"; + //let newTime = moment(string).format('YYYY-MM-DD h:mm:ss') + // 时间戳 + //let time = new Date(string) + //let newTime = Date.parse(time) / 1000 + return newTime; +}; + +export const changeDate = (time) => { + if (!time || time === "未知") { + return "未知"; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const changeMd = (time) => { + if (!time || time === "未知") { + return "未知"; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD"); + return date; +}; +// number 千位分隔符 +const numFormat = (num) => { + num = num.toString().split("."); // 分隔小数点 + var arr = num[0].split("").reverse(); // 转换成字符数组并且倒序排列 + var res = []; + for (var i = 0, len = arr.length; i < len; i++) { + if (i % 3 === 0 && i !== 0) { + res.push(","); // 添加分隔符 + } + res.push(arr[i]); + } + res.reverse(); // 再次倒序成为正确的顺序 + if (num[1]) { + // 如果有小数的话添加小数部分 + res = res.join("").concat("." + num[1]); + } else { + res = res.join(""); + } + return res; +}; +/*** + * 保留两位小数且四舍五入 + * ***/ +const iTofixed = (num) => { + return ( + Math.round(num * Math.pow(10, 2)) / Math.pow(10, 2) + + Math.pow(10, -(2 + 1)) + ) + .toString() + .slice(0, -1); +}; +// 支付方式过滤条件 +const payTypeRule = (value) => { + let payMethods = { + alipay: "支付宝", + usdt: "USDT", + wechat: "微信", + union: "银联", + daichong: "代充", + bankcard: "银行卡", + }; + return payMethods[value] ? payMethods[value] : "未知"; +}; + +// 审核过滤条件 +const commentStatus = (status) => { + switch (status) { + case 1: + return "审核通过"; + case 2: + return "未审核"; + case 3: + return "自动过滤"; + } +}; +// 订单审核过滤 +const orderStatus = (status) => { + switch (status) { + case 1: + return "进行中"; + case 2: + return "付款失败"; + case 3: + return "付款成功"; + case 4: + return "已退款"; + } +}; +// 提现订单状态 +const withdrawStatus = (status) => { + switch (status) { + case 1: + return "未审核"; + case 2: + return "转账中"; + case 3: + return "已拒绝"; + case 4: + return "未知错误"; + case 5: + return "提现成功"; + case 6: + return "提现失败"; + } +}; +// 活动状态过滤 +const activeStatus = (status) => { + switch (status) { + case "ready": + return "准备中"; + case "processing": + return "进行中"; + case "finished": + return "已完成"; + } +}; +// 活动状态过滤 +const messTypeStatus = (status) => { + switch (status) { + case "REGULAR_NOTICE_TYPE": + return "定时通知"; + case "PLAN_NOTICE_TYPE": + return "计划通知"; + case "SPECIFY_NOTICE_TYPE": + return "规定通知"; + case "AFTER_REGIST_NOTICE": + return "注册后通知"; + } +}; +const senderStatus = (status) => { + switch (status) { + case "SYSTEM": + return "system 系统消息"; + case "ACTASST": + return "ActAsst 活动助手"; + } +}; +const reStatus = (status) => { + switch (status) { + case "ALL_USER": + return "所有用户"; + case "SOME_USER": + return "部分用户"; + } +}; + +// 自动账单状态 +const automaticStatus = (status) => { + switch (status) { + case 0: + return "未审核"; + case 1: + return "通过审核"; + case 2: + return "已拒绝"; + case 3: + return "付款成功"; + case 4: + return "付款失败"; + } +}; +// 兑换码类型 +const Type = (status) => { + switch (status) { + case 1: + return "增加vip天数"; + case 2: + return "增加金币"; + } +}; + +// 将秒转换为时分秒 +const changeSecond = (ms) => { + let hour = Math.floor(ms / 3600); + let min = Math.floor((ms % 3600) / 60); + let second = Math.floor((ms % 3600) % 60); + hour = hour > 0 ? (hour <= 9 ? "0" + hour : hour) : "00"; + min = min > 0 ? (min <= 9 ? "0" + min : min) : "00"; + second = second > 0 ? (second <= 9 ? "0" + second : second) : "00"; + return hour + ":" + min + ":" + second; +}; +// 保留两位小数并转化为百分比显示 +const transformNumber = (init) => { + return `${(100 * Number(init)).toFixed(2)}%`; +}; + +// 保留两位小数 +const transformFloat = (init) => { + return `${Number(init).toFixed(2)}`; +}; +//保留两位小数 +const fixed2 = (x) => { + return Number.parseFloat(x).toFixed(2); +}; +// 数据为空或者0 处理 +const floatRule = (value) => { + if (value && value > 0) { + return value; + } else { + return 0; + } +}; +// 数据为空或者0 处理(率) +const percentRule = (value) => { + if (value && value > 0) { + return `${(100 * Number(value)).toFixed(2)}%`; + } else { + return "0.00%"; + } +}; + +// 数组转化成字符串 +const amountTypesFun = (val) => { + if (val instanceof Array) { + return val.map((v) => v / 100).join(","); + } + return val; +}; + +// 报告类型 +const peportTypeRule = (peportType) => { + switch (peportType) { + case 0: + return "本月注册"; + case 1: + return "日均活跃"; + case 2: + return "本月业绩"; + case 3: + return "日均"; + case 4: + return "累计日均"; + } +}; +const trsndferStatus = (status) => { + switch (status) { + case 0: + return "未知"; + case 1: + return "转账中"; + case 2: + return "转账成功"; + case 3: + return "转账失败"; + } +}; +const videoStatus = (status) => { + let statusDesc = { + Merging: "合并中", + MergeCompleted: "合并完成", + MergeError: "合并失败", + Converting: "格式转换中", + ConvertError: "转换失败", + UpLoading: "正在上传中", + Completed: "完成", + }; + return statusDesc[status] ? statusDesc[status] : "未知"; +}; +// 审核状态 +const reviewStatusFun = (value) => { + switch (value) { + case 0: + return "审核中"; + case 1: + return "通过"; + case 2: + return "拒绝"; + } +}; +// 广告链接类型 +const hrefTypeFun = (value) => { + switch (value) { + case 0: + return "外部浏览器跳转"; + case 1: + return "内部浏览器跳转"; + case 2: + return "APP内部跳转"; + } +}; + +// 广告位置 +const positionFun = (value) => { + switch (value) { + case 0: + return "启动页广告"; + case 1: + return "首页-推荐小广告"; + case 2: + return "首页-弹窗公告"; + case 3: + return "消息-界面广告"; + case 4: + return "撩吧-轮播广告"; + case 5: + return "钱包-轮播广告"; + } +}; + +// 税率等级 +const taxLevelList = (value) => { + switch (value) { + case 0: + return "70%"; + case 6: + return "60%"; + case 5: + return "50%"; + default: + return "70%"; + } +}; +// 税率等级 +const soldOutType = (value) => { + switch (value) { + case true: + return "买断"; + case false: + return "未买断"; + } +}; +// 商人类型 +const businessType = (value) => { + switch (value) { + case 1: + return "聚商"; + case 2: + return "普通商人"; + } +}; +// 模版样式(落地页配置) +const styleList = (value) => { + switch (value) { + case "switchStress": + return "突出"; + case "switchSimple": + return "简单"; + } +}; +// 模版类型(落地页配置) +const typeList = (value) => { + switch (value) { + case "iosEnterprise": + return "ios企业包开关"; + case "iosStore": + return "ios商店包开关"; + case "android": + return "安卓开关"; + } +}; +//产品类型(VIP商品列表) +const productTypeList = (value) => { + switch (value) { + case 0: + return "会员卡"; + case 3: + return "约会卡"; + case 5: + return "新手卡"; + case 6: + return "实体商品"; + case 9: + return "楼凤优惠卡"; + case 10: + return "楼凤全免卡"; + case 12: + return "裸聊服务"; + case 13: + return "视频折扣卡"; + case 14: + return "视频免费卡"; + case 20: + return "其它卡"; + case 21: + return "预售卡"; + case 22: + return "游戏预售卡"; + } +}; + +//展示样式(产品位置配置) +const showTypeList = (value) => { + switch (value) { + case 1: + return "横"; + case 2: + return "竖"; + } +}; + +//处理状态(举报信息列表) +const processingStatusList = (value) => { + switch (value) { + case 0: + return "等待处理"; + case 1: + return "处理完成"; + case 2: + return "忽略"; + } +}; +//举报类型(举报信息列表) +const feedbackTypeList = (value) => { + switch (value) { + case 1: + return "无效联系方式"; + case 2: + return "骗子"; + case 3: + return "重复信息"; + } +}; +// 置顶类型(嫩模信息列表) +const topLevels = (value) => { + switch (value) { + case 20: + return "全局置顶"; + case 10: + return "城市置顶"; + case 9: + return "城市次级置顶"; + // case 0: + // return '非置顶' + } +}; + +// 收听权限(有声小说列表) +const listenPermissions = (value) => { + switch (value) { + case 0: + return "会员"; + case 1: + return "金币购买"; + case 3: + return "试听"; + } +}; +//特权(VIP商品列表) +const privileges = (status) => { + switch (status) { + case 1: + return "专属高清线路"; + case 2: + return "私信随意聊"; + case 3: + return "优质资源"; + case 4: + return "帖子优先审核"; + case 5: + return "评论区霸主"; + case 6: + return "视频无限观看"; + case 7: + return "专属客服"; + case 8: + return "修改个人头像"; + case 9: + return "修改个性签名"; + case 10: + return "浏览小说"; + case 11: + return "畅听有声小说"; + } +}; +// 数组转字符串 +export function arryToString(val) { + if (val === undefined || val === null) { + return undefined; + } + if (Array.isArray(val)) { + return val + .filter((item) => item !== "" && item !== undefined && item !== null) + .join(","); + } + if (typeof val === "string") { + return val; + } + return String(val); +} +// 字符串转数组 +export function stringToArry(val) { + if (val === undefined || val === null) { + return []; + } + if (Array.isArray(val)) { + return val.filter( + (item) => item !== "" && item !== undefined && item !== null + ); + } + const str = String(val); + if (str === "") { + return []; + } + return str.split(/[\s+,+。+,+。+、+.+/]/g).filter((item) => item !== ""); +} +// 获取当前日期 +export function current() { + const d = new Date(); + const month = + d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1; + const date = d.getDate() < 10 ? "0" + d.getDate() : d.getDate(); + return `${d.getFullYear()}-${month}-${date}`; +} +export default { + changePosition, + changeDate, + numFormat, + commentStatus, + orderStatus, + changeSecond, + transformNumber, + transformFloat, + payTypeRule, + withdrawStatus, + activeStatus, + floatRule, + percentRule, + messTypeStatus, + senderStatus, + reStatus, + automaticStatus, + Type, + amountTypesFun, + peportTypeRule, + changeMd, + trsndferStatus, + videoStatus, + reviewStatusFun, + hrefTypeFun, + positionFun, + taxLevelList, + soldOutType, + changeTime, + businessType, + styleList, + typeList, + productTypeList, + iTofixed, + fixed2, + showTypeList, + processingStatusList, + feedbackTypeList, + topLevels, + listenPermissions, + privileges, +}; diff --git a/src/utils/gloabalComponents.js b/src/utils/gloabalComponents.js new file mode 100755 index 0000000..bcedbf4 --- /dev/null +++ b/src/utils/gloabalComponents.js @@ -0,0 +1,19 @@ +import imgLoad from "@/components/imgLoad"; +import DecryptImg from "@/components/decrypt-img/index.vue"; +import Gallery from "@/components/Gallery/index.vue"; +import imgsUpload from "@/components/imgsUpload"; +import baseUpload from "@/components/baseUpload"; +import baseUploadNew from "@/components/baseUploadNew"; +// import globalUploader from '@/components/globalUploader + +import cropper from "@/components/cropper"; +export default (Vue) => { + Vue.component("ImgLoad", imgLoad); + Vue.component("DecryptImg", DecryptImg); + Vue.component("gallery", Gallery) + Vue.component("ImgsUpload", imgsUpload); + Vue.component("BaseUpload", baseUpload); + Vue.component("BaseUploadNew", baseUploadNew); + Vue.component("Cropper", cropper); + // Vue.component('GlobalUploader', globalUploader) +}; diff --git a/src/utils/global.js b/src/utils/global.js new file mode 100755 index 0000000..a020bb2 --- /dev/null +++ b/src/utils/global.js @@ -0,0 +1,168 @@ +import moment from "moment"; +import VueRouter from "vue-router"; +// 转换排序 +const sortEscape = (string) => (string === "descending" ? 1 : -1); + +//格式化时日期 时间类型参数发送给后端服务统一处理 +const changeTime = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 19) + "+08:00"; + //let newTime = moment(string).format('YYYY-MM-DD h:mm:ss') + // 时间戳 + //let time = new Date(string) + //let newTime = Date.parse(time) / 1000 + return newTime; +}; +// 时间转换 +const changeSumDate = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 10) + "T00:00:00+08:00"; + return newTime; +}; +// bj转换成当地时间 +const changeSumDatejb = (string) => { + // 时间字符传 2019/10/01T12:00:00+07:00(后面时区固定为+07:00) + let time = moment(string).format(); + let newTime = time.slice(0, 10) + "T00:00:00+07:00"; + return newTime; +}; +// 将北京时间去掉时区 +const deleteDateZone = (time) => { + let newTime = time.substr(0, time.length - 6); + return newTime; +}; +const changeMonth = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + const time = moment(string).format() + const newTime = time.slice(0, 7) + return newTime +} +const changeDate = (time) => { + if (!time || time === "未知") { + return ""; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const changeDates = (time) => { + if (!time || time === "未知") { + return ""; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const beforeDate = (day) => { + let arr = []; + let time1 = moment().add(1, 'days').format("YYYY-MM-DD 00:00:00"); + let time2 = moment().add(0 - day, 'days').format("YYYY-MM-DD 00:00:00"); + arr.push(time2); + arr.push(time1); + return arr; +} +// 参数过滤,空的参数不传 +const paramsFilter = (obj, noFiltering) => { + let params = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if(noFiltering && noFiltering.length && noFiltering.includes(key)) { + params[key] = value + }else if (typeof value === "number" && value !== Infinity && !isNaN(value)) { + params[key] = value; + } else if (typeof value === "boolean" && value !== "") { + params[key] = value; + } else if (value === "ZERO_VALUE") { + params[key] = ""; + return; + } else if (value !== "" && value) { + params[key] = value; + } else { + return; + } + }); + return params; +}; +// 获取当前系统时间 +const nowDate = () => { + let date = new Date(); + let seperator1 = "-"; + let seperator2 = ":"; + let month = date.getMonth() + 1; + let strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + let currentdate = + date.getFullYear() + + seperator1 + + month + + seperator1 + + strDate + + " " + + date.getHours() + + seperator2 + + date.getMinutes() + + seperator2 + + date.getSeconds(); + return currentdate; +}; + +/** + * @description 将本地存储的路由转换成vue能够识别的动态路由 + * @param userRouter 用户权限路由 + * @param allRouter 全局权限路由 + */ +const recursionRouter = (userRouter = [], allRouter = []) => { + const routes = Array.isArray(userRouter) ? userRouter : []; + const allRoutes = Array.isArray(allRouter) ? allRouter : []; + let realRoutes = []; + // routerList = _.cloneDeep(allRouter), + // permList = _.cloneDeep(userRouter); + allRoutes.forEach((v) => { + routes.forEach((item) => { + // let data = {}; + if (item.path === v.path) { + // data = _.cloneDeep(v); + // delete data.children; + if (item.children && item.children.length > 0) { + v.children = recursionRouter(item.children, v.children); + } + realRoutes.push(v); + } + }); + }); + return realRoutes; +}; + +const createRouter = (routes) => + new VueRouter({ + mode: "history", + base: process.env.BASE_URL, + routes, + }); + +export { + sortEscape, + changeDate, + changeTime, + paramsFilter, + nowDate, + recursionRouter, + changeDates, + beforeDate, + deleteDateZone, + createRouter, + changeSumDate, + changeMonth, + changeSumDatejb +}; diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..5bdd4e6 --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,13 @@ +/** + * 截取url参数 + * @param {*} name 截取url参数名称 + * @returns + */ + export function getQueryString(name) { + const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); + const r = window.location.search.substring(1).match(reg); + if (r != null) { + return decodeURIComponent(r[2]); + } + return null; +} \ No newline at end of file diff --git a/src/utils/localStroage.js b/src/utils/localStroage.js new file mode 100755 index 0000000..e98cd52 --- /dev/null +++ b/src/utils/localStroage.js @@ -0,0 +1,31 @@ +import { safeJsonParse } from "./safeJsonParse"; + +/** + * @description 本地数据持久化操作,用来记录、读取、删除用户等公共数据 + */ +const local = { + // 设置键值对 + set(name, data) { + data = JSON.stringify(data); + localStorage.setItem(name, data); + }, + // 获取键值 + get(name) { + let data = localStorage.getItem(name); + if (!data) { + return null; + } + const parsed = safeJsonParse(data, null); + if (parsed === null) { + console.error(`[localStroage] invalid JSON for key "${name}", removing`); + localStorage.removeItem(name); + } + return parsed; + }, + // 删除某个键 + remove(name) { + localStorage.removeItem(name); + }, +}; + +export default local; diff --git a/src/utils/phone.js b/src/utils/phone.js new file mode 100644 index 0000000..0c51dbd --- /dev/null +++ b/src/utils/phone.js @@ -0,0 +1,7 @@ +import { parsePhoneNumberFromString } from 'libphonenumber-js' + +function IsPhone(phoneNumber) { + const p = parsePhoneNumberFromString(phoneNumber,'CN') + return p.isValid() +} +export {IsPhone} \ No newline at end of file diff --git a/src/utils/picTobase64.js b/src/utils/picTobase64.js new file mode 100644 index 0000000..629c2e2 --- /dev/null +++ b/src/utils/picTobase64.js @@ -0,0 +1,22 @@ +export function uploadImgToBase64 (img) { + return new Promise((resolve, reject) => { + function getBase64Image (img) { + const canvas = document.createElement('canvas') + canvas.width = img.width + canvas.height = img.height + const ctx = canvas.getContext('2d') + ctx.drawImage(img, 0, 0, canvas.width, canvas.height) + var dataURL = canvas.toDataURL() + return dataURL + } + + const image = new Image() + image.crossOrigin = '*' // 允许跨域图片 + image.src = img + '?v=' + Math.random() // 清除图片缓存 + image.onload = function () { + resolve(getBase64Image(image)) + } + image.onerror = reject + }) + } + diff --git a/src/utils/previewImages.js b/src/utils/previewImages.js new file mode 100644 index 0000000..3460c89 --- /dev/null +++ b/src/utils/previewImages.js @@ -0,0 +1,33 @@ + +import Vue from 'vue'; +import { Image } from 'element-ui'; + +const ElImageConstructor = Vue.extend(Image) + +const previewImages = (srcList, index = 0) => { + srcList = Array.isArray(srcList) ? srcList : srcList ? [srcList] : [] + + const initialIndex = typeof index === 'string' ? srcList.indexOf(index) : index + if (srcList.length < 1) return + const props = { + previewSrcList: srcList, + initialIndex + } + const instance = new ElImageConstructor({ + propsData: props, + watch: { + showViewer(val) { + if (!val) { + instance.$destroy() + document.body.removeChild(instance.$el) + } + } + } + }) + + instance.$mount() + document.body.appendChild(instance.$el) + instance.clickHandler.call(instance) +} + +export default previewImages \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100755 index 0000000..62a7525 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,213 @@ +import { paramsFilter } from "@/utils/global"; +import axios from "axios"; +import Api from "../api"; +import vue from "../main"; +import store from "../stroe/index"; +import local from "./localStroage.js"; +import config from "./serverUrlConfig"; +// 创建一个axios实例 +const instance = axios.create({ + baseURL: "", + timeout: 300000, +}); + +// 给实例添加一个setToken方法,用于登录后将最新token动态添加到header,同时将token保存在localStorage中 +instance.setToken = (token) => { + instance.defaults.headers["Authorization"] = token; + local.setItem("token", token); +}; +instance.defaults.headers.post["Content-Type"] = + "application/json; charset=utf-8"; +function refreshToken() { + // instance是当前request.js中已创建的axios实例 + return Api.refreshToken().then((res) => res); +} + +// 是否正在重新登陆 +let isLogining = false; +// 下次调用接口需要刷新的标识 +let needRefresh = false; +// 是否正在刷新的标记 +let isRefreshing = false; +// 重试队列,每一项将是一个待执行的函数形式 +let requests = []; + +/** 业务错误文案:部分接口返回 msg,部分返回 tip */ +function getResponseErrorMessage(data) { + if (!data) return ""; + return data.msg || data.tip || data.message || ""; +} + +// 设置请求拦截器,将token传入header传递给后端 +instance.interceptors.request.use( + (config) => { + let token = local.get("userInfo") ? local.get("userInfo").token : "", + storeToken = vue.$store.state.token; + if (storeToken !== token) { + vue.$store.dispatch("setToken", token); + } + if (token) { + config.headers["Authorization"] = token; + } + if (config.url.endsWith("refresh")) { + return config; + } + if (needRefresh) { + if (!isRefreshing) { + // eslint-disable-next-line no-const-assign + isRefreshing = true; + return refreshToken() + .then((res) => { + const { token } = res.data; + let userInfo = local.get("userInfo") ? local.get("userInfo") : {}; + userInfo = Object.assign(userInfo, { token: token }); + vue.$store.dispatch("setToken", token); + local.set("userInfo", userInfo); + + config.headers["Authorization"] = token; + isRefreshing = false; + needRefresh = false; + // 已经刷新了token,将所有队列中的请求进行重试 + requests.forEach((cb) => cb(token)); + requests = []; + return config; + }) + .catch((res) => { + window.console.log("refreshtoken error =>", res); + isRefreshing = false; + needRefresh = false; + }) + .finally(() => { + //console.log('刷新事件结束') + }); + } else { + // 正在刷新token,将返回一个未执行resolve的promise + return new Promise((resolve) => { + // 将resolve放进队列,用一个函数形式来保存,等token刷新后直接执行 + requests.push((token) => { + config.headers["Authorization"] = token; + resolve(instance(config)); + }); + }); + } + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +instance.interceptors.response.use( + (response) => { + // console.log(response) + if (response.data.type === 'application/json'){ + let reader = new FileReader(); + reader.readAsText(response.data, 'utf-8'); + reader.onload = (e) => { + let res = JSON.parse(e.target.result); + if (res.code != 200) { + const errMsg = getResponseErrorMessage(res); + if (errMsg) vue.$message.error(errMsg); + return; + } + } + } else { + if (response.headers["refresh-authorization"] === "true" && !isRefreshing) { + needRefresh = true; + } + switch (response.data.code) { + case 1003: + if (!isLogining) { + if (store.state.confirmFlag) { + vue + .$confirm("登陆信息已失效,请重新登陆!", "退出提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + isLogining = true; + local.remove("userInfo"); + local.remove("role"); + vue.$store.dispatch("removeAllTag"); + vue.$store.dispatch("setConfirmFlag"); + vue.$router.push("/login"); + }) + .catch(() => { + return Promise.reject(new Error("取消返回登陆页面")); + }) + .finally(() => { + isLogining = false; + }); + } + } + break; + case 200: + return Promise.resolve(response.data); + default: { + const errMsg = getResponseErrorMessage(response.data); + if (errMsg) { + vue.$message.error(errMsg); + throw new Error(errMsg); + } + return Promise.resolve(response.data); + } + //case 200: + // return Promise.resolve(response.data) + //default: + // vue.$message.error(response.data.tip) + // return Promise.reject(response.data.tip) + } + return Promise.resolve(response.data); + } + }, + (error) => { + return Promise.reject(error); + } +); + +const ajax = (param, noFiltering) => { + // 定义内部默认请求对象 + let defaultParam = { + url: "", + type: "get", + params: {}, + }; + // noFiltering 支持boolean array + if (param.url !== "/vid/uploadStatic" && param.params && (!noFiltering || (noFiltering && noFiltering.length))) { + param.params = paramsFilter(param.params, noFiltering); + } + // 合并请求参数 + let newParams = Object.assign(defaultParam, param); + // 设置公共请求地址、超时时间 + defaultParam.url = config.baseServerUrl + defaultParam.url; + instance.defaults.timeout = 1000 * 30; + // 返回一个ajax对象 + return new Promise((resolve, reject) => { + // 处理post、get不同请求时参数处理 + let getParams, postParams; + if (newParams.type === "get") { + getParams = newParams.params; + } else { + postParams = newParams.params; + } + instance({ + url: newParams.url, + method: newParams.type, + data: postParams, + params: getParams, + responseType: newParams.responseType, + // headers:param.headers, + // headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + // headers: { 'Content-Type': 'multipart/form-data' } + }) + .then((res) => { + resolve(res); + }) + .catch((err) => { + reject(err); + }); + }); +}; +export default ajax; diff --git a/src/utils/safeJsonParse.js b/src/utils/safeJsonParse.js new file mode 100644 index 0000000..006679b --- /dev/null +++ b/src/utils/safeJsonParse.js @@ -0,0 +1,19 @@ +/** + * 安全解析 JSON 字符串,解析失败时返回 fallback,避免裸 JSON.parse 导致页面崩溃 + * @param {string|object|null|undefined} str + * @param {*} fallback 解析失败或空值时的默认值 + */ +export function safeJsonParse(str, fallback = null) { + if (str == null || str === "") { + return fallback; + } + if (typeof str === "object") { + return str; + } + try { + return JSON.parse(str); + } catch (e) { + console.error("[safeJsonParse] failed:", e); + return fallback; + } +} diff --git a/src/utils/secretFn.js b/src/utils/secretFn.js new file mode 100755 index 0000000..33a8a7b --- /dev/null +++ b/src/utils/secretFn.js @@ -0,0 +1,25 @@ +/*** + * @param {codeArr: 十进制编码数组, secretKey: 混淆加密key, len: 混淆长度} + * @description 用户加密图片解码 + */ +const getSecretString = (codeArr, secretKey, len) => { + let resArr = [...codeArr]; + var keyCodeArr = secretKey.split('').map(item => item.charCodeAt(0).toString(10)); + for(let i = 0; i item.charCodeAt(0).toString(10)); +// let key = 'secret'; +// let len = 5; +// let test = getSecretString(aCodeArr, key,5); +// let test2 = getSecretString(test, key,5); +// let res = String.fromCharCode.apply(null , test2) +// console.log(test, test2, res); \ No newline at end of file diff --git a/src/utils/serverUrlConfig.js b/src/utils/serverUrlConfig.js new file mode 100755 index 0000000..0dda216 --- /dev/null +++ b/src/utils/serverUrlConfig.js @@ -0,0 +1,22 @@ +const baseConfig = { + baseServerUrl: "", + playVideoUrl: "/vid/m3u8/", //视频播放 + imgUrl: "", //图片预览 + newImgUrl: "", //图片预览 + downLoadUrl: "", //视频下载 +}; +if ( + process.env.NODE_ENV === "production" && + process.env.VUE_APP_TITLE === "test" +) { + baseConfig.baseServerUrl = "https://91pornht.remoces.com/api/web/admin"; +} else if (process.env.NODE_ENV === "development") { + // 测试服 + baseConfig.baseServerUrl = "https://91pornht.remoces.com/api/web/admin"; + // baseConfig.baseServerUrl = "http://192.168.1.106:6065/api/web/admin" + // 正式服 + // baseConfig.baseServerUrl = "https://admin.hxwebht.com/api/web/admin" +} else { + baseConfig.baseServerUrl = "/api/web/admin"; +} +export default baseConfig; diff --git a/src/utils/uploadConfig.js b/src/utils/uploadConfig.js new file mode 100644 index 0000000..7bd01ba --- /dev/null +++ b/src/utils/uploadConfig.js @@ -0,0 +1,8 @@ +export const ACCEPT_CONFIG = { + image: ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], + video: ['.mp4', '.rmvb', '.mkv', '.wmv', '.flv'], + document: ['.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.tif', '.tiff'], + getAll(){ + return [...this.image, ...this.video, ...this.document] + }, +}; \ No newline at end of file diff --git a/src/utils/validator.js b/src/utils/validator.js new file mode 100755 index 0000000..b09b19a --- /dev/null +++ b/src/utils/validator.js @@ -0,0 +1,227 @@ +import { IsPhone } from "./phone"; +// 非负浮点数(正浮点数 + 0)验证 +const validatorM = (rule, value, callback) => { + let reg = /^\d+(\.\d+)?$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入数字")); + } +}; +/* 合法uri*/ +const validateURL = (textval) => { + const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ + return urlregex.test(textval) +} + +// 正整数验证 +const validatorIndex = (rule, value, callback) => { + let reg = /^[0-9]*[1-9][0-9]*$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入正整数")); + } +}; +// 非负整数验证 +const validatorIn = (rule, value, callback) => { + const reg = /^[1-9]\d*$/ + if (reg.test(value) || !value) { + callback() + } else { + callback(new Error('请输入非负整数')) + } +} +// 3以上的正整数验证 +const validatorOver3 = (rule, value, callback) => { + // let reg = /^[3-9]|[1-9]\d+/; + // if (reg.test(value) || !value) { + // callback(); + // } else { + // callback(new Error("请输入3以上的正整数")); + // } + if(!value) { + callback(); + } +}; +// 非汉字验证 +const validatorHanzi = (rule, value, callback) => { + let reg = /[^\u4e00-\u9fa5]/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入非汉字字符")); + } +}; +// 0~1小数验证 +const validatorDecimal = (rule, value, callback) => { + let reg = /^(0(\.\d{1,2})?|1(\.0{1,2})?)$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入0~1的两位小数")); + } +}; +// 数字,字母,汉字校验 只含有汉字、数字、字母、下划线不能以下划线开头和结尾 +const validatorLanguage = (rule, value, callback) => { + let reg = /^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入汉字,字母,数字集合的字符串")); + } +}; +// 版本号规则 +const validatorVerName = (rule, value, callback) => { + let reg = /^[1-9][0-9]{0,}\.[0-9]{1,3}\.[0-9]{1,3}$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入[正整数].[0~999].[0~999]格式的字符")); + } +}; +// 手机号码规则 +const validatorMobile = (rule, value, callback) => { + if (value && IsPhone(value)) { + callback(); + } else { + callback(new Error("请输入带有效的手机号码")); + } +}; + +// 手机号码规则2 +const validatorMobile2 = (rule, value, callback) => { + if ((value && IsPhone(value)) || value === "") { + callback(); + } else { + callback(new Error("请输入带有效的手机号码")); + } +}; + +// 限制只能输入数字(可以输入两位小数) +const validatorFloat = (rule, value, callback) => { + let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入最多带两位小数的实数")); + } +}; +// 验证当前number只能为负数 +const validatorCutNumber = (rule, value, callback) => { + if (value <= 0) { + callback(); + } else { + callback(new Error("当前金币只能为负数")); + } +}; + +// 验证 只能输入数字、英文逗号 +const validatorNumber = (rule, value, callback) => { + let reg = /^[^,](([1-9,])(?!\2))+[^,]$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入输入数字、英文逗号")); + } +}; + +// 作品排序 +const validatorWorksSort = (rule, value, callback) => { + let reg = /^[0-5]$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入0-5的数字")); + } +}; + +// 置顶排序(允许多个视频使用相同排序号) +const validatorLiaoBaTopSort = (rule, value, callback) => { + let reg = /^\d+$/; + if (reg.test(String(value)) || value === "" || value === undefined || value === null) { + callback(); + } else { + callback(new Error("请输入非负整数")); + } +}; + +// 验证权限 +const validatorAuthority = () => { + const whitelist = ["60d2ea2a798fcb2ea8908ca8", "5f814e536d28214b61f9f677"]; + const id = JSON.parse(localStorage.getItem("userInfo")).admin.id; + let auth = false; + whitelist.forEach(i => { + if (i === id) { + auth = true; + } + }) + return auth; +}; + +// 时间格式转化 +const uniteDate = (tm) => { + if (!tm) { + return "-"; + } + let sjc = new Date(tm); + let sd = sjc.toLocaleDateString(undefined, { + hour12: false, + timeZone: "Asia/Shanghai" + }) + ' ' + sjc.toLocaleTimeString(undefined, { + hour12: false, + timeZone: "Asia/Shanghai" + }); + let cxk = sd.replace(/ 24/g, " 00"); + let lh = cxk.replace(/\//g, "-"); + return lh; +} + +export const isFullURL = (text) => { + return /^(http(s)?:\/\/)\w+[^\s]+(\.[^\s]+){1,}$/.test(text); +}; + +// SEO 语义化标识:支持小写字母、数字、常用符号,禁止中文 +const SEO_SLUG_PATTERN = /^[a-z0-9._-]+$/; + +const sanitizeSeoSlug = (value) => { + if (!value) return ''; + return String(value) + .toLowerCase() + .replace(/[\u4e00-\u9fa5]/g, '') + .replace(/\s/g, ''); +}; + +const validatorSeoSlug = (rule, value, callback) => { + if (!value) return callback(); + if (/[\u4e00-\u9fa5]/.test(value)) { + callback(new Error('不能使用中文')); + } else if (!SEO_SLUG_PATTERN.test(value)) { + callback(new Error('仅支持小写字母、数字和常用符号(.-_)')); + } else { + callback(); + } +}; + +export { + validatorIndex, + validatorOver3, + validatorFloat, + validatorDecimal, + validatorLanguage, + validatorHanzi, + validatorVerName, + validatorMobile, + validatorMobile2, + validatorCutNumber, + validatorNumber, + validatorM, + validatorIn, + validatorWorksSort, + validatorAuthority, + validatorLiaoBaTopSort, + validateURL, + uniteDate, + sanitizeSeoSlug, + validatorSeoSlug, +}; diff --git a/src/views/accountManagement/numberManagement/components/addTag.vue b/src/views/accountManagement/numberManagement/components/addTag.vue new file mode 100755 index 0000000..df9f451 --- /dev/null +++ b/src/views/accountManagement/numberManagement/components/addTag.vue @@ -0,0 +1,123 @@ + + + + diff --git a/src/views/accountManagement/numberManagement/index.vue b/src/views/accountManagement/numberManagement/index.vue new file mode 100755 index 0000000..393e19e --- /dev/null +++ b/src/views/accountManagement/numberManagement/index.vue @@ -0,0 +1,73 @@ + + diff --git a/src/views/activityManagement/buyPage/components/codeAction.vue b/src/views/activityManagement/buyPage/components/codeAction.vue new file mode 100644 index 0000000..0d11190 --- /dev/null +++ b/src/views/activityManagement/buyPage/components/codeAction.vue @@ -0,0 +1,229 @@ + + + + diff --git a/src/views/activityManagement/buyPage/components/joinNum.vue b/src/views/activityManagement/buyPage/components/joinNum.vue new file mode 100644 index 0000000..2721210 --- /dev/null +++ b/src/views/activityManagement/buyPage/components/joinNum.vue @@ -0,0 +1,81 @@ + + + + + + \ No newline at end of file diff --git a/src/views/activityManagement/buyPage/index.vue b/src/views/activityManagement/buyPage/index.vue new file mode 100644 index 0000000..6bd108d --- /dev/null +++ b/src/views/activityManagement/buyPage/index.vue @@ -0,0 +1,234 @@ + + + diff --git a/src/views/activityManagement/configurationList/components/addContent.vue b/src/views/activityManagement/configurationList/components/addContent.vue new file mode 100644 index 0000000..f53a45e --- /dev/null +++ b/src/views/activityManagement/configurationList/components/addContent.vue @@ -0,0 +1,322 @@ + + + diff --git a/src/views/activityManagement/configurationList/components/previewPicture.vue b/src/views/activityManagement/configurationList/components/previewPicture.vue new file mode 100644 index 0000000..bea0cab --- /dev/null +++ b/src/views/activityManagement/configurationList/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/activityManagement/configurationList/index.vue b/src/views/activityManagement/configurationList/index.vue new file mode 100644 index 0000000..68b2c56 --- /dev/null +++ b/src/views/activityManagement/configurationList/index.vue @@ -0,0 +1,424 @@ + + diff --git a/src/views/activityManagement/dailyTaskList/components/addContent.vue b/src/views/activityManagement/dailyTaskList/components/addContent.vue new file mode 100644 index 0000000..e5041a7 --- /dev/null +++ b/src/views/activityManagement/dailyTaskList/components/addContent.vue @@ -0,0 +1,457 @@ + + + diff --git a/src/views/activityManagement/dailyTaskList/index.vue b/src/views/activityManagement/dailyTaskList/index.vue new file mode 100644 index 0000000..7c55f85 --- /dev/null +++ b/src/views/activityManagement/dailyTaskList/index.vue @@ -0,0 +1,341 @@ + + diff --git a/src/views/activityManagement/goldeneggLog/index.vue b/src/views/activityManagement/goldeneggLog/index.vue new file mode 100644 index 0000000..87be48c --- /dev/null +++ b/src/views/activityManagement/goldeneggLog/index.vue @@ -0,0 +1,316 @@ + + + diff --git a/src/views/activityManagement/growingTaskList/components/addContent.vue b/src/views/activityManagement/growingTaskList/components/addContent.vue new file mode 100644 index 0000000..835f165 --- /dev/null +++ b/src/views/activityManagement/growingTaskList/components/addContent.vue @@ -0,0 +1,392 @@ + + + diff --git a/src/views/activityManagement/growingTaskList/components/detailDialog.vue b/src/views/activityManagement/growingTaskList/components/detailDialog.vue new file mode 100644 index 0000000..bdce8cd --- /dev/null +++ b/src/views/activityManagement/growingTaskList/components/detailDialog.vue @@ -0,0 +1,125 @@ + + \ No newline at end of file diff --git a/src/views/activityManagement/growingTaskList/index.vue b/src/views/activityManagement/growingTaskList/index.vue new file mode 100644 index 0000000..eafac50 --- /dev/null +++ b/src/views/activityManagement/growingTaskList/index.vue @@ -0,0 +1,346 @@ + + diff --git a/src/views/activityManagement/listOfPrizes/components/addContent.vue b/src/views/activityManagement/listOfPrizes/components/addContent.vue new file mode 100644 index 0000000..63b5521 --- /dev/null +++ b/src/views/activityManagement/listOfPrizes/components/addContent.vue @@ -0,0 +1,208 @@ + + + \ No newline at end of file diff --git a/src/views/activityManagement/listOfPrizes/index.vue b/src/views/activityManagement/listOfPrizes/index.vue new file mode 100644 index 0000000..1431f81 --- /dev/null +++ b/src/views/activityManagement/listOfPrizes/index.vue @@ -0,0 +1,172 @@ + + \ No newline at end of file diff --git a/src/views/activityManagement/lotteryList/index.vue b/src/views/activityManagement/lotteryList/index.vue new file mode 100644 index 0000000..9e42b49 --- /dev/null +++ b/src/views/activityManagement/lotteryList/index.vue @@ -0,0 +1,157 @@ + + + diff --git a/src/views/activityManagement/newActivityList/index.vue b/src/views/activityManagement/newActivityList/index.vue new file mode 100644 index 0000000..389ca56 --- /dev/null +++ b/src/views/activityManagement/newActivityList/index.vue @@ -0,0 +1,547 @@ + + + diff --git a/src/views/activityManagement/oneTaskList/components/addContent.vue b/src/views/activityManagement/oneTaskList/components/addContent.vue new file mode 100644 index 0000000..476a0b5 --- /dev/null +++ b/src/views/activityManagement/oneTaskList/components/addContent.vue @@ -0,0 +1,395 @@ + + + diff --git a/src/views/activityManagement/oneTaskList/index.vue b/src/views/activityManagement/oneTaskList/index.vue new file mode 100644 index 0000000..8804a03 --- /dev/null +++ b/src/views/activityManagement/oneTaskList/index.vue @@ -0,0 +1,325 @@ + + diff --git a/src/views/activityManagement/prizepoolList/components/prizeListAction.vue b/src/views/activityManagement/prizepoolList/components/prizeListAction.vue new file mode 100755 index 0000000..114334e --- /dev/null +++ b/src/views/activityManagement/prizepoolList/components/prizeListAction.vue @@ -0,0 +1,185 @@ + + + + diff --git a/src/views/activityManagement/prizepoolList/index.vue b/src/views/activityManagement/prizepoolList/index.vue new file mode 100644 index 0000000..b9d4355 --- /dev/null +++ b/src/views/activityManagement/prizepoolList/index.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/views/activityManagement/redemptionCode/components/codeAction.vue b/src/views/activityManagement/redemptionCode/components/codeAction.vue new file mode 100644 index 0000000..ee2d180 --- /dev/null +++ b/src/views/activityManagement/redemptionCode/components/codeAction.vue @@ -0,0 +1,399 @@ + + + + diff --git a/src/views/activityManagement/redemptionCode/index.vue b/src/views/activityManagement/redemptionCode/index.vue new file mode 100644 index 0000000..e14a807 --- /dev/null +++ b/src/views/activityManagement/redemptionCode/index.vue @@ -0,0 +1,488 @@ + + + diff --git a/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue b/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue new file mode 100644 index 0000000..ad54293 --- /dev/null +++ b/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/activityManagement/redemptionConfiguration/index.vue b/src/views/activityManagement/redemptionConfiguration/index.vue new file mode 100644 index 0000000..00a5762 --- /dev/null +++ b/src/views/activityManagement/redemptionConfiguration/index.vue @@ -0,0 +1,171 @@ + + + diff --git a/src/views/activityManagement/redemptionLog/index.vue b/src/views/activityManagement/redemptionLog/index.vue new file mode 100644 index 0000000..f28bfa9 --- /dev/null +++ b/src/views/activityManagement/redemptionLog/index.vue @@ -0,0 +1,239 @@ + + + diff --git a/src/views/activityManagement/redemptionPrize/components/prizeAction.vue b/src/views/activityManagement/redemptionPrize/components/prizeAction.vue new file mode 100644 index 0000000..1465e26 --- /dev/null +++ b/src/views/activityManagement/redemptionPrize/components/prizeAction.vue @@ -0,0 +1,453 @@ + + + + diff --git a/src/views/activityManagement/redemptionPrize/index.vue b/src/views/activityManagement/redemptionPrize/index.vue new file mode 100644 index 0000000..50d4639 --- /dev/null +++ b/src/views/activityManagement/redemptionPrize/index.vue @@ -0,0 +1,429 @@ + + + diff --git a/src/views/activityManagement/tenderActivity/index.vue b/src/views/activityManagement/tenderActivity/index.vue new file mode 100644 index 0000000..4953b8e --- /dev/null +++ b/src/views/activityManagement/tenderActivity/index.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/activityManagement/webActivity/components/activeAction.vue b/src/views/activityManagement/webActivity/components/activeAction.vue new file mode 100755 index 0000000..e5eeff9 --- /dev/null +++ b/src/views/activityManagement/webActivity/components/activeAction.vue @@ -0,0 +1,158 @@ + + + + diff --git a/src/views/activityManagement/webActivity/index.vue b/src/views/activityManagement/webActivity/index.vue new file mode 100755 index 0000000..80330f9 --- /dev/null +++ b/src/views/activityManagement/webActivity/index.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/actressManagement/actressList/index.vue b/src/views/actressManagement/actressList/index.vue new file mode 100644 index 0000000..9a7212d --- /dev/null +++ b/src/views/actressManagement/actressList/index.vue @@ -0,0 +1,387 @@ + + + diff --git a/src/views/administrators/adminList/components/addAdmin.vue b/src/views/administrators/adminList/components/addAdmin.vue new file mode 100755 index 0000000..f1c1c05 --- /dev/null +++ b/src/views/administrators/adminList/components/addAdmin.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/src/views/administrators/adminList/index.vue b/src/views/administrators/adminList/index.vue new file mode 100755 index 0000000..6695bb0 --- /dev/null +++ b/src/views/administrators/adminList/index.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/views/administrators/adminLog/cmoponents/editLog.vue b/src/views/administrators/adminLog/cmoponents/editLog.vue new file mode 100644 index 0000000..e0ffe38 --- /dev/null +++ b/src/views/administrators/adminLog/cmoponents/editLog.vue @@ -0,0 +1,98 @@ + + + \ No newline at end of file diff --git a/src/views/administrators/adminLog/components/editLog.vue b/src/views/administrators/adminLog/components/editLog.vue new file mode 100755 index 0000000..e0ffe38 --- /dev/null +++ b/src/views/administrators/adminLog/components/editLog.vue @@ -0,0 +1,98 @@ + + + \ No newline at end of file diff --git a/src/views/administrators/adminLog/index.vue b/src/views/administrators/adminLog/index.vue new file mode 100755 index 0000000..3939b3f --- /dev/null +++ b/src/views/administrators/adminLog/index.vue @@ -0,0 +1,227 @@ + + diff --git a/src/views/advertisingManagement/adList/components/addPage.vue b/src/views/advertisingManagement/adList/components/addPage.vue new file mode 100644 index 0000000..63a7830 --- /dev/null +++ b/src/views/advertisingManagement/adList/components/addPage.vue @@ -0,0 +1,542 @@ + + + + diff --git a/src/views/advertisingManagement/adList/index.vue b/src/views/advertisingManagement/adList/index.vue new file mode 100755 index 0000000..0b51f52 --- /dev/null +++ b/src/views/advertisingManagement/adList/index.vue @@ -0,0 +1,278 @@ + + + + diff --git a/src/views/advertisingManagement/announcementManagement/components/annouAction.vue b/src/views/advertisingManagement/announcementManagement/components/annouAction.vue new file mode 100755 index 0000000..e6704b3 --- /dev/null +++ b/src/views/advertisingManagement/announcementManagement/components/annouAction.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/advertisingManagement/announcementManagement/index.vue b/src/views/advertisingManagement/announcementManagement/index.vue new file mode 100755 index 0000000..c026364 --- /dev/null +++ b/src/views/advertisingManagement/announcementManagement/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/advertisingManagement/clickLog/index.vue b/src/views/advertisingManagement/clickLog/index.vue new file mode 100755 index 0000000..59fb085 --- /dev/null +++ b/src/views/advertisingManagement/clickLog/index.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/agentDistrictProvider/adReview/components/check.vue b/src/views/agentDistrictProvider/adReview/components/check.vue new file mode 100644 index 0000000..1cadff4 --- /dev/null +++ b/src/views/agentDistrictProvider/adReview/components/check.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/views/agentDistrictProvider/adReview/index.vue b/src/views/agentDistrictProvider/adReview/index.vue new file mode 100644 index 0000000..462a316 --- /dev/null +++ b/src/views/agentDistrictProvider/adReview/index.vue @@ -0,0 +1,267 @@ + + + + diff --git a/src/views/agentDistrictProvider/dayTable/define.js b/src/views/agentDistrictProvider/dayTable/define.js new file mode 100644 index 0000000..9e2e9fb --- /dev/null +++ b/src/views/agentDistrictProvider/dayTable/define.js @@ -0,0 +1,65 @@ +export var LableMap = { + sumDate: "日期", + districtCode: "商区码", + discType: "商区类型", + name: "账号", + remark: "备注", + newUIDCount: "注册数", + newDirectUIDCount: "直推注册数", + newFissionUIDCount: "分裂注册数", + userFissionRatio: "用户分裂率", + buyVIPCount: "VIP数", + directBuyVIPCount: "直推VIP数", + fissionBuyVIPCount: "分裂VIP数", + buyVIPAmount: "VIP金额(元)", + directBuyVIPAmount: "直推VIP金额(元)", + fissionBuyVIPAmount: "分裂VIP金额(元)", + buyVIPUIDCount: "VIP用户数", + directBuyVIPUIDCount: "直推VIP用户数", + fissionBuyVIPUIDCount: "分裂VIP用户数", + buyVIDTaxAmount: "视频收益(元)", + directBuyVIDTaxAmount: "直推视频收益(元)", + fissionBuyVIDTaxAmount: "分裂视频收益(元)", + consume: "消费(元)", + directConsume: "直推消费(元)", + fissionConsume: "分裂消费(元)", + arpu: "ARPU", + directARPU: "直推ARPU", + fissionARPU: "分裂ARPU", + newAndRechargeOrderCount: "新增充值单数", + newAndRechargeOrderYuan: "新增充值金额(元)", + rechargeCompleteOrderCount: "充值单数", + directRechargePaidOrderCount: "直推充值单数", + fissionRechargePaidOrderCount: "分裂充值单数", + rechargeCompleteOrderAmount: "充值金额(元)", + directRechargePaidAmount: "直推充值(元)", + fissionRechargePaidAmount: "分裂充值(元)", + withDrawOrderCount: "总提现单数", + withDrawOrderAmount: "总提现(元)", + withDrawCompleteOrderCount: "完成提现单数", + withDrawCompleteOrderAmount: "完成提现(元)", + withDrawPaidOrderCount: "出款单数", + directWithDrawPaidOrderCount: "直推出款单数", + fissionWithDrawPaidOrderCount: "分裂出款单数", + withDrawPaidAmount: "出款金额(元)", + directWithDrawPaidAmount: "直推出款(元)", + fissionWithDrawPaidAmount: "分裂出款(元)", + visitUIDCount: "日活跃", + directVisitUIDCount: "直推日活跃", + fissionVisitUIDCount: "分裂日活跃", + nextDayRetainUIDRatio: "次日留存率", + day3RetainUIDRatio: "3日留存率", + day7RetainUIDRatio: "7日留存率", + day15RetainUIDRatio: "15日留存率", + day30RetainUIDRatio: "30日留存率", + directNextDayRetainUIDRatio: "直推次日留存率", + directDay3RetainUIDRatio: "直推3日留存率", + directDay7RetainUIDRatio: "直推7日留存率", + directDay15RetainUIDRatio: "直推15日留存率", + directDay30RetainUIDRatio: "直推30日留存率", + fissionNextDayRetainUIDRatio: "分裂次日留存率", + fissionDay3RetainUIDRatio: "分裂3日留存率", + fissionDay7RetainUIDRatio: "分裂7日留存率", + fissionDay15RetainUIDRatio: "分裂15日留存率", + fissionDay30RetainUIDRatio: "分裂30日留存率", +}; diff --git a/src/views/agentDistrictProvider/dayTable/index.vue b/src/views/agentDistrictProvider/dayTable/index.vue new file mode 100644 index 0000000..f0c9d6d --- /dev/null +++ b/src/views/agentDistrictProvider/dayTable/index.vue @@ -0,0 +1,1006 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue new file mode 100644 index 0000000..d4f712a --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue new file mode 100644 index 0000000..b6f5ff2 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue @@ -0,0 +1,170 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue new file mode 100644 index 0000000..3f7674d --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue @@ -0,0 +1,211 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue new file mode 100644 index 0000000..7a7debd --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue @@ -0,0 +1,162 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue new file mode 100644 index 0000000..48ae96e --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue @@ -0,0 +1,353 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue new file mode 100644 index 0000000..cb19910 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue @@ -0,0 +1,343 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue new file mode 100755 index 0000000..2b8e871 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue new file mode 100644 index 0000000..7c9aa07 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue @@ -0,0 +1,53 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue new file mode 100644 index 0000000..2a02c2e --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue @@ -0,0 +1,197 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue b/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue new file mode 100644 index 0000000..87abee6 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue @@ -0,0 +1,308 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue b/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue new file mode 100644 index 0000000..7025a03 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue @@ -0,0 +1,872 @@ + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue b/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue new file mode 100644 index 0000000..4e116e5 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue @@ -0,0 +1,260 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue b/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue new file mode 100644 index 0000000..04021f3 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue @@ -0,0 +1,462 @@ + + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue new file mode 100644 index 0000000..439e304 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue @@ -0,0 +1,345 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/index.vue b/src/views/agentDistrictProvider/districtProvider/index.vue new file mode 100755 index 0000000..729e5d2 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/index.vue @@ -0,0 +1,522 @@ + + + + + diff --git a/src/views/agentDistrictProvider/domainList/components/editPage.vue b/src/views/agentDistrictProvider/domainList/components/editPage.vue new file mode 100644 index 0000000..763807f --- /dev/null +++ b/src/views/agentDistrictProvider/domainList/components/editPage.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/agentDistrictProvider/domainList/index.vue b/src/views/agentDistrictProvider/domainList/index.vue new file mode 100644 index 0000000..6f92352 --- /dev/null +++ b/src/views/agentDistrictProvider/domainList/index.vue @@ -0,0 +1,179 @@ + + + + + + diff --git a/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue b/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue new file mode 100644 index 0000000..15d921f --- /dev/null +++ b/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue @@ -0,0 +1,694 @@ + + + diff --git a/src/views/agentDistrictProvider/manageAuthrity/index.vue b/src/views/agentDistrictProvider/manageAuthrity/index.vue new file mode 100644 index 0000000..964b123 --- /dev/null +++ b/src/views/agentDistrictProvider/manageAuthrity/index.vue @@ -0,0 +1,277 @@ + + + diff --git a/src/views/agentDistrictProvider/monthTable/define.js b/src/views/agentDistrictProvider/monthTable/define.js new file mode 100644 index 0000000..50227ab --- /dev/null +++ b/src/views/agentDistrictProvider/monthTable/define.js @@ -0,0 +1,11 @@ +export var LableMap = { + remark: "备注", + discType: "商区类型", + disc: "商区", + name: "账号", + totalNewUser: "本月注册", + avgVisit: "日均活跃", + mp: "本月业绩", + avgARPU: "日均", + sumAvgARPU: "累计日均", +}; diff --git a/src/views/agentDistrictProvider/monthTable/index.vue b/src/views/agentDistrictProvider/monthTable/index.vue new file mode 100644 index 0000000..5a6bcae --- /dev/null +++ b/src/views/agentDistrictProvider/monthTable/index.vue @@ -0,0 +1,390 @@ + + + + + + diff --git a/src/views/agentManagement/domainManagement/components/addTag.vue b/src/views/agentManagement/domainManagement/components/addTag.vue new file mode 100755 index 0000000..5b69b0f --- /dev/null +++ b/src/views/agentManagement/domainManagement/components/addTag.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/agentManagement/domainManagement/index.vue b/src/views/agentManagement/domainManagement/index.vue new file mode 100755 index 0000000..57b975e --- /dev/null +++ b/src/views/agentManagement/domainManagement/index.vue @@ -0,0 +1,124 @@ + + diff --git a/src/views/agentManagement/extensionLog/index.vue b/src/views/agentManagement/extensionLog/index.vue new file mode 100755 index 0000000..fe44f66 --- /dev/null +++ b/src/views/agentManagement/extensionLog/index.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/views/agentManagement/promotionHierarchy/index.vue b/src/views/agentManagement/promotionHierarchy/index.vue new file mode 100755 index 0000000..fb44cd0 --- /dev/null +++ b/src/views/agentManagement/promotionHierarchy/index.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/views/agentManagement/proxyList/components/detailRecord.vue b/src/views/agentManagement/proxyList/components/detailRecord.vue new file mode 100755 index 0000000..8d027b6 --- /dev/null +++ b/src/views/agentManagement/proxyList/components/detailRecord.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/agentManagement/proxyList/index.vue b/src/views/agentManagement/proxyList/index.vue new file mode 100755 index 0000000..4993325 --- /dev/null +++ b/src/views/agentManagement/proxyList/index.vue @@ -0,0 +1,142 @@ + + diff --git a/src/views/aiManagement/AIDrawList/components/EditStatus.vue b/src/views/aiManagement/AIDrawList/components/EditStatus.vue new file mode 100644 index 0000000..2f6a827 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/components/EditStatus.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/aiManagement/AIDrawList/components/TagEdit.vue b/src/views/aiManagement/AIDrawList/components/TagEdit.vue new file mode 100644 index 0000000..bf86433 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/components/TagEdit.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/views/aiManagement/AIDrawList/config.js b/src/views/aiManagement/AIDrawList/config.js new file mode 100644 index 0000000..e3ef80a --- /dev/null +++ b/src/views/aiManagement/AIDrawList/config.js @@ -0,0 +1,25 @@ + +export const statusOptions = [ + { label: "下单成功", value: 1, type: "" }, + { label: "已提交", value: 2, type: "info" }, + { label: "生成成功", value: 3, type: "success" }, + { label: "生成失败", value: 4, type: "danger" }, + { label: "退款", value: 5, type: "warning" }, +]; + +export const findLabel = (val, opts) => { + const cur = opts.find((v) => v.value === val); + if (cur) return cur.label; + return "-"; +}; + +export const findStatusLabel = (val) => { + const label = findLabel(val, statusOptions); + return label; +}; + +export const findStatusType = (val) => { + const cur = statusOptions.find((v) => v.value === val); + if (cur) return cur.type; + return ""; +}; diff --git a/src/views/aiManagement/AIDrawList/index.vue b/src/views/aiManagement/AIDrawList/index.vue new file mode 100644 index 0000000..666d126 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/views/aiManagement/AiTemplate/editOrAdd.vue b/src/views/aiManagement/AiTemplate/editOrAdd.vue new file mode 100644 index 0000000..9fe46d9 --- /dev/null +++ b/src/views/aiManagement/AiTemplate/editOrAdd.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/views/aiManagement/AiTemplate/index.vue b/src/views/aiManagement/AiTemplate/index.vue new file mode 100644 index 0000000..7dbf468 --- /dev/null +++ b/src/views/aiManagement/AiTemplate/index.vue @@ -0,0 +1,150 @@ + + \ No newline at end of file diff --git a/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue b/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue new file mode 100644 index 0000000..5ecf346 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue b/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue new file mode 100644 index 0000000..922489d --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue @@ -0,0 +1,123 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceImgList/index.vue b/src/views/aiManagement/aiChangeFaceImgList/index.vue new file mode 100644 index 0000000..55a4ab5 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/index.vue @@ -0,0 +1,481 @@ + + + + + diff --git a/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue b/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue new file mode 100644 index 0000000..5069bee --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceList/index.vue b/src/views/aiManagement/aiChangeFaceList/index.vue new file mode 100644 index 0000000..556a0bb --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceList/index.vue @@ -0,0 +1,728 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceStencil/index.vue b/src/views/aiManagement/aiChangeFaceStencil/index.vue new file mode 100644 index 0000000..e8d7a44 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceStencil/index.vue @@ -0,0 +1,973 @@ + + + diff --git a/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue b/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue new file mode 100644 index 0000000..2f6a827 --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue b/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue new file mode 100644 index 0000000..bf86433 --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/views/aiManagement/aiImageToVideoList/config.js b/src/views/aiManagement/aiImageToVideoList/config.js new file mode 100644 index 0000000..9e1db3f --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/config.js @@ -0,0 +1,72 @@ +import API from "@/api"; +export const statusOptions = [ + { label: "下单成功", value: 1, type: "" }, + { label: "已提交", value: 2, type: "info" }, + { label: "生成成功", value: 3, type: "success" }, + { label: "生成失败", value: 4, type: "danger" }, + { label: "退款", value: 5, type: "warning" }, +]; + +export const statusAiPlazaListOptions = [ + { label: "待审核", value: 0, type: "warning" }, + { label: "通过", value: 1, type: "success" }, + { label: "拒绝", value: 2, type: "danger" }, + { label: "下架", value: 3, type: "info" }, +]; +export const typeOptions = [ + { label: "ai图片换脸", value: 1, type: "success" }, + { label: "ai视频换脸", value: 2, type: "danger" }, + { label: "ai脱衣", value: 3, type: "warning" }, + { label: "ai图生视频", value: 4, type: "info" }, + { label: "ai绘画", value: 5, type: "danger" }, +]; + +export const sceneTypes = [ + { label: "掀衣露乳", value: 0 }, + { label: "男人撕衣", value: 1 }, + { label: "神屌射脸", value: 2 }, + { label: "阿黑颜", value: 3 }, + { label: "接吻", value: 4 }, + { label: "吸奶", value: 5 }, + { label: "露逼", value: 6 }, +]; +export const findLabel = (val, opts) => { + const cur = opts.find((v) => v.value === val); + if (cur) return cur.label; + return "-"; +}; + +export const findStatusLabel = (val) => { + const label = findLabel(val, statusOptions); + return label; +}; + +export const findStatusType = (val) => { + const cur = statusOptions.find((v) => v.value === val); + if (cur) return cur.type; + return ""; +}; + +export const sceneTypeMixin = { + data() { + return { + sceneTypes, + }; + }, + mounted() { + this.syncAllScene(); + }, + methods: { + async syncAllScene() { + try { + const r = await API.getAllScene(); + this.sceneTypes = (r.data || []).map((it) => ({ + ...it, + label: it.name, + })); + } catch (error) { + console.error("syncAllScene error:", error); + } + }, + }, +}; diff --git a/src/views/aiManagement/aiImageToVideoList/index.vue b/src/views/aiManagement/aiImageToVideoList/index.vue new file mode 100644 index 0000000..a4463fb --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/index.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/aiManagement/aiNovelList/index.vue b/src/views/aiManagement/aiNovelList/index.vue new file mode 100644 index 0000000..b21e3e8 --- /dev/null +++ b/src/views/aiManagement/aiNovelList/index.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/views/aiManagement/aiPlazaList/index.vue b/src/views/aiManagement/aiPlazaList/index.vue new file mode 100644 index 0000000..ce5b5cc --- /dev/null +++ b/src/views/aiManagement/aiPlazaList/index.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue b/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue new file mode 100644 index 0000000..5ecf346 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/aiManagement/aiTradeList/components/previewPicture.vue b/src/views/aiManagement/aiTradeList/components/previewPicture.vue new file mode 100644 index 0000000..26428a7 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/components/previewPicture.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/aiManagement/aiTradeList/index.vue b/src/views/aiManagement/aiTradeList/index.vue new file mode 100644 index 0000000..c5d3540 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/index.vue @@ -0,0 +1,682 @@ + + + + + diff --git a/src/views/aiManagement/aimatev2OrderLogs/index.vue b/src/views/aiManagement/aimatev2OrderLogs/index.vue new file mode 100644 index 0000000..419e999 --- /dev/null +++ b/src/views/aiManagement/aimatev2OrderLogs/index.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/views/aiManagement/components/UpdateAiPlaza.vue b/src/views/aiManagement/components/UpdateAiPlaza.vue new file mode 100644 index 0000000..375716e --- /dev/null +++ b/src/views/aiManagement/components/UpdateAiPlaza.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/aiManagement/components/VideoPlayIcon.vue b/src/views/aiManagement/components/VideoPlayIcon.vue new file mode 100644 index 0000000..24c1031 --- /dev/null +++ b/src/views/aiManagement/components/VideoPlayIcon.vue @@ -0,0 +1,33 @@ + + + + diff --git a/src/views/aiManagement/components/preview-video.vue b/src/views/aiManagement/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/aiManagement/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/animationManage/acgVidResCfg/components/preview-video.vue b/src/views/animationManage/acgVidResCfg/components/preview-video.vue new file mode 100644 index 0000000..ab85fdb --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/preview-video.vue @@ -0,0 +1,126 @@ + + + + + \ No newline at end of file diff --git a/src/views/animationManage/acgVidResCfg/components/previewPicture.vue b/src/views/animationManage/acgVidResCfg/components/previewPicture.vue new file mode 100644 index 0000000..d6c37e1 --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue b/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue new file mode 100755 index 0000000..b7b75d4 --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue @@ -0,0 +1,883 @@ + + + diff --git a/src/views/animationManage/acgVidResCfg/index.vue b/src/views/animationManage/acgVidResCfg/index.vue new file mode 100644 index 0000000..a32153d --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/index.vue @@ -0,0 +1,772 @@ + + + + + diff --git a/src/views/animationManage/animeContentList/index.vue b/src/views/animationManage/animeContentList/index.vue new file mode 100644 index 0000000..23a2d7d --- /dev/null +++ b/src/views/animationManage/animeContentList/index.vue @@ -0,0 +1,749 @@ + + + diff --git a/src/views/animationManage/animeList/components/preview-media.vue b/src/views/animationManage/animeList/components/preview-media.vue new file mode 100755 index 0000000..d920c0b --- /dev/null +++ b/src/views/animationManage/animeList/components/preview-media.vue @@ -0,0 +1,1500 @@ + + + + diff --git a/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue b/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue new file mode 100644 index 0000000..8c14a2d --- /dev/null +++ b/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/views/animationManage/animeList/components/updatePricePopup.vue b/src/views/animationManage/animeList/components/updatePricePopup.vue new file mode 100644 index 0000000..d66e8fb --- /dev/null +++ b/src/views/animationManage/animeList/components/updatePricePopup.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/views/animationManage/animeList/components/updateTagsPopup.vue b/src/views/animationManage/animeList/components/updateTagsPopup.vue new file mode 100644 index 0000000..6a475cd --- /dev/null +++ b/src/views/animationManage/animeList/components/updateTagsPopup.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/animationManage/animeList/index.vue b/src/views/animationManage/animeList/index.vue new file mode 100644 index 0000000..0887efa --- /dev/null +++ b/src/views/animationManage/animeList/index.vue @@ -0,0 +1,2337 @@ + + + diff --git a/src/views/animationManage/animeTagsList/index.vue b/src/views/animationManage/animeTagsList/index.vue new file mode 100644 index 0000000..7867075 --- /dev/null +++ b/src/views/animationManage/animeTagsList/index.vue @@ -0,0 +1,764 @@ + + + diff --git a/src/views/animationManage/bulkUpload/addMedia.vue b/src/views/animationManage/bulkUpload/addMedia.vue new file mode 100644 index 0000000..fd73ab1 --- /dev/null +++ b/src/views/animationManage/bulkUpload/addMedia.vue @@ -0,0 +1,890 @@ + + + + + diff --git a/src/views/animationManage/bulkUpload/index.vue b/src/views/animationManage/bulkUpload/index.vue new file mode 100644 index 0000000..4e907a7 --- /dev/null +++ b/src/views/animationManage/bulkUpload/index.vue @@ -0,0 +1,458 @@ + + + + diff --git a/src/views/animationManage/latitudeList/index.vue b/src/views/animationManage/latitudeList/index.vue new file mode 100644 index 0000000..8bcecc6 --- /dev/null +++ b/src/views/animationManage/latitudeList/index.vue @@ -0,0 +1,486 @@ + + + diff --git a/src/views/animationManage/recommendList/components/previewPicture.vue b/src/views/animationManage/recommendList/components/previewPicture.vue new file mode 100644 index 0000000..f7de0c6 --- /dev/null +++ b/src/views/animationManage/recommendList/components/previewPicture.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/animationManage/recommendList/index.vue b/src/views/animationManage/recommendList/index.vue new file mode 100644 index 0000000..35fc7b8 --- /dev/null +++ b/src/views/animationManage/recommendList/index.vue @@ -0,0 +1,1061 @@ + + + diff --git a/src/views/animationManage/recommendSignature/components/addTag.vue b/src/views/animationManage/recommendSignature/components/addTag.vue new file mode 100755 index 0000000..97d710c --- /dev/null +++ b/src/views/animationManage/recommendSignature/components/addTag.vue @@ -0,0 +1,293 @@ + + + + diff --git a/src/views/animationManage/recommendSignature/index.vue b/src/views/animationManage/recommendSignature/index.vue new file mode 100644 index 0000000..2a92a0f --- /dev/null +++ b/src/views/animationManage/recommendSignature/index.vue @@ -0,0 +1,296 @@ + + diff --git a/src/views/animationManage/subsetBatchUpdList/addMedia.vue b/src/views/animationManage/subsetBatchUpdList/addMedia.vue new file mode 100644 index 0000000..7ff450a --- /dev/null +++ b/src/views/animationManage/subsetBatchUpdList/addMedia.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/src/views/animationManage/subsetBatchUpdList/index.vue b/src/views/animationManage/subsetBatchUpdList/index.vue new file mode 100644 index 0000000..d5d2e1d --- /dev/null +++ b/src/views/animationManage/subsetBatchUpdList/index.vue @@ -0,0 +1,461 @@ + + + + diff --git a/src/views/animationManage/taskList/components/previewPicture.vue b/src/views/animationManage/taskList/components/previewPicture.vue new file mode 100644 index 0000000..de34e94 --- /dev/null +++ b/src/views/animationManage/taskList/components/previewPicture.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/animationManage/taskList/index.vue b/src/views/animationManage/taskList/index.vue new file mode 100644 index 0000000..5ce6678 --- /dev/null +++ b/src/views/animationManage/taskList/index.vue @@ -0,0 +1,713 @@ + + + diff --git a/src/views/avcomment/avCommentConfig/components/addImage.vue b/src/views/avcomment/avCommentConfig/components/addImage.vue new file mode 100755 index 0000000..d784aa5 --- /dev/null +++ b/src/views/avcomment/avCommentConfig/components/addImage.vue @@ -0,0 +1,94 @@ + + + + + \ No newline at end of file diff --git a/src/views/avcomment/avCommentConfig/components/look.vue b/src/views/avcomment/avCommentConfig/components/look.vue new file mode 100644 index 0000000..e5dd32c --- /dev/null +++ b/src/views/avcomment/avCommentConfig/components/look.vue @@ -0,0 +1,142 @@ + + + + \ No newline at end of file diff --git a/src/views/avcomment/avCommentConfig/index.vue b/src/views/avcomment/avCommentConfig/index.vue new file mode 100755 index 0000000..bf8ea31 --- /dev/null +++ b/src/views/avcomment/avCommentConfig/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/views/avcomment/list/components/edit-video.vue b/src/views/avcomment/list/components/edit-video.vue new file mode 100755 index 0000000..5f21de1 --- /dev/null +++ b/src/views/avcomment/list/components/edit-video.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/src/views/avcomment/list/components/look.vue b/src/views/avcomment/list/components/look.vue new file mode 100644 index 0000000..3cb4304 --- /dev/null +++ b/src/views/avcomment/list/components/look.vue @@ -0,0 +1,78 @@ + + + + \ No newline at end of file diff --git a/src/views/avcomment/list/components/preview-video.vue b/src/views/avcomment/list/components/preview-video.vue new file mode 100644 index 0000000..c40bcba --- /dev/null +++ b/src/views/avcomment/list/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/avcomment/list/index.vue b/src/views/avcomment/list/index.vue new file mode 100755 index 0000000..2434e61 --- /dev/null +++ b/src/views/avcomment/list/index.vue @@ -0,0 +1,314 @@ + + + + diff --git a/src/views/businessmanManagement/balanceList/index.vue b/src/views/businessmanManagement/balanceList/index.vue new file mode 100644 index 0000000..8ed54cb --- /dev/null +++ b/src/views/businessmanManagement/balanceList/index.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue b/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue new file mode 100644 index 0000000..69a2a5c --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/components/editBill.vue b/src/views/businessmanManagement/businessmanList/components/editBill.vue new file mode 100644 index 0000000..59372b9 --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/editBill.vue @@ -0,0 +1,225 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/components/queryInfo.vue b/src/views/businessmanManagement/businessmanList/components/queryInfo.vue new file mode 100644 index 0000000..b4af392 --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/queryInfo.vue @@ -0,0 +1,130 @@ + + diff --git a/src/views/businessmanManagement/businessmanList/components/seekScore.vue b/src/views/businessmanManagement/businessmanList/components/seekScore.vue new file mode 100644 index 0000000..0e6b82b --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/seekScore.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/index.vue b/src/views/businessmanManagement/businessmanList/index.vue new file mode 100644 index 0000000..e99a7be --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/index.vue @@ -0,0 +1,286 @@ + + + diff --git a/src/views/businessmanManagement/rechargeList/components/edit-desc.vue b/src/views/businessmanManagement/rechargeList/components/edit-desc.vue new file mode 100755 index 0000000..8fa415f --- /dev/null +++ b/src/views/businessmanManagement/rechargeList/components/edit-desc.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/businessmanManagement/rechargeList/index.vue b/src/views/businessmanManagement/rechargeList/index.vue new file mode 100755 index 0000000..28d9869 --- /dev/null +++ b/src/views/businessmanManagement/rechargeList/index.vue @@ -0,0 +1,372 @@ + + + + diff --git a/src/views/channelBackground/automaticBilling/components/editBill.vue b/src/views/channelBackground/automaticBilling/components/editBill.vue new file mode 100644 index 0000000..f137823 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/components/editBill.vue @@ -0,0 +1,122 @@ + + + \ No newline at end of file diff --git a/src/views/channelBackground/automaticBilling/components/queryInfo.vue b/src/views/channelBackground/automaticBilling/components/queryInfo.vue new file mode 100644 index 0000000..b4af392 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/components/queryInfo.vue @@ -0,0 +1,130 @@ + + diff --git a/src/views/channelBackground/automaticBilling/index.vue b/src/views/channelBackground/automaticBilling/index.vue new file mode 100644 index 0000000..2342bf1 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/index.vue @@ -0,0 +1,230 @@ + + + + diff --git a/src/views/channelBackground/bankConfiguration/index.vue b/src/views/channelBackground/bankConfiguration/index.vue new file mode 100644 index 0000000..01171e6 --- /dev/null +++ b/src/views/channelBackground/bankConfiguration/index.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/channelBackground/channelBook/index.vue b/src/views/channelBackground/channelBook/index.vue new file mode 100755 index 0000000..a1e285c --- /dev/null +++ b/src/views/channelBackground/channelBook/index.vue @@ -0,0 +1,187 @@ + + + + diff --git a/src/views/channelBackground/channelDetails/index.vue b/src/views/channelBackground/channelDetails/index.vue new file mode 100755 index 0000000..2119098 --- /dev/null +++ b/src/views/channelBackground/channelDetails/index.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/views/channelManagement/channelCost/index.vue b/src/views/channelManagement/channelCost/index.vue new file mode 100755 index 0000000..0cdcc01 --- /dev/null +++ b/src/views/channelManagement/channelCost/index.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/channelManagement/channelLog/components/edit-log.vue b/src/views/channelManagement/channelLog/components/edit-log.vue new file mode 100755 index 0000000..74a4a59 --- /dev/null +++ b/src/views/channelManagement/channelLog/components/edit-log.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/views/channelManagement/channelLog/index.vue b/src/views/channelManagement/channelLog/index.vue new file mode 100755 index 0000000..3277924 --- /dev/null +++ b/src/views/channelManagement/channelLog/index.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/views/channelManagement/channelManagement/components/updateTag.vue b/src/views/channelManagement/channelManagement/components/updateTag.vue new file mode 100755 index 0000000..f0e882a --- /dev/null +++ b/src/views/channelManagement/channelManagement/components/updateTag.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/views/channelManagement/channelManagement/index.vue b/src/views/channelManagement/channelManagement/index.vue new file mode 100755 index 0000000..8ca3f5d --- /dev/null +++ b/src/views/channelManagement/channelManagement/index.vue @@ -0,0 +1,106 @@ + + diff --git a/src/views/channelManagement/channelNumber/components/numberAction.vue b/src/views/channelManagement/channelNumber/components/numberAction.vue new file mode 100755 index 0000000..46661be --- /dev/null +++ b/src/views/channelManagement/channelNumber/components/numberAction.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/channelManagement/channelNumber/index.vue b/src/views/channelManagement/channelNumber/index.vue new file mode 100755 index 0000000..5a72463 --- /dev/null +++ b/src/views/channelManagement/channelNumber/index.vue @@ -0,0 +1,167 @@ + + diff --git a/src/views/channelManagement/channelProvider/components/agentAction.vue b/src/views/channelManagement/channelProvider/components/agentAction.vue new file mode 100755 index 0000000..14624fd --- /dev/null +++ b/src/views/channelManagement/channelProvider/components/agentAction.vue @@ -0,0 +1,334 @@ + + + + diff --git a/src/views/channelManagement/channelProvider/index.vue b/src/views/channelManagement/channelProvider/index.vue new file mode 100755 index 0000000..d82fa0a --- /dev/null +++ b/src/views/channelManagement/channelProvider/index.vue @@ -0,0 +1,151 @@ + + diff --git a/src/views/channelManagement/channelQuery/index.vue b/src/views/channelManagement/channelQuery/index.vue new file mode 100755 index 0000000..dea92e5 --- /dev/null +++ b/src/views/channelManagement/channelQuery/index.vue @@ -0,0 +1,241 @@ + + diff --git a/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue b/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue new file mode 100755 index 0000000..a8cb427 --- /dev/null +++ b/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/views/channelManagement/channelconfiguration/index.vue b/src/views/channelManagement/channelconfiguration/index.vue new file mode 100755 index 0000000..3608d77 --- /dev/null +++ b/src/views/channelManagement/channelconfiguration/index.vue @@ -0,0 +1,105 @@ + + diff --git a/src/views/cinemaManagement/actressCollection/index.vue b/src/views/cinemaManagement/actressCollection/index.vue new file mode 100644 index 0000000..aa12a00 --- /dev/null +++ b/src/views/cinemaManagement/actressCollection/index.vue @@ -0,0 +1,93 @@ + + diff --git a/src/views/cinemaManagement/actressList/components/actressAction.vue b/src/views/cinemaManagement/actressList/components/actressAction.vue new file mode 100644 index 0000000..aacb22e --- /dev/null +++ b/src/views/cinemaManagement/actressList/components/actressAction.vue @@ -0,0 +1,144 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/actressList/index.vue b/src/views/cinemaManagement/actressList/index.vue new file mode 100644 index 0000000..0de6324 --- /dev/null +++ b/src/views/cinemaManagement/actressList/index.vue @@ -0,0 +1,148 @@ + + diff --git a/src/views/cinemaManagement/actressRating/index.vue b/src/views/cinemaManagement/actressRating/index.vue new file mode 100644 index 0000000..af9b9fe --- /dev/null +++ b/src/views/cinemaManagement/actressRating/index.vue @@ -0,0 +1,94 @@ + + diff --git a/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue b/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue new file mode 100644 index 0000000..0c9a941 --- /dev/null +++ b/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue @@ -0,0 +1,56 @@ + + \ No newline at end of file diff --git a/src/views/cinemaManagement/channelsManagement/index.vue b/src/views/cinemaManagement/channelsManagement/index.vue new file mode 100644 index 0000000..605060f --- /dev/null +++ b/src/views/cinemaManagement/channelsManagement/index.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/views/cinemaManagement/favoriteHistory/index.vue b/src/views/cinemaManagement/favoriteHistory/index.vue new file mode 100644 index 0000000..f928ff9 --- /dev/null +++ b/src/views/cinemaManagement/favoriteHistory/index.vue @@ -0,0 +1,144 @@ + + diff --git a/src/views/cinemaManagement/movieList/components/filmAction.vue b/src/views/cinemaManagement/movieList/components/filmAction.vue new file mode 100644 index 0000000..9de7157 --- /dev/null +++ b/src/views/cinemaManagement/movieList/components/filmAction.vue @@ -0,0 +1,210 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/movieList/components/recommendedPopup.vue b/src/views/cinemaManagement/movieList/components/recommendedPopup.vue new file mode 100644 index 0000000..bf1e11c --- /dev/null +++ b/src/views/cinemaManagement/movieList/components/recommendedPopup.vue @@ -0,0 +1,136 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/movieList/index.vue b/src/views/cinemaManagement/movieList/index.vue new file mode 100644 index 0000000..606a1ba --- /dev/null +++ b/src/views/cinemaManagement/movieList/index.vue @@ -0,0 +1,217 @@ + + diff --git a/src/views/cinemaManagement/recommendedList/index.vue b/src/views/cinemaManagement/recommendedList/index.vue new file mode 100644 index 0000000..feb840a --- /dev/null +++ b/src/views/cinemaManagement/recommendedList/index.vue @@ -0,0 +1,145 @@ + + diff --git a/src/views/cinemaManagement/todayRecommend/components/editToday.vue b/src/views/cinemaManagement/todayRecommend/components/editToday.vue new file mode 100644 index 0000000..ce4953d --- /dev/null +++ b/src/views/cinemaManagement/todayRecommend/components/editToday.vue @@ -0,0 +1,73 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/todayRecommend/index.vue b/src/views/cinemaManagement/todayRecommend/index.vue new file mode 100644 index 0000000..f5b3036 --- /dev/null +++ b/src/views/cinemaManagement/todayRecommend/index.vue @@ -0,0 +1,133 @@ + + diff --git a/src/views/cinemaManagement/watchHistory/index.vue b/src/views/cinemaManagement/watchHistory/index.vue new file mode 100644 index 0000000..2ffa3bc --- /dev/null +++ b/src/views/cinemaManagement/watchHistory/index.vue @@ -0,0 +1,145 @@ + + diff --git a/src/views/contentReview/install-styles.js b/src/views/contentReview/install-styles.js new file mode 100644 index 0000000..3d01bc0 --- /dev/null +++ b/src/views/contentReview/install-styles.js @@ -0,0 +1,5 @@ +/** + * 内容审查模块浮层样式入口(dialog / select 下拉)。 + * 在模块页面 script 中 import 一次即可,勿写入 main.js。 + */ +import "./overlays.scss"; diff --git a/src/views/contentReview/overlays.scss b/src/views/contentReview/overlays.scss new file mode 100644 index 0000000..3ac3015 --- /dev/null +++ b/src/views/contentReview/overlays.scss @@ -0,0 +1,168 @@ +/** + * 内容审查模块「挂到 body」的浮层样式(el-dialog / el-select 下拉)。 + * 仅通过 install-styles.js 在模块页面中引入,勿在 main.js 全局引入。 + * 选择器均带 cr- 前缀,不会影响其它业务弹窗。 + */ + +.cr-content-review-dialog { + border-radius: 10px; + overflow: hidden; + box-shadow: 0 16px 48px rgba(15, 23, 42, 0.14); + + .el-dialog__header { + padding: 16px 22px; + border-bottom: 1px solid #eef0f3; + background: linear-gradient(180deg, #fafbfc 0%, #f6f7f9 100%); + } + .el-dialog__title { + font-size: 16px; + font-weight: 600; + color: #111827; + line-height: 1.4; + } + .el-dialog__headerbtn { + top: 16px; + right: 18px; + .el-dialog__close { + color: #9ca3af; + font-size: 18px; + &:hover { + color: #4f46e5; + } + } + } + .el-dialog__body { + padding: 20px 22px 8px; + } + .el-dialog__footer { + padding: 14px 22px 18px; + border-top: 1px solid #eef0f3; + background: #fafbfc; + } + .el-dialog__footer .el-button--small { + min-width: 96px; + border-radius: 6px; + font-weight: 500; + padding: 9px 18px; + } + .el-dialog__footer .el-button--primary { + background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%); + border-color: #4f46e5; + box-shadow: 0 1px 2px rgba(79, 70, 229, 0.22); + &:hover, + &:focus { + background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%); + border-color: #4338ca; + } + } + .el-dialog__footer .el-button--default { + background: #fff; + border-color: #e5e7eb; + color: #4b5563; + &:hover { + border-color: #d1d5db; + color: #111827; + } + } + .el-dialog__footer .el-button--danger { + border-radius: 6px; + font-weight: 500; + } + + &.cr-issue-dialog .el-dialog__body { + max-height: calc(100vh - 200px); + overflow-y: auto; + } +} + +/* 新增/编辑词条弹窗 */ +.cr-word-form-dialog { + .el-dialog__body { + padding: 4px 22px 12px; + background: #fff; + } + .cr-form-section-title { + font-size: 13px; + font-weight: 600; + color: #374151; + margin: 18px 0 14px; + padding-left: 10px; + border-left: 3px solid #4f46e5; + line-height: 1.3; + &:first-child { + margin-top: 8px; + } + } + .el-form-item { + margin-bottom: 18px; + } + .el-form-item__label { + color: #4b5563; + font-weight: 500; + line-height: 32px; + padding-right: 14px; + } + .el-input__inner, + .el-textarea__inner { + border-radius: 6px; + border-color: #e5e7eb; + padding: 8px 12px; + color: #1f2937; + &:focus { + border-color: #4f46e5; + } + } + .el-textarea__inner { + padding: 10px 12px; + line-height: 1.55; + } + .el-select .el-input__inner { + padding-left: 12px; + padding-right: 30px; + } + .el-select .el-input .el-select__caret { + color: #9ca3af; + } + .cr-field-hint { + margin-top: 6px; + font-size: 12px; + color: #9ca3af; + line-height: 1.45; + } + .el-radio-group { + padding-top: 6px; + } + .el-radio__label { + padding-left: 8px; + color: #374151; + } +} + +/* 下拉面板(append-to-body,需 popper-class="cr-select-popper") */ +.cr-select-popper.el-select-dropdown, +.cr-select-popper.el-popper { + border-radius: 8px; + border-color: #e5e7eb; + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1); + margin-top: 4px !important; + + .el-select-dropdown__item { + padding: 0 16px; + height: 36px; + line-height: 36px; + font-size: 13px; + color: #374151; + } + .el-select-dropdown__item.hover, + .el-select-dropdown__item:hover { + background-color: #f3f4f6; + } + .el-select-dropdown__item.selected { + color: #4f46e5; + font-weight: 600; + background-color: #eef2ff; + } + .popper__arrow { + display: none; + } +} diff --git a/src/views/contentReview/reviewTask/components/IssueFields.vue b/src/views/contentReview/reviewTask/components/IssueFields.vue new file mode 100644 index 0000000..aba11f8 --- /dev/null +++ b/src/views/contentReview/reviewTask/components/IssueFields.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue b/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue new file mode 100644 index 0000000..bd27aeb --- /dev/null +++ b/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/detail.vue b/src/views/contentReview/reviewTask/detail.vue new file mode 100644 index 0000000..f3f09ba --- /dev/null +++ b/src/views/contentReview/reviewTask/detail.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/index.vue b/src/views/contentReview/reviewTask/index.vue new file mode 100644 index 0000000..eaed796 --- /dev/null +++ b/src/views/contentReview/reviewTask/index.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue b/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue new file mode 100644 index 0000000..85db95c --- /dev/null +++ b/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/contentReview/sensitiveWord/index.vue b/src/views/contentReview/sensitiveWord/index.vue new file mode 100644 index 0000000..c3038d5 --- /dev/null +++ b/src/views/contentReview/sensitiveWord/index.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/src/views/contentReview/styles.scss b/src/views/contentReview/styles.scss new file mode 100644 index 0000000..2020367 --- /dev/null +++ b/src/views/contentReview/styles.scss @@ -0,0 +1,277 @@ +/* 对齐「内容审查后台页面参考」视觉 */ +.cr-module { + min-height: 100%; + padding: 16px 20px; + background: #f3f5f8; + font-size: 13px; + color: #1f2937; + + .cr-table-actions { + margin-bottom: 10px; + ::v-deep .el-button--danger.is-plain { + border-radius: 6px; + padding: 8px 14px; + } + } + + /* ========== 按钮体系 ========== */ + ::v-deep .el-button { + font-weight: 500; + border-radius: 6px; + letter-spacing: 0.01em; + transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, + color 0.15s ease; + } + + ::v-deep .el-button--small { + padding: 8px 16px; + font-size: 13px; + line-height: 1; + } + + ::v-deep .el-button--mini { + padding: 6px 12px; + border-radius: 4px; + font-size: 12px; + } + + ::v-deep .el-button--primary { + background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%); + border-color: #4f46e5; + box-shadow: 0 1px 2px rgba(79, 70, 229, 0.22); + &:hover, + &:focus { + background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%); + border-color: #4338ca; + box-shadow: 0 2px 10px rgba(79, 70, 229, 0.32); + color: #fff; + } + &:active { + box-shadow: 0 1px 3px rgba(79, 70, 229, 0.25); + } + } + + ::v-deep .el-button--default { + background: #fff; + border-color: #e5e7eb; + color: #374151; + &:hover, + &:focus { + background: #f9fafb; + border-color: #d1d5db; + color: #111827; + } + } + + ::v-deep .el-button--danger.is-plain { + background: #fff; + border-color: #fecaca; + color: #b91c1c; + &:hover, + &:focus { + background: #fef2f2; + border-color: #f87171; + color: #991b1b; + } + } + + ::v-deep .el-button--text { + padding: 6px 10px; + border-radius: 4px; + font-weight: 500; + &:hover { + background: rgba(79, 70, 229, 0.08); + } + } + + ::v-deep .el-button--text.cr-link-danger:hover { + color: #b91c1c !important; + background: rgba(220, 38, 38, 0.08); + } + + ::v-deep .el-button [class*="el-icon-"] { + font-size: 14px; + vertical-align: -1px; + margin-right: 4px; + } + + ::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active { + background-color: #4f46e5; + } + ::v-deep .el-pagination.is-background .el-pager li:not(.disabled):hover { + color: #4f46e5; + } + + /* 筛选区:输入框 / 下拉框内边距 */ + ::v-deep .el-input__inner { + padding-left: 12px; + padding-right: 12px; + border-radius: 6px; + border-color: #e5e7eb; + color: #1f2937; + &::placeholder { + color: #9ca3af; + } + &:focus { + border-color: #4f46e5; + } + } + + ::v-deep .el-select { + .el-input__inner { + padding-left: 12px; + padding-right: 30px; + } + .el-input .el-select__caret { + color: #9ca3af; + } + } +} + +.cr-page-title { + font-size: 18px; + font-weight: 600; + margin-bottom: 14px; +} + +.cr-breadcrumb { + font-size: 12px; + color: #9ca3af; + margin-bottom: 14px; + a { + color: #4f46e5; + cursor: pointer; + } +} + +.cr-card { + border-radius: 6px; + margin-bottom: 14px; + border: none; + padding-bottom: 10px; + box-sizing: border-box; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important; +} + +.cr-filter-row { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 10px; +} + +.cr-label { + font-size: 12px; + color: #6b7280; +} + +.cr-toolbar-divider { + align-self: stretch; + width: 1px; + background: #e5e7eb; + margin: 0 4px 0 8px; + min-height: 28px; +} + +.cr-filter-actions { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; + margin-left: auto; + padding-left: 16px; + border-left: 1px solid #e5e7eb; +} + +.cr-desc { + color: #6b7280; + font-size: 11px; + margin-top: 2px; +} + +.cr-tag { + display: inline-block; + padding: 2px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; +} +.cr-tag-blue { + background: #dbeafe; + color: #1e40af; +} +.cr-tag-green { + background: #dcfce7; + color: #166534; +} +.cr-tag-red { + background: #fee2e2; + color: #b91c1c; +} +.cr-tag-yellow { + background: #fef3c7; + color: #92400e; +} +.cr-tag-gray { + background: #e5e7eb; + color: #374151; +} + +.cr-link { + color: #4f46e5 !important; +} +.cr-link-danger { + color: #dc2626 !important; +} + +.cr-pagination { + margin-top: 12px; + text-align: right; +} + +.cr-progress { + width: 140px; + height: 6px; + background: #e5e7eb; + border-radius: 3px; + overflow: hidden; +} +.cr-progress > span { + display: block; + height: 100%; + background: #4f46e5; +} +.cr-progress-text { + font-size: 11px; + color: #6b7280; + margin-top: 2px; +} + +.cr-hit mark { + background: #fef08a; + color: #92400e; + padding: 0 2px; + border-radius: 2px; +} + +.cr-desc-cell { + white-space: pre-line; + font-size: 12px; +} + +.cr-card-title { + font-weight: 600; + margin-bottom: 12px; + padding-bottom: 10px; + border-bottom: 1px solid #f1f3f5; +} +.cr-card-title-row { + display: flex; + align-items: center; +} +.cr-card-extra { + margin-left: auto; + display: flex; + align-items: center; + gap: 8px; +} diff --git a/src/views/discountAreaManagement/discountAreaList/index.vue b/src/views/discountAreaManagement/discountAreaList/index.vue new file mode 100644 index 0000000..3eafabb --- /dev/null +++ b/src/views/discountAreaManagement/discountAreaList/index.vue @@ -0,0 +1,559 @@ + + + diff --git a/src/views/discountAreaManagement/discountAreaVideoList/index.vue b/src/views/discountAreaManagement/discountAreaVideoList/index.vue new file mode 100644 index 0000000..30842d9 --- /dev/null +++ b/src/views/discountAreaManagement/discountAreaVideoList/index.vue @@ -0,0 +1,584 @@ + + + diff --git a/src/views/fiction/audiobook/components/components/editPrice.vue b/src/views/fiction/audiobook/components/components/editPrice.vue new file mode 100644 index 0000000..6e2b81b --- /dev/null +++ b/src/views/fiction/audiobook/components/components/editPrice.vue @@ -0,0 +1,116 @@ + + + + + + + diff --git a/src/views/fiction/audiobook/components/detailPage.vue b/src/views/fiction/audiobook/components/detailPage.vue new file mode 100755 index 0000000..92dde6c --- /dev/null +++ b/src/views/fiction/audiobook/components/detailPage.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/views/fiction/audiobook/components/pricePage.vue b/src/views/fiction/audiobook/components/pricePage.vue new file mode 100644 index 0000000..f45deb4 --- /dev/null +++ b/src/views/fiction/audiobook/components/pricePage.vue @@ -0,0 +1,134 @@ + + + + + + + diff --git a/src/views/fiction/audiobook/components/unitPrice.vue b/src/views/fiction/audiobook/components/unitPrice.vue new file mode 100644 index 0000000..f7f1d32 --- /dev/null +++ b/src/views/fiction/audiobook/components/unitPrice.vue @@ -0,0 +1,136 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/fiction/audiobook/index.vue b/src/views/fiction/audiobook/index.vue new file mode 100644 index 0000000..9550771 --- /dev/null +++ b/src/views/fiction/audiobook/index.vue @@ -0,0 +1,422 @@ + + + + + + diff --git a/src/views/fiction/audiobookCfg/components/drCfg.vue b/src/views/fiction/audiobookCfg/components/drCfg.vue new file mode 100644 index 0000000..7c48f3b --- /dev/null +++ b/src/views/fiction/audiobookCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/fiction/audiobookCfg/index.vue b/src/views/fiction/audiobookCfg/index.vue new file mode 100644 index 0000000..4d9ec3e --- /dev/null +++ b/src/views/fiction/audiobookCfg/index.vue @@ -0,0 +1,111 @@ + + + + + + diff --git a/src/views/fiction/novel/components/previewPage.vue b/src/views/fiction/novel/components/previewPage.vue new file mode 100644 index 0000000..6b69a3b --- /dev/null +++ b/src/views/fiction/novel/components/previewPage.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/fiction/novel/index.vue b/src/views/fiction/novel/index.vue new file mode 100644 index 0000000..9668279 --- /dev/null +++ b/src/views/fiction/novel/index.vue @@ -0,0 +1,226 @@ + + + + + + diff --git a/src/views/fiction/report/components/check.vue b/src/views/fiction/report/components/check.vue new file mode 100644 index 0000000..e7e3335 --- /dev/null +++ b/src/views/fiction/report/components/check.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/fiction/report/components/previewPicture.vue b/src/views/fiction/report/components/previewPicture.vue new file mode 100644 index 0000000..f8ea596 --- /dev/null +++ b/src/views/fiction/report/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/fiction/report/index.vue b/src/views/fiction/report/index.vue new file mode 100644 index 0000000..0b5b933 --- /dev/null +++ b/src/views/fiction/report/index.vue @@ -0,0 +1,269 @@ + + + + diff --git a/src/views/gatheringManagement/gatheringBalanceList/index.vue b/src/views/gatheringManagement/gatheringBalanceList/index.vue new file mode 100644 index 0000000..1f34b6a --- /dev/null +++ b/src/views/gatheringManagement/gatheringBalanceList/index.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue new file mode 100644 index 0000000..4517c4f --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue new file mode 100644 index 0000000..64db67d --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue @@ -0,0 +1,234 @@ + + \ No newline at end of file diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue new file mode 100644 index 0000000..fb069ab --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue @@ -0,0 +1,134 @@ + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/index.vue b/src/views/gatheringManagement/gatheringBusinessmen/index.vue new file mode 100644 index 0000000..c9ac9b8 --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/index.vue @@ -0,0 +1,269 @@ + + + diff --git a/src/views/groupChatManagement/components/UpdateGroupChat.vue b/src/views/groupChatManagement/components/UpdateGroupChat.vue new file mode 100644 index 0000000..767811b --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateGroupChat.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/views/groupChatManagement/components/UpdateImgroupmember.vue b/src/views/groupChatManagement/components/UpdateImgroupmember.vue new file mode 100644 index 0000000..1eafcb1 --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateImgroupmember.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/groupChatManagement/components/UpdateImmessage.vue b/src/views/groupChatManagement/components/UpdateImmessage.vue new file mode 100644 index 0000000..b4d5c1e --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateImmessage.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/groupChatManagement/groupList/index.vue b/src/views/groupChatManagement/groupList/index.vue new file mode 100644 index 0000000..c82ee0a --- /dev/null +++ b/src/views/groupChatManagement/groupList/index.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/groupChatManagement/imgroupmemberList/index.vue b/src/views/groupChatManagement/imgroupmemberList/index.vue new file mode 100644 index 0000000..f0445d1 --- /dev/null +++ b/src/views/groupChatManagement/imgroupmemberList/index.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/views/groupChatManagement/immessageList/index.vue b/src/views/groupChatManagement/immessageList/index.vue new file mode 100644 index 0000000..c920ede --- /dev/null +++ b/src/views/groupChatManagement/immessageList/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/home/index.vue b/src/views/home/index.vue new file mode 100755 index 0000000..6a58e5a --- /dev/null +++ b/src/views/home/index.vue @@ -0,0 +1,964 @@ + + + diff --git a/src/views/hotManagement/findWonderful/components/editWonderful.vue b/src/views/hotManagement/findWonderful/components/editWonderful.vue new file mode 100644 index 0000000..3fde970 --- /dev/null +++ b/src/views/hotManagement/findWonderful/components/editWonderful.vue @@ -0,0 +1,139 @@ + + + \ No newline at end of file diff --git a/src/views/hotManagement/findWonderful/index.vue b/src/views/hotManagement/findWonderful/index.vue new file mode 100644 index 0000000..8682650 --- /dev/null +++ b/src/views/hotManagement/findWonderful/index.vue @@ -0,0 +1,92 @@ + + diff --git a/src/views/hotManagement/rankPage/components/editRank.vue b/src/views/hotManagement/rankPage/components/editRank.vue new file mode 100644 index 0000000..cb7fef8 --- /dev/null +++ b/src/views/hotManagement/rankPage/components/editRank.vue @@ -0,0 +1,203 @@ + + + \ No newline at end of file diff --git a/src/views/hotManagement/rankPage/index.vue b/src/views/hotManagement/rankPage/index.vue new file mode 100644 index 0000000..4282a29 --- /dev/null +++ b/src/views/hotManagement/rankPage/index.vue @@ -0,0 +1,103 @@ + + diff --git a/src/views/landManagement/landCfg/components/editPage.vue b/src/views/landManagement/landCfg/components/editPage.vue new file mode 100644 index 0000000..f6f4d07 --- /dev/null +++ b/src/views/landManagement/landCfg/components/editPage.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/landManagement/landCfg/components/editTemplet.vue b/src/views/landManagement/landCfg/components/editTemplet.vue new file mode 100644 index 0000000..009f110 --- /dev/null +++ b/src/views/landManagement/landCfg/components/editTemplet.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/landManagement/landCfg/index.vue b/src/views/landManagement/landCfg/index.vue new file mode 100644 index 0000000..2600746 --- /dev/null +++ b/src/views/landManagement/landCfg/index.vue @@ -0,0 +1,126 @@ + + \ No newline at end of file diff --git a/src/views/landManagement/landPage/components/addPopup.vue b/src/views/landManagement/landPage/components/addPopup.vue new file mode 100644 index 0000000..3897019 --- /dev/null +++ b/src/views/landManagement/landPage/components/addPopup.vue @@ -0,0 +1,158 @@ + + diff --git a/src/views/landManagement/landPage/index.vue b/src/views/landManagement/landPage/index.vue new file mode 100644 index 0000000..5744c1b --- /dev/null +++ b/src/views/landManagement/landPage/index.vue @@ -0,0 +1,197 @@ + + \ No newline at end of file diff --git a/src/views/login/components/google-verification.vue b/src/views/login/components/google-verification.vue new file mode 100755 index 0000000..47480f6 --- /dev/null +++ b/src/views/login/components/google-verification.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100755 index 0000000..79e1f37 --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,234 @@ + + + + diff --git a/src/views/loufengManagement/feedback/components/check.vue b/src/views/loufengManagement/feedback/components/check.vue new file mode 100644 index 0000000..77a475f --- /dev/null +++ b/src/views/loufengManagement/feedback/components/check.vue @@ -0,0 +1,146 @@ + + + + diff --git a/src/views/loufengManagement/feedback/components/lfDetails.vue b/src/views/loufengManagement/feedback/components/lfDetails.vue new file mode 100755 index 0000000..5719187 --- /dev/null +++ b/src/views/loufengManagement/feedback/components/lfDetails.vue @@ -0,0 +1,164 @@ + + + + + + \ No newline at end of file diff --git a/src/views/loufengManagement/feedback/index.vue b/src/views/loufengManagement/feedback/index.vue new file mode 100644 index 0000000..933e3e1 --- /dev/null +++ b/src/views/loufengManagement/feedback/index.vue @@ -0,0 +1,435 @@ + + + + + + + diff --git a/src/views/loufengManagement/louFengList/components/operatingPage.vue b/src/views/loufengManagement/louFengList/components/operatingPage.vue new file mode 100755 index 0000000..13e3011 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/operatingPage.vue @@ -0,0 +1,385 @@ + + + + + + \ No newline at end of file diff --git a/src/views/loufengManagement/louFengList/components/previewPicture.vue b/src/views/loufengManagement/louFengList/components/previewPicture.vue new file mode 100644 index 0000000..7773127 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/loufengManagement/louFengList/components/upmost.vue b/src/views/loufengManagement/louFengList/components/upmost.vue new file mode 100644 index 0000000..0482f07 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/upmost.vue @@ -0,0 +1,169 @@ + + + + diff --git a/src/views/loufengManagement/louFengList/index.vue b/src/views/loufengManagement/louFengList/index.vue new file mode 100644 index 0000000..3154b82 --- /dev/null +++ b/src/views/loufengManagement/louFengList/index.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/src/views/loufengManagement/loufCfg/components/cityCfg.vue b/src/views/loufengManagement/loufCfg/components/cityCfg.vue new file mode 100644 index 0000000..890292c --- /dev/null +++ b/src/views/loufengManagement/loufCfg/components/cityCfg.vue @@ -0,0 +1,86 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufCfg/components/drCfg.vue b/src/views/loufengManagement/loufCfg/components/drCfg.vue new file mode 100644 index 0000000..cd5e419 --- /dev/null +++ b/src/views/loufengManagement/loufCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufCfg/index.vue b/src/views/loufengManagement/loufCfg/index.vue new file mode 100644 index 0000000..3dbaf1f --- /dev/null +++ b/src/views/loufengManagement/loufCfg/index.vue @@ -0,0 +1,121 @@ + + + + + + diff --git a/src/views/loufengManagement/loufadCfg/components/drCfg.vue b/src/views/loufengManagement/loufadCfg/components/drCfg.vue new file mode 100644 index 0000000..4eb683c --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufadCfg/components/editPage.vue b/src/views/loufengManagement/loufadCfg/components/editPage.vue new file mode 100755 index 0000000..597998c --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/components/editPage.vue @@ -0,0 +1,291 @@ + + + + + +style> diff --git a/src/views/loufengManagement/loufadCfg/index.vue b/src/views/loufengManagement/loufadCfg/index.vue new file mode 100644 index 0000000..22b06cb --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/index.vue @@ -0,0 +1,208 @@ + + + + + + diff --git a/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue new file mode 100644 index 0000000..94213f0 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue @@ -0,0 +1,504 @@ + + + diff --git a/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue b/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue new file mode 100644 index 0000000..36b56b2 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/views/lsjMediaLibrary/comicsList/index.vue b/src/views/lsjMediaLibrary/comicsList/index.vue new file mode 100644 index 0000000..859c593 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/index.vue @@ -0,0 +1,364 @@ + + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/config.js b/src/views/lsjMediaLibrary/config.js new file mode 100644 index 0000000..88ebfd0 --- /dev/null +++ b/src/views/lsjMediaLibrary/config.js @@ -0,0 +1,164 @@ + +export function changePosition(val) { + switch (val) { + case 'guochan': + return '国产成人视频' + case 'av': + return '日本和欧美成人视频' + case 'movie': + return '正规影视资源' + case 'bl': + return '男同' + case 'douyin': + return '短视频' + case 'cartoon': + return '动漫' + case 'dark': + return '暗网资源' + default: + return '暂无' + } +} + +export function positionList() { + return [{ + value: 'guochan', + label: '国产成人视频' + }, + { + value: 'av', + label: '日本和欧美成人视频' + }, + { + value: 'movie', + label: '正规影视资源' + }, + { + value: 'bl', + label: '男同' + }, + { + value: 'douyin', + label: '短视频' + }, + { + value: 'cartoon', + label: '动漫' + }, + { + value: 'dark', + label: '暗网资源' + } + ] +} + +export function changeVideoTypeList(val) { + switch (val) { + case '1': + return 'AV' + case '2': + return 'DM' + case '3': + return 'GC' + case '4': + return '综艺' + case '5': + return '连续剧' + case '6': + return '电影' + case '7': + return '动漫' + case '8': + return '纪录片' + case '9': + return '短剧' + case '10': + return '音乐' + case '11': + return '电影解说 ' + case '12': + return 'VR' + case '13': + return '成人短视频' + } +} +export function videoTypeList() { + return [{ + label: '1', + value: 'AV' + }, + { + label: '2', + value: 'DM' + }, + { + label: '3', + value: 'GC' + }, + { + label: '4', + value: '综艺' + }, + { + label: '5', + value: '连续剧' + }, + { + label: '6', + value: '电影' + }, + { + label: '7', + value: '动漫' + },{ + label: '8', + value: '纪录片' + },{ + label: '9', + value: '短剧' + },{ + label: '10', + value: '音乐' + },{ + label: '11', + value: '电影解说' + },{ + label: '12', + value: 'VR' + },{ + label: '13', + value: '成人短视频' + } + ] +} +export function statusList() { + return [{ + label: '0', + value: '待处理' + }, + { + label: '-1', + value: '处理失败' + }, + { + label: '1', + value: '处理中' + }, + { + label: '2', + value: '处理成功' + } + ] +} +export function changeStatusListType(val) { + switch (val) { + case '0': + return '待处理' + case '-1': + return '处理失败' + case '1': + return '处理中' + case '2': + return '处理成功' + } +} diff --git a/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue new file mode 100644 index 0000000..2502962 --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue @@ -0,0 +1,510 @@ + + + diff --git a/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue b/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue new file mode 100644 index 0000000..55e568f --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue @@ -0,0 +1,349 @@ + + + diff --git a/src/views/lsjMediaLibrary/novelList/index.vue b/src/views/lsjMediaLibrary/novelList/index.vue new file mode 100644 index 0000000..5520522 --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/index.vue @@ -0,0 +1,360 @@ + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue new file mode 100644 index 0000000..aadcbe4 --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue @@ -0,0 +1,529 @@ + + + diff --git a/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue b/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue new file mode 100644 index 0000000..b32e020 --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue @@ -0,0 +1,332 @@ + + + diff --git a/src/views/lsjMediaLibrary/postList/index.vue b/src/views/lsjMediaLibrary/postList/index.vue new file mode 100644 index 0000000..f3bc16c --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/index.vue @@ -0,0 +1,378 @@ + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue new file mode 100644 index 0000000..82ac0b3 --- /dev/null +++ b/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue @@ -0,0 +1,318 @@ + + + diff --git a/src/views/lsjMediaLibrary/videoList/index.vue b/src/views/lsjMediaLibrary/videoList/index.vue new file mode 100644 index 0000000..72d1ffe --- /dev/null +++ b/src/views/lsjMediaLibrary/videoList/index.vue @@ -0,0 +1,395 @@ + + + + diff --git a/src/views/main/components/content.vue b/src/views/main/components/content.vue new file mode 100755 index 0000000..49bb8d0 --- /dev/null +++ b/src/views/main/components/content.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/main/components/header.vue b/src/views/main/components/header.vue new file mode 100755 index 0000000..c204023 --- /dev/null +++ b/src/views/main/components/header.vue @@ -0,0 +1,188 @@ + + +'' diff --git a/src/views/main/components/nav.vue b/src/views/main/components/nav.vue new file mode 100755 index 0000000..5ddf5a2 --- /dev/null +++ b/src/views/main/components/nav.vue @@ -0,0 +1,120 @@ + + + + diff --git a/src/views/main/components/siderbarItem.vue b/src/views/main/components/siderbarItem.vue new file mode 100755 index 0000000..92e3343 --- /dev/null +++ b/src/views/main/components/siderbarItem.vue @@ -0,0 +1,64 @@ + + diff --git a/src/views/main/index.vue b/src/views/main/index.vue new file mode 100755 index 0000000..15767ba --- /dev/null +++ b/src/views/main/index.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/mediaLibrary/config.js b/src/views/mediaLibrary/config.js new file mode 100644 index 0000000..5931b6e --- /dev/null +++ b/src/views/mediaLibrary/config.js @@ -0,0 +1,280 @@ +/* + * @Author: 王涛 + * @Mail: no + * @Date: 2020-12-28 14:15:11 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2022-08-23 15:08:21 + */ +export function changeStatus(val) { + switch (val) { + case 'UpLoading': + return '上传中' + case 'UploadCompleted': + return '上传完成' + case 'MergeCompleted': + return '合并完成' + case 'CompressCompleted': + return '压缩完成' + case 'ConvertCompleted': + return '切片完成' + case 'Completed': + return '完成-成功' + case 'CompletedFail': + return '完成-失败' + } +} + +export function StatusList() { + return [{ + label: '上传中', + value: 'UpLoading' + }, + { + label: '上传完成', + value: 'UploadCompleted' + }, + { + label: '合并完成', + value: 'MergeCompleted' + }, + { + label: '压缩完成', + value: 'CompressCompleted' + }, + { + label: '切片完成', + value: 'ConvertCompleted' + }, + { + label: '完成-成功', + value: 'Completed' + }, + { + label: '完成-失败', + value: 'CompletedFail' + } + ] +} + +export function coverTypeList() { + return [ + { + label: '横版', + value: 1 + }, + { + label: '竖版', + value: 2 + }, + { + label: '系统', + value: 3 + } + ] +} +export function changeCoverType(val) { + switch (val) { + case 1: + return '横版' + case 2: + return '竖版' + case 3: + return '系统' + } +} + +export function appidsList() { + return [ + { + label: '外网禁忌', + value: 8888 + }, + { + label: '麻豆射区', + value: 80 + }, + { + label: '哔哩哔哩', + value: 999 + }, + { + label: '欲漫涩', + value: 444 + }, + { + label: '暗网禁地', + value: 494 + }, + { + label: '好色', + value: 178 + }, + { + label: '微勃', + value: 777 + }, + { + label: '乱伦', + value: 594 + }, + { + label: '91涩漫', + value: 694 + }, + { + label: '麻豆', + value: 888 + }, + { + label: '新内涵', + value: 258 + } + ] +} +export function formatTypeList() { + return [ + { + label: '长视频', + value: 1 + }, + { + label: '短视频', + value: 2 + }, + { + label: '预览', + value: 3 + } + ] +} +export function contentTypeList() { + return [ + { + label: '长视频', + value: 1 + }, + { + label: '短视频', + value: 2 + }, + { + label: '动漫', + value: 3 + } + ] +} +export function changeContentType(val) { + switch (val) { + case 1: + return '长视频' + case 2: + return '短视频' + case 3: + return '动漫' + } +} + +export function changeTopType(val) { + switch (val) { + case 1: + return '漫画' + case 2: + return '动漫' + case 3: + return '视频' + case 4: + return '小说' + } +} + +export function contentTypeListv2() { + return [ + { + label: 'AV', + value: 1 + }, + { + label: '小视频', + value: 2 + }, + { + label: '动漫', + value: 3 + }, + { + label: '首页', + value: 4 + }, + { + label: '萝莉岛', + value: 5 + } + ] +} + +export function changeContentTypev2(val) { + switch (val) { + case 1: + return 'AV' + case 2: + return '小视频' + case 3: + return '动漫' + case 4: + return '首页' + case 5: + return '萝莉岛' + } +} + +export function formVideoTypeList() { + return [ + { + label: 'AV', + value: '1' + }, + { + label: 'SP', + value: '2' + }, + { + label: 'AI', + value: '3' + }, { + label: 'MP3', + value: '4' + } + ] +} +export function videoLocationList() { + return [ + { + label: '视频', + value: 1 + }, + { + label: '暗网/猎奇', + value: 2 + }, + { + label: '动漫', + value: 3 + }, + { + label: '有声漫', + value: 4 + } + ] +} +export function changeVideoLocation(val) { + switch (val) { + case 1: + return '视频' + case 2: + return '暗网/猎奇' + case 3: + return '动漫' + case 4: + return '有声漫' + } +} diff --git a/src/views/mediaLibrary/videoList/components/AddOrEdit.vue b/src/views/mediaLibrary/videoList/components/AddOrEdit.vue new file mode 100644 index 0000000..27e9e36 --- /dev/null +++ b/src/views/mediaLibrary/videoList/components/AddOrEdit.vue @@ -0,0 +1,515 @@ + + + diff --git a/src/views/mediaLibrary/videoList/components/editShowLocation.vue b/src/views/mediaLibrary/videoList/components/editShowLocation.vue new file mode 100644 index 0000000..7731ca1 --- /dev/null +++ b/src/views/mediaLibrary/videoList/components/editShowLocation.vue @@ -0,0 +1,67 @@ + + + + diff --git a/src/views/mediaLibrary/videoList/index.vue b/src/views/mediaLibrary/videoList/index.vue new file mode 100644 index 0000000..8390f49 --- /dev/null +++ b/src/views/mediaLibrary/videoList/index.vue @@ -0,0 +1,767 @@ + + + + diff --git a/src/views/moduleConfManagement/happinessPlazaTopList/index.vue b/src/views/moduleConfManagement/happinessPlazaTopList/index.vue new file mode 100644 index 0000000..5404bc5 --- /dev/null +++ b/src/views/moduleConfManagement/happinessPlazaTopList/index.vue @@ -0,0 +1,467 @@ + + + + + diff --git a/src/views/moduleConfManagement/kingKongDistrict/index.vue b/src/views/moduleConfManagement/kingKongDistrict/index.vue new file mode 100644 index 0000000..b0af2da --- /dev/null +++ b/src/views/moduleConfManagement/kingKongDistrict/index.vue @@ -0,0 +1,566 @@ + + + diff --git a/src/views/moduleConfManagement/moduleList/index.vue b/src/views/moduleConfManagement/moduleList/index.vue new file mode 100644 index 0000000..f5cad0f --- /dev/null +++ b/src/views/moduleConfManagement/moduleList/index.vue @@ -0,0 +1,1243 @@ + + + + + diff --git a/src/views/moduleConfManagement/sectionList/index.vue b/src/views/moduleConfManagement/sectionList/index.vue new file mode 100644 index 0000000..d322a08 --- /dev/null +++ b/src/views/moduleConfManagement/sectionList/index.vue @@ -0,0 +1,856 @@ + + + + + diff --git a/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue b/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue new file mode 100644 index 0000000..ab85fdb --- /dev/null +++ b/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue @@ -0,0 +1,126 @@ + + + + + \ No newline at end of file diff --git a/src/views/moduleConfManagement/vidResCfg/index.vue b/src/views/moduleConfManagement/vidResCfg/index.vue new file mode 100644 index 0000000..4a856bd --- /dev/null +++ b/src/views/moduleConfManagement/vidResCfg/index.vue @@ -0,0 +1,259 @@ + + + + + \ No newline at end of file diff --git a/src/views/moduleConfManagement/videoList/index.vue b/src/views/moduleConfManagement/videoList/index.vue new file mode 100644 index 0000000..5630e3f --- /dev/null +++ b/src/views/moduleConfManagement/videoList/index.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue b/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue new file mode 100644 index 0000000..31b8837 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue b/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue new file mode 100644 index 0000000..490f4ed --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue b/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue new file mode 100644 index 0000000..22e9bc3 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/index.vue b/src/views/nakedChatManage/nakedChatBuyList/index.vue new file mode 100644 index 0000000..8dd714e --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/index.vue @@ -0,0 +1,323 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/check.vue b/src/views/nakedChatManage/nakedChatFeedback/components/check.vue new file mode 100644 index 0000000..db25695 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/check.vue @@ -0,0 +1,150 @@ + + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue b/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue new file mode 100755 index 0000000..d0c9d3b --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue @@ -0,0 +1,164 @@ + + + + + + \ No newline at end of file diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue b/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue new file mode 100644 index 0000000..7773127 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/index.vue b/src/views/nakedChatManage/nakedChatFeedback/index.vue new file mode 100644 index 0000000..8e1c2a7 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/index.vue @@ -0,0 +1,439 @@ + + + + + + + diff --git a/src/views/nakedChatManage/nakedChatList/components/preview-video.vue b/src/views/nakedChatManage/nakedChatList/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue b/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue new file mode 100644 index 0000000..31b8837 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue b/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue new file mode 100644 index 0000000..a327a33 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatList/index.vue b/src/views/nakedChatManage/nakedChatList/index.vue new file mode 100644 index 0000000..631b0dc --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/index.vue @@ -0,0 +1,830 @@ + + + + + diff --git a/src/views/officialWebsite/albumList/index.vue b/src/views/officialWebsite/albumList/index.vue new file mode 100644 index 0000000..d1e2b3d --- /dev/null +++ b/src/views/officialWebsite/albumList/index.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/src/views/officialWebsite/basicData/index.vue b/src/views/officialWebsite/basicData/index.vue new file mode 100644 index 0000000..709400a --- /dev/null +++ b/src/views/officialWebsite/basicData/index.vue @@ -0,0 +1,588 @@ + + + + + diff --git a/src/views/officialWebsite/businessList/index.vue b/src/views/officialWebsite/businessList/index.vue new file mode 100644 index 0000000..189426c --- /dev/null +++ b/src/views/officialWebsite/businessList/index.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/officialWebsite/heroList/index.vue b/src/views/officialWebsite/heroList/index.vue new file mode 100644 index 0000000..cb85845 --- /dev/null +++ b/src/views/officialWebsite/heroList/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/views/officialWebsite/jobList/index.vue b/src/views/officialWebsite/jobList/index.vue new file mode 100644 index 0000000..9565d53 --- /dev/null +++ b/src/views/officialWebsite/jobList/index.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/officialWebsite/newsList/index.vue b/src/views/officialWebsite/newsList/index.vue new file mode 100644 index 0000000..627ce3f --- /dev/null +++ b/src/views/officialWebsite/newsList/index.vue @@ -0,0 +1,447 @@ + + + + + diff --git a/src/views/officialWebsite/partnerList/index.vue b/src/views/officialWebsite/partnerList/index.vue new file mode 100644 index 0000000..39db365 --- /dev/null +++ b/src/views/officialWebsite/partnerList/index.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/views/officialWebsite/photographList/index.vue b/src/views/officialWebsite/photographList/index.vue new file mode 100644 index 0000000..64f0a8b --- /dev/null +++ b/src/views/officialWebsite/photographList/index.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/views/officialWebsite/recruitFormList/index.vue b/src/views/officialWebsite/recruitFormList/index.vue new file mode 100644 index 0000000..02b610e --- /dev/null +++ b/src/views/officialWebsite/recruitFormList/index.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/officialWebsite/tagList/index.vue b/src/views/officialWebsite/tagList/index.vue new file mode 100644 index 0000000..4f146cb --- /dev/null +++ b/src/views/officialWebsite/tagList/index.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/views/officialWebsite/videoList/index.vue b/src/views/officialWebsite/videoList/index.vue new file mode 100644 index 0000000..a38bb6a --- /dev/null +++ b/src/views/officialWebsite/videoList/index.vue @@ -0,0 +1,699 @@ + + + + + diff --git a/src/views/productManagement/bannerActivityList/index.vue b/src/views/productManagement/bannerActivityList/index.vue new file mode 100644 index 0000000..c716fd1 --- /dev/null +++ b/src/views/productManagement/bannerActivityList/index.vue @@ -0,0 +1,647 @@ + + + diff --git a/src/views/productManagement/currencyList/components/currencyAction.vue b/src/views/productManagement/currencyList/components/currencyAction.vue new file mode 100755 index 0000000..539843d --- /dev/null +++ b/src/views/productManagement/currencyList/components/currencyAction.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/src/views/productManagement/currencyList/index.vue b/src/views/productManagement/currencyList/index.vue new file mode 100644 index 0000000..222b957 --- /dev/null +++ b/src/views/productManagement/currencyList/index.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/views/productManagement/gameGlodList/components/goldAction.vue b/src/views/productManagement/gameGlodList/components/goldAction.vue new file mode 100755 index 0000000..3150382 --- /dev/null +++ b/src/views/productManagement/gameGlodList/components/goldAction.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/productManagement/gameGlodList/index.vue b/src/views/productManagement/gameGlodList/index.vue new file mode 100755 index 0000000..02e64c0 --- /dev/null +++ b/src/views/productManagement/gameGlodList/index.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/views/productManagement/glodList/components/goldAction.vue b/src/views/productManagement/glodList/components/goldAction.vue new file mode 100755 index 0000000..cc381ea --- /dev/null +++ b/src/views/productManagement/glodList/components/goldAction.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/productManagement/glodList/index.vue b/src/views/productManagement/glodList/index.vue new file mode 100755 index 0000000..b05de0f --- /dev/null +++ b/src/views/productManagement/glodList/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/productManagement/glodPayList/components/goldAction.vue b/src/views/productManagement/glodPayList/components/goldAction.vue new file mode 100755 index 0000000..89db639 --- /dev/null +++ b/src/views/productManagement/glodPayList/components/goldAction.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/productManagement/glodPayList/index.vue b/src/views/productManagement/glodPayList/index.vue new file mode 100755 index 0000000..d0265b7 --- /dev/null +++ b/src/views/productManagement/glodPayList/index.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/productManagement/integralConfigure/index.vue b/src/views/productManagement/integralConfigure/index.vue new file mode 100644 index 0000000..f1386bd --- /dev/null +++ b/src/views/productManagement/integralConfigure/index.vue @@ -0,0 +1,526 @@ + + + diff --git a/src/views/productManagement/marqueeList/components/addAndEdit.vue b/src/views/productManagement/marqueeList/components/addAndEdit.vue new file mode 100644 index 0000000..df6b302 --- /dev/null +++ b/src/views/productManagement/marqueeList/components/addAndEdit.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/src/views/productManagement/marqueeList/index.vue b/src/views/productManagement/marqueeList/index.vue new file mode 100644 index 0000000..0e0f338 --- /dev/null +++ b/src/views/productManagement/marqueeList/index.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/src/views/productManagement/officialList/components/officialAction.vue b/src/views/productManagement/officialList/components/officialAction.vue new file mode 100755 index 0000000..bd55b7d --- /dev/null +++ b/src/views/productManagement/officialList/components/officialAction.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/src/views/productManagement/officialList/index.vue b/src/views/productManagement/officialList/index.vue new file mode 100755 index 0000000..378f6d4 --- /dev/null +++ b/src/views/productManagement/officialList/index.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/productManagement/payMethod/components/channelAction.vue b/src/views/productManagement/payMethod/components/channelAction.vue new file mode 100755 index 0000000..4eae1db --- /dev/null +++ b/src/views/productManagement/payMethod/components/channelAction.vue @@ -0,0 +1,292 @@ + + + + diff --git a/src/views/productManagement/payMethod/index.vue b/src/views/productManagement/payMethod/index.vue new file mode 100755 index 0000000..46a5c68 --- /dev/null +++ b/src/views/productManagement/payMethod/index.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/views/productManagement/preSaleConfigure/components/preview-video.vue b/src/views/productManagement/preSaleConfigure/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/productManagement/preSaleConfigure/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/productManagement/preSaleConfigure/index.vue b/src/views/productManagement/preSaleConfigure/index.vue new file mode 100644 index 0000000..53d2d81 --- /dev/null +++ b/src/views/productManagement/preSaleConfigure/index.vue @@ -0,0 +1,664 @@ + + + diff --git a/src/views/productManagement/productBenefitList/components/productBenefitAction.vue b/src/views/productManagement/productBenefitList/components/productBenefitAction.vue new file mode 100755 index 0000000..744a3b0 --- /dev/null +++ b/src/views/productManagement/productBenefitList/components/productBenefitAction.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/src/views/productManagement/productBenefitList/index.vue b/src/views/productManagement/productBenefitList/index.vue new file mode 100755 index 0000000..932cb2e --- /dev/null +++ b/src/views/productManagement/productBenefitList/index.vue @@ -0,0 +1,171 @@ + + + + diff --git a/src/views/productManagement/productPositionList/components/positionAction.vue b/src/views/productManagement/productPositionList/components/positionAction.vue new file mode 100755 index 0000000..4a5bcde --- /dev/null +++ b/src/views/productManagement/productPositionList/components/positionAction.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/productManagement/productPositionList/index.vue b/src/views/productManagement/productPositionList/index.vue new file mode 100755 index 0000000..3b94379 --- /dev/null +++ b/src/views/productManagement/productPositionList/index.vue @@ -0,0 +1,167 @@ + + + + diff --git a/src/views/productManagement/promoteUrl/components/promoteAction.vue b/src/views/productManagement/promoteUrl/components/promoteAction.vue new file mode 100755 index 0000000..368d0d7 --- /dev/null +++ b/src/views/productManagement/promoteUrl/components/promoteAction.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/views/productManagement/promoteUrl/index.vue b/src/views/productManagement/promoteUrl/index.vue new file mode 100755 index 0000000..090137c --- /dev/null +++ b/src/views/productManagement/promoteUrl/index.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/views/productManagement/vipCfg/components/edit.vue b/src/views/productManagement/vipCfg/components/edit.vue new file mode 100644 index 0000000..e8c7e2a --- /dev/null +++ b/src/views/productManagement/vipCfg/components/edit.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/views/productManagement/vipCfg/index.vue b/src/views/productManagement/vipCfg/index.vue new file mode 100644 index 0000000..1e5db1f --- /dev/null +++ b/src/views/productManagement/vipCfg/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/productManagement/vipProductList/components/vipAction.vue b/src/views/productManagement/vipProductList/components/vipAction.vue new file mode 100755 index 0000000..9206256 --- /dev/null +++ b/src/views/productManagement/vipProductList/components/vipAction.vue @@ -0,0 +1,1271 @@ + + + + + diff --git a/src/views/productManagement/vipProductList/index.vue b/src/views/productManagement/vipProductList/index.vue new file mode 100755 index 0000000..a025e2a --- /dev/null +++ b/src/views/productManagement/vipProductList/index.vue @@ -0,0 +1,862 @@ + + + + diff --git a/src/views/robot/chatLibrary/components/addContent.vue b/src/views/robot/chatLibrary/components/addContent.vue new file mode 100644 index 0000000..2d1a94a --- /dev/null +++ b/src/views/robot/chatLibrary/components/addContent.vue @@ -0,0 +1,110 @@ + + + \ No newline at end of file diff --git a/src/views/robot/chatLibrary/index.vue b/src/views/robot/chatLibrary/index.vue new file mode 100644 index 0000000..c08b3ba --- /dev/null +++ b/src/views/robot/chatLibrary/index.vue @@ -0,0 +1,157 @@ + + + \ No newline at end of file diff --git a/src/views/robot/robotConfig/components/addRobotPopup.vue b/src/views/robot/robotConfig/components/addRobotPopup.vue new file mode 100644 index 0000000..eb15897 --- /dev/null +++ b/src/views/robot/robotConfig/components/addRobotPopup.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/src/views/robot/robotConfig/index.vue b/src/views/robot/robotConfig/index.vue new file mode 100644 index 0000000..6b5115f --- /dev/null +++ b/src/views/robot/robotConfig/index.vue @@ -0,0 +1,175 @@ + + + \ No newline at end of file diff --git a/src/views/role/components/roleAction.vue b/src/views/role/components/roleAction.vue new file mode 100755 index 0000000..4dd5961 --- /dev/null +++ b/src/views/role/components/roleAction.vue @@ -0,0 +1,288 @@ + + + diff --git a/src/views/role/index.vue b/src/views/role/index.vue new file mode 100755 index 0000000..b108b96 --- /dev/null +++ b/src/views/role/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/src/views/shortVideoRecommend/commentBannerList/index.vue b/src/views/shortVideoRecommend/commentBannerList/index.vue new file mode 100644 index 0000000..c328c3e --- /dev/null +++ b/src/views/shortVideoRecommend/commentBannerList/index.vue @@ -0,0 +1,506 @@ + + + + + diff --git a/src/views/shortVideoRecommend/paymentGuideList/index.vue b/src/views/shortVideoRecommend/paymentGuideList/index.vue new file mode 100644 index 0000000..d87aafe --- /dev/null +++ b/src/views/shortVideoRecommend/paymentGuideList/index.vue @@ -0,0 +1,884 @@ + + + + + diff --git a/src/views/shortVideoRecommend/vipCardExperiment/index.vue b/src/views/shortVideoRecommend/vipCardExperiment/index.vue new file mode 100644 index 0000000..9180563 --- /dev/null +++ b/src/views/shortVideoRecommend/vipCardExperiment/index.vue @@ -0,0 +1,1071 @@ + + + + + diff --git a/src/views/signinManagement/checkInCfgList/components/addContent.vue b/src/views/signinManagement/checkInCfgList/components/addContent.vue new file mode 100644 index 0000000..ceb37c7 --- /dev/null +++ b/src/views/signinManagement/checkInCfgList/components/addContent.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/views/signinManagement/checkInCfgList/index.vue b/src/views/signinManagement/checkInCfgList/index.vue new file mode 100644 index 0000000..234729b --- /dev/null +++ b/src/views/signinManagement/checkInCfgList/index.vue @@ -0,0 +1,188 @@ + + + diff --git a/src/views/signinManagement/checkInList/index.vue b/src/views/signinManagement/checkInList/index.vue new file mode 100644 index 0000000..0ad244d --- /dev/null +++ b/src/views/signinManagement/checkInList/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/signinManagement/configurationList/index.vue b/src/views/signinManagement/configurationList/index.vue new file mode 100644 index 0000000..9e9093e --- /dev/null +++ b/src/views/signinManagement/configurationList/index.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/statistics/advAnalysis/index.vue b/src/views/statistics/advAnalysis/index.vue new file mode 100644 index 0000000..fb0f01a --- /dev/null +++ b/src/views/statistics/advAnalysis/index.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/statistics/clickStatistics/index.vue b/src/views/statistics/clickStatistics/index.vue new file mode 100755 index 0000000..ecaf0f0 --- /dev/null +++ b/src/views/statistics/clickStatistics/index.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/views/statistics/goldWater/index.vue b/src/views/statistics/goldWater/index.vue new file mode 100755 index 0000000..d467f81 --- /dev/null +++ b/src/views/statistics/goldWater/index.vue @@ -0,0 +1,211 @@ + + diff --git a/src/views/statistics/rechargeLog/components/echartPopup.vue b/src/views/statistics/rechargeLog/components/echartPopup.vue new file mode 100644 index 0000000..7e6fc42 --- /dev/null +++ b/src/views/statistics/rechargeLog/components/echartPopup.vue @@ -0,0 +1,181 @@ + + + + diff --git a/src/views/statistics/rechargeLog/index.vue b/src/views/statistics/rechargeLog/index.vue new file mode 100755 index 0000000..ab54012 --- /dev/null +++ b/src/views/statistics/rechargeLog/index.vue @@ -0,0 +1,207 @@ + + diff --git a/src/views/statistics/revenueData/index.vue b/src/views/statistics/revenueData/index.vue new file mode 100755 index 0000000..441ca19 --- /dev/null +++ b/src/views/statistics/revenueData/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/statistics/statistical/index.vue b/src/views/statistics/statistical/index.vue new file mode 100755 index 0000000..48afbb7 --- /dev/null +++ b/src/views/statistics/statistical/index.vue @@ -0,0 +1,211 @@ + + diff --git a/src/views/statistics/userToday/index.vue b/src/views/statistics/userToday/index.vue new file mode 100755 index 0000000..107c3f0 --- /dev/null +++ b/src/views/statistics/userToday/index.vue @@ -0,0 +1,582 @@ + + diff --git a/src/views/statistics/videoIncome/index.vue b/src/views/statistics/videoIncome/index.vue new file mode 100755 index 0000000..774d392 --- /dev/null +++ b/src/views/statistics/videoIncome/index.vue @@ -0,0 +1,185 @@ + + diff --git a/src/views/statistics/videoKlGoldStat/index.vue b/src/views/statistics/videoKlGoldStat/index.vue new file mode 100755 index 0000000..7b1c8f0 --- /dev/null +++ b/src/views/statistics/videoKlGoldStat/index.vue @@ -0,0 +1,136 @@ + + diff --git a/src/views/statistics/videoPayGoldStat/index.vue b/src/views/statistics/videoPayGoldStat/index.vue new file mode 100755 index 0000000..e179eab --- /dev/null +++ b/src/views/statistics/videoPayGoldStat/index.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/statistics/withdrawLog/index.vue b/src/views/statistics/withdrawLog/index.vue new file mode 100755 index 0000000..832cac9 --- /dev/null +++ b/src/views/statistics/withdrawLog/index.vue @@ -0,0 +1,153 @@ + + + + diff --git a/src/views/systemManagement/applicationManagement/components/applicationAction.vue b/src/views/systemManagement/applicationManagement/components/applicationAction.vue new file mode 100644 index 0000000..f7b6b44 --- /dev/null +++ b/src/views/systemManagement/applicationManagement/components/applicationAction.vue @@ -0,0 +1,69 @@ + + + \ No newline at end of file diff --git a/src/views/systemManagement/applicationManagement/index.vue b/src/views/systemManagement/applicationManagement/index.vue new file mode 100644 index 0000000..54a034c --- /dev/null +++ b/src/views/systemManagement/applicationManagement/index.vue @@ -0,0 +1,107 @@ + + diff --git a/src/views/systemManagement/ipConfig/components/addIpConfig.vue b/src/views/systemManagement/ipConfig/components/addIpConfig.vue new file mode 100755 index 0000000..1d16793 --- /dev/null +++ b/src/views/systemManagement/ipConfig/components/addIpConfig.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/systemManagement/ipConfig/index.vue b/src/views/systemManagement/ipConfig/index.vue new file mode 100755 index 0000000..486b3ac --- /dev/null +++ b/src/views/systemManagement/ipConfig/index.vue @@ -0,0 +1,165 @@ + + + + diff --git a/src/views/systemManagement/systemConfig/index.vue b/src/views/systemManagement/systemConfig/index.vue new file mode 100644 index 0000000..e75d287 --- /dev/null +++ b/src/views/systemManagement/systemConfig/index.vue @@ -0,0 +1,1112 @@ + + + diff --git a/src/views/systemManagement/versionManagement/components/versionAction.vue b/src/views/systemManagement/versionManagement/components/versionAction.vue new file mode 100755 index 0000000..8aa28f0 --- /dev/null +++ b/src/views/systemManagement/versionManagement/components/versionAction.vue @@ -0,0 +1,392 @@ + + + + diff --git a/src/views/systemManagement/versionManagement/index.vue b/src/views/systemManagement/versionManagement/index.vue new file mode 100755 index 0000000..7fffefc --- /dev/null +++ b/src/views/systemManagement/versionManagement/index.vue @@ -0,0 +1,221 @@ + + + diff --git a/src/views/systemMessage/emailPush/components/addEmail.vue b/src/views/systemMessage/emailPush/components/addEmail.vue new file mode 100644 index 0000000..18b2e96 --- /dev/null +++ b/src/views/systemMessage/emailPush/components/addEmail.vue @@ -0,0 +1,181 @@ +/* eslint-disable no-console */ + + + + + diff --git a/src/views/systemMessage/emailPush/index.vue b/src/views/systemMessage/emailPush/index.vue new file mode 100644 index 0000000..f1d099a --- /dev/null +++ b/src/views/systemMessage/emailPush/index.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/systemMessage/messagePush/components/addMessage.vue b/src/views/systemMessage/messagePush/components/addMessage.vue new file mode 100644 index 0000000..0c758ec --- /dev/null +++ b/src/views/systemMessage/messagePush/components/addMessage.vue @@ -0,0 +1,399 @@ +/* eslint-disable no-console */ + + + + + diff --git a/src/views/systemMessage/messagePush/index.vue b/src/views/systemMessage/messagePush/index.vue new file mode 100644 index 0000000..91dd214 --- /dev/null +++ b/src/views/systemMessage/messagePush/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/src/views/transactionManagement/advanceOrderList/index.vue b/src/views/transactionManagement/advanceOrderList/index.vue new file mode 100644 index 0000000..418753b --- /dev/null +++ b/src/views/transactionManagement/advanceOrderList/index.vue @@ -0,0 +1,361 @@ + + + diff --git a/src/views/transactionManagement/integralExchange/index.vue b/src/views/transactionManagement/integralExchange/index.vue new file mode 100644 index 0000000..f46b885 --- /dev/null +++ b/src/views/transactionManagement/integralExchange/index.vue @@ -0,0 +1,436 @@ + + + diff --git a/src/views/transactionManagement/rechargeList/components/edit-desc.vue b/src/views/transactionManagement/rechargeList/components/edit-desc.vue new file mode 100755 index 0000000..8fa415f --- /dev/null +++ b/src/views/transactionManagement/rechargeList/components/edit-desc.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/transactionManagement/rechargeList/index.vue b/src/views/transactionManagement/rechargeList/index.vue new file mode 100755 index 0000000..e02cc14 --- /dev/null +++ b/src/views/transactionManagement/rechargeList/index.vue @@ -0,0 +1,657 @@ + + + + diff --git a/src/views/transactionManagement/transferList/index.vue b/src/views/transactionManagement/transferList/index.vue new file mode 100644 index 0000000..60ce159 --- /dev/null +++ b/src/views/transactionManagement/transferList/index.vue @@ -0,0 +1,286 @@ + + + + + + diff --git a/src/views/transactionManagement/vipCardPurchaseRecord/index.vue b/src/views/transactionManagement/vipCardPurchaseRecord/index.vue new file mode 100644 index 0000000..86d11dd --- /dev/null +++ b/src/views/transactionManagement/vipCardPurchaseRecord/index.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawBank/components/edit-bank.vue b/src/views/transactionManagement/withdrawBank/components/edit-bank.vue new file mode 100755 index 0000000..0900219 --- /dev/null +++ b/src/views/transactionManagement/withdrawBank/components/edit-bank.vue @@ -0,0 +1,149 @@ + + + + diff --git a/src/views/transactionManagement/withdrawBank/index.vue b/src/views/transactionManagement/withdrawBank/index.vue new file mode 100755 index 0000000..4b3807c --- /dev/null +++ b/src/views/transactionManagement/withdrawBank/index.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/views/transactionManagement/withdrawList/index.vue b/src/views/transactionManagement/withdrawList/index.vue new file mode 100755 index 0000000..a36e48c --- /dev/null +++ b/src/views/transactionManagement/withdrawList/index.vue @@ -0,0 +1,671 @@ + + + + diff --git a/src/views/transactionManagement/withdrawMethod/components/channelAction.vue b/src/views/transactionManagement/withdrawMethod/components/channelAction.vue new file mode 100755 index 0000000..45b480e --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/components/channelAction.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawMethod/components/editTax.vue b/src/views/transactionManagement/withdrawMethod/components/editTax.vue new file mode 100755 index 0000000..14f4d32 --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/components/editTax.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawMethod/index.vue b/src/views/transactionManagement/withdrawMethod/index.vue new file mode 100755 index 0000000..c6b99df --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/index.vue @@ -0,0 +1,173 @@ +0 + + + + diff --git a/src/views/transactionManagement/withdrawRefund/components/refund.vue b/src/views/transactionManagement/withdrawRefund/components/refund.vue new file mode 100644 index 0000000..0b42107 --- /dev/null +++ b/src/views/transactionManagement/withdrawRefund/components/refund.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/transactionManagement/withdrawRefund/index.vue b/src/views/transactionManagement/withdrawRefund/index.vue new file mode 100644 index 0000000..9bf2094 --- /dev/null +++ b/src/views/transactionManagement/withdrawRefund/index.vue @@ -0,0 +1,296 @@ + + + + diff --git a/src/views/user/backpackList/index.vue b/src/views/user/backpackList/index.vue new file mode 100644 index 0000000..a567119 --- /dev/null +++ b/src/views/user/backpackList/index.vue @@ -0,0 +1,303 @@ + + + diff --git a/src/views/user/blackList/components/addBlack.vue b/src/views/user/blackList/components/addBlack.vue new file mode 100755 index 0000000..ecc64bf --- /dev/null +++ b/src/views/user/blackList/components/addBlack.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/user/blackList/index.vue b/src/views/user/blackList/index.vue new file mode 100755 index 0000000..f9b815c --- /dev/null +++ b/src/views/user/blackList/index.vue @@ -0,0 +1,154 @@ + + + + diff --git a/src/views/user/commonQuestion/components/question-popup.vue b/src/views/user/commonQuestion/components/question-popup.vue new file mode 100755 index 0000000..1496665 --- /dev/null +++ b/src/views/user/commonQuestion/components/question-popup.vue @@ -0,0 +1,148 @@ + + + diff --git a/src/views/user/commonQuestion/index.vue b/src/views/user/commonQuestion/index.vue new file mode 100755 index 0000000..85f5906 --- /dev/null +++ b/src/views/user/commonQuestion/index.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/views/user/feedbackList/components/editFeedback.vue b/src/views/user/feedbackList/components/editFeedback.vue new file mode 100755 index 0000000..4f8992e --- /dev/null +++ b/src/views/user/feedbackList/components/editFeedback.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/views/user/feedbackList/components/previewPicture.vue b/src/views/user/feedbackList/components/previewPicture.vue new file mode 100644 index 0000000..de34e94 --- /dev/null +++ b/src/views/user/feedbackList/components/previewPicture.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/user/feedbackList/index.vue b/src/views/user/feedbackList/index.vue new file mode 100755 index 0000000..8362975 --- /dev/null +++ b/src/views/user/feedbackList/index.vue @@ -0,0 +1,477 @@ + + + diff --git a/src/views/user/userFollow/components/add.vue b/src/views/user/userFollow/components/add.vue new file mode 100755 index 0000000..76098b7 --- /dev/null +++ b/src/views/user/userFollow/components/add.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/user/userFollow/index.vue b/src/views/user/userFollow/index.vue new file mode 100755 index 0000000..ea82406 --- /dev/null +++ b/src/views/user/userFollow/index.vue @@ -0,0 +1,458 @@ + + + + diff --git a/src/views/user/userIpBlock/components/blockAction.vue b/src/views/user/userIpBlock/components/blockAction.vue new file mode 100755 index 0000000..577eb63 --- /dev/null +++ b/src/views/user/userIpBlock/components/blockAction.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/user/userIpBlock/index.vue b/src/views/user/userIpBlock/index.vue new file mode 100755 index 0000000..8e82b13 --- /dev/null +++ b/src/views/user/userIpBlock/index.vue @@ -0,0 +1,170 @@ + + diff --git a/src/views/user/userList/components/aiMateTrans.vue b/src/views/user/userList/components/aiMateTrans.vue new file mode 100755 index 0000000..108b1c5 --- /dev/null +++ b/src/views/user/userList/components/aiMateTrans.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/views/user/userList/components/edit-user.vue b/src/views/user/userList/components/edit-user.vue new file mode 100755 index 0000000..4222461 --- /dev/null +++ b/src/views/user/userList/components/edit-user.vue @@ -0,0 +1,921 @@ + + + + + diff --git a/src/views/user/userList/components/gameCodeDialog.vue b/src/views/user/userList/components/gameCodeDialog.vue new file mode 100644 index 0000000..e215e69 --- /dev/null +++ b/src/views/user/userList/components/gameCodeDialog.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/user/userList/components/qrcode.vue b/src/views/user/userList/components/qrcode.vue new file mode 100644 index 0000000..a26f91e --- /dev/null +++ b/src/views/user/userList/components/qrcode.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/views/user/userList/components/recycleGameBalance.vue b/src/views/user/userList/components/recycleGameBalance.vue new file mode 100755 index 0000000..ae91d3b --- /dev/null +++ b/src/views/user/userList/components/recycleGameBalance.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/user/userList/components/recycleGold.vue b/src/views/user/userList/components/recycleGold.vue new file mode 100755 index 0000000..7a7bc05 --- /dev/null +++ b/src/views/user/userList/components/recycleGold.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/views/user/userList/components/unblockPage.vue b/src/views/user/userList/components/unblockPage.vue new file mode 100644 index 0000000..3e89ef3 --- /dev/null +++ b/src/views/user/userList/components/unblockPage.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/views/user/userList/components/verification-code.vue b/src/views/user/userList/components/verification-code.vue new file mode 100644 index 0000000..0f07a79 --- /dev/null +++ b/src/views/user/userList/components/verification-code.vue @@ -0,0 +1,88 @@ + + + + diff --git a/src/views/user/userList/components/view-video.vue b/src/views/user/userList/components/view-video.vue new file mode 100755 index 0000000..1d058af --- /dev/null +++ b/src/views/user/userList/components/view-video.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/views/user/userList/components/vipInfo.vue b/src/views/user/userList/components/vipInfo.vue new file mode 100755 index 0000000..adc90f4 --- /dev/null +++ b/src/views/user/userList/components/vipInfo.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/user/userList/index.vue b/src/views/user/userList/index.vue new file mode 100755 index 0000000..832fdd7 --- /dev/null +++ b/src/views/user/userList/index.vue @@ -0,0 +1,1649 @@ + + + + diff --git a/src/views/user/userLog/index.vue b/src/views/user/userLog/index.vue new file mode 100755 index 0000000..53ea55c --- /dev/null +++ b/src/views/user/userLog/index.vue @@ -0,0 +1,186 @@ + + diff --git a/src/views/user/userMessageList/index.vue b/src/views/user/userMessageList/index.vue new file mode 100644 index 0000000..bbc654b --- /dev/null +++ b/src/views/user/userMessageList/index.vue @@ -0,0 +1,369 @@ + + + diff --git a/src/views/user/userPostsLog/index.vue b/src/views/user/userPostsLog/index.vue new file mode 100755 index 0000000..35c51ae --- /dev/null +++ b/src/views/user/userPostsLog/index.vue @@ -0,0 +1,355 @@ + + + + diff --git a/src/views/user/userRecommendation/components/recommendAction.vue b/src/views/user/userRecommendation/components/recommendAction.vue new file mode 100644 index 0000000..bb3c3dd --- /dev/null +++ b/src/views/user/userRecommendation/components/recommendAction.vue @@ -0,0 +1,135 @@ + + + \ No newline at end of file diff --git a/src/views/user/userRecommendation/index.vue b/src/views/user/userRecommendation/index.vue new file mode 100644 index 0000000..f0edb7b --- /dev/null +++ b/src/views/user/userRecommendation/index.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/user/userReport/components/comment-popup.vue b/src/views/user/userReport/components/comment-popup.vue new file mode 100755 index 0000000..438e147 --- /dev/null +++ b/src/views/user/userReport/components/comment-popup.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/views/user/userReport/index.vue b/src/views/user/userReport/index.vue new file mode 100755 index 0000000..ce9dccd --- /dev/null +++ b/src/views/user/userReport/index.vue @@ -0,0 +1,319 @@ + + + diff --git a/src/views/user/userResource/components/resourceAction.vue b/src/views/user/userResource/components/resourceAction.vue new file mode 100755 index 0000000..c1c92be --- /dev/null +++ b/src/views/user/userResource/components/resourceAction.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/user/userResource/index.vue b/src/views/user/userResource/index.vue new file mode 100755 index 0000000..8865dc9 --- /dev/null +++ b/src/views/user/userResource/index.vue @@ -0,0 +1,163 @@ + + diff --git a/src/views/user/userWatch/index.vue b/src/views/user/userWatch/index.vue new file mode 100755 index 0000000..9277459 --- /dev/null +++ b/src/views/user/userWatch/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/videoManagement/activeConfig/index.vue b/src/views/videoManagement/activeConfig/index.vue new file mode 100644 index 0000000..427868f --- /dev/null +++ b/src/views/videoManagement/activeConfig/index.vue @@ -0,0 +1,237 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/cityList/components/addTag.vue b/src/views/videoManagement/cityList/components/addTag.vue new file mode 100755 index 0000000..f4f2855 --- /dev/null +++ b/src/views/videoManagement/cityList/components/addTag.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/src/views/videoManagement/cityList/index.vue b/src/views/videoManagement/cityList/index.vue new file mode 100755 index 0000000..e614687 --- /dev/null +++ b/src/views/videoManagement/cityList/index.vue @@ -0,0 +1,155 @@ + + diff --git a/src/views/videoManagement/commentList/components/importComments.vue b/src/views/videoManagement/commentList/components/importComments.vue new file mode 100644 index 0000000..2d71303 --- /dev/null +++ b/src/views/videoManagement/commentList/components/importComments.vue @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/commentList/components/importComments11.vue b/src/views/videoManagement/commentList/components/importComments11.vue new file mode 100644 index 0000000..18df5dd --- /dev/null +++ b/src/views/videoManagement/commentList/components/importComments11.vue @@ -0,0 +1,116 @@ + + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/commentList/components/updateComment.vue b/src/views/videoManagement/commentList/components/updateComment.vue new file mode 100644 index 0000000..d7784cf --- /dev/null +++ b/src/views/videoManagement/commentList/components/updateComment.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/videoManagement/commentList/index.vue b/src/views/videoManagement/commentList/index.vue new file mode 100755 index 0000000..95847b2 --- /dev/null +++ b/src/views/videoManagement/commentList/index.vue @@ -0,0 +1,1040 @@ + + diff --git a/src/views/videoManagement/emojiList/index.vue b/src/views/videoManagement/emojiList/index.vue new file mode 100644 index 0000000..7419afe --- /dev/null +++ b/src/views/videoManagement/emojiList/index.vue @@ -0,0 +1,780 @@ + + + diff --git a/src/views/videoManagement/filterManagement/components/addFilter.vue b/src/views/videoManagement/filterManagement/components/addFilter.vue new file mode 100755 index 0000000..828861a --- /dev/null +++ b/src/views/videoManagement/filterManagement/components/addFilter.vue @@ -0,0 +1,87 @@ + + + \ No newline at end of file diff --git a/src/views/videoManagement/filterManagement/index.vue b/src/views/videoManagement/filterManagement/index.vue new file mode 100755 index 0000000..adc0d37 --- /dev/null +++ b/src/views/videoManagement/filterManagement/index.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/videoManagement/freeVidCfg/components/addFree.vue b/src/views/videoManagement/freeVidCfg/components/addFree.vue new file mode 100755 index 0000000..0654a86 --- /dev/null +++ b/src/views/videoManagement/freeVidCfg/components/addFree.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/videoManagement/freeVidCfg/index.vue b/src/views/videoManagement/freeVidCfg/index.vue new file mode 100755 index 0000000..2cf426b --- /dev/null +++ b/src/views/videoManagement/freeVidCfg/index.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue b/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue new file mode 100644 index 0000000..b43176f --- /dev/null +++ b/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/videoManagement/goldCoinVideoConfig/index.vue b/src/views/videoManagement/goldCoinVideoConfig/index.vue new file mode 100644 index 0000000..9f89ca3 --- /dev/null +++ b/src/views/videoManagement/goldCoinVideoConfig/index.vue @@ -0,0 +1,703 @@ + + + diff --git a/src/views/videoManagement/hotCity/components/addCity.vue b/src/views/videoManagement/hotCity/components/addCity.vue new file mode 100755 index 0000000..53be19d --- /dev/null +++ b/src/views/videoManagement/hotCity/components/addCity.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/videoManagement/hotCity/index.vue b/src/views/videoManagement/hotCity/index.vue new file mode 100755 index 0000000..326066c --- /dev/null +++ b/src/views/videoManagement/hotCity/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/videoManagement/pushList/index.vue b/src/views/videoManagement/pushList/index.vue new file mode 100644 index 0000000..8bb84ce --- /dev/null +++ b/src/views/videoManagement/pushList/index.vue @@ -0,0 +1,99 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/quickSearch/components/add.vue b/src/views/videoManagement/quickSearch/components/add.vue new file mode 100755 index 0000000..559403d --- /dev/null +++ b/src/views/videoManagement/quickSearch/components/add.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/videoManagement/quickSearch/index.vue b/src/views/videoManagement/quickSearch/index.vue new file mode 100755 index 0000000..8feb768 --- /dev/null +++ b/src/views/videoManagement/quickSearch/index.vue @@ -0,0 +1,187 @@ + + diff --git a/src/views/videoManagement/recommendSignature/components/addTag.vue b/src/views/videoManagement/recommendSignature/components/addTag.vue new file mode 100755 index 0000000..67e3188 --- /dev/null +++ b/src/views/videoManagement/recommendSignature/components/addTag.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/videoManagement/recommendSignature/index.vue b/src/views/videoManagement/recommendSignature/index.vue new file mode 100644 index 0000000..926a3ab --- /dev/null +++ b/src/views/videoManagement/recommendSignature/index.vue @@ -0,0 +1,207 @@ + + + + diff --git a/src/views/videoManagement/resourceManage/components/resourceAction.vue b/src/views/videoManagement/resourceManage/components/resourceAction.vue new file mode 100755 index 0000000..3037c70 --- /dev/null +++ b/src/views/videoManagement/resourceManage/components/resourceAction.vue @@ -0,0 +1,297 @@ + + + + diff --git a/src/views/videoManagement/resourceManage/index.vue b/src/views/videoManagement/resourceManage/index.vue new file mode 100755 index 0000000..e3871ee --- /dev/null +++ b/src/views/videoManagement/resourceManage/index.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/videoManagement/tagConfiguration/index.vue b/src/views/videoManagement/tagConfiguration/index.vue new file mode 100644 index 0000000..863bdd0 --- /dev/null +++ b/src/views/videoManagement/tagConfiguration/index.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/views/videoManagement/tagList/components/addRecommendTag.vue b/src/views/videoManagement/tagList/components/addRecommendTag.vue new file mode 100644 index 0000000..85a216f --- /dev/null +++ b/src/views/videoManagement/tagList/components/addRecommendTag.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/src/views/videoManagement/tagList/components/addTag.vue b/src/views/videoManagement/tagList/components/addTag.vue new file mode 100755 index 0000000..64cac77 --- /dev/null +++ b/src/views/videoManagement/tagList/components/addTag.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/videoManagement/tagList/index.vue b/src/views/videoManagement/tagList/index.vue new file mode 100755 index 0000000..9204096 --- /dev/null +++ b/src/views/videoManagement/tagList/index.vue @@ -0,0 +1,401 @@ + + + + diff --git a/src/views/videoManagement/vidResCfg/components/look.vue b/src/views/videoManagement/vidResCfg/components/look.vue new file mode 100644 index 0000000..15b8fd8 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/look.vue @@ -0,0 +1,59 @@ + + + + diff --git a/src/views/videoManagement/vidResCfg/components/preview-video.vue b/src/views/videoManagement/vidResCfg/components/preview-video.vue new file mode 100644 index 0000000..5b3aa06 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/preview-video.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/videoManagement/vidResCfg/components/previewPicture.vue b/src/views/videoManagement/vidResCfg/components/previewPicture.vue new file mode 100644 index 0000000..1ebfa2a --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/previewPicture.vue @@ -0,0 +1,162 @@ + + + diff --git a/src/views/videoManagement/vidResCfg/index.vue b/src/views/videoManagement/vidResCfg/index.vue new file mode 100644 index 0000000..ea41574 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/index.vue @@ -0,0 +1,792 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/add-video.vue b/src/views/videoManagement/videoExamine/components/add-video.vue new file mode 100755 index 0000000..fec2e02 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/add-video.vue @@ -0,0 +1,645 @@ +/* eslint-disable no-unreachable */ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue b/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue new file mode 100755 index 0000000..9a4acc3 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/configuration-popup.vue b/src/views/videoManagement/videoExamine/components/configuration-popup.vue new file mode 100644 index 0000000..9665f72 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/configuration-popup.vue @@ -0,0 +1,68 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/videoExamine/components/edit-video.vue b/src/views/videoManagement/videoExamine/components/edit-video.vue new file mode 100755 index 0000000..ee7d2ab --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/edit-video.vue @@ -0,0 +1,587 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/examine-all.vue b/src/views/videoManagement/videoExamine/components/examine-all.vue new file mode 100644 index 0000000..88552f8 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/examine-all.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/examine-popup.vue b/src/views/videoManagement/videoExamine/components/examine-popup.vue new file mode 100755 index 0000000..ad66773 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/examine-popup.vue @@ -0,0 +1,405 @@ + + + diff --git a/src/views/videoManagement/videoExamine/components/notPass-list.vue b/src/views/videoManagement/videoExamine/components/notPass-list.vue new file mode 100644 index 0000000..7591e90 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/notPass-list.vue @@ -0,0 +1,219 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/videoExamine/components/preview-video.vue b/src/views/videoManagement/videoExamine/components/preview-video.vue new file mode 100644 index 0000000..f1f2bce --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/preview-video.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/previewPicture.vue b/src/views/videoManagement/videoExamine/components/previewPicture.vue new file mode 100644 index 0000000..507fce9 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/previewPicture.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/views/videoManagement/videoExamine/components/tags-popup.vue b/src/views/videoManagement/videoExamine/components/tags-popup.vue new file mode 100755 index 0000000..b30460c --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/tags-popup.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/index.vue b/src/views/videoManagement/videoExamine/index.vue new file mode 100755 index 0000000..59633cb --- /dev/null +++ b/src/views/videoManagement/videoExamine/index.vue @@ -0,0 +1,1081 @@ + + + + diff --git a/src/views/videoManagement/videoHot/components/editPopup.vue b/src/views/videoManagement/videoHot/components/editPopup.vue new file mode 100755 index 0000000..1137492 --- /dev/null +++ b/src/views/videoManagement/videoHot/components/editPopup.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/videoManagement/videoHot/index.vue b/src/views/videoManagement/videoHot/index.vue new file mode 100755 index 0000000..d8078db --- /dev/null +++ b/src/views/videoManagement/videoHot/index.vue @@ -0,0 +1,156 @@ + + diff --git a/src/views/videoManagement/videoList/components/batchEditPopup.vue b/src/views/videoManagement/videoList/components/batchEditPopup.vue new file mode 100644 index 0000000..34285b0 --- /dev/null +++ b/src/views/videoManagement/videoList/components/batchEditPopup.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/edit-video.vue b/src/views/videoManagement/videoList/components/edit-video.vue new file mode 100755 index 0000000..6de233e --- /dev/null +++ b/src/views/videoManagement/videoList/components/edit-video.vue @@ -0,0 +1,1063 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/morePreviewPicture.vue b/src/views/videoManagement/videoList/components/morePreviewPicture.vue new file mode 100644 index 0000000..7a4e185 --- /dev/null +++ b/src/views/videoManagement/videoList/components/morePreviewPicture.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/videoManagement/videoList/components/previewPicture.vue b/src/views/videoManagement/videoList/components/previewPicture.vue new file mode 100644 index 0000000..7a4e185 --- /dev/null +++ b/src/views/videoManagement/videoList/components/previewPicture.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/videoManagement/videoList/components/setPopularity.vue b/src/views/videoManagement/videoList/components/setPopularity.vue new file mode 100644 index 0000000..7ea99d4 --- /dev/null +++ b/src/views/videoManagement/videoList/components/setPopularity.vue @@ -0,0 +1,198 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/videoList/components/transferPostPopup.vue b/src/views/videoManagement/videoList/components/transferPostPopup.vue new file mode 100644 index 0000000..5e14971 --- /dev/null +++ b/src/views/videoManagement/videoList/components/transferPostPopup.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updateDownloadPopup.vue b/src/views/videoManagement/videoList/components/updateDownloadPopup.vue new file mode 100644 index 0000000..7421ada --- /dev/null +++ b/src/views/videoManagement/videoList/components/updateDownloadPopup.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue b/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue new file mode 100644 index 0000000..f8cee0a --- /dev/null +++ b/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updatePublisherPopup.vue b/src/views/videoManagement/videoList/components/updatePublisherPopup.vue new file mode 100644 index 0000000..6bddb92 --- /dev/null +++ b/src/views/videoManagement/videoList/components/updatePublisherPopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/vidHotQuery.vue b/src/views/videoManagement/videoList/components/vidHotQuery.vue new file mode 100644 index 0000000..2b00625 --- /dev/null +++ b/src/views/videoManagement/videoList/components/vidHotQuery.vue @@ -0,0 +1,122 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/videoList/index.vue b/src/views/videoManagement/videoList/index.vue new file mode 100755 index 0000000..16d0fae --- /dev/null +++ b/src/views/videoManagement/videoList/index.vue @@ -0,0 +1,2771 @@ + + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue b/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue new file mode 100755 index 0000000..f2c2aab --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue b/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue new file mode 100644 index 0000000..93837a9 --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/index.vue b/src/views/videoManagement/videoTimeOnlineList/index.vue new file mode 100755 index 0000000..8e6c58f --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/index.vue @@ -0,0 +1,386 @@ + + + + diff --git a/src/views/welcome/index.vue b/src/views/welcome/index.vue new file mode 100755 index 0000000..0233f5f --- /dev/null +++ b/src/views/welcome/index.vue @@ -0,0 +1,72 @@ + + + diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..46cda94 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,34 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-31 17:53:35 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-11-04 14:41:28 + */ + // gzip压缩配置 + const CompressionPlugin = require("compression-webpack-plugin") +module.exports = { + publicPath: './', + configureWebpack: () => { + if (process.env.NODE_ENV === "production") { + return { + plugins: [ + new CompressionPlugin({ + test: /\.js$|\.css$|\.html$|\.mp4$/, //匹配文件名 + threshold: 10240, //对超出10k对数据进行压缩 + deleteOriginalAssets: false //是否删除文件 + }) + ] + }; + } + }, + + css: { + loaderOptions: { + sass: { + data: `@import "@/assets/scss/base.scss";` + } + } + }, + + +}