Просмотр исходного кода

chore: pre-test commit - consolidate git status before running test automation

E2E Test Bot 1 неделя назад
Родитель
Сommit
3d3cb183c3
100 измененных файлов с 18528 добавлено и 0 удалено
  1. 2 0
      .gitignore
  2. 1 0
      .wt-c3fix
  3. 1 0
      .wt-f3c
  4. 1 0
      .wt-t28v
  5. 105 0
      INTERFACE_FAIL_CLASSIFICATION.md
  6. 79 0
      _e2e_admin_debug.cjs
  7. 34 0
      _e2e_admin_debug.json
  8. 75 0
      _e2e_admin_login2.cjs
  9. 33 0
      _e2e_admin_login2.json
  10. 79 0
      _e2e_internal_probe.cjs
  11. 16 0
      _e2e_probe_1944.cjs
  12. 24 0
      _e2e_probe_result.json
  13. 584 0
      _pre0243_reds.json
  14. 293 0
      _r0243_agg.json
  15. 756 0
      _r0243_attr.json
  16. 746 0
      _r0243_reds.json
  17. 2378 0
      _run29_agg.json
  18. 321 0
      _run30_agg.json
  19. 307 0
      _run31_agg.json
  20. 363 0
      _run32_agg.json
  21. 272 0
      _run33_agg.json
  22. 389 0
      _run33_nonenv.json
  23. 307 0
      _run34_agg.json
  24. 279 0
      _run35_agg.json
  25. 279 0
      _run36_agg.json
  26. 279 0
      _run37_agg.json
  27. 284 0
      _run38_agg.json
  28. 279 0
      _run39_agg.json
  29. 279 0
      _run40_agg.json
  30. 0 0
      _run40_npm_audit_frontend.err
  31. 3802 0
      _run40_npm_audit_frontend.json
  32. 160 0
      _run40_npm_audit_root.json
  33. 3441 0
      _run40_npm_audit_web.json
  34. 279 0
      _run41_agg.json
  35. 286 0
      _run42_agg.json
  36. 286 0
      _run43_agg.json
  37. 856 0
      _run43_reds.json
  38. 15 0
      _surefire_backup_r34/2026-11-04T22-15-11_513-jvmRun1.dump
  39. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.common.AdminRolesTest.xml
  40. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.common.ResultCodeFactoryTest.xml
  41. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.config.AttributionStage1FoundationTest.xml
  42. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.config.DatabaseInitializerSeedTest.xml
  43. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.config.FamilyAccessInterceptorTest.xml
  44. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.config.JwtInterceptorLoginRequiredTest.xml
  45. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.AIChatControllerTest.xml
  46. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ActivityControllerTest.xml
  47. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ArticleCategoryControllerTest.xml
  48. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ArticleControllerTest.xml
  49. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.AttributionControllerTest.xml
  50. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.AttributionSurveyRoutingTest.xml
  51. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.AuthControllerTest.xml
  52. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.DailyTaskControllerTest.xml
  53. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.DanAssessmentControllerGetActiveMaterialTest.xml
  54. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.DimensionAdminControllerTest.xml
  55. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.EnergyControllerGrantEnergyTest.xml
  56. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.FamilyControllerTest.xml
  57. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideFamilyTaskControllerTest.xml
  58. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideOrderControllerTest.xml
  59. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideRolePermissionTest.xml
  60. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideTeamControllerTest.xml
  61. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthCheckinCfEarnCallSiteTest.xml
  62. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthDimensionControllerTest.xml
  63. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthPlanDeleteControllerTest.xml
  64. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerCreateReportTest.xml
  65. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerListPaginationTest.xml
  66. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerProxyParseBindingTest.xml
  67. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.IndicatorControllerTest.xml
  68. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.IndicatorFavoriteControllerTest.xml
  69. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.PaymentControllerTest.xml
  70. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ProductControllerTest.xml
  71. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ProductOrderControllerTest.xml
  72. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.StatsControllerTest.xml
  73. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.WishControllerTest.xml
  74. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminAuthControllerLoginStatusTest.xml
  75. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminAuthWechatScanTest.xml
  76. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminButlerControllerEnvelopeTest.xml
  77. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminCommissionConfigControllerTest.xml
  78. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminProductControllerBatchShelveTest.xml
  79. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.ReportParserAdminControllerTest.xml
  80. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.SupplyTeamControllerInviteTest.xml
  81. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ai.AIChatControllerGateTest.xml
  82. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.ai.ButlerControllerGateTest.xml
  83. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerAddMemberTest.xml
  84. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerListTest.xml
  85. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerRenameFamilyTest.xml
  86. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TeacherMessageControllerMyTest.xml
  87. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TrainingPlanControllerGetPlanDetailTest.xml
  88. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TrainingPlanControllerGetPlanListTest.xml
  89. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.controller.mind.MindFortuneControllerTest.xml
  90. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.dto.ActivityDTOTest.xml
  91. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.DailyCheckinStreakFlowTest.xml
  92. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.EnergySystemFlowTest.xml
  93. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.GrowthRecordSyncFlowTest.xml
  94. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.GuideModuleIntegrationTest.xml
  95. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.PlannerBindInviteFlowTest.xml
  96. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.AdminFamilyOverviewControllerTest.xml
  97. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.AdminSpecialPriceControllerTest.xml
  98. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.SpecialPriceControllerTest.xml
  99. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.orchestration.OrchestrationEngineTest.xml
  100. 9 0
      _surefire_backup_r34/TEST-com.etotem.cfc.orchestration.OrchestrationIntegrationTest.xml

+ 2 - 0
.gitignore

@@ -69,6 +69,8 @@ worktrees/
 # Python
 *.py
 __pycache__/
+# TDD 用例脚本化生成器(产物需团队可复现,例外放行)
+!tests/scripts/scriptize_tc.py
 
 # OpenCode
 .opencode/

+ 1 - 0
.wt-c3fix

@@ -0,0 +1 @@
+Subproject commit b7f371a6c237d361ba68bc3ef189f5f05c206196

+ 1 - 0
.wt-f3c

@@ -0,0 +1 @@
+Subproject commit 29887b33b393c83067a14688607139e2fe3efeb9

+ 1 - 0
.wt-t28v

@@ -0,0 +1 @@
+Subproject commit 90798afd1a3ac84af676e131eef11510b9512959

+ 105 - 0
INTERFACE_FAIL_CLASSIFICATION.md

@@ -0,0 +1,105 @@
+# CFC 接口失败分型报告
+
+- 数据源轮次:`run_20261101_085833`
+- 目标:`http://192.168.16.251` (Host: `cfc.iwintrue.com`)
+- 唯一失败端点:**292**
+
+## 一、为什么要做这个分型
+
+冒烟脚本的判定只有一档:`biz==200` 记为 BIZ_OK,其余全部 BIZ_FAIL。
+而绝大多数用例是**空 body** 请求,于是「没喂必填参数」和「后端真有缺陷」
+混为一谈,导致通过率长期锁死在 45%,既看不见真实质量,也不知道该修什么。
+本报告按接口返回的业务 `message` 文本,把失败重新归类。
+
+## 二、分型结果
+
+| 类型 | 数量 | 含义 | 是否需研发处理 |
+|---|---:|---|---|
+| REAL_ERR | 49 | **真缺陷候选**:通用业务异常,无法用"缺参数/占位数据"解释 | **是** |
+| AUTH_FAIL | 25 | 鉴权/权限拦截失败,需确认是预期行为还是用例缺 token | 待定 |
+| PRECONDITION | 18 | 用例未按业务流程先建立上下文(如先创建家庭),属**用例设计问题** | 否 |
+| DATA_STUB | 32 | 占位 ID(默认 1)查不到记录,属**测试数据问题** | 否 |
+| PARAM_MISSING | 155 | 请求体未填必填参数,属**测试数据问题** | 否 |
+| PARAM_INVALID | 6 | 参数值不合法(格式/类型/范围),属测试数据问题 | 否 |
+| DEPRECATED | 4 | 接口已声明废弃,应从通过率分母中剔除 | 否(建议清规格) |
+| UNKNOWN | 3 | 复读未拿到 JSON message,无法判定,需补测 | 待核实 |
+| **合计** | **292** | | |
+
+**结论**:292 个被记为"业务失败"的端点中,**215 个(73%)是测试数据/规格噪声**,真正需要研发关注的为 **74 个**(真缺陷 49 + 鉴权待定 25)。
+
+> 剔除噪声后,剩余 77 个有效端点中真缺陷占比 **63%** —— 这个数字才具备诊断价值。
+
+## 三、真缺陷候选清单(49 个)
+
+| 方法 | 路径 | biz | 返回 message |
+|---|---|---:|---|
+| POST | `/api/activity/publish` | 500 | 只有管理员或活动管理员可以发布活动 |
+| POST | `/api/articles/report-reading-time` | 500 | success |
+| POST | `/api/common/qrcode` | 500 | 不支持的二维码类型 |
+| POST | `/api/consignee/delete` | 500 | 服务器内部错误 |
+| POST | `/api/consignee/detail` | 500 | 服务器内部错误 |
+| POST | `/api/coupon/apply` | 500 | 服务器内部错误 |
+| POST | `/api/coupon/claim` | 500 | 未加入家庭 |
+| POST | `/api/dan-assessment/appointment/cancel` | 500 | 取消失败 |
+| POST | `/api/dan-assessment/order/pay` | 500 | 支付失败 |
+| POST | `/api/diet/ingredients/add` | 500 | 服务器内部错误 |
+| POST | `/api/diet/ingredients/recommend` | 500 | 服务器内部错误 |
+| POST | `/api/diet/ingredients/remove` | 500 | 服务器内部错误 |
+| POST | `/api/diet/ingredients/suggest` | 500 | 服务器内部错误 |
+| POST | `/api/diet/meals/config/save` | 400 | 服务器内部错误 |
+| POST | `/api/family/mbti/latest` | 500 | success |
+| POST | `/api/family/mbti/profile` | 500 | 服务器内部错误 |
+| POST | `/api/family/mbti/questions` | 500 | 服务器内部错误 |
+| POST | `/api/family/self-check/generate-plan` | 500 | 计划生成失败,请稍后重试 |
+| POST | `/api/family/user/children` | 400 | 服务器内部错误 |
+| POST | `/api/family/user/members/update-visibility` | 500 | 服务器内部错误 |
+| POST | `/api/growth/record/create` | 500 | 服务器内部错误 |
+| POST | `/api/growth/record/create-from-upload` | 500 | 服务器内部错误 |
+| POST | `/api/growth/record/create-with-order` | 500 | 服务器内部错误 |
+| POST | `/api/growth/record/list` | 500 | 服务器内部错误 |
+| POST | `/api/growth/record/supplement` | 500 | 服务器内部错误 |
+| POST | `/api/guide-config/current` | 500 | 服务器内部错误 |
+| POST | `/api/guide/messages/list` | 500 | 只有成长规划师可以查看 |
+| POST | `/api/health/challenge/progress` | 500 | 仅家庭成员可打卡 |
+| POST | `/api/health/plan/generate` | 4001 | 请升级为家庭会员或购买健康启航计划 |
+| POST | `/api/health/report/create` | 4001 | 请先购买健康启航计划体验包 |
+| POST | `/api/health/report/reassign` | 500 | 服务器内部错误 |
+| POST | `/api/indicator/change-ranking` | 500 | 服务器内部错误 |
+| POST | `/api/indicator/correlation/list` | 500 | 服务器内部错误 |
+| POST | `/api/indicator/quick-lookup` | 500 | 服务器内部错误 |
+| POST | `/api/insurance/planning` | 500 | 服务器内部错误 |
+| POST | `/api/meal/recommend` | 500 | 暂无可用食材和食谱,请联系运营配置 |
+| POST | `/api/membership/compare` | 500 | 服务器内部错误 |
+| POST | `/api/product/create` | 500 | 仅审核通过的服务商可发布商品 |
+| POST | `/api/product/purchase_fields/required` | 500 | 服务器内部错误 |
+| POST | `/api/task/reminder-config/save` | 500 | 至少选择一个提醒渠道 |
+| POST | `/api/tasks/accept` | 500 | 服务器内部错误 |
+| POST | `/api/tasks/create` | 400 | 服务器内部错误 |
+| POST | `/api/tianpan/annual-energy` | 500 | 服务器内部错误 |
+| POST | `/api/user/portrait/edit` | 500 | 服务器内部错误 |
+| POST | `/api/wishes/1/confirm` | 500 | 确认失败,请检查心愿状态 |
+| POST | `/api/wishes/1/exchange` | 500 | 申请兑换失败,请检查心愿状态 |
+| POST | `/api/wishes/1/fulfill` | 500 | 标记失败,请检查心愿状态 |
+| POST | `/api/wishes/1/reject` | 500 | 拒绝失败,请检查心愿状态 |
+| POST | `/api/withdrawal/apply` | 500 | 提现金额必须大于0 |
+
+## 四、已废弃但仍在跑的接口(4 个)
+
+这些应转入 410 Gone 并从用例分母剔除,否则长期污染通过率:
+
+- `POST /api/auth/auto-login` — 该接口已废弃,请改用 /api/auth/silent-login
+- `POST /api/family/user/switch-back-to-parent` — 该接口已废弃,请使用 /api/family/member/switch
+- `POST /api/family/user/switch-mode` — 该接口已废弃,请使用 /api/family/member/switch
+- `POST /api/family/user/switch-to-child` — 该接口已废弃,请使用 /api/family/member/switch
+
+## 五、未能判定(3 个)
+
+复读未取得 JSON message(超时/挂起/网关异常),标为**待核实**,不代表通过也不代表失败:
+
+- `POST /api/contact/delete` — 请求异常: TimeoutError
+- `POST /api/contact/import-phone` — 请求异常: TimeoutError
+- `POST /api/indicator/trend` — 请求异常: TimeoutError
+
+---
+
+生成方式:`python interface_classify_failures.py` 机读明细:`interface_fail_classification.tsv`

+ 79 - 0
_e2e_admin_debug.cjs

@@ -0,0 +1,79 @@
+/**
+ * Temporary admin-login diagnostic (NOT committed). Classifies why /admin
+ * login returned no token: credential rejection vs selector mismatch.
+ * Credentials read from local machine.json; never printed.
+ */
+const { chromium } = require('@playwright/test');
+const fs = require('fs');
+const path = require('path');
+
+const BASE = process.env.PW_BASE_URL || 'http://cfc.iwintrue.com';
+const MJ = process.env.MACHINE_JSON_PATH;
+
+async function main() {
+  const out = { base: BASE, steps: {} };
+  let admin = { phone: '13800138000' };
+  let pw = 'admin123';
+  if (MJ && fs.existsSync(MJ)) {
+    try {
+      const cfg = JSON.parse(fs.readFileSync(MJ, 'utf8'));
+      if (cfg.e2e_test_target && cfg.e2e_test_target.admin) {
+        if (cfg.e2e_test_target.admin.phone) admin.phone = cfg.e2e_test_target.admin.phone;
+        if (cfg.e2e_test_target.admin.password) pw = cfg.e2e_test_target.admin.password;
+      }
+    } catch (e) {}
+  }
+
+  const launchOpts = { headless: true, args: ['--no-sandbox'] };
+  if (process.env.CHROME_PATH) launchOpts.executablePath = process.env.CHROME_PATH;
+  const browser = await chromium.launch(launchOpts);
+  try {
+    const ctx = await browser.newContext();
+    const page = await ctx.newPage();
+
+    const resp = await page.goto(BASE + '/admin/login', { waitUntil: 'networkidle', timeout: 30000 });
+    await page.waitForTimeout(2000);
+    out.steps.loginPage = {
+      status: resp ? resp.status() : null,
+      url: page.url().slice(0, 120),
+      title: String(await page.title()).slice(0, 80)
+    };
+
+    // Inventory inputs & buttons (safe DOM metadata only)
+    out.steps.dom = await page.evaluate(() => {
+      const inputs = Array.from(document.querySelectorAll('input')).map(i => ({
+        type: i.type || i.getAttribute('type'),
+        placeholder: i.placeholder || '',
+        name: i.name || ''
+      }));
+      const buttons = Array.from(document.querySelectorAll('button')).map(b => (b.textContent || '').trim().slice(0, 20));
+      return { inputCount: inputs.length, inputs, buttonTexts: buttons.slice(0, 10) };
+    });
+
+    // Attempt fill + submit
+    const phoneIn = page.locator('input').first();
+    if (await phoneIn.count() > 0) await phoneIn.fill(admin.phone);
+    const pwdIn = page.locator('input[type="password"]').first();
+    if (await pwdIn.count() > 0) await pwdIn.fill(pw);
+    const btn = page.locator('button[type="submit"], .el-button--primary, button:has-text("登录")').first();
+    if (await btn.count() > 0) await btn.click();
+
+    await page.waitForTimeout(4000);
+    out.steps.afterLogin = {
+      url: page.url().slice(0, 120),
+      tokenLen: await page.evaluate(() => (localStorage.getItem('token') || '').length),
+      errorText: await page.evaluate(() => {
+        const el = document.querySelector('.el-message, .el-notification, [class*="error"], .tip, .err');
+        return el ? el.textContent.trim().slice(0, 120) : null;
+      })
+    };
+    await ctx.close();
+  } catch (e) {
+    out.fatal = String(e && e.message ? e.message : e).slice(0, 300);
+  } finally {
+    await browser.close();
+  }
+  fs.writeFileSync(path.join(__dirname, '_e2e_admin_debug.json'), JSON.stringify(out, null, 2));
+  console.log(JSON.stringify(out, null, 2));
+}
+main().then(() => process.exit(0)).catch(e => { console.error(String(e).slice(0,300)); process.exit(1); });

+ 34 - 0
_e2e_admin_debug.json

@@ -0,0 +1,34 @@
+{
+  "base": "http://cfc.iwintrue.com",
+  "steps": {
+    "loginPage": {
+      "status": 200,
+      "url": "http://cfc.iwintrue.com/admin/login",
+      "title": "浠艾福管理后台"
+    },
+    "dom": {
+      "inputCount": 3,
+      "inputs": [
+        {
+          "type": "text",
+          "placeholder": "用户名 / 手机号",
+          "name": ""
+        },
+        {
+          "type": "password",
+          "placeholder": "密码",
+          "name": ""
+        },
+        {
+          "type": "text",
+          "placeholder": "登录身份(输入手机号后自动带出)",
+          "name": ""
+        }
+      ],
+      "buttonTexts": [
+        "登 录"
+      ]
+    }
+  },
+  "fatal": "locator.click: Timeout 30000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('button[type=\"submit\"], .el-button--primary, button:has-text(\"登录\")').first()\u001b[22m\n\u001b[2m    - locator resolved to <button type=\"button\" data-v-32926e61=\"\" disabled=\"disabled\" class=\"el-button login-btn el-button--primary is"
+}

+ 75 - 0
_e2e_admin_login2.cjs

@@ -0,0 +1,75 @@
+/**
+ * Refined admin-login attempt (temp, not committed). Handles identity
+ * auto-select after phone entry and the spaced "登 录" button label.
+ */
+const { chromium } = require('@playwright/test');
+const fs = require('fs');
+const path = require('path');
+
+const BASE = process.env.PW_BASE_URL || 'http://cfc.iwintrue.com';
+const MJ = process.env.MACHINE_JSON_PATH;
+
+async function main() {
+  const out = { base: BASE, attempt: 'identity-aware' };
+  let phone = '13800138000', pw = 'admin123';
+  if (MJ && fs.existsSync(MJ)) {
+    try {
+      const cfg = JSON.parse(fs.readFileSync(MJ, 'utf8'));
+      const a = cfg.e2e_test_target && cfg.e2e_test_target.admin;
+      if (a) { if (a.phone) phone = a.phone; if (a.password) pw = a.password; }
+    } catch (e) {}
+  }
+  const launchOpts = { headless: true, args: ['--no-sandbox'] };
+  if (process.env.CHROME_PATH) launchOpts.executablePath = process.env.CHROME_PATH;
+  const browser = await chromium.launch(launchOpts);
+  try {
+    const ctx = await browser.newContext();
+    const page = await ctx.newPage();
+    await page.goto(BASE + '/admin/login', { waitUntil: 'networkidle', timeout: 30000 });
+    await page.waitForTimeout(1500);
+
+    // 1) phone
+    await page.locator('input').first().fill(phone);
+    await page.waitForTimeout(1500);
+
+    // 2) identity auto-select: capture any role/identity pickers that appeared
+    const identityInfo = await page.evaluate(() => {
+      const picks = Array.from(document.querySelectorAll(
+        '[class*="identity"], [class*="role"], .el-radio, .el-radio-group label, [class*="account"]'
+      )).map(e => ({ cls: e.className.toString().slice(0,40), text: (e.textContent||'').trim().slice(0,30) }));
+      return picks.slice(0, 8);
+    });
+    out.identityCandidates = identityInfo;
+    // click first clickable identity/role if present
+    const pick = page.locator('[class*="identity"] li, .el-radio, [class*="role"] label, .el-radio-group label').first();
+    if (await pick.count() > 0) { try { await pick.click({ timeout: 3000 }); } catch (e) {} }
+    await page.waitForTimeout(800);
+
+    // 3) password
+    const pwd = page.locator('input[type="password"]').first();
+    if (await pwd.count() > 0) await pwd.fill(pw);
+
+    // 4) exact spaced button "登 录"
+    const btn = page.locator('button:has-text("登 录")').first();
+    let clicked = false;
+    if (await btn.count() > 0) {
+      try { await btn.click({ timeout: 8000 }); clicked = true; } catch (e) { out.btnClickErr = String(e.message).slice(0,100); }
+    }
+    out.buttonClicked = clicked;
+    await page.waitForTimeout(4000);
+
+    out.after = {
+      url: page.url().slice(0, 120),
+      tokenLen: await page.evaluate(() => (localStorage.getItem('token') || '').length),
+      hasSidebar: await page.locator('.sidebar-container, .el-menu, .el-aside, .el-container').count()
+    };
+    await ctx.close();
+  } catch (e) {
+    out.fatal = String(e && e.message ? e.message : e).slice(0, 300);
+  } finally {
+    await browser.close();
+  }
+  fs.writeFileSync(path.join(__dirname, '_e2e_admin_login2.json'), JSON.stringify(out, null, 2));
+  console.log(JSON.stringify(out, null, 2));
+}
+main().then(() => process.exit(0)).catch(e => { console.error(String(e).slice(0,300)); process.exit(1); });

+ 33 - 0
_e2e_admin_login2.json

@@ -0,0 +1,33 @@
+{
+  "base": "http://cfc.iwintrue.com",
+  "attempt": "identity-aware",
+  "identityCandidates": [
+    {
+      "cls": "role-tags",
+      "text": "家庭客户服务商平台运营"
+    },
+    {
+      "cls": "role-tag role-tag-blue",
+      "text": "家庭客户"
+    },
+    {
+      "cls": "role-tag role-tag-pink",
+      "text": "服务商"
+    },
+    {
+      "cls": "role-tag role-tag-green",
+      "text": "平台运营"
+    },
+    {
+      "cls": "el-select identity-select el-select--lar",
+      "text": "超级管理员"
+    }
+  ],
+  "btnClickErr": "locator.click: Timeout 8000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('button:has-text(\"登 录\"",
+  "buttonClicked": false,
+  "after": {
+    "url": "http://cfc.iwintrue.com/admin/login",
+    "tokenLen": 0,
+    "hasSidebar": 0
+  }
+}

+ 79 - 0
_e2e_internal_probe.cjs

@@ -0,0 +1,79 @@
+/**
+ * Temporary internal E2E probe (NOT committed; test-closure artifact only).
+ * Reuses tests/e2e/helpers/auth.js loginAs for admin, then verifies the
+ * authenticated /admin dashboard and the /frontend SPA render.
+ * Credentials are injected from local machine.json via MACHINE_JSON_PATH;
+ * nothing sensitive is printed.
+ */
+const { chromium } = require('@playwright/test');
+const path = require('path');
+
+const BASE = process.env.PW_BASE_URL || 'http://cfc.iwintrue.com';
+const MACHINE_JSON = process.env.MACHINE_JSON_PATH;
+
+async function main() {
+  const summary = { base: BASE, steps: {}, env: { machineJsonSet: !!MACHINE_JSON } };
+  const launchOpts = { headless: true, args: ['--no-sandbox'] };
+  if (process.env.CHROME_PATH) launchOpts.executablePath = process.env.CHROME_PATH;
+  const browser = await chromium.launch(launchOpts);
+  try {
+    const auth = require(path.join(__dirname, 'tests', 'e2e', 'helpers', 'auth'));
+    // loginAs reads MACHINE_JSON_PATH at require time (already set via env).
+
+    // 1) Admin login
+    const adminAuth = await auth.loginAs(browser, 'admin');
+    summary.steps.adminLogin = {
+      ok: !!(adminAuth && adminAuth.token),
+      tokenLen: adminAuth && adminAuth.token ? adminAuth.token.length : 0,
+      error: adminAuth && adminAuth.error ? String(adminAuth.error).slice(0, 120) : null
+    };
+
+    // 2) Authenticated /admin dashboard
+    if (adminAuth && adminAuth.token) {
+      const ctx = await browser.newContext();
+      await ctx.addInitScript((t) => {
+        try { localStorage.setItem('token', t); localStorage.setItem('access_token', t); } catch (e) {}
+      }, adminAuth.token);
+      const page = await ctx.newPage();
+      const resp = await page.goto(BASE + '/admin', { waitUntil: 'domcontentloaded', timeout: 30000 });
+      await page.waitForTimeout(2500);
+      const title = await page.title();
+      const hasSidebar = await page.locator('.sidebar-container, .el-menu, .el-aside, .el-container').count();
+      summary.steps.adminDashboard = {
+        ok: resp ? resp.status() < 500 : false,
+        status: resp ? resp.status() : null,
+        title: String(title).slice(0, 80),
+        hasSidebar: hasSidebar > 0,
+        url: page.url().slice(0, 100)
+      };
+      await ctx.close();
+    } else {
+      summary.steps.adminDashboard = { ok: false, note: 'skipped: no admin token' };
+    }
+
+    // 3) /frontend SPA
+    const fctx = await browser.newContext();
+    const fpage = await fctx.newPage();
+    const fresp = await fpage.goto(BASE + '/frontend', { waitUntil: 'domcontentloaded', timeout: 30000 });
+    await fpage.waitForTimeout(2500);
+    const ftitle = await fpage.title();
+    const fbody = (await fpage.content()).length;
+    summary.steps.frontend = {
+      ok: fresp ? fresp.status() < 500 : false,
+      status: fresp ? fresp.status() : null,
+      title: String(ftitle).slice(0, 80),
+      bodyLen: fbody,
+      url: fpage.url().slice(0, 100)
+    };
+    await fctx.close();
+  } catch (e) {
+    summary.fatal = String(e && e.message ? e.message : e).slice(0, 300);
+  } finally {
+    await browser.close();
+  }
+  require('fs').writeFileSync(path.join(__dirname, '_e2e_probe_result.json'),
+    JSON.stringify(summary, null, 2));
+  console.log(JSON.stringify(summary, null, 2));
+}
+
+main().then(() => process.exit(0)).catch((e) => { console.error(String(e).slice(0,300)); process.exit(1); });

+ 16 - 0
_e2e_probe_1944.cjs

@@ -0,0 +1,16 @@
+const { chromium } = require('playwright');
+const EXE = 'C:/Users/iwt/AppData/Local/ms-playwright/chromium-1234/chrome-win64/chrome.exe';
+(async () => {
+  const browser = await chromium.launch({ executablePath: EXE, headless: true });
+  const page = await browser.newPage();
+  try {
+    const r = await page.goto('http://cfc.iwintrue.com/frontend', { waitUntil:'load', timeout:30000 });
+    console.log('FRONTEND status=', r?r.status():'no-resp', 'finalUrl=', page.url(), 'title=', JSON.stringify(await page.title()));
+  } catch(e){ console.log('FRONTEND ERR', e.message); }
+  try {
+    const r2 = await page.goto('http://cfc.iwintrue.com/admin', { waitUntil:'load', timeout:30000 });
+    console.log('ADMIN status=', r2?r2.status():'no-resp', 'finalUrl=', page.url(), 'title=', JSON.stringify(await page.title()));
+  } catch(e){ console.log('ADMIN ERR', e.message); }
+  await browser.close();
+  console.log('PROBE_DONE');
+})();

+ 24 - 0
_e2e_probe_result.json

@@ -0,0 +1,24 @@
+{
+  "base": "http://cfc.iwintrue.com",
+  "steps": {
+    "adminLogin": {
+      "ok": false,
+      "tokenLen": 0,
+      "error": null
+    },
+    "adminDashboard": {
+      "ok": false,
+      "note": "skipped: no admin token"
+    },
+    "frontend": {
+      "ok": true,
+      "status": 200,
+      "title": "首页",
+      "bodyLen": 236657,
+      "url": "http://cfc.iwintrue.com/frontend/#/pages/index-home/index"
+    }
+  },
+  "env": {
+    "machineJsonSet": true
+  }
+}

+ 584 - 0
_pre0243_reds.json

@@ -0,0 +1,584 @@
+[
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "error",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVo"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "failure",
+  "msg": "expected: &lt;2&gt; but was: &lt;0&gt;"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "failure",
+  "msg": "expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "failure",
+  "msg": "expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "error",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVo"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "failure",
+  "msg": "expected: &lt;1&gt; but was: &lt;0&gt;"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "com.etotem.cfc.controller.ArticleControl",
+  "type": "error",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVo"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "com.etotem.cfc.controller.AuthController",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;410&gt;"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "com.etotem.cfc.controller.AuthController",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;401&gt;"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "com.etotem.cfc.controller.AuthController",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;410&gt;"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "com.etotem.cfc.controller.AuthController",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;410&gt;"
+ },
+ {
+  "cls": "FamilyControllerTest",
+  "case": "com.etotem.cfc.controller.FamilyControll",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "com.etotem.cfc.controller.GuideFamilyTas",
+  "type": "failure",
+  "msg": "expected: &lt;1&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "com.etotem.cfc.controller.GuideFamilyTas",
+  "type": "failure",
+  "msg": "expected: &lt;1&gt; but was: &lt;0&gt;"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "com.etotem.cfc.controller.GuideFamilyTas",
+  "type": "failure",
+  "msg": "expected: &lt;3&gt; but was: &lt;0&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: &lt;缺少订单ID&gt; but was: &lt;规划师未完成【planner】培训认证,暂不可提供该类服务&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: &lt;无权查看&gt; but was: &lt;规划师未完成【planner】培训认证,暂不可提供该类服务&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: &lt;订单不存在&gt; but was: &lt;规划师未完成【planner】培训认证,暂不可提供该类服务&gt;"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "com.etotem.cfc.controller.GuideOrderCont",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "com.etotem.cfc.controller.GuideRolePermi",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "com.etotem.cfc.controller.GuideRolePermi",
+  "type": "failure",
+  "msg": "expected: &lt;缺少订单ID&gt; but was: &lt;规划师未完成【planner】培训认证,暂不可提供该类服务&gt;"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "com.etotem.cfc.controller.GuideRolePermi",
+  "type": "failure",
+  "msg": "expected: &lt;2&gt; but was: &lt;0&gt;"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "com.etotem.cfc.controller.GuideRolePermi",
+  "type": "failure",
+  "msg": "expected: &lt;无权查看&gt; but was: &lt;规划师未完成【planner】培训认证,暂不可提供该类服务&gt;"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "com.etotem.cfc.controller.GuideTeamContr",
+  "type": "failure",
+  "msg": "expected: &lt;0&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "com.etotem.cfc.controller.GuideTeamContr",
+  "type": "failure",
+  "msg": "expected: &lt;3&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "com.etotem.cfc.controller.HealthDimensio",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;200&gt;"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "com.etotem.cfc.controller.HealthDimensio",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;200&gt;"
+ },
+ {
+  "cls": "MindFortuneControllerTest",
+  "case": "com.etotem.cfc.controller.mind.MindFortu",
+  "type": "failure",
+  "msg": "JSON path \"$.code\" expected:&lt;401&gt; but was:&lt;400&gt;"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "com.etotem.cfc.controller.PaymentControl",
+  "type": "failure",
+  "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "com.etotem.cfc.controller.PaymentControl",
+  "type": "failure",
+  "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "com.etotem.cfc.controller.PaymentControl",
+  "type": "failure",
+  "msg": "expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "com.etotem.cfc.controller.PaymentControl",
+  "type": "failure",
+  "msg": "expected: &lt;ORD20260622001&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "com.etotem.cfc.controller.ProductControl",
+  "type": "error",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -&gt; at com.etotem.cfc.controller.ProductControllerTest.shelve_PublishSuccess(Pro"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "com.etotem.cfc.controller.ProductControl",
+  "type": "error",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -&gt; at com.etotem.cfc.controller.ProductControllerTest.shelve_NotOwner(ProductCo"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "com.etotem.cfc.controller.ProductControl",
+  "type": "error",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -&gt; at com.etotem.cfc.controller.ProductControllerTest.shelve_UnshelveSuccess(Pr"
+ },
+ {
+  "cls": "StatsControllerTest",
+  "case": "com.etotem.cfc.controller.StatsControlle",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;5001&gt;"
+ },
+ {
+  "cls": "TaskControllerReviewTest",
+  "case": "com.etotem.cfc.controller.task.TaskContr",
+  "type": "error",
+  "msg": "Request processing failed; nested exception is java.lang.NullPointerException"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "com.etotem.cfc.controller.WishController",
+  "type": "failure",
+  "msg": "expected: &lt;请指定查询条件(childId或familyId)&gt; but was: &lt;请指定查询条件(memberId或familyId)&gt;"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "com.etotem.cfc.controller.WishController",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;5001&gt;"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "com.etotem.cfc.integration.controller.Ad",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "com.etotem.cfc.integration.controller.Ad",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "com.etotem.cfc.integration.controller.Ad",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "com.etotem.cfc.integration.controller.Di",
+  "type": "failure",
+  "msg": "JSON path \"$.data\" Expected: null      but: was \"unknown_legacy_xyz\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "com.etotem.cfc.integration.controller.Di",
+  "type": "failure",
+  "msg": "JSON path \"$.data\" Expected: null      but: was \"\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "com.etotem.cfc.integration.controller.Di",
+  "type": "failure",
+  "msg": "Status expected:&lt;400&gt; but was:&lt;200&gt;"
+ },
+ {
+  "cls": "DailyCheckinStreakFlowTest",
+  "case": "com.etotem.cfc.integration.DailyCheckinS",
+  "type": "error",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVo"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;500&gt; but was: &lt;5001&gt;"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "com.etotem.cfc.integration.EnergySystemF",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "com.etotem.cfc.integration.GrowthRecordS",
+  "type": "failure",
+  "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+ },
+ {
+  "cls": "GuideModuleIntegrationTest",
+  "case": "com.etotem.cfc.integration.GuideModuleIn",
+  "type": "error",
+  "msg": " ### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column &apos;platform_"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "com.etotem.cfc.integration.PlannerBindIn",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "com.etotem.cfc.integration.PlannerBindIn",
+  "type": "failure",
+  "msg": "expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "com.etotem.cfc.integration.PlannerBindIn",
+  "type": "failure",
+  "msg": "expected: &lt;400&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "com.etotem.cfc.integration.PlannerBindIn",
+  "type": "error",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVo"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "com.etotem.cfc.integration.PlannerBindIn",
+  "type": "failure",
+  "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+ },
+ {
+  "cls": "OrchestrationEngineTest",
+  "case": "com.etotem.cfc.orchestration.Orchestrati",
+  "type": "failure",
+  "msg": " expected: \"manual_fail\"  but was: null"
+ },
+ {
+  "cls": "OrchestrationIntegrationTest",
+  "case": "com.etotem.cfc.orchestration.Orchestrati",
+  "type": "failure",
+  "msg": " Expecting actual:   \"failed\" to be in:   [\"in_progress\", \"pending\"] "
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "com.etotem.cfc.service.ArticleWorkflowTe",
+  "type": "failure",
+  "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "com.etotem.cfc.service.ArticleWorkflowTe",
+  "type": "failure",
+  "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "com.etotem.cfc.service.ArticleWorkflowTe",
+  "type": "failure",
+  "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: octopusEffectRecordMapper.insert(&lt;any&gt;); -&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1020L,     \"F03a\",     1L,     &lt;any&gt; ); -&gt; at com.etotem.cfc.service.CfCommissionSe"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     &lt;Capturing argument&gt; ); -&gt; at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     &lt;Capturing argument&gt; ); -&gt; at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     &lt;Capturing argument&gt; ); -&gt; at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: ppointConsumptionLogMapper.insert(     &lt;Capturing argument&gt; ); -&gt; at com.etotem.cfc.service.CfCommissionServiceSettl"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     &lt;any&gt; ); -&gt; at com.etotem.cfc.service.CfCommissionSe"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "com.etotem.cfc.service.CfCommissionServi",
+  "type": "failure",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     &lt;any long&gt;,     &lt;any string&gt;,     &lt;any long&gt;,     &lt;any&gt; ); -&gt; at "
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "com.etotem.cfc.service.DanReportParseSer",
+  "type": "failure",
+  "msg": "expected: &lt;俊辰&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "com.etotem.cfc.service.DanReportParseSer",
+  "type": "failure",
+  "msg": "B4 解析应正常 ==&gt; expected: &lt;false&gt; but was: &lt;true&gt;"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "com.etotem.cfc.service.DanReportParseSer",
+  "type": "failure",
+  "msg": "应通过fallback提取感知觉百分位 ==&gt; expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "com.etotem.cfc.service.DanReportParseSer",
+  "type": "failure",
+  "msg": "应有processingSpeed_score ==&gt; expected: not &lt;null&gt;"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "com.etotem.cfc.service.FamilyAdminOvervi",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "com.etotem.cfc.service.FamilyAdminOvervi",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "com.etotem.cfc.service.FamilyAdminOvervi",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "MembershipPaySwitchTest",
+  "case": "com.etotem.cfc.service.MembershipPaySwit",
+  "type": "failure",
+  "msg": "expected: &lt;null&gt; but was: &lt;{levelCode=FAMILY, amount=131400, orderNo=ORD17939037452960056BE4, payType=wechat, wechatPayParams={}, groupNo=nul"
+ },
+ {
+  "cls": "PaymentServiceORDRoutingTest",
+  "case": "com.etotem.cfc.service.PaymentServiceORD",
+  "type": "failure",
+  "msg": "expected: &lt;SUCCESS&gt; but was: &lt;FAIL&gt;"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "error",
+  "msg": " Misplaced or misused argument matcher detected here:  -&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "error",
+  "msg": " Misplaced or misused argument matcher detected here:  -&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "error",
+  "msg": " Misplaced or misused argument matcher detected here:  -&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid"
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "failure",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"YT9876543210\",     \"圆通速递\",     &lt;any&g"
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "failure",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"JD0000000001\",     \"京东物流\",     &lt;any&g"
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "com.etotem.cfc.service.ProductOrderServi",
+  "type": "failure",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     &lt;Capturing argument&gt;,     \"中通快递\",  "
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "com.etotem.cfc.service.UserServiceFamily",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "com.etotem.cfc.service.UserServiceFamily",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "KnowledgeBaseBackfillTest",
+  "case": "com.etotem.cfc.unit.KnowledgeBaseBackfil",
+  "type": "error",
+  "msg": "productDimensionConfigMapper"
+ },
+ {
+  "cls": "KnowledgeBaseBackfillTest",
+  "case": "com.etotem.cfc.unit.KnowledgeBaseBackfil",
+  "type": "error",
+  "msg": "productDimensionConfigMapper"
+ },
+ {
+  "cls": "TaskPlanServiceTest",
+  "case": "com.etotem.cfc.unit.TaskPlanServiceTest",
+  "type": "failure",
+  "msg": "expected: &lt;100&gt; but was: &lt;null&gt;"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "com.etotem.cfc.unit.TaskProgressUpdateTe",
+  "type": "error",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "com.etotem.cfc.unit.TaskProgressUpdateTe",
+  "type": "error",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "com.etotem.cfc.unit.TaskProgressUpdateTe",
+  "type": "error",
+  "msg": "platformPointsService"
+ }
+]

+ 293 - 0
_r0243_agg.json

@@ -0,0 +1,293 @@
+{
+ "source_test_classes": 220,
+ "reported_classes": 220,
+ "tests": 1700,
+ "passed": 1572,
+ "failures": 71,
+ "errors": 53,
+ "skipped": 4,
+ "pass_rate": 92.47,
+ "red_classes": 39,
+ "red_cases": 124,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 116,
+ "pass_rate_ex_env": 92.94,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "TaskControllerReviewTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 17
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "KnowledgeBaseBackfillTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 220,
+ "txt_only_classes": 0
+}

+ 756 - 0
_r0243_attr.json

@@ -0,0 +1,756 @@
+{
+ "C-环境": [
+  {
+   "cls": "AdminFamilyOverviewControllerTest",
+   "case": "tasks_分页",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "AdminFamilyOverviewControllerTest",
+   "case": "overview_成功",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "AdminFamilyOverviewControllerTest",
+   "case": "overview_非admin拒绝",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "FamilyAdminOverviewServiceTest",
+   "case": "overview_计数与明细",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "FamilyAdminOverviewServiceTest",
+   "case": "overview_家庭不存在",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "FamilyAdminOverviewServiceTest",
+   "case": "pageTasks_分页",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "UserServiceFamilyNameLinkTest",
+   "case": "realName变化_联动家庭名",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  },
+  {
+   "cls": "UserServiceFamilyNameLinkTest",
+   "case": "realName未变_不改家庭名",
+   "type": "error",
+   "msg": "Failed to load ApplicationContext"
+  }
+ ],
+ "C-闸门/数据": [
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrders_NullParams",
+   "type": "failure",
+   "msg": "expected: not <null>"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrderStats_WithData",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrderDetail_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <403>"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrderDetail_MissingId",
+   "type": "failure",
+   "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrderDetail_WrongGuide",
+   "type": "failure",
+   "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrders_WithStatusFilter",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrderDetail_NotFound",
+   "type": "failure",
+   "msg": "expected: <订单不存在> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+  },
+  {
+   "cls": "GuideOrderControllerTest",
+   "case": "getOrders_WithPagination",
+   "type": "failure",
+   "msg": "expected: <200> but was: <403>"
+  },
+  {
+   "cls": "GuideRolePermissionTest",
+   "case": "orderDetail_OwnerCanView",
+   "type": "failure",
+   "msg": "expected: <200> but was: <403>"
+  },
+  {
+   "cls": "GuideRolePermissionTest",
+   "case": "orderDetail_MissingId",
+   "type": "failure",
+   "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+  },
+  {
+   "cls": "GuideRolePermissionTest",
+   "case": "orderDetail_NotOwnerDenied",
+   "type": "failure",
+   "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+  },
+  {
+   "cls": "PlannerBindInviteFlowTest",
+   "case": "parentConfirmsBind_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <403>"
+  },
+  {
+   "cls": "PlannerBindInviteFlowTest",
+   "case": "guideViewsBoundFamilies_Success",
+   "type": "failure",
+   "msg": "expected: not <null>"
+  },
+  {
+   "cls": "PlannerBindInviteFlowTest",
+   "case": "parentBindsSameGuideTwice_Fails",
+   "type": "failure",
+   "msg": "expected: <400> but was: <403>"
+  },
+  {
+   "cls": "PlannerBindInviteFlowTest",
+   "case": "completeInviteBindFlow_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <403>"
+  }
+ ],
+ "A-测试装置/断言": [
+  {
+   "cls": "ArticleControllerTest",
+   "case": "list_ByCategory",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "recordRead_NoDuration",
+   "type": "error",
+   "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "featured_Success",
+   "type": "failure",
+   "msg": "expected: <2> but was: <0>"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "list_LoggedInUser",
+   "type": "failure",
+   "msg": "expected: not <null>"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "list_Success",
+   "type": "failure",
+   "msg": "expected: not <null>"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "recordRead_WithMemberId",
+   "type": "error",
+   "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "featured_DefaultSize",
+   "type": "failure",
+   "msg": "expected: <1> but was: <0>"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "list_ByKeyword",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ArticleControllerTest",
+   "case": "recordRead_Success",
+   "type": "error",
+   "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+  },
+  {
+   "cls": "AuthControllerTest",
+   "case": "autoLogin_UserNotFound",
+   "type": "failure",
+   "msg": "expected: <500> but was: <410>"
+  },
+  {
+   "cls": "AuthControllerTest",
+   "case": "switchRole_NotLoggedIn",
+   "type": "failure",
+   "msg": "expected: <500> but was: <401>"
+  },
+  {
+   "cls": "AuthControllerTest",
+   "case": "autoLogin_NoOpenid",
+   "type": "failure",
+   "msg": "expected: <500> but was: <410>"
+  },
+  {
+   "cls": "GuideFamilyTaskControllerTest",
+   "case": "getFamilyTaskOverview_WithChildren",
+   "type": "failure",
+   "msg": "expected: <1> but was: <null>"
+  },
+  {
+   "cls": "GuideFamilyTaskControllerTest",
+   "case": "getPendingReviewTasks_Success",
+   "type": "failure",
+   "msg": "expected: <1> but was: <0>"
+  },
+  {
+   "cls": "GuideFamilyTaskControllerTest",
+   "case": "reviewTask_Success",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GuideFamilyTaskControllerTest",
+   "case": "batchReviewTasks_Success",
+   "type": "failure",
+   "msg": "expected: <3> but was: <0>"
+  },
+  {
+   "cls": "GuideFamilyTaskControllerTest",
+   "case": "getChildTasks_WithPagination",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GuideRolePermissionTest",
+   "case": "reviewTask_TeacherAllowed",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GuideRolePermissionTest",
+   "case": "batchReview_TeacherAllowed",
+   "type": "failure",
+   "msg": "expected: <2> but was: <0>"
+  },
+  {
+   "cls": "HealthDimensionControllerTest",
+   "case": "history_missingMemberId",
+   "type": "failure",
+   "msg": "expected: <500> but was: <200>"
+  },
+  {
+   "cls": "HealthDimensionControllerTest",
+   "case": "overview_missingMemberId",
+   "type": "failure",
+   "msg": "expected: <500> but was: <200>"
+  },
+  {
+   "cls": "ProductControllerTest",
+   "case": "shelve_PublishSuccess",
+   "type": "error",
+   "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_PublishSucce"
+  },
+  {
+   "cls": "ProductControllerTest",
+   "case": "shelve_NotOwner",
+   "type": "error",
+   "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_NotOwner(Pro"
+  },
+  {
+   "cls": "ProductControllerTest",
+   "case": "shelve_UnshelveSuccess",
+   "type": "error",
+   "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_UnshelveSucc"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "confirm_Success",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "myOrders_FilterByStatus",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "myOrders_AllStatus",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "confirm_NotFound",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "myOrders_Empty",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderControllerTest",
+   "case": "confirm_NotYetShipped",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "StatsControllerTest",
+   "case": "familyCompletion_NoFamily",
+   "type": "failure",
+   "msg": "expected: <500> but was: <5001>"
+  },
+  {
+   "cls": "TaskControllerReviewTest",
+   "case": "pendingReview_directCall_uniformResultShape",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "TaskControllerReviewTest",
+   "case": "pendingReview_parent_success_returnsList",
+   "type": "error",
+   "msg": "Request processing failed; nested exception is java.lang.NullPointerException"
+  },
+  {
+   "cls": "WishControllerTest",
+   "case": "getWishes_MissingCondition",
+   "type": "failure",
+   "msg": "expected: <请指定查询条件(childId或familyId)> but was: <请指定查询条件(memberId或familyId)>"
+  },
+  {
+   "cls": "WishControllerTest",
+   "case": "getPendingWishes_NoFamilyId",
+   "type": "failure",
+   "msg": "expected: <500> but was: <5001>"
+  },
+  {
+   "cls": "DailyCheckinStreakFlowTest",
+   "case": "childDeletesCheckin_Success",
+   "type": "error",
+   "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+  },
+  {
+   "cls": "GrowthRecordSyncFlowTest",
+   "case": "parentUploadsHealthReport_Success",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "GrowthRecordSyncFlowTest",
+   "case": "parentCreatesRecordWithOrder_Success",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "PlannerBindInviteFlowTest",
+   "case": "parentUnbindsGuide_Success",
+   "type": "error",
+   "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+  },
+  {
+   "cls": "ArticleWorkflowTest",
+   "case": "reDraft_notRejected_pending",
+   "type": "failure",
+   "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+  },
+  {
+   "cls": "ArticleWorkflowTest",
+   "case": "reDraft_notRejected_draft",
+   "type": "failure",
+   "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+  },
+  {
+   "cls": "ArticleWorkflowTest",
+   "case": "reDraft_notRejected_published",
+   "type": "failure",
+   "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+  },
+  {
+   "cls": "FamilyJoinRequestServiceReferrerBindTest",
+   "case": "approve_inviterWithoutReferrer_doesNotBind",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "FamilyJoinRequestServiceReferrerBindTest",
+   "case": "approve_tokenPath_userWithReferrer_doesNotRebind",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "FamilyJoinRequestServiceReferrerBindTest",
+   "case": "approve_tokenPath_newUserWithoutReferrer_bindsInviterReferrer",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "FamilyJoinRequestServiceReferrerBindTest",
+   "case": "approve_shortCodePath_noInviter_doesNotBind",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "FortuneServiceTest",
+   "case": "testCalculateLuckyDirection",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "FortuneServiceTest",
+   "case": "testGenerateIsDeterministic",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "resolveShipType_deliveryMethod3_requiresExplicitShipType",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "ship_local_syncsWechatWithLogisticsType2",
+   "type": "error",
+   "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "ship_express_requiresTrackingAndCompany",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "ship_selfPickup_syncsWechatWithLogisticsType4",
+   "type": "error",
+   "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "ship_virtual_rejectsManualShipAndIdempotent",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+   "case": "autoShipVirtualOrder_onPaySuccess",
+   "type": "error",
+   "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+  },
+  {
+   "cls": "ProductOrderServiceUpdateExpressFieldTest",
+   "case": "updateExpress_fullUpdate_writesLogisticsColumnsAndSyncsWechat",
+   "type": "failure",
+   "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    \"YT9876543210\",\n    \"圆通速递\",\n    "
+  },
+  {
+   "cls": "ProductOrderServiceUpdateExpressFieldTest",
+   "case": "ship_writesLogisticsColumns",
+   "type": "failure",
+   "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    \"JD0000000001\",\n    \"京东物流\",\n    "
+  },
+  {
+   "cls": "ProductOrderServiceUpdateExpressFieldTest",
+   "case": "updateExpress_onlyCompany_trackingFallsBackToPersistedLogisticsNo",
+   "type": "failure",
+   "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    <Capturing argument>,\n    \"中通快递\""
+  },
+  {
+   "cls": "ServiceRoleApproveTest",
+   "case": "planner_已有同手机号admin则更新不重复插入",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "ServiceRoleApproveTest",
+   "case": "planner_通过后写teacher_status并创建admins记录",
+   "type": "error",
+   "msg": "java.lang.NullPointerException"
+  },
+  {
+   "cls": "AuthControllerTest",
+   "case": "autoLogin_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <410>"
+  },
+  {
+   "cls": "KnowledgeBaseBackfillTest",
+   "case": "saveWithAssociations_emptyAssociations_autoBindsMatchedTagAndDimension",
+   "type": "error",
+   "msg": "productDimensionConfigMapper"
+  },
+  {
+   "cls": "KnowledgeBaseBackfillTest",
+   "case": "getWithAssociations_returnsFlatContentAndAssociationFields",
+   "type": "error",
+   "msg": "productDimensionConfigMapper"
+  },
+  {
+   "cls": "TaskProgressUpdateTest",
+   "case": "updateProgress_withoutFamilyMemberId_fallsBackToUserIdLookup",
+   "type": "error",
+   "msg": "platformPointsService"
+  },
+  {
+   "cls": "TaskProgressUpdateTest",
+   "case": "updateProgress_noDeadlineTask_awardsBasePointsInsteadOfPenalty",
+   "type": "error",
+   "msg": "platformPointsService"
+  },
+  {
+   "cls": "TaskProgressUpdateTest",
+   "case": "updateProgress_withExplicitFamilyMemberId_doesNotFallbackToUserIdLookup",
+   "type": "error",
+   "msg": "platformPointsService"
+  }
+ ],
+ "B-生产缺陷": [
+  {
+   "cls": "FamilyControllerTest",
+   "case": "guideBindFamily_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <500>"
+  },
+  {
+   "cls": "PaymentControllerTest",
+   "case": "handleWechatCallback_Success",
+   "type": "failure",
+   "msg": "expected: <true> but was: <false>"
+  },
+  {
+   "cls": "PaymentControllerTest",
+   "case": "handleAlipayCallback_Success",
+   "type": "failure",
+   "msg": "expected: <true> but was: <false>"
+  },
+  {
+   "cls": "PaymentControllerTest",
+   "case": "createWechatPayOrder_ReturnMapNotNull",
+   "type": "failure",
+   "msg": "expected: not <null>"
+  },
+  {
+   "cls": "PaymentControllerTest",
+   "case": "createWechatPayOrder_Success",
+   "type": "failure",
+   "msg": "expected: <ORD20260622001> but was: <null>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "parentQueriesEnergyLogs_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <500>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "childExchangesWishWithEnergy_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <500>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "childExchangesWithInsufficientEnergy_Fails",
+   "type": "failure",
+   "msg": "expected: <true> but was: <false>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "userWithoutFamily_Fails",
+   "type": "failure",
+   "msg": "expected: <500> but was: <5001>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "parentGetsEnergyOverview_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <500>"
+  },
+  {
+   "cls": "EnergySystemFlowTest",
+   "case": "taskCompletionGrantsEnergy_Success",
+   "type": "failure",
+   "msg": "expected: <200> but was: <500>"
+  },
+  {
+   "cls": "GuideModuleIntegrationTest",
+   "case": "testGuidePackageCreationFlow",
+   "type": "error",
+   "msg": "### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'platf"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_F03a发放_自动创建感恩记录",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\noctopusEffectRecordMapper.insert(<any>);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_同家庭引荐人跳过_顺延到下一级拿F03a",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1020L,\n    \"F03a\",\n    1L,\n    <any>\n);\n-> at com.etotem.cfc.service.CfCommissionSe"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_商品订单实付与分润基数分离",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_两级销售奖_F03a按团队档位_F03b按自身档位",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_档位比例超规则上限_按上限封顶",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_落P点消费日志_基数与订单对应",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\nppointConsumptionLogMapper.insert(\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettl"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_最多两级_第三级引荐人不发放",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <any>\n);\n-> at com.etotem.cfc.service.CfCommissionSe"
+  },
+  {
+   "cls": "CfCommissionServiceSettleTest",
+   "case": "settle_推荐人分润只走earnByRule_不再写旧分佣流水",
+   "type": "failure",
+   "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    <any long>,\n    <any string>,\n    <any long>,\n    <any>\n);\n-> at com.etotem.cfc.ser"
+  },
+  {
+   "cls": "DanReportParseServiceTest",
+   "case": "testParseA2_standardCoreLiteracyFormat",
+   "type": "failure",
+   "msg": "expected: <俊辰> but was: <null>"
+  },
+  {
+   "cls": "DanReportParseServiceTest",
+   "case": "testParseB4_regression",
+   "type": "failure",
+   "msg": "B4 解析应正常 ==> expected: <false> but was: <true>"
+  },
+  {
+   "cls": "DanReportParseServiceTest",
+   "case": "testParseA1_shouldFallbackToGenericPattern",
+   "type": "failure",
+   "msg": "应通过fallback提取感知觉百分位 ==> expected: not <null>"
+  },
+  {
+   "cls": "DanReportParseServiceTest",
+   "case": "testParseA1_shouldExtractCognitiveDimensionFromDetailPage",
+   "type": "failure",
+   "msg": "应有processingSpeed_score ==> expected: not <null>"
+  },
+  {
+   "cls": "PaymentServiceORDRoutingTest",
+   "case": "unknownPrefix_routesToHandlePaymentCallback",
+   "type": "failure",
+   "msg": "expected: <SUCCESS> but was: <FAIL>"
+  }
+ ],
+ "待核实": [
+  {
+   "cls": "GuideTeamControllerTest",
+   "case": "testGetTeamStats_NoInviteCode",
+   "type": "failure",
+   "msg": "expected: <0> but was: <null>"
+  },
+  {
+   "cls": "GuideTeamControllerTest",
+   "case": "testGetTeamStats_WithMembers",
+   "type": "failure",
+   "msg": "expected: <3> but was: <null>"
+  },
+  {
+   "cls": "MindFortuneControllerTest",
+   "case": "testGetTodayFortuneWithoutAuth",
+   "type": "failure",
+   "msg": "JSON path \"$.code\" expected:<401> but was:<400>"
+  },
+  {
+   "cls": "DimensionRegistryMapContractTest",
+   "case": "map_unknownLegacy_returnsNullData",
+   "type": "failure",
+   "msg": "JSON path \"$.data\"\nExpected: null\n     but: was \"unknown_legacy_xyz\""
+  },
+  {
+   "cls": "DimensionRegistryMapContractTest",
+   "case": "map_emptyLegacy_returnsNullData",
+   "type": "failure",
+   "msg": "JSON path \"$.data\"\nExpected: null\n     but: was \"\""
+  },
+  {
+   "cls": "DimensionRegistryMapContractTest",
+   "case": "map_missingLegacy_returnsBadRequest",
+   "type": "failure",
+   "msg": "Status expected:<400> but was:<200>"
+  },
+  {
+   "cls": "GrowthRecordSyncFlowTest",
+   "case": "parentCreatesRecordWithoutChild_Fails",
+   "type": "failure",
+   "msg": "expected: <true> but was: <false>"
+  },
+  {
+   "cls": "OrchestrationEngineTest",
+   "case": "testOnTaskFailed_FoundNode_ThenMarkFailedAndEvaluateFlow",
+   "type": "failure",
+   "msg": "expected: \"manual_fail\"\n but was: null"
+  },
+  {
+   "cls": "OrchestrationIntegrationTest",
+   "case": "testEvaluateFlow_AndNode_AllCompleted_Triggered",
+   "type": "failure",
+   "msg": "Expecting actual:\n  \"failed\"\nto be in:\n  [\"in_progress\", \"pending\"]"
+  },
+  {
+   "cls": "MembershipPaySwitchTest",
+   "case": "createOrderWithPayType_virtualEnabled_configMissing_returnsNull",
+   "type": "failure",
+   "msg": "expected: <null> but was: <{levelCode=FAMILY, amount=131400, orderNo=ORD17939069004190058B72, payType=wechat, wechatPayParams={}, groupNo=nu"
+  },
+  {
+   "cls": "TaskPlanServiceTest",
+   "case": "applyAndActivate_无active实例时新建并置active",
+   "type": "failure",
+   "msg": "expected: <100> but was: <null>"
+  }
+ ]
+}

+ 746 - 0
_r0243_reds.json

@@ -0,0 +1,746 @@
+[
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_ByCategory",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_NoDuration",
+  "type": "error",
+  "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "featured_Success",
+  "type": "failure",
+  "msg": "expected: <2> but was: <0>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_LoggedInUser",
+  "type": "failure",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_Success",
+  "type": "failure",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_WithMemberId",
+  "type": "error",
+  "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "featured_DefaultSize",
+  "type": "failure",
+  "msg": "expected: <1> but was: <0>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_ByKeyword",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_Success",
+  "type": "error",
+  "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_UserNotFound",
+  "type": "failure",
+  "msg": "expected: <500> but was: <410>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "switchRole_NotLoggedIn",
+  "type": "failure",
+  "msg": "expected: <500> but was: <401>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <410>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_NoOpenid",
+  "type": "failure",
+  "msg": "expected: <500> but was: <410>"
+ },
+ {
+  "cls": "FamilyControllerTest",
+  "case": "guideBindFamily_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getFamilyTaskOverview_WithChildren",
+  "type": "failure",
+  "msg": "expected: <1> but was: <null>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getPendingReviewTasks_Success",
+  "type": "failure",
+  "msg": "expected: <1> but was: <0>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "reviewTask_Success",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "batchReviewTasks_Success",
+  "type": "failure",
+  "msg": "expected: <3> but was: <0>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getChildTasks_WithPagination",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_NullParams",
+  "type": "failure",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderStats_WithData",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_MissingId",
+  "type": "failure",
+  "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_WrongGuide",
+  "type": "failure",
+  "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_WithStatusFilter",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_NotFound",
+  "type": "failure",
+  "msg": "expected: <订单不存在> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_WithPagination",
+  "type": "failure",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_OwnerCanView",
+  "type": "failure",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_MissingId",
+  "type": "failure",
+  "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "reviewTask_TeacherAllowed",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "batchReview_TeacherAllowed",
+  "type": "failure",
+  "msg": "expected: <2> but was: <0>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_NotOwnerDenied",
+  "type": "failure",
+  "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "testGetTeamStats_NoInviteCode",
+  "type": "failure",
+  "msg": "expected: <0> but was: <null>"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "testGetTeamStats_WithMembers",
+  "type": "failure",
+  "msg": "expected: <3> but was: <null>"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "history_missingMemberId",
+  "type": "failure",
+  "msg": "expected: <500> but was: <200>"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "overview_missingMemberId",
+  "type": "failure",
+  "msg": "expected: <500> but was: <200>"
+ },
+ {
+  "cls": "MindFortuneControllerTest",
+  "case": "testGetTodayFortuneWithoutAuth",
+  "type": "failure",
+  "msg": "JSON path \"$.code\" expected:<401> but was:<400>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "handleWechatCallback_Success",
+  "type": "failure",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "handleAlipayCallback_Success",
+  "type": "failure",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "createWechatPayOrder_ReturnMapNotNull",
+  "type": "failure",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "createWechatPayOrder_Success",
+  "type": "failure",
+  "msg": "expected: <ORD20260622001> but was: <null>"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_PublishSuccess",
+  "type": "error",
+  "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_PublishSucce"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_NotOwner",
+  "type": "error",
+  "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_NotOwner(Pro"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_UnshelveSuccess",
+  "type": "error",
+  "msg": "Invalid use of argument matchers!\n3 matchers expected, 1 recorded:\n-> at com.etotem.cfc.controller.ProductControllerTest.shelve_UnshelveSucc"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_Success",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_FilterByStatus",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_AllStatus",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_NotFound",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_Empty",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_NotYetShipped",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "StatsControllerTest",
+  "case": "familyCompletion_NoFamily",
+  "type": "failure",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "TaskControllerReviewTest",
+  "case": "pendingReview_directCall_uniformResultShape",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "TaskControllerReviewTest",
+  "case": "pendingReview_parent_success_returnsList",
+  "type": "error",
+  "msg": "Request processing failed; nested exception is java.lang.NullPointerException"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "getWishes_MissingCondition",
+  "type": "failure",
+  "msg": "expected: <请指定查询条件(childId或familyId)> but was: <请指定查询条件(memberId或familyId)>"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "getPendingWishes_NoFamilyId",
+  "type": "failure",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "tasks_分页",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "overview_成功",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "overview_非admin拒绝",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_unknownLegacy_returnsNullData",
+  "type": "failure",
+  "msg": "JSON path \"$.data\"\nExpected: null\n     but: was \"unknown_legacy_xyz\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_emptyLegacy_returnsNullData",
+  "type": "failure",
+  "msg": "JSON path \"$.data\"\nExpected: null\n     but: was \"\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_missingLegacy_returnsBadRequest",
+  "type": "failure",
+  "msg": "Status expected:<400> but was:<200>"
+ },
+ {
+  "cls": "DailyCheckinStreakFlowTest",
+  "case": "childDeletesCheckin_Success",
+  "type": "error",
+  "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "parentQueriesEnergyLogs_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "childExchangesWishWithEnergy_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "childExchangesWithInsufficientEnergy_Fails",
+  "type": "failure",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "userWithoutFamily_Fails",
+  "type": "failure",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "parentGetsEnergyOverview_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "taskCompletionGrantsEnergy_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentUploadsHealthReport_Success",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentCreatesRecordWithoutChild_Fails",
+  "type": "failure",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentCreatesRecordWithOrder_Success",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "GuideModuleIntegrationTest",
+  "case": "testGuidePackageCreationFlow",
+  "type": "error",
+  "msg": "### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'platf"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentConfirmsBind_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "guideViewsBoundFamilies_Success",
+  "type": "failure",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentBindsSameGuideTwice_Fails",
+  "type": "failure",
+  "msg": "expected: <400> but was: <403>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentUnbindsGuide_Success",
+  "type": "error",
+  "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n    doNothing().\n    doThrow(new RuntimeException())\n    .when(moc"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "completeInviteBindFlow_Success",
+  "type": "failure",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "OrchestrationEngineTest",
+  "case": "testOnTaskFailed_FoundNode_ThenMarkFailedAndEvaluateFlow",
+  "type": "failure",
+  "msg": "expected: \"manual_fail\"\n but was: null"
+ },
+ {
+  "cls": "OrchestrationIntegrationTest",
+  "case": "testEvaluateFlow_AndNode_AllCompleted_Triggered",
+  "type": "failure",
+  "msg": "Expecting actual:\n  \"failed\"\nto be in:\n  [\"in_progress\", \"pending\"]"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_pending",
+  "type": "failure",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_draft",
+  "type": "failure",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_published",
+  "type": "failure",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_F03a发放_自动创建感恩记录",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\noctopusEffectRecordMapper.insert(<any>);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_同家庭引荐人跳过_顺延到下一级拿F03a",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1020L,\n    \"F03a\",\n    1L,\n    <any>\n);\n-> at com.etotem.cfc.service.CfCommissionSe"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_商品订单实付与分润基数分离",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_两级销售奖_F03a按团队档位_F03b按自身档位",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_档位比例超规则上限_按上限封顶",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_落P点消费日志_基数与订单对应",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\nppointConsumptionLogMapper.insert(\n    <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettl"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_最多两级_第三级引荐人不发放",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    1010L,\n    \"F03a\",\n    1L,\n    <any>\n);\n-> at com.etotem.cfc.service.CfCommissionSe"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_推荐人分润只走earnByRule_不再写旧分佣流水",
+  "type": "failure",
+  "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n    <any long>,\n    <any string>,\n    <any long>,\n    <any>\n);\n-> at com.etotem.cfc.ser"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA2_standardCoreLiteracyFormat",
+  "type": "failure",
+  "msg": "expected: <俊辰> but was: <null>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseB4_regression",
+  "type": "failure",
+  "msg": "B4 解析应正常 ==> expected: <false> but was: <true>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA1_shouldFallbackToGenericPattern",
+  "type": "failure",
+  "msg": "应通过fallback提取感知觉百分位 ==> expected: not <null>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA1_shouldExtractCognitiveDimensionFromDetailPage",
+  "type": "failure",
+  "msg": "应有processingSpeed_score ==> expected: not <null>"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "overview_计数与明细",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "overview_家庭不存在",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "pageTasks_分页",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_inviterWithoutReferrer_doesNotBind",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_tokenPath_userWithReferrer_doesNotRebind",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_tokenPath_newUserWithoutReferrer_bindsInviterReferrer",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_shortCodePath_noInviter_doesNotBind",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "FortuneServiceTest",
+  "case": "testCalculateLuckyDirection",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "FortuneServiceTest",
+  "case": "testGenerateIsDeterministic",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "MembershipPaySwitchTest",
+  "case": "createOrderWithPayType_virtualEnabled_configMissing_returnsNull",
+  "type": "failure",
+  "msg": "expected: <null> but was: <{levelCode=FAMILY, amount=131400, orderNo=ORD17939069004190058B72, payType=wechat, wechatPayParams={}, groupNo=nu"
+ },
+ {
+  "cls": "PaymentServiceORDRoutingTest",
+  "case": "unknownPrefix_routesToHandlePaymentCallback",
+  "type": "failure",
+  "msg": "expected: <SUCCESS> but was: <FAIL>"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "resolveShipType_deliveryMethod3_requiresExplicitShipType",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_local_syncsWechatWithLogisticsType2",
+  "type": "error",
+  "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_express_requiresTrackingAndCompany",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_selfPickup_syncsWechatWithLogisticsType4",
+  "type": "error",
+  "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_virtual_rejectsManualShipAndIdempotent",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "autoShipVirtualOrder_onPaySuccess",
+  "type": "error",
+  "msg": "Misplaced or misused argument matcher detected here:\n\n-> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWith"
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "updateExpress_fullUpdate_writesLogisticsColumnsAndSyncsWechat",
+  "type": "failure",
+  "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    \"YT9876543210\",\n    \"圆通速递\",\n    "
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "ship_writesLogisticsColumns",
+  "type": "failure",
+  "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    \"JD0000000001\",\n    \"京东物流\",\n    "
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "updateExpress_onlyCompany_trackingFallsBackToPersistedLogisticsNo",
+  "type": "failure",
+  "msg": "Argument(s) are different! Wanted:\nwechatService.uploadShippingInfo(\n    \"O20261018001\",\n    \"oABC123\",\n    <Capturing argument>,\n    \"中通快递\""
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "realName变化_联动家庭名",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "realName未变_不改家庭名",
+  "type": "error",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "KnowledgeBaseBackfillTest",
+  "case": "saveWithAssociations_emptyAssociations_autoBindsMatchedTagAndDimension",
+  "type": "error",
+  "msg": "productDimensionConfigMapper"
+ },
+ {
+  "cls": "KnowledgeBaseBackfillTest",
+  "case": "getWithAssociations_returnsFlatContentAndAssociationFields",
+  "type": "error",
+  "msg": "productDimensionConfigMapper"
+ },
+ {
+  "cls": "ServiceRoleApproveTest",
+  "case": "planner_已有同手机号admin则更新不重复插入",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "ServiceRoleApproveTest",
+  "case": "planner_通过后写teacher_status并创建admins记录",
+  "type": "error",
+  "msg": "java.lang.NullPointerException"
+ },
+ {
+  "cls": "TaskPlanServiceTest",
+  "case": "applyAndActivate_无active实例时新建并置active",
+  "type": "failure",
+  "msg": "expected: <100> but was: <null>"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_withoutFamilyMemberId_fallsBackToUserIdLookup",
+  "type": "error",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_noDeadlineTask_awardsBasePointsInsteadOfPenalty",
+  "type": "error",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_withExplicitFamilyMemberId_doesNotFallbackToUserIdLookup",
+  "type": "error",
+  "msg": "platformPointsService"
+ }
+]

+ 2378 - 0
_run29_agg.json

@@ -0,0 +1,2378 @@
+{
+ "total": {
+  "tests": 1482,
+  "failures": 66,
+  "errors": 81,
+  "skipped": 4
+ },
+ "passed": 1331,
+ "classes": {
+  "AdminRolesTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionStage1FoundationTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DatabaseInitializerSeedTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyAccessInterceptorTest": {
+   "tests": 11,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "JwtInterceptorLoginRequiredTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AIChatControllerTest": {
+   "tests": 17,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityControllerTest": {
+   "tests": 16,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleCategoryControllerTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleControllerTest": {
+   "tests": 11,
+   "f": 4,
+   "e": 5,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionControllerTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionSurveyRoutingTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AuthControllerTest": {
+   "tests": 39,
+   "f": 4,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DailyTaskControllerTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DanAssessmentControllerGetActiveMaterialTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DimensionAdminControllerTest": {
+   "tests": 13,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "EnergyControllerGrantEnergyTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyControllerTest": {
+   "tests": 8,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideFamilyTaskControllerTest": {
+   "tests": 20,
+   "f": 3,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideOrderControllerTest": {
+   "tests": 8,
+   "f": 6,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideRolePermissionTest": {
+   "tests": 21,
+   "f": 4,
+   "e": 1,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideTeamControllerTest": {
+   "tests": 9,
+   "f": 2,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthCheckinCfEarnCallSiteTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthDimensionControllerTest": {
+   "tests": 15,
+   "f": 2,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthPlanDeleteControllerTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportControllerCreateReportTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportControllerListPaginationTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportControllerProxyParseBindingTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorControllerTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorFavoriteControllerTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PaymentControllerTest": {
+   "tests": 12,
+   "f": 4,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductControllerTest": {
+   "tests": 16,
+   "f": 0,
+   "e": 3,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductOrderControllerTest": {
+   "tests": 20,
+   "f": 0,
+   "e": 6,
+   "s": 0,
+   "src": "xml"
+  },
+  "StatsControllerTest": {
+   "tests": 6,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "WishControllerTest": {
+   "tests": 29,
+   "f": 2,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AdminAuthWechatScanTest": {
+   "tests": 11,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AdminProductControllerBatchShelveTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReportParserAdminControllerTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "SupplyTeamControllerInviteTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AIChatControllerGateTest": {
+   "tests": 18,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ButlerControllerGateTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMembersControllerAddMemberTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMembersControllerListTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMembersControllerRenameFamilyTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TeacherMessageControllerMyTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TrainingPlanControllerGetPlanDetailTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TrainingPlanControllerGetPlanListTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MindFortuneControllerTest": {
+   "tests": 1,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityDTOTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DailyCheckinStreakFlowTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 1,
+   "s": 0,
+   "src": "xml"
+  },
+  "EnergySystemFlowTest": {
+   "tests": 7,
+   "f": 6,
+   "e": 0,
+   "s": 1,
+   "src": "xml"
+  },
+  "GrowthRecordSyncFlowTest": {
+   "tests": 10,
+   "f": 1,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideModuleIntegrationTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 1,
+   "s": 0,
+   "src": "xml"
+  },
+  "PlannerBindInviteFlowTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 9,
+   "s": 0,
+   "src": "xml"
+  },
+  "AdminFamilyOverviewControllerTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 3,
+   "s": 0,
+   "src": "xml"
+  },
+  "AdminSpecialPriceControllerTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "SpecialPriceControllerTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "OrchestrationEngineTest": {
+   "tests": 8,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "OrchestrationIntegrationTest": {
+   "tests": 7,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityAdminServiceTest": {
+   "tests": 10,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityOrderServiceTest": {
+   "tests": 15,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityRegistrationQuotaConcurrencyTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityServicePublishTest": {
+   "tests": 6,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AiGatewayTimeoutTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleAudioServiceChunkFilterTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleWorkflowTest": {
+   "tests": 14,
+   "f": 3,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfBalanceServiceTest": {
+   "tests": 25,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfCommissionServiceSettleTest": {
+   "tests": 12,
+   "f": 8,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfCommissionServiceTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfEarnDispatchServiceTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfGrowthPathwayEarnServiceTest": {
+   "tests": 16,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfLegacyLedgerMigrationServiceTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfLegacyLedgerWiringTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfPathwayEarnServiceTest": {
+   "tests": 32,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfReferralServiceSalesTierTest": {
+   "tests": 11,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfSpendDispatchServiceTest": {
+   "tests": 11,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfTransferServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ChallengeScoreServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CommissionDistService410Test": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CommissionServiceReferralF24Test": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ConsigneeServiceBackfillTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DailyOverviewServiceTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 1,
+   "s": 0,
+   "src": "xml"
+  },
+  "DanReportParseServiceTest": {
+   "tests": 38,
+   "f": 4,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "DataMigrationServiceTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 1,
+   "src": "xml"
+  },
+  "DimensionEnergySyncServiceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 5,
+   "s": 0,
+   "src": "xml"
+  },
+  "DimensionScoreServiceImplTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 6,
+   "s": 0,
+   "src": "xml"
+  },
+  "DimensionScoreServiceTest": {
+   "tests": 21,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "EnergyServiceFamilyTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "EnergyServiceGrantEnergyTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "EnergyServiceWealthIncomeTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyAdminOverviewServiceTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 3,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyFoodOverviewServiceTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyJoinRequestServiceReferrerBindTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 4,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMemberServiceIsChildTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyPlatformPointsServiceCouponTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FiveDimensionSelfCheckServiceTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FoodRecommendServiceTest": {
+   "tests": 21,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FoodServiceTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FortuneServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideApplicationServiceTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideFamilyServiceTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideHierarchyServiceTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuidePackageServiceTest": {
+   "tests": 13,
+   "f": 0,
+   "e": 12,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuidePackageTemplateServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportServiceAuditConfirmTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportServiceBackfillResilienceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportServiceIndicatorsTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthReportServiceTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorChangeServiceSemanticTest": {
+   "tests": 20,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorChangeServiceTest": {
+   "tests": 23,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorCorrelationServiceTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorFavoriteServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorMappingServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorTimelineServiceTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorTrendServiceTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "IndicatorValueMapperTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MembershipPaySwitchTest": {
+   "tests": 6,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MembershipServiceAiGateTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MembershipServiceTest": {
+   "tests": 17,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MiniGameServiceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "NormalizeIndicatorPipelineTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "NumSoulCalculatorTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "NutritionDeficiencyServiceTest": {
+   "tests": 14,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PaymentServiceORDRoutingTest": {
+   "tests": 3,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PdfParseServiceTest": {
+   "tests": 11,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PlatformPointsServiceTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PointsExchangeServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductOrderServiceFulfillmentMultiModeTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 6,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductOrderServiceSpecialDealTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductOrderServiceUpdateExpressFieldTest": {
+   "tests": 3,
+   "f": 3,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "RealNameBackfillServiceTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "RelationshipQuestionnaireServiceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReportAnalyzeQuotaServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReportBlockAssemblerTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReportDateExtractorTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReportSummaryServiceCompletenessTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ServiceContentServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ServiceTypeServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "SpecialPriceServiceTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "SupplySystemServiceTest": {
+   "tests": 18,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TaskServiceCfEarnTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TaskServiceMinigameTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 1,
+   "src": "xml"
+  },
+  "TeacherLoginTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 1,
+   "src": "xml"
+  },
+  "TencentTtsServiceAuthorizationTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "UserAddressServiceBackfillTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "UserServiceEffectiveFamilyIdsTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "UserServiceFamilyNameLinkTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "WishServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "WithdrawalServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfGrowthEarnCallSiteTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "PurchaseServiceImplRenewalTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "OrderTimeoutCancelTaskSpecialDealTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TaskCheckinWebhookReminderTaskTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "VirtualPayTimeoutTaskTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityAuditTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityRegistrationListTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityRegistrationQuotaUnitTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityRegistrationRejectTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityTagServiceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ActivityTeamServiceUnitTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleAutoTagServiceTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleBackfillTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ArticleRelatedServiceTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionAdjustServiceTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionPipelineMockTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionPlanServiceTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "AttributionRedlinesTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CartReplaceComboTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfBalanceControllerTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ComboOfferCalculatorTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ComboOrderStockTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ComboServiceTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ConditionEvaluatorServiceTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMemberDimensionBaseScoreServiceTest": {
+   "tests": 7,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyMemberServiceRenameTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FamilyNamingSupportTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "FiveDimensionScoreServiceTest": {
+   "tests": 12,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideFamilyAccessGuardTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideFamilyQueryServiceTest": {
+   "tests": 4,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuideFamilyServiceBindTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "GuidePlanReviewControllerAuthTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthPlanDeleteCascadeTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthPlanLazyBackfillTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "HealthPlanReviewGuardTest": {
+   "tests": 10,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "KnowledgeBaseBackfillTest": {
+   "tests": 9,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "MemberPriceResolverTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductDTOMappingTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductListNutritionTagFilterTest": {
+   "tests": 2,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ProductUpdateClearTest": {
+   "tests": 5,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "RecommendationNutritionTagTest": {
+   "tests": 1,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "RepeatTaskGeneratorPassThroughTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ReviewCenterSummaryTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "ServiceRoleApproveTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 2,
+   "s": 0,
+   "src": "xml"
+  },
+  "ServiceRoleFilterTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TaskPlanServiceTest": {
+   "tests": 4,
+   "f": 1,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "TaskProgressUpdateTest": {
+   "tests": 3,
+   "f": 0,
+   "e": 3,
+   "s": 0,
+   "src": "xml"
+  },
+  "CfFormulaEvaluatorTest": {
+   "tests": 8,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "SpearmanUtilTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  },
+  "UserUtilTest": {
+   "tests": 6,
+   "f": 0,
+   "e": 0,
+   "s": 0,
+   "src": "xml"
+  }
+ },
+ "issues": {
+  "ArticleControllerTest": [
+   {
+    "case": "list_ByCategory",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "recordRead_NoDuration",
+    "kind": "error",
+    "cat": "OTHER_EXC",
+    "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod(); Above means: someVoidMethod() does not"
+   },
+   {
+    "case": "featured_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <2> but was: <0>"
+   },
+   {
+    "case": "list_LoggedInUser",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: not <null>"
+   },
+   {
+    "case": "list_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: not <null>"
+   },
+   {
+    "case": "recordRead_WithMemberId",
+    "kind": "error",
+    "cat": "OTHER_EXC",
+    "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod(); Above means: someVoidMethod() does not"
+   },
+   {
+    "case": "featured_DefaultSize",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <1> but was: <0>"
+   },
+   {
+    "case": "list_ByKeyword",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "recordRead_Success",
+    "kind": "error",
+    "cat": "OTHER_EXC",
+    "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod(); Above means: someVoidMethod() does not"
+   }
+  ],
+  "AuthControllerTest": [
+   {
+    "case": "autoLogin_UserNotFound",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <410>"
+   },
+   {
+    "case": "switchRole_NotLoggedIn",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <401>"
+   },
+   {
+    "case": "autoLogin_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <410>"
+   },
+   {
+    "case": "autoLogin_NoOpenid",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <410>"
+   }
+  ],
+  "FamilyControllerTest": [
+   {
+    "case": "guideBindFamily_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   }
+  ],
+  "GuideFamilyTaskControllerTest": [
+   {
+    "case": "getFamilyTaskOverview_WithChildren",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <1> but was: <null>"
+   },
+   {
+    "case": "getPendingReviewTasks_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <1> but was: <0>"
+   },
+   {
+    "case": "reviewTask_Success",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "batchReviewTasks_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <3> but was: <0>"
+   },
+   {
+    "case": "getChildTasks_WithPagination",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "GuideOrderControllerTest": [
+   {
+    "case": "getOrders_NullParams",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: not <null>"
+   },
+   {
+    "case": "getOrderStats_WithData",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "getOrderDetail_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <403>"
+   },
+   {
+    "case": "getOrderDetail_MissingId",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+   },
+   {
+    "case": "getOrderDetail_WrongGuide",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+   },
+   {
+    "case": "getOrders_WithStatusFilter",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "getOrderDetail_NotFound",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <订单不存在> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+   },
+   {
+    "case": "getOrders_WithPagination",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <403>"
+   }
+  ],
+  "GuideRolePermissionTest": [
+   {
+    "case": "orderDetail_OwnerCanView",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <403>"
+   },
+   {
+    "case": "orderDetail_MissingId",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+   },
+   {
+    "case": "reviewTask_TeacherAllowed",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "batchReview_TeacherAllowed",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <2> but was: <0>"
+   },
+   {
+    "case": "orderDetail_NotOwnerDenied",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+   }
+  ],
+  "GuideTeamControllerTest": [
+   {
+    "case": "testGetTeamStats_NoInviteCode",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <0> but was: <null>"
+   },
+   {
+    "case": "testGetTeamStats_WithMembers",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <3> but was: <null>"
+   }
+  ],
+  "HealthDimensionControllerTest": [
+   {
+    "case": "history_missingMemberId",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <200>"
+   },
+   {
+    "case": "overview_missingMemberId",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <200>"
+   }
+  ],
+  "PaymentControllerTest": [
+   {
+    "case": "handleWechatCallback_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <true> but was: <false>"
+   },
+   {
+    "case": "handleAlipayCallback_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <true> but was: <false>"
+   },
+   {
+    "case": "createWechatPayOrder_ReturnMapNotNull",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: not <null>"
+   },
+   {
+    "case": "createWechatPayOrder_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <ORD20260622001> but was: <null>"
+   }
+  ],
+  "ProductControllerTest": [
+   {
+    "case": "shelve_PublishSuccess",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_PublishSuccess(ProductControllerTest.java:289)  This exception may occu"
+   },
+   {
+    "case": "shelve_NotOwner",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_NotOwner(ProductControllerTest.java:319)  This exception may occur if m"
+   },
+   {
+    "case": "shelve_UnshelveSuccess",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_UnshelveSuccess(ProductControllerTest.java:304)  This exception may occ"
+   }
+  ],
+  "ProductOrderControllerTest": [
+   {
+    "case": "confirm_Success",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "myOrders_FilterByStatus",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "myOrders_AllStatus",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "confirm_NotFound",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "myOrders_Empty",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "confirm_NotYetShipped",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "StatsControllerTest": [
+   {
+    "case": "familyCompletion_NoFamily",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <5001>"
+   }
+  ],
+  "WishControllerTest": [
+   {
+    "case": "getWishes_MissingCondition",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <请指定查询条件(childId或familyId)> but was: <请指定查询条件(memberId或familyId)>"
+   },
+   {
+    "case": "getPendingWishes_NoFamilyId",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <5001>"
+   }
+  ],
+  "MindFortuneControllerTest": [
+   {
+    "case": "testGetTodayFortuneWithoutAuth",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "JSON path \"$.code\" expected:<401> but was:<400>"
+   }
+  ],
+  "DailyCheckinStreakFlowTest": [
+   {
+    "case": "childDeletesCheckin_Success",
+    "kind": "error",
+    "cat": "OTHER_EXC",
+    "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod(); Above means: someVoidMethod() does not"
+   }
+  ],
+  "EnergySystemFlowTest": [
+   {
+    "case": "parentQueriesEnergyLogs_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   },
+   {
+    "case": "childExchangesWishWithEnergy_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   },
+   {
+    "case": "childExchangesWithInsufficientEnergy_Fails",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <true> but was: <false>"
+   },
+   {
+    "case": "userWithoutFamily_Fails",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <500> but was: <5001>"
+   },
+   {
+    "case": "parentGetsEnergyOverview_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   },
+   {
+    "case": "taskCompletionGrantsEnergy_Success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   }
+  ],
+  "GrowthRecordSyncFlowTest": [
+   {
+    "case": "parentUploadsHealthReport_Success",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "parentCreatesRecordWithoutChild_Fails",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <true> but was: <false>"
+   },
+   {
+    "case": "parentCreatesRecordWithOrder_Success",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "GuideModuleIntegrationTest": [
+   {
+    "case": "testGuidePackageCreationFlow",
+    "kind": "error",
+    "cat": "OTHER_EXC",
+    "msg": " ### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'platform_fee' at row 1 ### The error may exist in com/etotem/cfc"
+   }
+  ],
+  "PlannerBindInviteFlowTest": [
+   {
+    "case": "guideGeneratesInvite_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentConfirmsBind_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "guideViewsBoundFamilies_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentValidatesInvite_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentBindsSameGuideTwice_Fails",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentValidatesInvalidInvite_Fails",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentUnbindsGuide_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "parentViewsBoundGuides_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "completeInviteBindFlow_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "AdminFamilyOverviewControllerTest": [
+   {
+    "case": "tasks_分页",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "overview_成功",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "overview_非admin拒绝",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "OrchestrationEngineTest": [
+   {
+    "case": "testOnTaskFailed_FoundNode_ThenMarkFailedAndEvaluateFlow",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": " expected: \"manual_fail\"  but was: null"
+   }
+  ],
+  "OrchestrationIntegrationTest": [
+   {
+    "case": "testEvaluateFlow_AndNode_AllCompleted_Triggered",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": " Expecting actual:   \"failed\" to be in:   [\"in_progress\", \"pending\"] "
+   }
+  ],
+  "ActivityAdminServiceTest": [
+   {
+    "case": "review_publish_success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   }
+  ],
+  "ActivityServicePublishTest": [
+   {
+    "case": "publish_draft_success",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <200> but was: <500>"
+   }
+  ],
+  "ArticleWorkflowTest": [
+   {
+    "case": "reDraft_notRejected_pending",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+   },
+   {
+    "case": "reDraft_notRejected_draft",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+   },
+   {
+    "case": "reDraft_notRejected_published",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+   }
+  ],
+  "CfCommissionServiceSettleTest": [
+   {
+    "case": "settle_F03a发放_自动创建感恩记录",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: octopusEffectRecordMapper.insert(<any>); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动创建感恩记录(CfCommissionServiceSettleTest.java:419) Actually, th"
+   },
+   {
+    "case": "settle_同家庭引荐人跳过_顺延到下一级拿F03a",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1020L,     \"F03a\",     1L,     <any> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_同家庭引荐人跳过_顺延到下一级拿F03a(CfCommissionSer"
+   },
+   {
+    "case": "settle_商品订单实付与分润基数分离",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_商品订单实付与分润基数分离(CfCommi"
+   },
+   {
+    "case": "settle_两级销售奖_F03a按团队档位_F03b按自身档位",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_两级销售奖_F03a按团队档位_F03b按"
+   },
+   {
+    "case": "settle_档位比例超规则上限_按上限封顶",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_档位比例超规则上限_按上限封顶(CfCom"
+   },
+   {
+    "case": "settle_落P点消费日志_基数与订单对应",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: ppointConsumptionLogMapper.insert(     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_落P点消费日志_基数与订单对应(CfCommissionServiceSettleTest."
+   },
+   {
+    "case": "settle_最多两级_第三级引荐人不发放",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <any> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_最多两级_第三级引荐人不发放(CfCommissionServiceSe"
+   },
+   {
+    "case": "settle_推荐人分润只走earnByRule_不再写旧分佣流水",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     <any long>,     <any string>,     <any long>,     <any> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_推荐人分润只走earnByRule"
+   }
+  ],
+  "DailyOverviewServiceTest": [
+   {
+    "case": "aggregate_四类汇总_全部正确",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "DanReportParseServiceTest": [
+   {
+    "case": "testParseA2_standardCoreLiteracyFormat",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <俊辰> but was: <null>"
+   },
+   {
+    "case": "testParseB4_regression",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "B4 解析应正常 ==> expected: <false> but was: <true>"
+   },
+   {
+    "case": "testParseA1_shouldFallbackToGenericPattern",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "应通过fallback提取感知觉百分位 ==> expected: not <null>"
+   },
+   {
+    "case": "testParseA1_shouldExtractCognitiveDimensionFromDetailPage",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "应有processingSpeed_score ==> expected: not <null>"
+   }
+  ],
+  "DimensionEnergySyncServiceTest": [
+   {
+    "case": "syncBodyEnergy_awardsWhenScoresExist",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "syncBodyEnergy_skipsWhenEmptyScores",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "syncBodyEnergy_skipsWhenAverageIsZero",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "syncBodyEnergy_skipsWhenNoScores",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "syncBodyEnergy_doesNotBlockOnException",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "DimensionScoreServiceImplTest": [
+   {
+    "case": "getHealthDimension_trendUp_whenScoreIncreasedBy5OrMore",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getHealthDimension_trendStable_whenNoHistory",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getHealthDimension_aggregatesAll7Dimensions",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getHealthDimension_trendDown_whenScoreDecreasedBy5OrMore",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getHealthDimension_trendStable_whenScoreChangeLessThan5",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getHealthDimension_levelMapsCorrectly",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "FamilyAdminOverviewServiceTest": [
+   {
+    "case": "overview_计数与明细",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "overview_家庭不存在",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "pageTasks_分页",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "FamilyJoinRequestServiceReferrerBindTest": [
+   {
+    "case": "approve_inviterWithoutReferrer_doesNotBind",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "approve_tokenPath_userWithReferrer_doesNotRebind",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "approve_tokenPath_newUserWithoutReferrer_bindsInviterReferrer",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "approve_shortCodePath_noInviter_doesNotBind",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "FortuneServiceTest": [
+   {
+    "case": "testCalculateLuckyDirection",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "testGenerateIsDeterministic",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "GuidePackageServiceTest": [
+   {
+    "case": "deleteGuidePackage_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "addGuidePackage_InvalidPackage_ReturnsFalse",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getActivePackages_ReturnsAllActive",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "addGuidePackage_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getGuidePackages_WithData",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "addGuidePackage_Duplicate_ReturnsFalse",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "deleteGuidePackage_NotFound_ReturnsFalse",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "updateGuidePackagePrice_Success",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getGuidePackage_NotFound",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getGuidePackages_NoData",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getPackagesByLevel_ReturnsFiltered",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "getGuidePackage_Found",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "MembershipPaySwitchTest": [
+   {
+    "case": "createOrderWithPayType_virtualEnabled_configMissing_returnsNull",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <null> but was: <{levelCode=FAMILY, amount=131400, orderNo=ORD17937656040160055048, payType=wechat, wechatPayParams={}, groupNo=null, totalPeriods=1, status=pending, periodNo=1}>"
+   }
+  ],
+  "PaymentServiceORDRoutingTest": [
+   {
+    "case": "unknownPrefix_routesToHandlePaymentCallback",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <SUCCESS> but was: <FAIL>"
+   }
+  ],
+  "ProductOrderServiceFulfillmentMultiModeTest": [
+   {
+    "case": "resolveShipType_deliveryMethod3_requiresExplicitShipType",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "ship_local_syncsWechatWithLogisticsType2",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)"
+   },
+   {
+    "case": "ship_express_requiresTrackingAndCompany",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "ship_selfPickup_syncsWechatWithLogisticsType4",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)"
+   },
+   {
+    "case": "ship_virtual_rejectsManualShipAndIdempotent",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "autoShipVirtualOrder_onPaySuccess",
+    "kind": "error",
+    "cat": "MOCK_MISUSE",
+    "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)"
+   }
+  ],
+  "ProductOrderServiceUpdateExpressFieldTest": [
+   {
+    "case": "updateExpress_fullUpdate_writesLogisticsColumnsAndSyncsWechat",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"YT9876543210\",     \"圆通速递\",     <any> ); -> at com.etotem.cfc.service.ProductOrderServiceUp"
+   },
+   {
+    "case": "ship_writesLogisticsColumns",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"JD0000000001\",     \"京东物流\",     <any> ); -> at com.etotem.cfc.service.ProductOrderServiceUp"
+   },
+   {
+    "case": "updateExpress_onlyCompany_trackingFallsBackToPersistedLogisticsNo",
+    "kind": "failure",
+    "cat": "OTHER",
+    "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     <Capturing argument>,     \"中通快递\",     <any> ); -> at com.etotem.cfc.service.ProductOrderSer"
+   }
+  ],
+  "UserServiceFamilyNameLinkTest": [
+   {
+    "case": "realName变化_联动家庭名",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   },
+   {
+    "case": "realName未变_不改家庭名",
+    "kind": "error",
+    "cat": "ENV_DB",
+    "msg": "Failed to load ApplicationContext"
+   }
+  ],
+  "ServiceRoleApproveTest": [
+   {
+    "case": "planner_已有同手机号admin则更新不重复插入",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   },
+   {
+    "case": "planner_通过后写teacher_status并创建admins记录",
+    "kind": "error",
+    "cat": "NPE",
+    "msg": ""
+   }
+  ],
+  "TaskPlanServiceTest": [
+   {
+    "case": "applyAndActivate_无active实例时新建并置active",
+    "kind": "failure",
+    "cat": "ASSERT",
+    "msg": "expected: <100> but was: <null>"
+   }
+  ],
+  "TaskProgressUpdateTest": [
+   {
+    "case": "updateProgress_withoutFamilyMemberId_fallsBackToUserIdLookup",
+    "kind": "error",
+    "cat": "TEST_SETUP",
+    "msg": "platformPointsService"
+   },
+   {
+    "case": "updateProgress_noDeadlineTask_awardsBasePointsInsteadOfPenalty",
+    "kind": "error",
+    "cat": "TEST_SETUP",
+    "msg": "platformPointsService"
+   },
+   {
+    "case": "updateProgress_withExplicitFamilyMemberId_doesNotFallbackToUserIdLookup",
+    "kind": "error",
+    "cat": "TEST_SETUP",
+    "msg": "platformPointsService"
+   }
+  ]
+ },
+ "missing": [
+  "TestRoles"
+ ],
+ "txt_only": [],
+ "categories": {
+  "NPE": 26,
+  "OTHER_EXC": 5,
+  "ASSERT": 55,
+  "MOCK_MISUSE": 6,
+  "ENV_DB": 41,
+  "OTHER": 11,
+  "TEST_SETUP": 3
+ }
+}

+ 321 - 0
_run30_agg.json

@@ -0,0 +1,321 @@
+{
+ "source_test_classes": 198,
+ "reported_classes": 198,
+ "tests": 1482,
+ "passed": 1330,
+ "failures": 70,
+ "errors": 78,
+ "skipped": 4,
+ "pass_rate": 89.74,
+ "red_classes": 43,
+ "red_cases": 148,
+ "env_red_cases": 42,
+ "nonenv_red_cases": 106,
+ "pass_rate_ex_env": 92.58,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "GuideApplicationServiceTest",
+   "F": 0,
+   "E": 8,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "GuidePackageServiceTest",
+   "F": 0,
+   "E": 8,
+   "env": true,
+   "tests": 13
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 2,
+   "env": true,
+   "tests": 9
+  },
+  {
+   "class": "DimensionScoreServiceImplTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "DimensionEnergySyncServiceTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 5
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ActivityAdminServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ActivityServicePublishTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyOverviewServiceTest",
+   "F": 0,
+   "E": 1,
+   "env": true,
+   "tests": 1
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 198,
+ "txt_only_classes": 0
+}

+ 307 - 0
_run31_agg.json

@@ -0,0 +1,307 @@
+{
+ "source_test_classes": 202,
+ "reported_classes": 202,
+ "tests": 1512,
+ "passed": 1354,
+ "failures": 57,
+ "errors": 98,
+ "skipped": 3,
+ "pass_rate": 89.55,
+ "red_classes": 41,
+ "red_cases": 155,
+ "env_red_cases": 62,
+ "nonenv_red_cases": 93,
+ "pass_rate_ex_env": 93.65,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 0,
+   "E": 9,
+   "env": true,
+   "tests": 9
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "GuideApplicationServiceTest",
+   "F": 0,
+   "E": 8,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 0,
+   "E": 7,
+   "env": true,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 10
+  },
+  {
+   "class": "GuideFamilyServiceTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "DimensionEnergySyncServiceTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 5
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 4,
+   "env": true,
+   "tests": 4
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "DimensionScoreServiceImplTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "DailyOverviewServiceTest",
+   "F": 0,
+   "E": 1,
+   "env": true,
+   "tests": 1
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 202,
+ "txt_only_classes": 0
+}

+ 363 - 0
_run32_agg.json

@@ -0,0 +1,363 @@
+{
+ "source_test_classes": 202,
+ "reported_classes": 202,
+ "tests": 1512,
+ "passed": 1262,
+ "failures": 50,
+ "errors": 197,
+ "skipped": 3,
+ "pass_rate": 83.47,
+ "red_classes": 49,
+ "red_cases": 247,
+ "env_red_cases": 167,
+ "nonenv_red_cases": 80,
+ "pass_rate_ex_env": 94.51,
+ "reds": [
+  {
+   "class": "WishControllerTest",
+   "F": 0,
+   "E": 16,
+   "env": true,
+   "tests": 29
+  },
+  {
+   "class": "GuidePackageServiceTest",
+   "F": 0,
+   "E": 13,
+   "env": true,
+   "tests": 13
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 0,
+   "E": 11,
+   "env": true,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 11,
+   "env": true,
+   "tests": 20
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 0,
+   "E": 10,
+   "env": true,
+   "tests": 10
+  },
+  {
+   "class": "GuideHierarchyServiceTest",
+   "F": 0,
+   "E": 10,
+   "env": true,
+   "tests": 10
+  },
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 0,
+   "E": 9,
+   "env": true,
+   "tests": 9
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "GuideApplicationServiceTest",
+   "F": 0,
+   "E": 8,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 0,
+   "E": 7,
+   "env": true,
+   "tests": 7
+  },
+  {
+   "class": "GuideFamilyServiceTest",
+   "F": 0,
+   "E": 7,
+   "env": true,
+   "tests": 7
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "DimensionScoreServiceImplTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "GuidePackageTemplateServiceTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "ServiceContentServiceTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "AdminSpecialPriceControllerTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "DimensionEnergySyncServiceTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 5
+  },
+  {
+   "class": "MiniGameServiceTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 5
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 4,
+   "env": true,
+   "tests": 4
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ServiceTypeServiceTest",
+   "F": 0,
+   "E": 4,
+   "env": true,
+   "tests": 4
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "SpecialPriceControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "DailyOverviewServiceTest",
+   "F": 0,
+   "E": 1,
+   "env": true,
+   "tests": 1
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 202,
+ "txt_only_classes": 0
+}

+ 272 - 0
_run33_agg.json

@@ -0,0 +1,272 @@
+{
+ "source_test_classes": 202,
+ "reported_classes": 202,
+ "tests": 1512,
+ "passed": 1302,
+ "failures": 50,
+ "errors": 156,
+ "skipped": 4,
+ "pass_rate": 86.11,
+ "red_classes": 36,
+ "red_cases": 206,
+ "env_red_cases": 137,
+ "nonenv_red_cases": 69,
+ "pass_rate_ex_env": 95.17,
+ "reds": [
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 0,
+   "E": 21,
+   "env": true,
+   "tests": 21
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 20,
+   "env": true,
+   "tests": 20
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 16,
+   "env": true,
+   "tests": 16
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 0,
+   "E": 15,
+   "env": true,
+   "tests": 15
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 0,
+   "E": 12,
+   "env": true,
+   "tests": 12
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 2,
+   "E": 9,
+   "env": true,
+   "tests": 20
+  },
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 0,
+   "E": 9,
+   "env": true,
+   "tests": 9
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 4,
+   "E": 4,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 1,
+   "E": 5,
+   "env": true,
+   "tests": 29
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 3,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 0,
+   "E": 1,
+   "env": true,
+   "tests": 1
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 202,
+ "txt_only_classes": 0
+}

+ 389 - 0
_run33_nonenv.json

@@ -0,0 +1,389 @@
+{
+ "ArticleControllerTest": [
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.mockito.exceptions.base.MockitoException",
+   "msg": "&#10;Only void methods can doNothing()!&#10;Example of correct use of doNothing():&#10;    doNothing().&#10;    doThrow(new RuntimeException())&#10;    .when(mock).someVoidMethod();&#10;Above means:&#10;someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;2&gt; but was: &lt;0&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: not &lt;null&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: not &lt;null&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.mockito.exceptions.base.MockitoException",
+   "msg": "&#10;Only void methods can doNothing()!&#10;Example of correct use of doNothing():&#10;    doNothing().&#10;    doThrow(new RuntimeException())&#10;    .when(mock).someVoidMethod();&#10;Above means:&#10;someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;1&gt; but was: &lt;0&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.controller.ArticleControllerTest",
+   "type": "org.mockito.exceptions.base.MockitoException",
+   "msg": "&#10;Only void methods can doNothing()!&#10;Example of correct use of doNothing():&#10;    doNothing().&#10;    doThrow(new RuntimeException())&#10;    .when(mock).someVoidMethod();&#10;Above means:&#10;someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
+  }
+ ],
+ "AuthControllerTest": [
+  {
+   "case": "com.etotem.cfc.controller.AuthControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;500&gt; but was: &lt;410&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.AuthControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;500&gt; but was: &lt;401&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.AuthControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;410&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.controller.AuthControllerTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;500&gt; but was: &lt;410&gt;"
+  }
+ ],
+ "DailyCheckinStreakFlowTest": [
+  {
+   "case": "com.etotem.cfc.integration.DailyCheckinStreakFlowTest",
+   "type": "org.mockito.exceptions.base.MockitoException",
+   "msg": "&#10;Only void methods can doNothing()!&#10;Example of correct use of doNothing():&#10;    doNothing().&#10;    doThrow(new RuntimeException())&#10;    .when(mock).someVoidMethod();&#10;Above means:&#10;someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
+  }
+ ],
+ "EnergySystemFlowTest": [
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;500&gt; but was: &lt;5001&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.EnergySystemFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;500&gt;"
+  }
+ ],
+ "GrowthRecordSyncFlowTest": [
+  {
+   "case": "com.etotem.cfc.integration.GrowthRecordSyncFlowTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.integration.GrowthRecordSyncFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;true&gt; but was: &lt;false&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.GrowthRecordSyncFlowTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  }
+ ],
+ "GuideModuleIntegrationTest": [
+  {
+   "case": "com.etotem.cfc.integration.GuideModuleIntegrationTest",
+   "type": "org.springframework.dao.DataIntegrityViolationException",
+   "msg": "&#10;### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column &apos;platform_fee&apos; at row 1&#10;### The error may exist in com/etotem/cfc/mapper/TaskTemplatePackageMapper.java (best guess)&#10;### The error may involve com.etotem.cfc.mapper.TaskTemplatePackageMapper.insert-Inline&#10;### The error occurred while setti"
+  }
+ ],
+ "PlannerBindInviteFlowTest": [
+  {
+   "case": "com.etotem.cfc.integration.PlannerBindInviteFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.PlannerBindInviteFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: not &lt;null&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.PlannerBindInviteFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;400&gt; but was: &lt;403&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.integration.PlannerBindInviteFlowTest",
+   "type": "org.mockito.exceptions.base.MockitoException",
+   "msg": "&#10;Only void methods can doNothing()!&#10;Example of correct use of doNothing():&#10;    doNothing().&#10;    doThrow(new RuntimeException())&#10;    .when(mock).someVoidMethod();&#10;Above means:&#10;someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
+  },
+  {
+   "case": "com.etotem.cfc.integration.PlannerBindInviteFlowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;200&gt; but was: &lt;403&gt;"
+  }
+ ],
+ "OrchestrationEngineTest": [
+  {
+   "case": "com.etotem.cfc.orchestration.OrchestrationEngineTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "&#10;expected: &quot;manual_fail&quot;&#10; but was: null"
+  }
+ ],
+ "OrchestrationIntegrationTest": [
+  {
+   "case": "com.etotem.cfc.orchestration.OrchestrationIntegrationTest",
+   "type": "java.lang.AssertionError",
+   "msg": "&#10;Expecting actual:&#10;  &quot;failed&quot;&#10;to be in:&#10;  [&quot;in_progress&quot;, &quot;pending&quot;]&#10;"
+  }
+ ],
+ "ArticleWorkflowTest": [
+  {
+   "case": "com.etotem.cfc.service.ArticleWorkflowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.service.ArticleWorkflowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.service.ArticleWorkflowTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;仅已驳回的文章可重新编辑&gt; but was: &lt;仅已驳回或已撤回的文章可重新编辑&gt;"
+  }
+ ],
+ "CfCommissionServiceSettleTest": [
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;octopusEffectRecordMapper.insert(&lt;any&gt;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动创建感恩记录(CfCommissionServiceSettleTest.java:419)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    1020L,&#10;    &quot;F03a&quot;,&#10;    1L,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_同家庭引荐人跳过_顺延到下一级拿F03a(CfCommissionServiceSettleTest.java:329)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    1010L,&#10;    &quot;F03a&quot;,&#10;    1L,&#10;    &lt;Capturing argument&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_商品订单实付与分润基数分离(CfCommissionServiceSettleTest.java:305)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    1010L,&#10;    &quot;F03a&quot;,&#10;    1L,&#10;    &lt;Capturing argument&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_两级销售奖_F03a按团队档位_F03b按自身档位(CfCommissionServiceSettleTest.java:258)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    1010L,&#10;    &quot;F03a&quot;,&#10;    1L,&#10;    &lt;Capturing argument&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_档位比例超规则上限_按上限封顶(CfCommissionServiceSettleTest.java:366)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;ppointConsumptionLogMapper.insert(&#10;    &lt;Capturing argument&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_落P点消费日志_基数与订单对应(CfCommissionServiceSettleTest.java:396)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    1010L,&#10;    &quot;F03a&quot;,&#10;    1L,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_最多两级_第三级引荐人不发放(CfCommissionServiceSettleTest.java:348)&#10;Actually, there were zero interactions with this mock.&#10;"
+  },
+  {
+   "case": "com.etotem.cfc.service.CfCommissionServiceSettleTest",
+   "type": "org.mockito.exceptions.verification.WantedButNotInvoked",
+   "msg": "&#10;Wanted but not invoked:&#10;cfBalanceService.earnByRule(&#10;    &lt;any long&gt;,&#10;    &lt;any string&gt;,&#10;    &lt;any long&gt;,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_推荐人分润只走earnByRule_不再写旧分佣流水(CfCommissionServiceSettleTest.java:287)&#10;Actually, there were zero interactions with this mock.&#10;"
+  }
+ ],
+ "DanReportParseServiceTest": [
+  {
+   "case": "com.etotem.cfc.service.DanReportParseServiceTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;俊辰&gt; but was: &lt;null&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.service.DanReportParseServiceTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "B4 解析应正常 ==&gt; expected: &lt;false&gt; but was: &lt;true&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.service.DanReportParseServiceTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "应通过fallback提取感知觉百分位 ==&gt; expected: not &lt;null&gt;"
+  },
+  {
+   "case": "com.etotem.cfc.service.DanReportParseServiceTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "应有processingSpeed_score ==&gt; expected: not &lt;null&gt;"
+  }
+ ],
+ "FamilyJoinRequestServiceReferrerBindTest": [
+  {
+   "case": "com.etotem.cfc.service.FamilyJoinRequestServiceReferrerBindTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.FamilyJoinRequestServiceReferrerBindTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.FamilyJoinRequestServiceReferrerBindTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.FamilyJoinRequestServiceReferrerBindTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  }
+ ],
+ "FortuneServiceTest": [
+  {
+   "case": "com.etotem.cfc.service.FortuneServiceTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.FortuneServiceTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  }
+ ],
+ "MembershipPaySwitchTest": [
+  {
+   "case": "com.etotem.cfc.service.MembershipPaySwitchTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;null&gt; but was: &lt;{levelCode=FAMILY, amount=131400, orderNo=ORD1793794208098005887C, payType=wechat, wechatPayParams={}, groupNo=null, totalPeriods=1, status=pending, periodNo=1}&gt;"
+  }
+ ],
+ "PaymentServiceORDRoutingTest": [
+  {
+   "case": "com.etotem.cfc.service.PaymentServiceORDRoutingTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;SUCCESS&gt; but was: &lt;FAIL&gt;"
+  }
+ ],
+ "ProductOrderServiceFulfillmentMultiModeTest": [
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "org.mockito.exceptions.misusing.InvalidUseOfMatchersException",
+   "msg": "&#10;Misplaced or misused argument matcher detected here:&#10;&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.ser"
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "org.mockito.exceptions.misusing.InvalidUseOfMatchersException",
+   "msg": "&#10;Misplaced or misused argument matcher detected here:&#10;&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.ser"
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest",
+   "type": "org.mockito.exceptions.misusing.InvalidUseOfMatchersException",
+   "msg": "&#10;Misplaced or misused argument matcher detected here:&#10;&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrderServiceFulfillmentMultiModeTest.java:71)&#10;-&gt; at com.etotem.cfc.ser"
+  }
+ ],
+ "ProductOrderServiceUpdateExpressFieldTest": [
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest",
+   "type": "org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent",
+   "msg": "&#10;Argument(s) are different! Wanted:&#10;wechatService.uploadShippingInfo(&#10;    &quot;O20261018001&quot;,&#10;    &quot;oABC123&quot;,&#10;    &quot;YT9876543210&quot;,&#10;    &quot;圆通速递&quot;,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest.updateExpress_fullUpdate_writesLogisticsColumnsAndSyncsWechat(ProductOrderServiceUpdateExpress"
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest",
+   "type": "org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent",
+   "msg": "&#10;Argument(s) are different! Wanted:&#10;wechatService.uploadShippingInfo(&#10;    &quot;O20261018001&quot;,&#10;    &quot;oABC123&quot;,&#10;    &quot;JD0000000001&quot;,&#10;    &quot;京东物流&quot;,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest.ship_writesLogisticsColumns(ProductOrderServiceUpdateExpressFieldTest.java:154)&#10;Actual inv"
+  },
+  {
+   "case": "com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest",
+   "type": "org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent",
+   "msg": "&#10;Argument(s) are different! Wanted:&#10;wechatService.uploadShippingInfo(&#10;    &quot;O20261018001&quot;,&#10;    &quot;oABC123&quot;,&#10;    &lt;Capturing argument&gt;,&#10;    &quot;中通快递&quot;,&#10;    &lt;any&gt;&#10;);&#10;-&gt; at com.etotem.cfc.service.ProductOrderServiceUpdateExpressFieldTest.updateExpress_onlyCompany_trackingFallsBackToPersistedLogisticsNo(ProductOrderServiceUpdateE"
+  }
+ ],
+ "ServiceRoleApproveTest": [
+  {
+   "case": "com.etotem.cfc.unit.ServiceRoleApproveTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  },
+  {
+   "case": "com.etotem.cfc.unit.ServiceRoleApproveTest",
+   "type": "java.lang.NullPointerException",
+   "msg": ""
+  }
+ ],
+ "TaskPlanServiceTest": [
+  {
+   "case": "com.etotem.cfc.unit.TaskPlanServiceTest",
+   "type": "org.opentest4j.AssertionFailedError",
+   "msg": "expected: &lt;100&gt; but was: &lt;null&gt;"
+  }
+ ],
+ "TaskProgressUpdateTest": [
+  {
+   "case": "com.etotem.cfc.unit.TaskProgressUpdateTest",
+   "type": "java.lang.NoSuchFieldException",
+   "msg": "platformPointsService"
+  },
+  {
+   "case": "com.etotem.cfc.unit.TaskProgressUpdateTest",
+   "type": "java.lang.NoSuchFieldException",
+   "msg": "platformPointsService"
+  },
+  {
+   "case": "com.etotem.cfc.unit.TaskProgressUpdateTest",
+   "type": "java.lang.NoSuchFieldException",
+   "msg": "platformPointsService"
+  }
+ ]
+}

+ 307 - 0
_run34_agg.json

@@ -0,0 +1,307 @@
+{
+ "source_test_classes": 202,
+ "reported_classes": 202,
+ "tests": 1512,
+ "passed": 1369,
+ "failures": 68,
+ "errors": 71,
+ "skipped": 4,
+ "pass_rate": 90.54,
+ "red_classes": 41,
+ "red_cases": 139,
+ "env_red_cases": 30,
+ "nonenv_red_cases": 109,
+ "pass_rate_ex_env": 92.53,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "GuideApplicationServiceTest",
+   "F": 0,
+   "E": 8,
+   "env": true,
+   "tests": 8
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GuidePackageServiceTest",
+   "F": 0,
+   "E": 6,
+   "env": true,
+   "tests": 13
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "DimensionEnergySyncServiceTest",
+   "F": 0,
+   "E": 5,
+   "env": true,
+   "tests": 5
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "DimensionScoreServiceImplTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 6
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "DailyOverviewServiceTest",
+   "F": 0,
+   "E": 1,
+   "env": true,
+   "tests": 1
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 202,
+ "txt_only_classes": 0
+}

+ 279 - 0
_run35_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 204,
+ "reported_classes": 204,
+ "tests": 1528,
+ "passed": 1404,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 91.88,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.41,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 204,
+ "txt_only_classes": 0
+}

+ 279 - 0
_run36_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 204,
+ "reported_classes": 204,
+ "tests": 1528,
+ "passed": 1404,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 91.88,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.41,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 204,
+ "txt_only_classes": 0
+}

+ 279 - 0
_run37_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 204,
+ "reported_classes": 204,
+ "tests": 1528,
+ "passed": 1404,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 91.88,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.41,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 204,
+ "txt_only_classes": 0
+}

+ 284 - 0
_run38_agg.json

@@ -0,0 +1,284 @@
+{
+ "source_test_classes": 208,
+ "reported_classes": 204,
+ "tests": 1528,
+ "passed": 1404,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 91.88,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.41,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [
+  "FamilyUserSwitchRoleTest",
+  "JwtInterceptorWechatLoginTest",
+  "ScG06JwtGuardTest",
+  "UserServiceWechatLoginTest"
+ ],
+ "xml_only_classes": 204,
+ "txt_only_classes": 0
+}

+ 279 - 0
_run39_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 214,
+ "reported_classes": 214,
+ "tests": 1634,
+ "passed": 1510,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 92.41,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.9,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 214,
+ "txt_only_classes": 0
+}

+ 279 - 0
_run40_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 215,
+ "reported_classes": 215,
+ "tests": 1648,
+ "passed": 1524,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 92.48,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.96,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 215,
+ "txt_only_classes": 0
+}

+ 0 - 0
_run40_npm_audit_frontend.err


+ 3802 - 0
_run40_npm_audit_frontend.json

@@ -0,0 +1,3802 @@
+{
+  "auditReportVersion": 2,
+  "vulnerabilities": {
+    "@dcloudio/uni-template-compiler": {
+      "name": "@dcloudio/uni-template-compiler",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "vue-template-compiler"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/@dcloudio/uni-template-compiler"
+      ],
+      "fixAvailable": false
+    },
+    "@dcloudio/vue-cli-plugin-uni": {
+      "name": "@dcloudio/vue-cli-plugin-uni",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "postcss-import",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/@dcloudio/vue-cli-plugin-uni"
+      ],
+      "fixAvailable": false
+    },
+    "@intervolga/optimize-cssnano-plugin": {
+      "name": "@intervolga/optimize-cssnano-plugin",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "cssnano",
+        "cssnano-preset-default",
+        "postcss"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/@intervolga/optimize-cssnano-plugin"
+      ],
+      "fixAvailable": true
+    },
+    "@jest/core": {
+      "name": "@jest/core",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@jest/reporters",
+        "@jest/transform",
+        "jest-config",
+        "jest-haste-map",
+        "jest-resolve-dependencies",
+        "jest-runner",
+        "jest-runtime",
+        "jest-snapshot"
+      ],
+      "effects": [
+        "jest"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@jest/core"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "@jest/reporters": {
+      "name": "@jest/reporters",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@jest/transform",
+        "jest-haste-map",
+        "node-notifier"
+      ],
+      "effects": [
+        "@jest/core"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@jest/reporters"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "@jest/test-sequencer": {
+      "name": "@jest/test-sequencer",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-haste-map",
+        "jest-runner",
+        "jest-runtime"
+      ],
+      "effects": [
+        "jest-config"
+      ],
+      "range": "<=26.6.3",
+      "nodes": [
+        "node_modules/@jest/test-sequencer"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "@jest/transform": {
+      "name": "@jest/transform",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-haste-map"
+      ],
+      "effects": [
+        "babel-jest",
+        "jest-runtime"
+      ],
+      "range": "<=26.6.2",
+      "nodes": [
+        "node_modules/@jest/transform"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "@tootallnate/once": {
+      "name": "@tootallnate/once",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1119438,
+          "name": "@tootallnate/once",
+          "dependency": "@tootallnate/once",
+          "title": "@tootallnate/once vulnerable to Incorrect Control Flow Scoping",
+          "url": "https://github.com/advisories/GHSA-vpq2-c234-7xj6",
+          "severity": "low",
+          "cwe": [
+            "CWE-705"
+          ],
+          "cvss": {
+            "score": 3.3,
+            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<2.0.1"
+        }
+      ],
+      "effects": [
+        "http-proxy-agent"
+      ],
+      "range": "<2.0.1",
+      "nodes": [
+        "node_modules/@tootallnate/once"
+      ],
+      "fixAvailable": true
+    },
+    "@types/webpack-dev-server": {
+      "name": "@types/webpack-dev-server",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "http-proxy-middleware"
+      ],
+      "effects": [],
+      "range": "3.11.2 - 4.0.3",
+      "nodes": [
+        "node_modules/@types/webpack-dev-server"
+      ],
+      "fixAvailable": true
+    },
+    "@vue/babel-plugin-jsx": {
+      "name": "@vue/babel-plugin-jsx",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/babel-plugin-resolve-type"
+      ],
+      "effects": [],
+      "range": "1.2.0-alpha.0 - 1.2.0 || 1.5.0",
+      "nodes": [
+        "node_modules/@vue/babel-plugin-jsx"
+      ],
+      "fixAvailable": true
+    },
+    "@vue/babel-plugin-resolve-type": {
+      "name": "@vue/babel-plugin-resolve-type",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/compiler-sfc"
+      ],
+      "effects": [
+        "@vue/babel-plugin-jsx"
+      ],
+      "range": "<=1.2.0-beta.0",
+      "nodes": [
+        "node_modules/@vue/babel-plugin-resolve-type"
+      ],
+      "fixAvailable": true
+    },
+    "@vue/cli-plugin-babel": {
+      "name": "@vue/cli-plugin-babel",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "@vue/cli-shared-utils",
+        "webpack"
+      ],
+      "effects": [],
+      "range": "3.4.0 - 4.5.19",
+      "nodes": [
+        "node_modules/@vue/cli-plugin-babel"
+      ],
+      "fixAvailable": {
+        "name": "@vue/cli-plugin-babel",
+        "version": "5.0.9",
+        "isSemVerMajor": true
+      }
+    },
+    "@vue/cli-plugin-router": {
+      "name": "@vue/cli-plugin-router",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/cli-shared-utils"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "<=4.5.19",
+      "nodes": [
+        "node_modules/@vue/cli-plugin-router"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/cli-service": {
+      "name": "@vue/cli-service",
+      "severity": "critical",
+      "isDirect": true,
+      "via": [
+        "@intervolga/optimize-cssnano-plugin",
+        "@vue/cli-plugin-router",
+        "@vue/cli-shared-utils",
+        "@vue/component-compiler-utils",
+        "autoprefixer",
+        "copy-webpack-plugin",
+        "css-loader",
+        "cssnano",
+        "globby",
+        "html-webpack-plugin",
+        "postcss-loader",
+        "terser-webpack-plugin",
+        "vue-loader",
+        "webpack",
+        "webpack-dev-server"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/cli-service"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/cli-shared-utils": {
+      "name": "@vue/cli-shared-utils",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "request"
+      ],
+      "effects": [
+        "@vue/cli-plugin-babel",
+        "@vue/cli-plugin-router"
+      ],
+      "range": "<=4.5.19",
+      "nodes": [
+        "node_modules/@vue/cli-shared-utils"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/compiler-sfc": {
+      "name": "@vue/compiler-sfc",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "postcss"
+      ],
+      "effects": [
+        "@vue/babel-plugin-resolve-type",
+        "vue"
+      ],
+      "range": "3.0.0-alpha.0 - 3.0.5",
+      "nodes": [
+        "node_modules/@vue/compiler-sfc"
+      ],
+      "fixAvailable": {
+        "name": "vue",
+        "version": "3.5.44",
+        "isSemVerMajor": true
+      }
+    },
+    "@vue/component-compiler-utils": {
+      "name": "@vue/component-compiler-utils",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [
+        "@vue/cli-service",
+        "vue-loader"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/component-compiler-utils"
+      ],
+      "fixAvailable": false
+    },
+    "anymatch": {
+      "name": "anymatch",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "micromatch"
+      ],
+      "effects": [
+        "chokidar",
+        "sane"
+      ],
+      "range": "1.2.0 - 2.0.0",
+      "nodes": [
+        "node_modules/sane/node_modules/anymatch",
+        "node_modules/watchpack-chokidar2/node_modules/anymatch",
+        "node_modules/webpack-dev-server/node_modules/anymatch"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "autoprefixer": {
+      "name": "autoprefixer",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "1.0.20131222 - 9.8.8",
+      "nodes": [
+        "node_modules/autoprefixer"
+      ],
+      "fixAvailable": true
+    },
+    "babel-jest": {
+      "name": "babel-jest",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "@jest/transform"
+      ],
+      "effects": [
+        "jest-config"
+      ],
+      "range": "24.2.0-alpha.0 - 26.6.3",
+      "nodes": [
+        "node_modules/babel-jest"
+      ],
+      "fixAvailable": {
+        "name": "babel-jest",
+        "version": "30.5.2",
+        "isSemVerMajor": true
+      }
+    },
+    "body-parser": {
+      "name": "body-parser",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1243073,
+          "name": "body-parser",
+          "dependency": "body-parser",
+          "title": "body-parser vulnerable to Denial of Service via trailing bytes after a compressed request body",
+          "url": "https://github.com/advisories/GHSA-27r3-jxmh-p828",
+          "severity": "high",
+          "cwe": [
+            "CWE-248"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.20.9"
+        }
+      ],
+      "effects": [],
+      "range": "<1.20.9",
+      "nodes": [
+        "node_modules/body-parser"
+      ],
+      "fixAvailable": true
+    },
+    "brace-expansion": {
+      "name": "brace-expansion",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1240100,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service",
+          "url": "https://github.com/advisories/GHSA-q2hr-2g5m-vwhr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<1.1.21"
+        },
+        {
+          "source": 1240101,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service",
+          "url": "https://github.com/advisories/GHSA-q2hr-2g5m-vwhr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.0.0 <2.1.7"
+        },
+        {
+          "source": 1240104,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-qhr7-859c-m2p7",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.20"
+        },
+        {
+          "source": 1240105,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-qhr7-859c-m2p7",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.6"
+        },
+        {
+          "source": 1240108,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-6j4f-fj2g-mc7p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.19"
+        },
+        {
+          "source": 1240109,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-6j4f-fj2g-mc7p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.5"
+        }
+      ],
+      "effects": [],
+      "range": "<=1.1.20 || 2.0.0 - 2.1.6",
+      "nodes": [
+        "node_modules/brace-expansion",
+        "node_modules/filelist/node_modules/brace-expansion"
+      ],
+      "fixAvailable": true
+    },
+    "braces": {
+      "name": "braces",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1098094,
+          "name": "braces",
+          "dependency": "braces",
+          "title": "Uncontrolled resource consumption in braces",
+          "url": "https://github.com/advisories/GHSA-grv7-fg5c-xmjg",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-1050"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<3.0.3"
+        }
+      ],
+      "effects": [
+        "chokidar",
+        "micromatch"
+      ],
+      "range": "<3.0.3",
+      "nodes": [
+        "node_modules/globby/node_modules/braces",
+        "node_modules/sane/node_modules/braces",
+        "node_modules/watchpack-chokidar2/node_modules/braces",
+        "node_modules/webpack-dev-server/node_modules/braces",
+        "node_modules/webpack/node_modules/braces"
+      ],
+      "fixAvailable": false
+    },
+    "browserify-sign": {
+      "name": "browserify-sign",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "elliptic"
+      ],
+      "effects": [
+        "crypto-browserify"
+      ],
+      "range": ">=2.4.0",
+      "nodes": [
+        "node_modules/browserify-sign"
+      ],
+      "fixAvailable": false
+    },
+    "chokidar": {
+      "name": "chokidar",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "anymatch",
+        "braces",
+        "readdirp"
+      ],
+      "effects": [
+        "watchpack-chokidar2",
+        "webpack-dev-server"
+      ],
+      "range": "1.3.0 - 2.1.8",
+      "nodes": [
+        "node_modules/watchpack-chokidar2/node_modules/chokidar",
+        "node_modules/webpack-dev-server/node_modules/chokidar"
+      ],
+      "fixAvailable": false
+    },
+    "compression": {
+      "name": "compression",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241221,
+          "name": "compression",
+          "dependency": "compression",
+          "title": "compression vulnerable to Denial of Service via memory leak on premature response close",
+          "url": "https://github.com/advisories/GHSA-vc2v-76pw-4v95",
+          "severity": "high",
+          "cwe": [
+            "CWE-401",
+            "CWE-459"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.8.2"
+        }
+      ],
+      "effects": [],
+      "range": "<1.8.2",
+      "nodes": [
+        "node_modules/compression"
+      ],
+      "fixAvailable": true
+    },
+    "copy-webpack-plugin": {
+      "name": "copy-webpack-plugin",
+      "severity": "high",
+      "isDirect": true,
+      "via": [
+        "serialize-javascript",
+        "webpack-log"
+      ],
+      "effects": [],
+      "range": "4.3.0 - 13.0.1",
+      "nodes": [
+        "node_modules/copy-webpack-plugin"
+      ],
+      "fixAvailable": {
+        "name": "copy-webpack-plugin",
+        "version": "14.0.0",
+        "isSemVerMajor": true
+      }
+    },
+    "create-ecdh": {
+      "name": "create-ecdh",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "elliptic"
+      ],
+      "effects": [
+        "crypto-browserify"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/create-ecdh"
+      ],
+      "fixAvailable": false
+    },
+    "crypto-browserify": {
+      "name": "crypto-browserify",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "browserify-sign",
+        "create-ecdh"
+      ],
+      "effects": [
+        "node-libs-browser"
+      ],
+      "range": ">=3.4.0",
+      "nodes": [
+        "node_modules/crypto-browserify"
+      ],
+      "fixAvailable": false
+    },
+    "css-declaration-sorter": {
+      "name": "css-declaration-sorter",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=5.1.2",
+      "nodes": [
+        "node_modules/css-declaration-sorter"
+      ],
+      "fixAvailable": true
+    },
+    "css-loader": {
+      "name": "css-loader",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "icss-utils",
+        "postcss",
+        "postcss-modules-extract-imports",
+        "postcss-modules-local-by-default",
+        "postcss-modules-scope",
+        "postcss-modules-values"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "0.15.0 - 4.3.0",
+      "nodes": [
+        "node_modules/css-loader"
+      ],
+      "fixAvailable": false
+    },
+    "css-select": {
+      "name": "css-select",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "nth-check"
+      ],
+      "effects": [
+        "svgo"
+      ],
+      "range": "<=3.1.0",
+      "nodes": [
+        "node_modules/svgo/node_modules/css-select"
+      ],
+      "fixAvailable": true
+    },
+    "cssnano": {
+      "name": "cssnano",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "cssnano-preset-default",
+        "postcss"
+      ],
+      "effects": [
+        "@intervolga/optimize-cssnano-plugin",
+        "@vue/cli-service"
+      ],
+      "range": "<=4.1.11",
+      "nodes": [
+        "node_modules/cssnano"
+      ],
+      "fixAvailable": false
+    },
+    "cssnano-preset-default": {
+      "name": "cssnano-preset-default",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "css-declaration-sorter",
+        "cssnano-util-raw-cache",
+        "postcss",
+        "postcss-calc",
+        "postcss-colormin",
+        "postcss-convert-values",
+        "postcss-discard-comments",
+        "postcss-discard-duplicates",
+        "postcss-discard-empty",
+        "postcss-discard-overridden",
+        "postcss-merge-longhand",
+        "postcss-merge-rules",
+        "postcss-minify-font-values",
+        "postcss-minify-gradients",
+        "postcss-minify-params",
+        "postcss-minify-selectors",
+        "postcss-normalize-charset",
+        "postcss-normalize-display-values",
+        "postcss-normalize-positions",
+        "postcss-normalize-repeat-style",
+        "postcss-normalize-string",
+        "postcss-normalize-timing-functions",
+        "postcss-normalize-unicode",
+        "postcss-normalize-url",
+        "postcss-normalize-whitespace",
+        "postcss-ordered-values",
+        "postcss-reduce-initial",
+        "postcss-reduce-transforms",
+        "postcss-svgo",
+        "postcss-unique-selectors"
+      ],
+      "effects": [
+        "cssnano"
+      ],
+      "range": "<=4.0.8",
+      "nodes": [
+        "node_modules/cssnano-preset-default"
+      ],
+      "fixAvailable": false
+    },
+    "cssnano-util-raw-cache": {
+      "name": "cssnano-util-raw-cache",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/cssnano-util-raw-cache"
+      ],
+      "fixAvailable": true
+    },
+    "decode-uri-component": {
+      "name": "decode-uri-component",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1147955,
+          "name": "decode-uri-component",
+          "dependency": "decode-uri-component",
+          "title": "decode-uri-component: Denial of service via exponential decoding of malformed percent-encoded input",
+          "url": "https://github.com/advisories/GHSA-vcc3-ghjq-m6fr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-405",
+            "CWE-407",
+            "CWE-1176"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=0.4.2"
+        },
+        {
+          "source": 1243857,
+          "name": "decode-uri-component",
+          "dependency": "decode-uri-component",
+          "title": "decode-uri-component vulnerable to denial of service via quadratic replacement of percent-encoded runs",
+          "url": "https://github.com/advisories/GHSA-qr28-fpjm-wq7f",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=0.5.0"
+        }
+      ],
+      "effects": [
+        "source-map-resolve"
+      ],
+      "range": "<=0.5.0",
+      "nodes": [
+        "node_modules/decode-uri-component"
+      ],
+      "fixAvailable": true
+    },
+    "deepmerge": {
+      "name": "deepmerge",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1243505,
+          "name": "deepmerge",
+          "dependency": "deepmerge",
+          "title": "deepmerge mergeObject() allows prototype poisoning of returned objects",
+          "url": "https://github.com/advisories/GHSA-gcqx-w48m-w2h4",
+          "severity": "low",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=4.2.0 <=4.3.1"
+        }
+      ],
+      "effects": [
+        "jest-config"
+      ],
+      "range": ">=4.2.0",
+      "nodes": [
+        "node_modules/deepmerge"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "editorconfig": {
+      "name": "editorconfig",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "minimatch"
+      ],
+      "effects": [
+        "js-beautify"
+      ],
+      "range": ">=1.0.3",
+      "nodes": [
+        "node_modules/editorconfig"
+      ],
+      "fixAvailable": true
+    },
+    "elliptic": {
+      "name": "elliptic",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1112030,
+          "name": "elliptic",
+          "dependency": "elliptic",
+          "title": "Elliptic Uses a Cryptographic Primitive with a Risky Implementation",
+          "url": "https://github.com/advisories/GHSA-848j-6mx2-7j84",
+          "severity": "low",
+          "cwe": [
+            "CWE-1240"
+          ],
+          "cvss": {
+            "score": 5.6,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L"
+          },
+          "range": "<=6.6.1"
+        }
+      ],
+      "effects": [
+        "browserify-sign",
+        "create-ecdh"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/elliptic"
+      ],
+      "fixAvailable": false
+    },
+    "fast-glob": {
+      "name": "fast-glob",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "micromatch"
+      ],
+      "effects": [
+        "globby"
+      ],
+      "range": "<=2.2.7",
+      "nodes": [
+        "node_modules/globby/node_modules/fast-glob"
+      ],
+      "fixAvailable": true
+    },
+    "follow-redirects": {
+      "name": "follow-redirects",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1242604,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects array-form headers bypass cross-origin credential stripping",
+          "url": "https://github.com/advisories/GHSA-q3jh-wrc6-jgq8",
+          "severity": "high",
+          "cwe": [
+            "CWE-200",
+            "CWE-212"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.16.0 <1.16.1"
+        },
+        {
+          "source": 1242605,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects sensitiveHeaders regex escaping can expose credential headers",
+          "url": "https://github.com/advisories/GHSA-8r9p-f939-6h3c",
+          "severity": "high",
+          "cwe": [
+            "CWE-185",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.16.0 <1.16.1"
+        },
+        {
+          "source": 1244003,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects: Cross-realm sensitiveHeaders arrays are discarded and custom credentials can follow redirects",
+          "url": "https://github.com/advisories/GHSA-mrwp-f3q8-3g9p",
+          "severity": "high",
+          "cwe": [
+            "CWE-201"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": ">=1.16.0 <=1.16.1"
+        }
+      ],
+      "effects": [],
+      "range": "1.16.0 - 1.16.1",
+      "nodes": [
+        "node_modules/follow-redirects"
+      ],
+      "fixAvailable": true
+    },
+    "form-data": {
+      "name": "form-data",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1109540,
+          "name": "form-data",
+          "dependency": "form-data",
+          "title": "form-data uses unsafe random function in form-data for choosing boundary",
+          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
+          "severity": "critical",
+          "cwe": [
+            "CWE-330"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<2.5.4"
+        },
+        {
+          "source": 1120745,
+          "name": "form-data",
+          "dependency": "form-data",
+          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
+          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
+          "severity": "high",
+          "cwe": [
+            "CWE-93"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<2.5.6"
+        }
+      ],
+      "effects": [
+        "request"
+      ],
+      "range": "<=2.5.5",
+      "nodes": [
+        "node_modules/request/node_modules/form-data"
+      ],
+      "fixAvailable": false
+    },
+    "glob": {
+      "name": "glob",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1244013,
+          "name": "glob",
+          "dependency": "glob",
+          "title": "Glob: AbortSignal cancellation bypass allows post-timeout filesystem traversal",
+          "url": "https://github.com/advisories/GHSA-3g3m-2fjr-6pw4",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=9.0.0 <=14.0.1"
+        },
+        "minimatch"
+      ],
+      "effects": [
+        "js-beautify"
+      ],
+      "range": "9.0.0 - 14.0.1",
+      "nodes": [
+        "node_modules/js-beautify/node_modules/glob"
+      ],
+      "fixAvailable": true
+    },
+    "globby": {
+      "name": "globby",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "fast-glob"
+      ],
+      "effects": [],
+      "range": "8.0.0 - 9.2.0",
+      "nodes": [
+        "node_modules/globby"
+      ],
+      "fixAvailable": true
+    },
+    "html-minifier": {
+      "name": "html-minifier",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1105440,
+          "name": "html-minifier",
+          "dependency": "html-minifier",
+          "title": "kangax html-minifier REDoS vulnerability",
+          "url": "https://github.com/advisories/GHSA-pfq8-rq6v-vf5m",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=4.0.0"
+        }
+      ],
+      "effects": [
+        "html-webpack-plugin"
+      ],
+      "range": "<=4.0.0",
+      "nodes": [
+        "node_modules/html-minifier"
+      ],
+      "fixAvailable": false
+    },
+    "html-webpack-plugin": {
+      "name": "html-webpack-plugin",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        "html-minifier",
+        "loader-utils"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "1.4.0 - 4.0.0-beta.14",
+      "nodes": [
+        "node_modules/html-webpack-plugin"
+      ],
+      "fixAvailable": false
+    },
+    "http-proxy-agent": {
+      "name": "http-proxy-agent",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "@tootallnate/once"
+      ],
+      "effects": [
+        "jsdom"
+      ],
+      "range": "4.0.1",
+      "nodes": [
+        "node_modules/http-proxy-agent"
+      ],
+      "fixAvailable": true
+    },
+    "http-proxy-middleware": {
+      "name": "http-proxy-middleware",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1100223,
+          "name": "http-proxy-middleware",
+          "dependency": "http-proxy-middleware",
+          "title": "Denial of service in http-proxy-middleware",
+          "url": "https://github.com/advisories/GHSA-c7qv-q95q-8v27",
+          "severity": "high",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<2.0.7"
+        },
+        {
+          "source": 1104105,
+          "name": "http-proxy-middleware",
+          "dependency": "http-proxy-middleware",
+          "title": "http-proxy-middleware allows fixRequestBody to proceed even if bodyParser has failed",
+          "url": "https://github.com/advisories/GHSA-9gqv-wp59-fq42",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-754"
+          ],
+          "cvss": {
+            "score": 4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N"
+          },
+          "range": ">=1.3.0 <2.0.9"
+        },
+        {
+          "source": 1104106,
+          "name": "http-proxy-middleware",
+          "dependency": "http-proxy-middleware",
+          "title": "http-proxy-middleware can call writeBody twice because \"else if\" is not used",
+          "url": "https://github.com/advisories/GHSA-4www-5p9h-95mh",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-670"
+          ],
+          "cvss": {
+            "score": 4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L"
+          },
+          "range": ">=1.3.0 <2.0.8"
+        },
+        {
+          "source": 1121360,
+          "name": "http-proxy-middleware",
+          "dependency": "http-proxy-middleware",
+          "title": "http-proxy-middleware `router` host+path substring matching allows Host-header-driven backend routing bypass",
+          "url": "https://github.com/advisories/GHSA-64mm-vxmg-q3vj",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-20",
+            "CWE-187"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=0.16.0 <2.0.10"
+        },
+        "micromatch"
+      ],
+      "effects": [
+        "@types/webpack-dev-server",
+        "webpack-dev-server"
+      ],
+      "range": "<=2.0.10-beta.0",
+      "nodes": [
+        "node_modules/http-proxy-middleware",
+        "node_modules/webpack-dev-server/node_modules/http-proxy-middleware"
+      ],
+      "fixAvailable": false
+    },
+    "icss-utils": {
+      "name": "icss-utils",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [
+        "css-loader",
+        "postcss-modules-local-by-default",
+        "postcss-modules-values"
+      ],
+      "range": "<=4.1.1",
+      "nodes": [
+        "node_modules/icss-utils"
+      ],
+      "fixAvailable": false
+    },
+    "ip": {
+      "name": "ip",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1101851,
+          "name": "ip",
+          "dependency": "ip",
+          "title": "ip SSRF improper categorization in isPublic",
+          "url": "https://github.com/advisories/GHSA-2p57-rm9w-gvfp",
+          "severity": "high",
+          "cwe": [
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 8.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": "<=2.0.1"
+        }
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/ip"
+      ],
+      "fixAvailable": false
+    },
+    "jest": {
+      "name": "jest",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        "@jest/core",
+        "jest-cli"
+      ],
+      "effects": [],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/jest"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-cli": {
+      "name": "jest-cli",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "@jest/core",
+        "jest-config"
+      ],
+      "effects": [],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/jest-cli"
+      ],
+      "fixAvailable": true
+    },
+    "jest-config": {
+      "name": "jest-config",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@jest/test-sequencer",
+        "babel-jest",
+        "deepmerge",
+        "jest-jasmine2"
+      ],
+      "effects": [
+        "@jest/core",
+        "jest-cli",
+        "jest-runner",
+        "jest-runtime"
+      ],
+      "range": ">=24.2.0-alpha.0",
+      "nodes": [
+        "node_modules/jest-config"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-haste-map": {
+      "name": "jest-haste-map",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "sane"
+      ],
+      "effects": [
+        "@jest/core",
+        "@jest/reporters",
+        "@jest/test-sequencer",
+        "@jest/transform",
+        "jest-runner",
+        "jest-runtime",
+        "jest-snapshot"
+      ],
+      "range": "24.0.0-alpha.0 - 26.6.2",
+      "nodes": [
+        "node_modules/jest-haste-map"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-jasmine2": {
+      "name": "jest-jasmine2",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-runtime",
+        "jest-snapshot"
+      ],
+      "effects": [],
+      "range": "25.2.0-alpha.86 - 26.6.3",
+      "nodes": [
+        "node_modules/jest-jasmine2"
+      ],
+      "fixAvailable": true
+    },
+    "jest-resolve-dependencies": {
+      "name": "jest-resolve-dependencies",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-snapshot"
+      ],
+      "effects": [],
+      "range": "26.1.0 - 26.6.3",
+      "nodes": [
+        "node_modules/jest-resolve-dependencies"
+      ],
+      "fixAvailable": true
+    },
+    "jest-runner": {
+      "name": "jest-runner",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-config",
+        "jest-haste-map",
+        "jest-runtime"
+      ],
+      "effects": [
+        "@jest/core",
+        "@jest/test-sequencer"
+      ],
+      "range": "24.0.0-alpha.0 - 27.0.1",
+      "nodes": [
+        "node_modules/jest-runner"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-runtime": {
+      "name": "jest-runtime",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@jest/transform",
+        "jest-config",
+        "jest-haste-map",
+        "jest-snapshot"
+      ],
+      "effects": [
+        "jest-jasmine2",
+        "jest-runner"
+      ],
+      "range": "24.0.0-alpha.0 - 26.6.3",
+      "nodes": [
+        "node_modules/jest-runtime"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-snapshot": {
+      "name": "jest-snapshot",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "jest-haste-map"
+      ],
+      "effects": [
+        "@jest/core",
+        "jest-jasmine2",
+        "jest-resolve-dependencies",
+        "jest-runtime"
+      ],
+      "range": "24.2.0-alpha.0 - 24.5.0 || 26.1.0 - 26.6.2",
+      "nodes": [
+        "node_modules/jest-snapshot"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "js-beautify": {
+      "name": "js-beautify",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "editorconfig",
+        "glob"
+      ],
+      "effects": [],
+      "range": ">=1.14.9",
+      "nodes": [
+        "node_modules/js-beautify"
+      ],
+      "fixAvailable": true
+    },
+    "js-yaml": {
+      "name": "js-yaml",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1138114,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported",
+          "url": "https://github.com/advisories/GHSA-5p4m-2wfm-xmqj",
+          "severity": "high",
+          "cwe": [
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=3.0.0 <3.15.1"
+        },
+        {
+          "source": 1193726,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources",
+          "url": "https://github.com/advisories/GHSA-2883-xcg3-v3hh",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=3.0.0 <3.15.2"
+        }
+      ],
+      "effects": [],
+      "range": "3.0.0 - 3.15.1",
+      "nodes": [
+        "node_modules/js-yaml"
+      ],
+      "fixAvailable": true
+    },
+    "jsdom": {
+      "name": "jsdom",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "http-proxy-agent"
+      ],
+      "effects": [],
+      "range": "16.6.0 - 17.0.0",
+      "nodes": [
+        "node_modules/jsdom"
+      ],
+      "fixAvailable": true
+    },
+    "json5": {
+      "name": "json5",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1096543,
+          "name": "json5",
+          "dependency": "json5",
+          "title": "Prototype Pollution in JSON5 via Parse Method",
+          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
+          "severity": "high",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 7.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
+          },
+          "range": "<1.0.2"
+        }
+      ],
+      "effects": [
+        "loader-utils"
+      ],
+      "range": "<1.0.2",
+      "nodes": [
+        "node_modules/html-webpack-plugin/node_modules/json5"
+      ],
+      "fixAvailable": false
+    },
+    "launch-editor": {
+      "name": "launch-editor",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1242627,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: escapeCmdArgs() omits % escaping on Windows",
+          "url": "https://github.com/advisories/GHSA-698v-4r3x-3vcv",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-78"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        },
+        {
+          "source": 1242656,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: Editor CLI flag misinterpretation causing arbitrary command execution for some editors",
+          "url": "https://github.com/advisories/GHSA-r825-w8mm-5pxw",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-88"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        },
+        {
+          "source": 1242663,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: `fs.existsSync()` existence check can be bypassed on Windows",
+          "url": "https://github.com/advisories/GHSA-587h-7wmj-h5pm",
+          "severity": "high",
+          "cwe": [
+            "CWE-77"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        }
+      ],
+      "effects": [],
+      "range": "<=2.14.1",
+      "nodes": [
+        "node_modules/launch-editor"
+      ],
+      "fixAvailable": true
+    },
+    "loader-utils": {
+      "name": "loader-utils",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1094088,
+          "name": "loader-utils",
+          "dependency": "loader-utils",
+          "title": "Prototype pollution in webpack loader-utils",
+          "url": "https://github.com/advisories/GHSA-76p3-8jx3-jpfq",
+          "severity": "critical",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 9.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": "<1.4.1"
+        },
+        "json5"
+      ],
+      "effects": [
+        "html-webpack-plugin"
+      ],
+      "range": "<=1.4.0",
+      "nodes": [
+        "node_modules/html-webpack-plugin/node_modules/loader-utils"
+      ],
+      "fixAvailable": false
+    },
+    "micromatch": {
+      "name": "micromatch",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1098681,
+          "name": "micromatch",
+          "dependency": "micromatch",
+          "title": "Regular Expression Denial of Service (ReDoS) in micromatch",
+          "url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<4.0.8"
+        },
+        "braces"
+      ],
+      "effects": [
+        "anymatch",
+        "fast-glob",
+        "http-proxy-middleware",
+        "readdirp",
+        "sane",
+        "webpack"
+      ],
+      "range": "<=4.0.7",
+      "nodes": [
+        "node_modules/globby/node_modules/micromatch",
+        "node_modules/sane/node_modules/micromatch",
+        "node_modules/watchpack-chokidar2/node_modules/micromatch",
+        "node_modules/webpack-dev-server/node_modules/micromatch",
+        "node_modules/webpack/node_modules/micromatch"
+      ],
+      "fixAvailable": false
+    },
+    "minimatch": {
+      "name": "minimatch",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1244623,
+          "name": "minimatch",
+          "dependency": "minimatch",
+          "title": "minimatch has potential denial of service via globparts amplification",
+          "url": "https://github.com/advisories/GHSA-g3hv-75wg-m249",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-405"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=7.0.0 <11.0.1"
+        }
+      ],
+      "effects": [
+        "editorconfig",
+        "glob"
+      ],
+      "range": "7.0.0 - 11.0.0",
+      "nodes": [
+        "node_modules/editorconfig/node_modules/minimatch",
+        "node_modules/js-beautify/node_modules/minimatch"
+      ],
+      "fixAvailable": true
+    },
+    "node-forge": {
+      "name": "node-forge",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1088227,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Prototype Pollution in node-forge debug API.",
+          "url": "https://github.com/advisories/GHSA-5rrq-pxf6-6jx5",
+          "severity": "low",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<1.0.0"
+        },
+        {
+          "source": 1088229,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "URL parsing in node-forge could lead to undesired behavior.",
+          "url": "https://github.com/advisories/GHSA-gf8q-jrpm-jvxq",
+          "severity": "low",
+          "cwe": [
+            "CWE-601"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<1.0.0"
+        },
+        {
+          "source": 1088746,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Improper Verification of Cryptographic Signature in `node-forge`",
+          "url": "https://github.com/advisories/GHSA-2r2c-g63r-vccr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<1.3.0"
+        },
+        {
+          "source": 1093719,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Open Redirect in node-forge",
+          "url": "https://github.com/advisories/GHSA-8fr3-hfg3-gpgp",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-601"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": "<1.0.0"
+        },
+        {
+          "source": 1102321,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Improper Verification of Cryptographic Signature in node-forge",
+          "url": "https://github.com/advisories/GHSA-x4jg-mjrx-434g",
+          "severity": "high",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<1.3.0"
+        },
+        {
+          "source": 1102322,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Improper Verification of Cryptographic Signature in node-forge",
+          "url": "https://github.com/advisories/GHSA-cfm4-qjh2-4765",
+          "severity": "high",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<1.3.0"
+        },
+        {
+          "source": 1110996,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "node-forge has ASN.1 Unbounded Recursion",
+          "url": "https://github.com/advisories/GHSA-554w-wpv2-vw27",
+          "severity": "high",
+          "cwe": [
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<1.3.2"
+        },
+        {
+          "source": 1110998,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "node-forge has an Interpretation Conflict vulnerability via its ASN.1 Validator Desynchronization",
+          "url": "https://github.com/advisories/GHSA-5gfm-wpxj-wjgq",
+          "severity": "high",
+          "cwe": [
+            "CWE-436"
+          ],
+          "cvss": {
+            "score": 8.6,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N"
+          },
+          "range": "<1.3.2"
+        },
+        {
+          "source": 1111068,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "node-forge is vulnerable to ASN.1 OID Integer Truncation",
+          "url": "https://github.com/advisories/GHSA-65ch-62r8-g69g",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-190"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<1.3.2"
+        },
+        {
+          "source": 1115545,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge has a basicConstraints bypass in its certificate chain verification (RFC 5280 violation)",
+          "url": "https://github.com/advisories/GHSA-2328-f5f3-gj25",
+          "severity": "high",
+          "cwe": [
+            "CWE-295"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": "<=1.3.3"
+        },
+        {
+          "source": 1115546,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge has signature forgery in Ed25519 due to missing S > L check",
+          "url": "https://github.com/advisories/GHSA-q67f-28xg-22rw",
+          "severity": "high",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<1.4.0"
+        },
+        {
+          "source": 1115548,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input",
+          "url": "https://github.com/advisories/GHSA-5m6q-g25r-mvwx",
+          "severity": "high",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.4.0"
+        },
+        {
+          "source": 1115612,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge has signature forgery in RSA-PKCS due to ASN.1 extra field  ",
+          "url": "https://github.com/advisories/GHSA-ppp5-5v6c-4jwp",
+          "severity": "high",
+          "cwe": [
+            "CWE-20",
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<1.4.0"
+        },
+        {
+          "source": 1240912,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "node-forge RSA PKCS#1 v1.5 signature verification accepts extra nested DigestAlgorithm elements",
+          "url": "https://github.com/advisories/GHSA-86w9-cpqp-85rv",
+          "severity": "high",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244014,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: ASN.1 OID first arc truncation in asn1.oidToDer",
+          "url": "https://github.com/advisories/GHSA-4642-5mcj-2rqw",
+          "severity": "low",
+          "cwe": [
+            "CWE-190"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244015,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Prototype Pollution in forge.http cookie handling via a malicious Set-Cookie",
+          "url": "https://github.com/advisories/GHSA-6wvx-3r32-xmcg",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 4.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244016,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: TLS client crash when the server sends no certificate",
+          "url": "https://github.com/advisories/GHSA-525v-9gp9-w22h",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-476"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244017,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Regular expression denial of service in PEM decoding (pem.decode)",
+          "url": "https://github.com/advisories/GHSA-7wch-p9px-956x",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244018,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of Service via infinite loop in BigInteger.modInverse() with negative input (incomplete fix of CVE-2026-33891)",
+          "url": "https://github.com/advisories/GHSA-h6cr-wjv9-3cpp",
+          "severity": "low",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 2.9,
+            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244019,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: verifyCertificateChain() removes trusted CA certificates with the same subject from the CA store",
+          "url": "https://github.com/advisories/GHSA-4487-j8r4-4g2f",
+          "severity": "low",
+          "cwe": [
+            "CWE-295",
+            "CWE-471"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244020,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: AES-GCM authentication bypass via unvalidated tagLength option",
+          "url": "https://github.com/advisories/GHSA-5cwg-6vw7-rj6p",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-354",
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244021,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: PKCS#12 MAC forgery and constant-key PBE via zero iteration count",
+          "url": "https://github.com/advisories/GHSA-jc66-7q78-782g",
+          "severity": "high",
+          "cwe": [
+            "CWE-354",
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244022,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of service in TLS record processing via a record interleaved with a fragmented handshake message",
+          "url": "https://github.com/advisories/GHSA-8hrf-8g6f-7xwp",
+          "severity": "high",
+          "cwe": [
+            "CWE-248",
+            "CWE-476"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244023,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of service in TLS record processing via call stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-hqq3-7jhf-c5jx",
+          "severity": "high",
+          "cwe": [
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244024,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: X.509 basicConstraints bypass in verifyCertificateChain() via deprecated extension OIDs 2.5.29.10 and 2.5.29.13",
+          "url": "https://github.com/advisories/GHSA-5x38-2vff-x55p",
+          "severity": "high",
+          "cwe": [
+            "CWE-295",
+            "CWE-436"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        }
+      ],
+      "effects": [
+        "selfsigned"
+      ],
+      "range": "<=1.4.0",
+      "nodes": [
+        "node_modules/node-forge"
+      ],
+      "fixAvailable": false
+    },
+    "node-libs-browser": {
+      "name": "node-libs-browser",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "crypto-browserify"
+      ],
+      "effects": [
+        "webpack"
+      ],
+      "range": "0.4.2 || >=1.0.0",
+      "nodes": [
+        "node_modules/node-libs-browser"
+      ],
+      "fixAvailable": false
+    },
+    "node-notifier": {
+      "name": "node-notifier",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "uuid"
+      ],
+      "effects": [
+        "@jest/reporters"
+      ],
+      "range": "7.0.0 - 10.0.1",
+      "nodes": [
+        "node_modules/node-notifier"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "nth-check": {
+      "name": "nth-check",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1095141,
+          "name": "nth-check",
+          "dependency": "nth-check",
+          "title": "Inefficient Regular Expression Complexity in nth-check",
+          "url": "https://github.com/advisories/GHSA-rp65-9cf3-cjxr",
+          "severity": "high",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<2.0.1"
+        }
+      ],
+      "effects": [
+        "css-select"
+      ],
+      "range": "<2.0.1",
+      "nodes": [
+        "node_modules/svgo/node_modules/nth-check"
+      ],
+      "fixAvailable": true
+    },
+    "pbkdf2": {
+      "name": "pbkdf2",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241333,
+          "name": "pbkdf2",
+          "dependency": "pbkdf2",
+          "title": "pbkdf2 rehashes long passwords on every iteration, enabling denial of service",
+          "url": "https://github.com/advisories/GHSA-477h-4r7f-fvrx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=3.1.6"
+        }
+      ],
+      "effects": [],
+      "range": "<=3.1.6",
+      "nodes": [
+        "node_modules/pbkdf2"
+      ],
+      "fixAvailable": true
+    },
+    "postcss": {
+      "name": "postcss",
+      "severity": "high",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1109574,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS line return parsing error",
+          "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-74",
+            "CWE-144"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<8.4.31"
+        },
+        {
+          "source": 1117015,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
+          "url": "https://github.com/advisories/GHSA-qx2v-qp2m-jg93",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": "<8.5.10"
+        },
+        {
+          "source": 1124252,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments",
+          "url": "https://github.com/advisories/GHSA-6g55-p6wh-862q",
+          "severity": "high",
+          "cwe": [
+            "CWE-22",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=8.5.11"
+        },
+        {
+          "source": 1130709,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappingURL reads arbitrary .map files when `from` is unset",
+          "url": "https://github.com/advisories/GHSA-fxqj-rqcc-2cmp",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-22",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=8.5.22"
+        },
+        {
+          "source": 1139510,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure",
+          "url": "https://github.com/advisories/GHSA-r28c-9q8g-f849",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=8.5.17"
+        }
+      ],
+      "effects": [
+        "@intervolga/optimize-cssnano-plugin",
+        "@vue/compiler-sfc",
+        "@vue/component-compiler-utils",
+        "autoprefixer",
+        "css-declaration-sorter",
+        "css-loader",
+        "cssnano",
+        "cssnano-preset-default",
+        "cssnano-util-raw-cache",
+        "icss-utils",
+        "postcss-calc",
+        "postcss-colormin",
+        "postcss-convert-values",
+        "postcss-discard-comments",
+        "postcss-discard-duplicates",
+        "postcss-discard-empty",
+        "postcss-discard-overridden",
+        "postcss-import",
+        "postcss-loader",
+        "postcss-merge-longhand",
+        "postcss-merge-rules",
+        "postcss-minify-font-values",
+        "postcss-minify-gradients",
+        "postcss-minify-params",
+        "postcss-minify-selectors",
+        "postcss-modules-extract-imports",
+        "postcss-modules-local-by-default",
+        "postcss-modules-scope",
+        "postcss-modules-values",
+        "postcss-normalize-charset",
+        "postcss-normalize-display-values",
+        "postcss-normalize-positions",
+        "postcss-normalize-repeat-style",
+        "postcss-normalize-string",
+        "postcss-normalize-timing-functions",
+        "postcss-normalize-unicode",
+        "postcss-normalize-url",
+        "postcss-normalize-whitespace",
+        "postcss-ordered-values",
+        "postcss-reduce-initial",
+        "postcss-reduce-transforms",
+        "postcss-svgo",
+        "postcss-unique-selectors",
+        "stylehacks"
+      ],
+      "range": "<=8.5.22",
+      "nodes": [
+        "node_modules/postcss"
+      ],
+      "fixAvailable": false
+    },
+    "postcss-calc": {
+      "name": "postcss-calc",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "4.1.0 - 7.0.5",
+      "nodes": [
+        "node_modules/postcss-calc"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-colormin": {
+      "name": "postcss-colormin",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.3",
+      "nodes": [
+        "node_modules/postcss-colormin"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-convert-values": {
+      "name": "postcss-convert-values",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-convert-values"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-discard-comments": {
+      "name": "postcss-discard-comments",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-discard-comments"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-discard-duplicates": {
+      "name": "postcss-discard-duplicates",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "1.1.0 - 4.0.2",
+      "nodes": [
+        "node_modules/postcss-discard-duplicates"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-discard-empty": {
+      "name": "postcss-discard-empty",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "1.1.0 - 4.0.1",
+      "nodes": [
+        "node_modules/postcss-discard-empty"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-discard-overridden": {
+      "name": "postcss-discard-overridden",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-discard-overridden"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-import": {
+      "name": "postcss-import",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [
+        "@dcloudio/vue-cli-plugin-uni"
+      ],
+      "range": "<=12.0.1",
+      "nodes": [
+        "node_modules/postcss-import"
+      ],
+      "fixAvailable": false
+    },
+    "postcss-loader": {
+      "name": "postcss-loader",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-loader"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-merge-longhand": {
+      "name": "postcss-merge-longhand",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "stylehacks"
+      ],
+      "effects": [],
+      "range": "<=4.0.11",
+      "nodes": [
+        "node_modules/postcss-merge-longhand"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-merge-rules": {
+      "name": "postcss-merge-rules",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "<=4.0.3",
+      "nodes": [
+        "node_modules/postcss-merge-rules"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-minify-font-values": {
+      "name": "postcss-minify-font-values",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-minify-font-values"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-minify-gradients": {
+      "name": "postcss-minify-gradients",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-minify-gradients"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-minify-params": {
+      "name": "postcss-minify-params",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-minify-params"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-minify-selectors": {
+      "name": "postcss-minify-selectors",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "<=5.0.0",
+      "nodes": [
+        "node_modules/postcss-minify-selectors"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-modules-extract-imports": {
+      "name": "postcss-modules-extract-imports",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=2.0.0",
+      "nodes": [
+        "node_modules/postcss-modules-extract-imports"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-modules-local-by-default": {
+      "name": "postcss-modules-local-by-default",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "icss-utils",
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "<=4.0.0-rc.4",
+      "nodes": [
+        "node_modules/postcss-modules-local-by-default"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-modules-scope": {
+      "name": "postcss-modules-scope",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [],
+      "range": "<=2.2.0",
+      "nodes": [
+        "node_modules/postcss-modules-scope"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-modules-values": {
+      "name": "postcss-modules-values",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "icss-utils",
+        "postcss"
+      ],
+      "effects": [
+        "css-loader"
+      ],
+      "range": "<=4.0.0-rc.5",
+      "nodes": [
+        "node_modules/postcss-modules-values"
+      ],
+      "fixAvailable": false
+    },
+    "postcss-normalize-charset": {
+      "name": "postcss-normalize-charset",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-normalize-charset"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-display-values": {
+      "name": "postcss-normalize-display-values",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-display-values"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-positions": {
+      "name": "postcss-normalize-positions",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-positions"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-repeat-style": {
+      "name": "postcss-normalize-repeat-style",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-repeat-style"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-string": {
+      "name": "postcss-normalize-string",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-string"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-timing-functions": {
+      "name": "postcss-normalize-timing-functions",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-timing-functions"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-unicode": {
+      "name": "postcss-normalize-unicode",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-normalize-unicode"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-url": {
+      "name": "postcss-normalize-url",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "1.1.0 - 4.0.1",
+      "nodes": [
+        "node_modules/postcss-normalize-url"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-normalize-whitespace": {
+      "name": "postcss-normalize-whitespace",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-normalize-whitespace"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-ordered-values": {
+      "name": "postcss-ordered-values",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.1.2",
+      "nodes": [
+        "node_modules/postcss-ordered-values"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-reduce-initial": {
+      "name": "postcss-reduce-initial",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.3",
+      "nodes": [
+        "node_modules/postcss-reduce-initial"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-reduce-transforms": {
+      "name": "postcss-reduce-transforms",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.2",
+      "nodes": [
+        "node_modules/postcss-reduce-transforms"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-selector-parser": {
+      "name": "postcss-selector-parser",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1243379,
+          "name": "postcss-selector-parser",
+          "dependency": "postcss-selector-parser",
+          "title": "PostCSS: Quadratic complexity in flat selector parsing allows CPU exhaustion",
+          "url": "https://github.com/advisories/GHSA-rj75-hqrm-r3gf",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<6.1.5"
+        }
+      ],
+      "effects": [
+        "@dcloudio/vue-cli-plugin-uni",
+        "@vue/component-compiler-utils",
+        "postcss-calc",
+        "postcss-merge-rules",
+        "postcss-minify-selectors",
+        "postcss-modules-local-by-default",
+        "postcss-modules-scope"
+      ],
+      "range": "<6.1.5",
+      "nodes": [
+        "node_modules/postcss-selector-parser"
+      ],
+      "fixAvailable": false
+    },
+    "postcss-svgo": {
+      "name": "postcss-svgo",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "svgo"
+      ],
+      "effects": [],
+      "range": "<=5.0.0-rc.2",
+      "nodes": [
+        "node_modules/postcss-svgo"
+      ],
+      "fixAvailable": true
+    },
+    "postcss-unique-selectors": {
+      "name": "postcss-unique-selectors",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [],
+      "range": "<=4.0.1",
+      "nodes": [
+        "node_modules/postcss-unique-selectors"
+      ],
+      "fixAvailable": true
+    },
+    "proxy-addr": {
+      "name": "proxy-addr",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241210,
+          "name": "proxy-addr",
+          "dependency": "proxy-addr",
+          "title": "proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet",
+          "url": "https://github.com/advisories/GHSA-jqcg-44mw-7w3h",
+          "severity": "critical",
+          "cwe": [
+            "CWE-290",
+            "CWE-348",
+            "CWE-697"
+          ],
+          "cvss": {
+            "score": 9.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": ">=1.1.0 <2.0.8"
+        }
+      ],
+      "effects": [],
+      "range": "1.1.0 - 2.0.7",
+      "nodes": [
+        "node_modules/proxy-addr"
+      ],
+      "fixAvailable": true
+    },
+    "qs": {
+      "name": "qs",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1113719,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
+          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-20"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<6.14.1"
+        },
+        {
+          "source": 1158506,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs array-limit bypass via bracket-key comma parsing",
+          "url": "https://github.com/advisories/GHSA-x5fp-wj9c-mxmx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.14.2 <=6.15.3"
+        },
+        {
+          "source": 1158507,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs: Denial of Service via Attacker Controlled isBuffer",
+          "url": "https://github.com/advisories/GHSA-4mjr-xmp4-gh2g",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-248",
+            "CWE-703"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.2.5 <6.16.0"
+        },
+        {
+          "source": 1243687,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs : qs.stringify with arrayFormat 'comma' throws an uncaught TypeError on array elements carrying a non-callable own toString (DoS)",
+          "url": "https://github.com/advisories/GHSA-6pq8-jhm2-2vcw",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-248",
+            "CWE-704"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.7.0 <=6.16.0"
+        }
+      ],
+      "effects": [
+        "request"
+      ],
+      "range": "<=6.16.0",
+      "nodes": [
+        "node_modules/body-parser/node_modules/qs",
+        "node_modules/express/node_modules/qs",
+        "node_modules/qs",
+        "node_modules/url/node_modules/qs"
+      ],
+      "fixAvailable": false
+    },
+    "readdirp": {
+      "name": "readdirp",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "micromatch"
+      ],
+      "effects": [
+        "chokidar"
+      ],
+      "range": "2.2.0 - 2.2.1",
+      "nodes": [
+        "node_modules/watchpack-chokidar2/node_modules/readdirp",
+        "node_modules/webpack-dev-server/node_modules/readdirp"
+      ],
+      "fixAvailable": false
+    },
+    "request": {
+      "name": "request",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1096727,
+          "name": "request",
+          "dependency": "request",
+          "title": "Server-Side Request Forgery in Request",
+          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": "<=2.88.2"
+        },
+        "form-data",
+        "qs",
+        "tough-cookie",
+        "uuid"
+      ],
+      "effects": [
+        "@vue/cli-shared-utils"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/request"
+      ],
+      "fixAvailable": false
+    },
+    "sane": {
+      "name": "sane",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "anymatch",
+        "micromatch"
+      ],
+      "effects": [
+        "jest-haste-map"
+      ],
+      "range": "1.5.0 - 4.1.0",
+      "nodes": [
+        "node_modules/sane"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "selfsigned": {
+      "name": "selfsigned",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "node-forge"
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": "1.1.1 - 1.10.14",
+      "nodes": [
+        "node_modules/selfsigned"
+      ],
+      "fixAvailable": false
+    },
+    "serialize-javascript": {
+      "name": "serialize-javascript",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1113686,
+          "name": "serialize-javascript",
+          "dependency": "serialize-javascript",
+          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
+          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
+          "severity": "high",
+          "cwe": [
+            "CWE-96"
+          ],
+          "cvss": {
+            "score": 8.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": "<=7.0.2"
+        },
+        {
+          "source": 1243082,
+          "name": "serialize-javascript",
+          "dependency": "serialize-javascript",
+          "title": "Serialize JavaScript: Cross-site scripting (XSS) via unescaped </script at the end of a serialized function body",
+          "url": "https://github.com/advisories/GHSA-m5mm-p8h7-m29v",
+          "severity": "low",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<7.1.3"
+        }
+      ],
+      "effects": [
+        "copy-webpack-plugin",
+        "terser-webpack-plugin"
+      ],
+      "range": "<=7.1.2",
+      "nodes": [
+        "node_modules/serialize-javascript"
+      ],
+      "fixAvailable": false
+    },
+    "shell-quote": {
+      "name": "shell-quote",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241332,
+          "name": "shell-quote",
+          "dependency": "shell-quote",
+          "title": "shell-quote: `quote()` command injection via a line terminator in a token after a `{ comment }` token",
+          "url": "https://github.com/advisories/GHSA-pqg4-j6r4-53mv",
+          "severity": "critical",
+          "cwe": [
+            "CWE-78"
+          ],
+          "cvss": {
+            "score": 8.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=1.8.4 <1.11.0"
+        }
+      ],
+      "effects": [],
+      "range": "1.8.4 - 1.10.0",
+      "nodes": [
+        "node_modules/shell-quote"
+      ],
+      "fixAvailable": true
+    },
+    "sockjs": {
+      "name": "sockjs",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "uuid"
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": ">=0.3.17",
+      "nodes": [
+        "node_modules/sockjs"
+      ],
+      "fixAvailable": false
+    },
+    "source-map-js": {
+      "name": "source-map-js",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241209,
+          "name": "source-map-js",
+          "dependency": "source-map-js",
+          "title": "source-map-js allows event-loop denial of service through indexed source-map section offsets",
+          "url": "https://github.com/advisories/GHSA-68fv-2mgg-jv7q",
+          "severity": "high",
+          "cwe": [
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=1.0.0 <1.2.2"
+        }
+      ],
+      "effects": [],
+      "range": "1.0.0 - 1.2.1",
+      "nodes": [
+        "node_modules/source-map-js"
+      ],
+      "fixAvailable": true
+    },
+    "source-map-resolve": {
+      "name": "source-map-resolve",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "decode-uri-component"
+      ],
+      "effects": [],
+      "range": ">=0.5.1",
+      "nodes": [
+        "node_modules/source-map-resolve"
+      ],
+      "fixAvailable": true
+    },
+    "stylehacks": {
+      "name": "stylehacks",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss",
+        "postcss-selector-parser"
+      ],
+      "effects": [
+        "postcss-merge-longhand"
+      ],
+      "range": "<=4.0.3",
+      "nodes": [
+        "node_modules/stylehacks"
+      ],
+      "fixAvailable": true
+    },
+    "svgo": {
+      "name": "svgo",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1139520,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO removeScripts plugin leaves some executable scripts intact",
+          "url": "https://github.com/advisories/GHSA-2p49-hgcm-8545",
+          "severity": "high",
+          "cwe": [
+            "CWE-79",
+            "CWE-184"
+          ],
+          "cvss": {
+            "score": 8.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.3"
+        },
+        {
+          "source": 1193740,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO: removeScripts incompletely sanitizes executable HTML in SVG foreignObject elements",
+          "url": "https://github.com/advisories/GHSA-4vpr-x523-8j87",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.4"
+        },
+        {
+          "source": 1243426,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO: removeScripts allows executable links through namespace and control-character bypasses",
+          "url": "https://github.com/advisories/GHSA-w27v-7q3p-w38r",
+          "severity": "high",
+          "cwe": [
+            "CWE-79",
+            "CWE-184"
+          ],
+          "cvss": {
+            "score": 8.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.4"
+        },
+        "css-select"
+      ],
+      "effects": [
+        "postcss-svgo"
+      ],
+      "range": "1.0.0 - 2.8.3",
+      "nodes": [
+        "node_modules/svgo"
+      ],
+      "fixAvailable": true
+    },
+    "terser-webpack-plugin": {
+      "name": "terser-webpack-plugin",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "serialize-javascript"
+      ],
+      "effects": [
+        "@vue/cli-service",
+        "webpack"
+      ],
+      "range": "<=5.3.16",
+      "nodes": [
+        "node_modules/terser-webpack-plugin"
+      ],
+      "fixAvailable": false
+    },
+    "tough-cookie": {
+      "name": "tough-cookie",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1097682,
+          "name": "tough-cookie",
+          "dependency": "tough-cookie",
+          "title": "tough-cookie Prototype Pollution vulnerability",
+          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 6.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
+          },
+          "range": "<4.1.3"
+        }
+      ],
+      "effects": [
+        "request"
+      ],
+      "range": "<4.1.3",
+      "nodes": [
+        "node_modules/request/node_modules/tough-cookie"
+      ],
+      "fixAvailable": false
+    },
+    "uuid": {
+      "name": "uuid",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1119441,
+          "name": "uuid",
+          "dependency": "uuid",
+          "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
+          "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-787",
+            "CWE-1285"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<11.1.1"
+        }
+      ],
+      "effects": [
+        "node-notifier",
+        "request",
+        "sockjs",
+        "webpack-log"
+      ],
+      "range": "<11.1.1",
+      "nodes": [
+        "node_modules/request/node_modules/uuid",
+        "node_modules/uuid",
+        "node_modules/webpack-log/node_modules/uuid"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "vue": {
+      "name": "vue",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "@vue/compiler-sfc",
+        {
+          "source": 1100238,
+          "name": "vue",
+          "dependency": "vue",
+          "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function",
+          "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx",
+          "severity": "low",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0"
+        }
+      ],
+      "effects": [],
+      "range": "2.0.0-alpha.1 - 2.7.16 || 3.5.36",
+      "nodes": [
+        "node_modules/vue"
+      ],
+      "fixAvailable": {
+        "name": "vue",
+        "version": "3.5.44",
+        "isSemVerMajor": true
+      }
+    },
+    "vue-loader": {
+      "name": "vue-loader",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/component-compiler-utils"
+      ],
+      "effects": [],
+      "range": "15.0.0-beta.1 - 15.11.1",
+      "nodes": [
+        "node_modules/vue-loader"
+      ],
+      "fixAvailable": true
+    },
+    "vue-template-compiler": {
+      "name": "vue-template-compiler",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1111772,
+          "name": "vue-template-compiler",
+          "dependency": "vue-template-compiler",
+          "title": "vue-template-compiler vulnerable to client-side Cross-Site Scripting (XSS)",
+          "url": "https://github.com/advisories/GHSA-g3ch-rx76-35fx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 4.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N"
+          },
+          "range": ">=2.0.0 <3.0.0"
+        }
+      ],
+      "effects": [
+        "@dcloudio/uni-template-compiler"
+      ],
+      "range": ">=2.0.0",
+      "nodes": [
+        "node_modules/vue-template-compiler"
+      ],
+      "fixAvailable": false
+    },
+    "watchpack": {
+      "name": "watchpack",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "watchpack-chokidar2"
+      ],
+      "effects": [
+        "webpack"
+      ],
+      "range": "1.7.2 - 1.7.5",
+      "nodes": [
+        "node_modules/watchpack"
+      ],
+      "fixAvailable": false
+    },
+    "watchpack-chokidar2": {
+      "name": "watchpack-chokidar2",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "chokidar"
+      ],
+      "effects": [
+        "watchpack"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/watchpack-chokidar2"
+      ],
+      "fixAvailable": false
+    },
+    "webpack": {
+      "name": "webpack",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "micromatch",
+        "node-libs-browser",
+        "terser-webpack-plugin",
+        "watchpack"
+      ],
+      "effects": [
+        "@vue/cli-plugin-babel",
+        "@vue/cli-service"
+      ],
+      "range": "2.0.0-beta - 5.1.0",
+      "nodes": [
+        "node_modules/webpack"
+      ],
+      "fixAvailable": false
+    },
+    "webpack-dev-middleware": {
+      "name": "webpack-dev-middleware",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1096729,
+          "name": "webpack-dev-middleware",
+          "dependency": "webpack-dev-middleware",
+          "title": "Path traversal in webpack-dev-middleware",
+          "url": "https://github.com/advisories/GHSA-wr3j-pwj9-hqq6",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N"
+          },
+          "range": "<=5.3.3"
+        },
+        {
+          "source": 1240027,
+          "name": "webpack-dev-middleware",
+          "dependency": "webpack-dev-middleware",
+          "title": "webpack-dev-middleware vulnerable to Path Traversal via non-slash-terminated publicPath",
+          "url": "https://github.com/advisories/GHSA-g84c-rxfj-3j2c",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N"
+          },
+          "range": "<7.4.5"
+        },
+        "webpack-log"
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": "<=7.4.4",
+      "nodes": [
+        "node_modules/webpack-dev-middleware"
+      ],
+      "fixAvailable": false
+    },
+    "webpack-dev-server": {
+      "name": "webpack-dev-server",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1108429,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser",
+          "url": "https://github.com/advisories/GHSA-9jgg-88mc-972h",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-346"
+          ],
+          "cvss": {
+            "score": 6.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.0"
+        },
+        {
+          "source": 1108430,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server users' source code may be stolen when they access a malicious web site",
+          "url": "https://github.com/advisories/GHSA-4v9v-hfq4-rm2v",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.0"
+        },
+        {
+          "source": 1119074,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to cross-origin source code exposure on non-HTTPS origins",
+          "url": "https://github.com/advisories/GHSA-79cf-xcqc-c78w",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.3"
+        },
+        {
+          "source": 1121087,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to HMR WebSocket interception via permissive user proxies",
+          "url": "https://github.com/advisories/GHSA-mx8g-39q3-5c79",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-346",
+            "CWE-441"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<5.2.5"
+        },
+        {
+          "source": 1123965,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to cross-site request forgery via internal developer endpoints",
+          "url": "https://github.com/advisories/GHSA-f5vj-f2hx-8m93",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-352",
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 4.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:L"
+          },
+          "range": "<=5.2.5"
+        },
+        {
+          "source": 1123966,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to denial of service via a malformed Host or Origin header",
+          "url": "https://github.com/advisories/GHSA-m28w-2pqf-7qgj",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-20",
+            "CWE-248"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=5.2.5"
+        },
+        "chokidar",
+        "http-proxy-middleware",
+        "ip",
+        "selfsigned",
+        "sockjs",
+        "webpack-dev-middleware",
+        "webpack-log"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "<=5.2.7",
+      "nodes": [
+        "node_modules/webpack-dev-server"
+      ],
+      "fixAvailable": false
+    },
+    "webpack-log": {
+      "name": "webpack-log",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "uuid"
+      ],
+      "effects": [
+        "copy-webpack-plugin",
+        "webpack-dev-middleware",
+        "webpack-dev-server"
+      ],
+      "range": "1.1.0 - 2.0.0",
+      "nodes": [
+        "node_modules/webpack-log"
+      ],
+      "fixAvailable": false
+    }
+  },
+  "metadata": {
+    "vulnerabilities": {
+      "info": 0,
+      "low": 11,
+      "moderate": 82,
+      "high": 32,
+      "critical": 7,
+      "total": 132
+    },
+    "dependencies": {
+      "prod": 64,
+      "dev": 1633,
+      "optional": 31,
+      "peer": 0,
+      "peerOptional": 0,
+      "total": 1696
+    }
+  }
+}

+ 160 - 0
_run40_npm_audit_root.json

@@ -0,0 +1,160 @@
+{
+  "auditReportVersion": 2,
+  "vulnerabilities": {
+    "chromium-bidi": {
+      "name": "chromium-bidi",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "zod"
+      ],
+      "effects": [
+        "puppeteer",
+        "puppeteer-core"
+      ],
+      "range": "0.5.13 - 157.0.8081-0",
+      "nodes": [
+        "node_modules/chromium-bidi"
+      ],
+      "fixAvailable": true
+    },
+    "nanoid": {
+      "name": "nanoid",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1139427,
+          "name": "nanoid",
+          "dependency": "nanoid",
+          "title": "nanoid: custom generators can loop indefinitely when size is zero",
+          "url": "https://github.com/advisories/GHSA-2v37-7h3g-55p8",
+          "severity": "high",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<3.3.18"
+        }
+      ],
+      "effects": [],
+      "range": "<3.3.18",
+      "nodes": [
+        "node_modules/nanoid"
+      ],
+      "fixAvailable": true
+    },
+    "puppeteer": {
+      "name": "puppeteer",
+      "severity": "high",
+      "isDirect": true,
+      "via": [
+        "chromium-bidi",
+        "puppeteer-core"
+      ],
+      "effects": [],
+      "range": "22.5.0 - 25.12.0",
+      "nodes": [
+        "node_modules/puppeteer"
+      ],
+      "fixAvailable": true
+    },
+    "puppeteer-core": {
+      "name": "puppeteer-core",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "chromium-bidi"
+      ],
+      "effects": [
+        "puppeteer"
+      ],
+      "range": "22.5.0 - 25.12.0",
+      "nodes": [
+        "node_modules/puppeteer-core"
+      ],
+      "fixAvailable": true
+    },
+    "source-map-js": {
+      "name": "source-map-js",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241209,
+          "name": "source-map-js",
+          "dependency": "source-map-js",
+          "title": "source-map-js allows event-loop denial of service through indexed source-map section offsets",
+          "url": "https://github.com/advisories/GHSA-68fv-2mgg-jv7q",
+          "severity": "high",
+          "cwe": [
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=1.0.0 <1.2.2"
+        }
+      ],
+      "effects": [],
+      "range": "1.0.0 - 1.2.1",
+      "nodes": [
+        "node_modules/source-map-js"
+      ],
+      "fixAvailable": true
+    },
+    "zod": {
+      "name": "zod",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1243066,
+          "name": "zod",
+          "dependency": "zod",
+          "title": "Zod can exhaust memory while validating oversized constrained collections",
+          "url": "https://github.com/advisories/GHSA-mrhx-c7xc-m3w5",
+          "severity": "high",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<4.6.6"
+        }
+      ],
+      "effects": [
+        "chromium-bidi"
+      ],
+      "range": "<4.6.6",
+      "nodes": [
+        "node_modules/zod"
+      ],
+      "fixAvailable": true
+    }
+  },
+  "metadata": {
+    "vulnerabilities": {
+      "info": 0,
+      "low": 0,
+      "moderate": 0,
+      "high": 6,
+      "critical": 0,
+      "total": 6
+    },
+    "dependencies": {
+      "prod": 37,
+      "dev": 2,
+      "optional": 26,
+      "peer": 0,
+      "peerOptional": 0,
+      "total": 64
+    }
+  }
+}

+ 3441 - 0
_run40_npm_audit_web.json

@@ -0,0 +1,3441 @@
+{
+  "auditReportVersion": 2,
+  "vulnerabilities": {
+    "@babel/core": {
+      "name": "@babel/core",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1123528,
+          "name": "@babel/core",
+          "dependency": "@babel/core",
+          "title": "@babel/core: Arbitrary File Read via sourceMappingURL Comment",
+          "url": "https://github.com/advisories/GHSA-4x5r-pxfx-6jf8",
+          "severity": "low",
+          "cwe": [
+            "CWE-22",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 3.2,
+            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N"
+          },
+          "range": "<=7.29.0"
+        }
+      ],
+      "effects": [],
+      "range": "<=7.29.0",
+      "nodes": [
+        "node_modules/@babel/core"
+      ],
+      "fixAvailable": true
+    },
+    "@jest/core": {
+      "name": "@jest/core",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "jest-config"
+      ],
+      "effects": [],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/@jest/core"
+      ],
+      "fixAvailable": true
+    },
+    "@vue/cli-plugin-router": {
+      "name": "@vue/cli-plugin-router",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/cli-service"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/cli-plugin-router"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/cli-plugin-vuex": {
+      "name": "@vue/cli-plugin-vuex",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/cli-service"
+      ],
+      "effects": [],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/cli-plugin-vuex"
+      ],
+      "fixAvailable": true
+    },
+    "@vue/cli-service": {
+      "name": "@vue/cli-service",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "@vue/cli-plugin-router",
+        "@vue/cli-plugin-vuex",
+        "@vue/component-compiler-utils",
+        "copy-webpack-plugin",
+        "css-minimizer-webpack-plugin",
+        "vue-loader",
+        "vue-template-compiler",
+        "webpack-dev-server"
+      ],
+      "effects": [
+        "@vue/cli-plugin-router",
+        "@vue/cli-plugin-vuex"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/cli-service"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/component-compiler-utils": {
+      "name": "@vue/component-compiler-utils",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "postcss"
+      ],
+      "effects": [
+        "@vue/cli-service",
+        "vue-loader"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/@vue/component-compiler-utils"
+      ],
+      "fixAvailable": false
+    },
+    "@vue/test-utils": {
+      "name": "@vue/test-utils",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        "vue",
+        "vue-template-compiler"
+      ],
+      "effects": [],
+      "range": "<=1.3.6",
+      "nodes": [
+        "node_modules/@vue/test-utils"
+      ],
+      "fixAvailable": {
+        "name": "@vue/test-utils",
+        "version": "2.5.1",
+        "isSemVerMajor": true
+      }
+    },
+    "@wangeditor/editor-for-vue": {
+      "name": "@wangeditor/editor-for-vue",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        "vue"
+      ],
+      "effects": [],
+      "range": "<=1.0.2",
+      "nodes": [
+        "node_modules/@wangeditor/editor-for-vue"
+      ],
+      "fixAvailable": {
+        "name": "@wangeditor/editor-for-vue",
+        "version": "5.1.12",
+        "isSemVerMajor": true
+      }
+    },
+    "axios": {
+      "name": "axios",
+      "severity": "high",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1138749,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Prototype pollution auth subfields can inject Basic auth",
+          "url": "https://github.com/advisories/GHSA-xj6q-8x83-jv6g",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.2 <1.18.0"
+        },
+        {
+          "source": 1147949,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Prototype pollution gadgets can alter axios request construction",
+          "url": "https://github.com/advisories/GHSA-mmx7-hfxf-jppx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.18.0"
+        },
+        {
+          "source": 1147950,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Deep formToJSON Key Recursion Can Cause Denial of Service",
+          "url": "https://github.com/advisories/GHSA-pmv8-rq9r-6j72",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.18.0"
+        },
+        {
+          "source": 1153175,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: HTTP/2 streamed uploads bypass `maxBodyLength`",
+          "url": "https://github.com/advisories/GHSA-mwf2-3pr3-8698",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.13.0 <1.18.0"
+        },
+        {
+          "source": 1153178,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios Node HTTP adapter can use an inherited proxy after interceptor config cloning",
+          "url": "https://github.com/advisories/GHSA-gcfj-64vw-6mp9",
+          "severity": "high",
+          "cwe": [
+            "CWE-200",
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.2 <1.18.0"
+        },
+        {
+          "source": 1153180,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Nested axios option objects can consume polluted prototype values",
+          "url": "https://github.com/advisories/GHSA-7q8q-rj6j-mhjq",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.18.0"
+        },
+        {
+          "source": 1153182,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Fetch adapter `ReadableStream` uploads bypass `maxBodyLength`",
+          "url": "https://github.com/advisories/GHSA-jqh4-m9w3-8hp9",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.7.0 <1.18.0"
+        },
+        {
+          "source": 1153184,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: NO_PROXY bypass for 0.0.0.0 local addresses in axios",
+          "url": "https://github.com/advisories/GHSA-f4gw-2p7v-4548",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-183",
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.0 <1.18.0"
+        },
+        {
+          "source": 1153185,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Excessive recursion in formDataToJSON can cause denial of service",
+          "url": "https://github.com/advisories/GHSA-42h9-826w-cgv3",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.18.0"
+        },
+        {
+          "source": 1193664,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios form serializer maxDepth bypass via {} metatoken",
+          "url": "https://github.com/advisories/GHSA-hcpx-6fm6-wx23",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.1 <1.18.0"
+        },
+        {
+          "source": 1240600,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Prototype pollution gadget in fetch adapter can alter outbound requests",
+          "url": "https://github.com/advisories/GHSA-vh66-26gq-q6x8",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.7.0 <1.20.0"
+        },
+        {
+          "source": 1240601,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Prototype-Pollution Gadget in the Default Instance Allows Inherited Object.prototype.method to Override HTTP Method",
+          "url": "https://github.com/advisories/GHSA-9fr6-4gfg-395g",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.20.0"
+        },
+        {
+          "source": 1240604,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: ReDoS (O(N²)) in shouldBypassProxy host normalization, reachable via untrusted redirect Location",
+          "url": "https://github.com/advisories/GHSA-mghh-pgcx-3jjj",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.0 <1.20.0"
+        },
+        {
+          "source": 1240605,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Prototype Pollution Gadget in axios toFormData Options",
+          "url": "https://github.com/advisories/GHSA-x97p-jq2g-jp4f",
+          "severity": "high",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.1 <1.20.0"
+        },
+        {
+          "source": 1240607,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: HTTP/2 adapter bypasses configured DNS lookup and proxy controls",
+          "url": "https://github.com/advisories/GHSA-3pq3-5fj3-cg6v",
+          "severity": "high",
+          "cwe": [
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.13.0 <1.20.0"
+        },
+        {
+          "source": 1240608,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Denial of Service via Unhandled 'error' Event in HTTP/2 ClientHttp2Session Initialization",
+          "url": "https://github.com/advisories/GHSA-542g-h47m-68v8",
+          "severity": "high",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.13.0 <1.20.0"
+        },
+        {
+          "source": 1240626,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Header Injection via Inherited headers After Minimal Interceptor",
+          "url": "https://github.com/advisories/GHSA-j8rh-479h-cp32",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-74",
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.0.0 <1.20.0"
+        },
+        {
+          "source": 1240627,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Fetch Adapter Header Injection via Inherited FormData getHeaders",
+          "url": "https://github.com/advisories/GHSA-4hqw-qxg8-jxx2",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-74",
+            "CWE-693",
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.12.0 <1.20.0"
+        },
+        {
+          "source": 1240628,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: Node HTTP adapter prototype-pollution gadget allows request socket hijack via inherited createConnection",
+          "url": "https://github.com/advisories/GHSA-m8m8-qj5v-23w3",
+          "severity": "high",
+          "cwe": [
+            "CWE-441",
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.2 <1.20.0"
+        },
+        {
+          "source": 1240629,
+          "name": "axios",
+          "dependency": "axios",
+          "title": "Axios: CIDR-form NO_PROXY entries are ignored, causing proxy exclusion bypass for internal IP ranges",
+          "url": "https://github.com/advisories/GHSA-44g4-m2mj-wpvx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-693"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.15.0 <1.20.0"
+        }
+      ],
+      "effects": [],
+      "range": "1.0.0 - 1.19.0",
+      "nodes": [
+        "node_modules/axios"
+      ],
+      "fixAvailable": true
+    },
+    "babel-plugin-transform-es2015-modules-commonjs": {
+      "name": "babel-plugin-transform-es2015-modules-commonjs",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        "babel-template"
+      ],
+      "effects": [
+        "vue-jest"
+      ],
+      "range": "<=7.0.0-beta.0",
+      "nodes": [
+        "node_modules/babel-plugin-transform-es2015-modules-commonjs"
+      ],
+      "fixAvailable": {
+        "name": "vue-jest",
+        "version": "0.6.1",
+        "isSemVerMajor": true
+      }
+    },
+    "babel-template": {
+      "name": "babel-template",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        "babel-traverse"
+      ],
+      "effects": [
+        "babel-plugin-transform-es2015-modules-commonjs"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/babel-template"
+      ],
+      "fixAvailable": {
+        "name": "vue-jest",
+        "version": "0.6.1",
+        "isSemVerMajor": true
+      }
+    },
+    "babel-traverse": {
+      "name": "babel-traverse",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1117412,
+          "name": "babel-traverse",
+          "dependency": "babel-traverse",
+          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
+          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
+          "severity": "critical",
+          "cwe": [
+            "CWE-184",
+            "CWE-697"
+          ],
+          "cvss": {
+            "score": 9.3,
+            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
+          },
+          "range": "<7.23.2"
+        }
+      ],
+      "effects": [
+        "babel-template"
+      ],
+      "range": "*",
+      "nodes": [
+        "node_modules/babel-traverse"
+      ],
+      "fixAvailable": {
+        "name": "vue-jest",
+        "version": "0.6.1",
+        "isSemVerMajor": true
+      }
+    },
+    "baseline-browser-mapping": {
+      "name": "baseline-browser-mapping",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1193686,
+          "name": "baseline-browser-mapping",
+          "dependency": "baseline-browser-mapping",
+          "title": "baseline-browser-mapping process termination on invalid input causes denial of service",
+          "url": "https://github.com/advisories/GHSA-w5vr-8v7q-w6rv",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-705"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=2.0.0 <2.11.0"
+        }
+      ],
+      "effects": [],
+      "range": ">=2.0.0 <2.11.0",
+      "nodes": [
+        "node_modules/baseline-browser-mapping"
+      ],
+      "fixAvailable": true
+    },
+    "body-parser": {
+      "name": "body-parser",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1123977,
+          "name": "body-parser",
+          "dependency": "body-parser",
+          "title": "body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement",
+          "url": "https://github.com/advisories/GHSA-v422-hmwv-36x6",
+          "severity": "low",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<1.20.6"
+        },
+        {
+          "source": 1243073,
+          "name": "body-parser",
+          "dependency": "body-parser",
+          "title": "body-parser vulnerable to Denial of Service via trailing bytes after a compressed request body",
+          "url": "https://github.com/advisories/GHSA-27r3-jxmh-p828",
+          "severity": "high",
+          "cwe": [
+            "CWE-248"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.20.9"
+        }
+      ],
+      "effects": [],
+      "range": "<=1.20.8",
+      "nodes": [
+        "node_modules/body-parser"
+      ],
+      "fixAvailable": true
+    },
+    "brace-expansion": {
+      "name": "brace-expansion",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1123896,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via exponential-time expansion of consecutive non-expanding {} groups",
+          "url": "https://github.com/advisories/GHSA-3jxr-9vmj-r5cp",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.0.0 <2.1.2"
+        },
+        {
+          "source": 1123897,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via exponential-time expansion of consecutive non-expanding {} groups",
+          "url": "https://github.com/advisories/GHSA-3jxr-9vmj-r5cp",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<1.1.16"
+        },
+        {
+          "source": 1130588,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash",
+          "url": "https://github.com/advisories/GHSA-mh99-v99m-4gvg",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.17"
+        },
+        {
+          "source": 1130589,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash",
+          "url": "https://github.com/advisories/GHSA-mh99-v99m-4gvg",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.3"
+        },
+        {
+          "source": 1130736,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation",
+          "url": "https://github.com/advisories/GHSA-rgw5-rvv9-x895",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.4"
+        },
+        {
+          "source": 1130737,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation",
+          "url": "https://github.com/advisories/GHSA-rgw5-rvv9-x895",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.18"
+        },
+        {
+          "source": 1240100,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service",
+          "url": "https://github.com/advisories/GHSA-q2hr-2g5m-vwhr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<1.1.21"
+        },
+        {
+          "source": 1240101,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service",
+          "url": "https://github.com/advisories/GHSA-q2hr-2g5m-vwhr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.0.0 <2.1.7"
+        },
+        {
+          "source": 1240104,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-qhr7-859c-m2p7",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.20"
+        },
+        {
+          "source": 1240105,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-qhr7-859c-m2p7",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.6"
+        },
+        {
+          "source": 1240108,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-6j4f-fj2g-mc7p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.1.19"
+        },
+        {
+          "source": 1240109,
+          "name": "brace-expansion",
+          "dependency": "brace-expansion",
+          "title": "brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-6j4f-fj2g-mc7p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=2.0.0 <2.1.5"
+        }
+      ],
+      "effects": [],
+      "range": "<=1.1.20 || 2.0.0 - 2.1.6",
+      "nodes": [
+        "node_modules/brace-expansion",
+        "node_modules/editorconfig/node_modules/brace-expansion",
+        "node_modules/js-beautify/node_modules/brace-expansion"
+      ],
+      "fixAvailable": true
+    },
+    "browserslist": {
+      "name": "browserslist",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1153171,
+          "name": "browserslist",
+          "dependency": "browserslist",
+          "title": "Browserslist: Unbounded memory growth (no cache eviction) via distinct query results, leading to eventual OOM",
+          "url": "https://github.com/advisories/GHSA-c83g-rgw3-j3cx",
+          "severity": "high",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=4.28.6"
+        },
+        {
+          "source": 1153172,
+          "name": "browserslist",
+          "dependency": "browserslist",
+          "title": "Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)",
+          "url": "https://github.com/advisories/GHSA-73wf-gq98-2v4g",
+          "severity": "high",
+          "cwe": [
+            "CWE-248",
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=4.28.6"
+        }
+      ],
+      "effects": [],
+      "range": "<=4.28.6",
+      "nodes": [
+        "node_modules/browserslist"
+      ],
+      "fixAvailable": true
+    },
+    "colord": {
+      "name": "colord",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1193675,
+          "name": "colord",
+          "dependency": "colord",
+          "title": "Colord: Slow rejection of oversized malformed color strings",
+          "url": "https://github.com/advisories/GHSA-2wm5-q62r-hmrv",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<2.9.4"
+        }
+      ],
+      "effects": [],
+      "range": "<2.9.4",
+      "nodes": [
+        "node_modules/colord"
+      ],
+      "fixAvailable": true
+    },
+    "compression": {
+      "name": "compression",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241221,
+          "name": "compression",
+          "dependency": "compression",
+          "title": "compression vulnerable to Denial of Service via memory leak on premature response close",
+          "url": "https://github.com/advisories/GHSA-vc2v-76pw-4v95",
+          "severity": "high",
+          "cwe": [
+            "CWE-401",
+            "CWE-459"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<1.8.2"
+        }
+      ],
+      "effects": [],
+      "range": "<1.8.2",
+      "nodes": [
+        "node_modules/compression"
+      ],
+      "fixAvailable": true
+    },
+    "copy-webpack-plugin": {
+      "name": "copy-webpack-plugin",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "serialize-javascript"
+      ],
+      "effects": [],
+      "range": "6.1.1 - 13.0.1",
+      "nodes": [
+        "node_modules/copy-webpack-plugin"
+      ],
+      "fixAvailable": true
+    },
+    "create-jest": {
+      "name": "create-jest",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "jest-config"
+      ],
+      "effects": [
+        "jest-cli"
+      ],
+      "range": ">=29.7.0",
+      "nodes": [
+        "node_modules/create-jest"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "css": {
+      "name": "css",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "source-map-resolve"
+      ],
+      "effects": [],
+      "range": ">=2.2.2",
+      "nodes": [
+        "node_modules/css"
+      ],
+      "fixAvailable": true
+    },
+    "css-minimizer-webpack-plugin": {
+      "name": "css-minimizer-webpack-plugin",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "serialize-javascript"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "1.1.4 - 7.0.4",
+      "nodes": [
+        "node_modules/css-minimizer-webpack-plugin"
+      ],
+      "fixAvailable": false
+    },
+    "decode-uri-component": {
+      "name": "decode-uri-component",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1147955,
+          "name": "decode-uri-component",
+          "dependency": "decode-uri-component",
+          "title": "decode-uri-component: Denial of service via exponential decoding of malformed percent-encoded input",
+          "url": "https://github.com/advisories/GHSA-vcc3-ghjq-m6fr",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-405",
+            "CWE-407",
+            "CWE-1176"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=0.4.2"
+        },
+        {
+          "source": 1243857,
+          "name": "decode-uri-component",
+          "dependency": "decode-uri-component",
+          "title": "decode-uri-component vulnerable to denial of service via quadratic replacement of percent-encoded runs",
+          "url": "https://github.com/advisories/GHSA-qr28-fpjm-wq7f",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=0.5.0"
+        }
+      ],
+      "effects": [
+        "source-map-resolve"
+      ],
+      "range": "<=0.5.0",
+      "nodes": [
+        "node_modules/decode-uri-component"
+      ],
+      "fixAvailable": true
+    },
+    "deepmerge": {
+      "name": "deepmerge",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1243505,
+          "name": "deepmerge",
+          "dependency": "deepmerge",
+          "title": "deepmerge mergeObject() allows prototype poisoning of returned objects",
+          "url": "https://github.com/advisories/GHSA-gcqx-w48m-w2h4",
+          "severity": "low",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=4.2.0 <=4.3.1"
+        }
+      ],
+      "effects": [
+        "jest-config"
+      ],
+      "range": ">=4.2.0",
+      "nodes": [
+        "node_modules/jest-config/node_modules/deepmerge"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "editorconfig": {
+      "name": "editorconfig",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "minimatch"
+      ],
+      "effects": [
+        "js-beautify"
+      ],
+      "range": ">=1.0.3",
+      "nodes": [
+        "node_modules/editorconfig"
+      ],
+      "fixAvailable": true
+    },
+    "element-ui": {
+      "name": "element-ui",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        "vue"
+      ],
+      "effects": [],
+      "range": ">=1.0.0-rc.1",
+      "nodes": [
+        "node_modules/element-ui"
+      ],
+      "fixAvailable": {
+        "name": "element-ui",
+        "version": "0.2.6",
+        "isSemVerMajor": true
+      }
+    },
+    "fast-uri": {
+      "name": "fast-uri",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1124064,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to host confusion via literal backslash authority delimiter",
+          "url": "https://github.com/advisories/GHSA-v2hh-gcrm-f6hx",
+          "severity": "high",
+          "cwe": [
+            "CWE-436"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <=3.1.3"
+        },
+        {
+          "source": 1130720,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to host confusion via backslash authority introducer",
+          "url": "https://github.com/advisories/GHSA-7p8r-x3mc-p8w7",
+          "severity": "high",
+          "cwe": [
+            "CWE-436"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <3.1.5"
+        },
+        {
+          "source": 1158524,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to server-side request forgery via malformed IPv6 normalization",
+          "url": "https://github.com/advisories/GHSA-f65p-4m7j-42xc",
+          "severity": "high",
+          "cwe": [
+            "CWE-20",
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <3.1.6"
+        },
+        {
+          "source": 1158527,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to server-side request forgery via repeated hostname percent-decoding",
+          "url": "https://github.com/advisories/GHSA-fph4-wmhf-6fwf",
+          "severity": "high",
+          "cwe": [
+            "CWE-174",
+            "CWE-918"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.1.2 <3.1.6"
+        },
+        {
+          "source": 1158530,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to host confusion via percent-encoded scheme normalization",
+          "url": "https://github.com/advisories/GHSA-jqff-g426-hqxp",
+          "severity": "high",
+          "cwe": [
+            "CWE-177"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <3.1.6"
+        },
+        {
+          "source": 1204921,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to host confusion via failed IDN canonicalization",
+          "url": "https://github.com/advisories/GHSA-4c8g-83qw-93j6",
+          "severity": "high",
+          "cwe": [
+            "CWE-436",
+            "CWE-551"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <3.1.3"
+        },
+        {
+          "source": 1239943,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to authority injection via an unvalidated port in serialize",
+          "url": "https://github.com/advisories/GHSA-qw65-cvwx-89v3",
+          "severity": "high",
+          "cwe": [
+            "CWE-116"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=3.0.0 <3.1.7"
+        },
+        {
+          "source": 1240091,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to inconsistent host case normalization via percent-encoded octets",
+          "url": "https://github.com/advisories/GHSA-hrr3-gc8f-f4qj",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-178"
+          ],
+          "cvss": {
+            "score": 4.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N"
+          },
+          "range": ">=3.0.0 <3.1.8"
+        },
+        {
+          "source": 1243098,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to URI scheme spoofing via percent-encoded scheme decoding",
+          "url": "https://github.com/advisories/GHSA-w74x-v6f9-j3xg",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-172",
+            "CWE-180"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": ">=3.0.0 <3.1.9"
+        },
+        {
+          "source": 1243101,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to improper path equivalence in relative reference normalization",
+          "url": "https://github.com/advisories/GHSA-xhq7-xmqj-769h",
+          "severity": "low",
+          "cwe": [
+            "CWE-41"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=3.0.0 <3.1.9"
+        },
+        {
+          "source": 1243107,
+          "name": "fast-uri",
+          "dependency": "fast-uri",
+          "title": "fast-uri vulnerable to scheme injection via an unescaped first-segment colon in suffix references",
+          "url": "https://github.com/advisories/GHSA-333x-w4r6-6crp",
+          "severity": "low",
+          "cwe": [
+            "CWE-41",
+            "CWE-116"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=3.0.0 <3.1.9"
+        }
+      ],
+      "effects": [],
+      "range": "3.0.0 - 3.1.8",
+      "nodes": [
+        "node_modules/fast-uri"
+      ],
+      "fixAvailable": true
+    },
+    "follow-redirects": {
+      "name": "follow-redirects",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1242604,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects array-form headers bypass cross-origin credential stripping",
+          "url": "https://github.com/advisories/GHSA-q3jh-wrc6-jgq8",
+          "severity": "high",
+          "cwe": [
+            "CWE-200",
+            "CWE-212"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.16.0 <1.16.1"
+        },
+        {
+          "source": 1242605,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects sensitiveHeaders regex escaping can expose credential headers",
+          "url": "https://github.com/advisories/GHSA-8r9p-f939-6h3c",
+          "severity": "high",
+          "cwe": [
+            "CWE-185",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=1.16.0 <1.16.1"
+        },
+        {
+          "source": 1244003,
+          "name": "follow-redirects",
+          "dependency": "follow-redirects",
+          "title": "follow-redirects: Cross-realm sensitiveHeaders arrays are discarded and custom credentials can follow redirects",
+          "url": "https://github.com/advisories/GHSA-mrwp-f3q8-3g9p",
+          "severity": "high",
+          "cwe": [
+            "CWE-201"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": ">=1.16.0 <=1.16.1"
+        }
+      ],
+      "effects": [],
+      "range": "1.16.0 - 1.16.1",
+      "nodes": [
+        "node_modules/follow-redirects"
+      ],
+      "fixAvailable": true
+    },
+    "form-data": {
+      "name": "form-data",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1120743,
+          "name": "form-data",
+          "dependency": "form-data",
+          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
+          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
+          "severity": "high",
+          "cwe": [
+            "CWE-93"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": ">=4.0.0 <4.0.6"
+        }
+      ],
+      "effects": [],
+      "range": "4.0.0 - 4.0.5",
+      "nodes": [
+        "node_modules/form-data"
+      ],
+      "fixAvailable": true
+    },
+    "glob": {
+      "name": "glob",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1109842,
+          "name": "glob",
+          "dependency": "glob",
+          "title": "glob CLI: Command injection via -c/--cmd executes matches with shell:true",
+          "url": "https://github.com/advisories/GHSA-5j98-mcp5-4vw2",
+          "severity": "high",
+          "cwe": [
+            "CWE-78"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=10.2.0 <10.5.0"
+        },
+        {
+          "source": 1244013,
+          "name": "glob",
+          "dependency": "glob",
+          "title": "Glob: AbortSignal cancellation bypass allows post-timeout filesystem traversal",
+          "url": "https://github.com/advisories/GHSA-3g3m-2fjr-6pw4",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=9.0.0 <=14.0.1"
+        },
+        "minimatch"
+      ],
+      "effects": [],
+      "range": "9.0.0 - 14.0.1",
+      "nodes": [
+        "node_modules/js-beautify/node_modules/glob"
+      ],
+      "fixAvailable": true
+    },
+    "http-proxy-middleware": {
+      "name": "http-proxy-middleware",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1121360,
+          "name": "http-proxy-middleware",
+          "dependency": "http-proxy-middleware",
+          "title": "http-proxy-middleware `router` host+path substring matching allows Host-header-driven backend routing bypass",
+          "url": "https://github.com/advisories/GHSA-64mm-vxmg-q3vj",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-20",
+            "CWE-187"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=0.16.0 <2.0.10"
+        }
+      ],
+      "effects": [],
+      "range": ">=0.16.0 <2.0.10",
+      "nodes": [
+        "node_modules/http-proxy-middleware"
+      ],
+      "fixAvailable": true
+    },
+    "jest": {
+      "name": "jest",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        "@jest/core",
+        "jest-cli"
+      ],
+      "effects": [],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/jest"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-cli": {
+      "name": "jest-cli",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "@jest/core",
+        "create-jest",
+        "jest-config"
+      ],
+      "effects": [
+        "jest"
+      ],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/jest-cli"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "jest-config": {
+      "name": "jest-config",
+      "severity": "low",
+      "isDirect": false,
+      "via": [
+        "deepmerge"
+      ],
+      "effects": [
+        "@jest/core",
+        "create-jest",
+        "jest-cli"
+      ],
+      "range": ">=25.2.0-alpha.86",
+      "nodes": [
+        "node_modules/jest-config"
+      ],
+      "fixAvailable": {
+        "name": "jest",
+        "version": "25.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "joi": {
+      "name": "joi",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1120656,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi has an uncaught RangeError on deeply nested input through recursive `link()` schemas",
+          "url": "https://github.com/advisories/GHSA-q7cg-457f-vx79",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-248",
+            "CWE-400"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<17.13.4"
+        },
+        {
+          "source": 1193674,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi: Prototype pollution via a `__proto__` language key in custom messages",
+          "url": "https://github.com/advisories/GHSA-6w3j-5fw6-r9vr",
+          "severity": "low",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=17.2.0 <17.13.6"
+        },
+        {
+          "source": 1193679,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi: object().rename() with a template target can set the validated object's prototype",
+          "url": "https://github.com/advisories/GHSA-gg4h-3hg2-grpc",
+          "severity": "low",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": ">=16.0.0 <17.13.5"
+        },
+        {
+          "source": 1241212,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi messages compilation allows prototype replacement through __proto__ error codes",
+          "url": "https://github.com/advisories/GHSA-wr44-6hxh-3jwq",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<17.13.8"
+        },
+        {
+          "source": 1241279,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi: Quadratic regular-expression backtracking in `Joi.string().isoDate()`",
+          "url": "https://github.com/advisories/GHSA-6h2x-m376-mqjq",
+          "severity": "high",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=17.2.0 <17.13.7"
+        },
+        {
+          "source": 1244009,
+          "name": "joi",
+          "dependency": "joi",
+          "title": "joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service",
+          "url": "https://github.com/advisories/GHSA-4528-x5fx-h6hg",
+          "severity": "high",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=17.1.1 <17.13.9"
+        }
+      ],
+      "effects": [],
+      "range": "<=17.13.8",
+      "nodes": [
+        "node_modules/joi"
+      ],
+      "fixAvailable": true
+    },
+    "js-beautify": {
+      "name": "js-beautify",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "editorconfig"
+      ],
+      "effects": [],
+      "range": ">=1.14.9",
+      "nodes": [
+        "node_modules/js-beautify"
+      ],
+      "fixAvailable": true
+    },
+    "js-cookie": {
+      "name": "js-cookie",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1120607,
+          "name": "js-cookie",
+          "dependency": "js-cookie",
+          "title": "JavaScript Cookie: Per-instance prototype hijack in assign() enables cookie-attribute injection",
+          "url": "https://github.com/advisories/GHSA-qjx8-664m-686j",
+          "severity": "high",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=3.0.5"
+        }
+      ],
+      "effects": [],
+      "range": "<=3.0.5",
+      "nodes": [
+        "node_modules/js-cookie"
+      ],
+      "fixAvailable": true
+    },
+    "js-yaml": {
+      "name": "js-yaml",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1121859,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
+          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<3.15.0"
+        },
+        {
+          "source": 1123912,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "js-yaml: YAML merge-key chains can force quadratic CPU consumption",
+          "url": "https://github.com/advisories/GHSA-52cp-r559-cp3m",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=3.0.0 <3.15.0"
+        },
+        {
+          "source": 1138114,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported",
+          "url": "https://github.com/advisories/GHSA-5p4m-2wfm-xmqj",
+          "severity": "high",
+          "cwe": [
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=3.0.0 <3.15.1"
+        },
+        {
+          "source": 1193726,
+          "name": "js-yaml",
+          "dependency": "js-yaml",
+          "title": "js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources",
+          "url": "https://github.com/advisories/GHSA-2883-xcg3-v3hh",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=3.0.0 <3.15.2"
+        }
+      ],
+      "effects": [],
+      "range": "<=3.15.1",
+      "nodes": [
+        "node_modules/js-yaml"
+      ],
+      "fixAvailable": true
+    },
+    "launch-editor": {
+      "name": "launch-editor",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1120787,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows",
+          "url": "https://github.com/advisories/GHSA-v6wh-96g9-6wx3",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-73",
+            "CWE-522"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.0"
+        },
+        {
+          "source": 1242627,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: escapeCmdArgs() omits % escaping on Windows",
+          "url": "https://github.com/advisories/GHSA-698v-4r3x-3vcv",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-78"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        },
+        {
+          "source": 1242656,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: Editor CLI flag misinterpretation causing arbitrary command execution for some editors",
+          "url": "https://github.com/advisories/GHSA-r825-w8mm-5pxw",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-88"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        },
+        {
+          "source": 1242663,
+          "name": "launch-editor",
+          "dependency": "launch-editor",
+          "title": "launch-editor: `fs.existsSync()` existence check can be bypassed on Windows",
+          "url": "https://github.com/advisories/GHSA-587h-7wmj-h5pm",
+          "severity": "high",
+          "cwe": [
+            "CWE-77"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=2.14.1"
+        }
+      ],
+      "effects": [],
+      "range": "<=2.14.1",
+      "nodes": [
+        "node_modules/launch-editor"
+      ],
+      "fixAvailable": true
+    },
+    "minimatch": {
+      "name": "minimatch",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1244623,
+          "name": "minimatch",
+          "dependency": "minimatch",
+          "title": "minimatch has potential denial of service via globparts amplification",
+          "url": "https://github.com/advisories/GHSA-g3hv-75wg-m249",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-405"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=7.0.0 <11.0.1"
+        }
+      ],
+      "effects": [
+        "editorconfig",
+        "glob"
+      ],
+      "range": "7.0.0 - 11.0.0",
+      "nodes": [
+        "node_modules/editorconfig/node_modules/minimatch",
+        "node_modules/js-beautify/node_modules/minimatch"
+      ],
+      "fixAvailable": true
+    },
+    "nanoid": {
+      "name": "nanoid",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1138811,
+          "name": "nanoid",
+          "dependency": "nanoid",
+          "title": "nanoid: non-secure generators can loop indefinitely with negative size",
+          "url": "https://github.com/advisories/GHSA-28wg-ghj8-5hjv",
+          "severity": "high",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<3.3.16"
+        },
+        {
+          "source": 1139427,
+          "name": "nanoid",
+          "dependency": "nanoid",
+          "title": "nanoid: custom generators can loop indefinitely when size is zero",
+          "url": "https://github.com/advisories/GHSA-2v37-7h3g-55p8",
+          "severity": "high",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<3.3.18"
+        }
+      ],
+      "effects": [],
+      "range": "<=3.3.17",
+      "nodes": [
+        "node_modules/nanoid"
+      ],
+      "fixAvailable": true
+    },
+    "node-forge": {
+      "name": "node-forge",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1240912,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "node-forge RSA PKCS#1 v1.5 signature verification accepts extra nested DigestAlgorithm elements",
+          "url": "https://github.com/advisories/GHSA-86w9-cpqp-85rv",
+          "severity": "high",
+          "cwe": [
+            "CWE-347"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244014,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: ASN.1 OID first arc truncation in asn1.oidToDer",
+          "url": "https://github.com/advisories/GHSA-4642-5mcj-2rqw",
+          "severity": "low",
+          "cwe": [
+            "CWE-190"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244015,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Prototype Pollution in forge.http cookie handling via a malicious Set-Cookie",
+          "url": "https://github.com/advisories/GHSA-6wvx-3r32-xmcg",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-1321"
+          ],
+          "cvss": {
+            "score": 4.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244016,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: TLS client crash when the server sends no certificate",
+          "url": "https://github.com/advisories/GHSA-525v-9gp9-w22h",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-476"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244017,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Regular expression denial of service in PEM decoding (pem.decode)",
+          "url": "https://github.com/advisories/GHSA-7wch-p9px-956x",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244018,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of Service via infinite loop in BigInteger.modInverse() with negative input (incomplete fix of CVE-2026-33891)",
+          "url": "https://github.com/advisories/GHSA-h6cr-wjv9-3cpp",
+          "severity": "low",
+          "cwe": [
+            "CWE-835"
+          ],
+          "cvss": {
+            "score": 2.9,
+            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244019,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: verifyCertificateChain() removes trusted CA certificates with the same subject from the CA store",
+          "url": "https://github.com/advisories/GHSA-4487-j8r4-4g2f",
+          "severity": "low",
+          "cwe": [
+            "CWE-295",
+            "CWE-471"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244020,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: AES-GCM authentication bypass via unvalidated tagLength option",
+          "url": "https://github.com/advisories/GHSA-5cwg-6vw7-rj6p",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-354",
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244021,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: PKCS#12 MAC forgery and constant-key PBE via zero iteration count",
+          "url": "https://github.com/advisories/GHSA-jc66-7q78-782g",
+          "severity": "high",
+          "cwe": [
+            "CWE-354",
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244022,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of service in TLS record processing via a record interleaved with a fragmented handshake message",
+          "url": "https://github.com/advisories/GHSA-8hrf-8g6f-7xwp",
+          "severity": "high",
+          "cwe": [
+            "CWE-248",
+            "CWE-476"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244023,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: Denial of service in TLS record processing via call stack exhaustion",
+          "url": "https://github.com/advisories/GHSA-hqq3-7jhf-c5jx",
+          "severity": "high",
+          "cwe": [
+            "CWE-674"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.4.0"
+        },
+        {
+          "source": 1244024,
+          "name": "node-forge",
+          "dependency": "node-forge",
+          "title": "Forge: X.509 basicConstraints bypass in verifyCertificateChain() via deprecated extension OIDs 2.5.29.10 and 2.5.29.13",
+          "url": "https://github.com/advisories/GHSA-5x38-2vff-x55p",
+          "severity": "high",
+          "cwe": [
+            "CWE-295",
+            "CWE-436"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": "<=1.4.0"
+        }
+      ],
+      "effects": [],
+      "range": "<=1.4.0",
+      "nodes": [
+        "node_modules/node-forge"
+      ],
+      "fixAvailable": true
+    },
+    "pnpm": {
+      "name": "pnpm",
+      "severity": "high",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1121808,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm Vulnerable to Arbitrary File Write/Delete via Malicious Patch File (Path Traversal)",
+          "url": "https://github.com/advisories/GHSA-rxhj-4m44-96r4",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121810,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm binds unscoped user-level npm auth credentials to a repository-selected registry",
+          "url": "https://github.com/advisories/GHSA-cjhr-43r9-cfmw",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-200",
+            "CWE-522"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121812,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Transitive dependency alias path traversal allows project path override via symlink replacement",
+          "url": "https://github.com/advisories/GHSA-hwx4-2j3j-g496",
+          "severity": "high",
+          "cwe": [
+            "CWE-23"
+          ],
+          "cvss": {
+            "score": 8.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121814,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Git Fetch Argument Injection via Lockfile resolution.commit",
+          "url": "https://github.com/advisories/GHSA-p4xf-rf54-rj3x",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-88"
+          ],
+          "cvss": {
+            "score": 6.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N"
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121817,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm Has an Integrity Check Bypass via Missing Lockfile Integrity Field",
+          "url": "https://github.com/advisories/GHSA-q6j5-fjx5-2mc3",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-354"
+          ],
+          "cvss": {
+            "score": 6.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121818,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Unsafe default behavior breaks integrity check",
+          "url": "https://github.com/advisories/GHSA-54hh-g5mx-jqcp",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-345"
+          ],
+          "cvss": {
+            "score": 6.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N"
+          },
+          "range": ">=11.0.0 <11.4.0"
+        },
+        {
+          "source": 1121823,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Manifest identity spoof satisfies allowBuilds and runs attacker lifecycle",
+          "url": "https://github.com/advisories/GHSA-5wx6-mg75-v57r",
+          "severity": "high",
+          "cwe": [
+            "CWE-346",
+            "CWE-693",
+            "CWE-829"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.5.3"
+        },
+        {
+          "source": 1121825,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Repository config can expand victim environment secrets into registry requests before scripts run",
+          "url": "https://github.com/advisories/GHSA-3qhv-2rgh-x77r",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-200",
+            "CWE-201",
+            "CWE-522"
+          ],
+          "cvss": {
+            "score": 6.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": ">=11.0.0 <11.5.3"
+        },
+        {
+          "source": 1121828,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Reserved bin name deletes PNPM_HOME during global remove",
+          "url": "https://github.com/advisories/GHSA-4gxm-v5v7-fqc4",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-22",
+            "CWE-73"
+          ],
+          "cvss": {
+            "score": 6.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=11.0.0 <11.5.3"
+        },
+        {
+          "source": 1121830,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Project env lockfile can short-circuit package-manager resolution and execute lockfile-selected pnpm bytes",
+          "url": "https://github.com/advisories/GHSA-w466-c33r-3gjp",
+          "severity": "high",
+          "cwe": [
+            "CWE-345",
+            "CWE-494",
+            "CWE-829"
+          ],
+          "cvss": {
+            "score": 8.8,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.5.3"
+        },
+        {
+          "source": 1121832,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: `patch-remove` could delete project-selected files outside the patches directory",
+          "url": "https://github.com/advisories/GHSA-72r4-9c5j-mj57",
+          "severity": "high",
+          "cwe": [
+            "CWE-22",
+            "CWE-73"
+          ],
+          "cvss": {
+            "score": 7.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L"
+          },
+          "range": ">=11.0.0 <11.7.0"
+        },
+        {
+          "source": 1121834,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Hoisted install imports lockfile alias outside node_modules",
+          "url": "https://github.com/advisories/GHSA-fr4h-3cph-29xv",
+          "severity": "high",
+          "cwe": [
+            "CWE-22",
+            "CWE-73"
+          ],
+          "cvss": {
+            "score": 7.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L"
+          },
+          "range": ">=11.0.0 <11.7.0"
+        },
+        {
+          "source": 1121836,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Path traversal in configDependencies env lockfile allows symlink creation outside node_modules/.pnpm-config",
+          "url": "https://github.com/advisories/GHSA-qrv3-253h-g69c",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 8.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:L"
+          },
+          "range": ">=11.0.0 <11.8.0"
+        },
+        {
+          "source": 1139461,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Repository-controlled configDependencies can select a pacquet native install engine",
+          "url": "https://github.com/advisories/GHSA-gj8w-mvpf-x27x",
+          "severity": "high",
+          "cwe": [
+            "CWE-78",
+            "CWE-494",
+            "CWE-829"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.5.3"
+        },
+        {
+          "source": 1153191,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Environment secrets exfiltrated via env-placeholder expansion in proxy settings read from an untrusted pnpm-workspace.yaml",
+          "url": "https://github.com/advisories/GHSA-vx52-2968-3vc6",
+          "severity": "high",
+          "cwe": [
+            "CWE-201",
+            "CWE-319",
+            "CWE-522"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N"
+          },
+          "range": ">=11.0.0 <11.11.0"
+        },
+        {
+          "source": 1158509,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: Virtual store linker path traversal via unvalidated depPath name in lockfileToDepGraph",
+          "url": "https://github.com/advisories/GHSA-c59q-g84q-2gj5",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L"
+          },
+          "range": ">=11.0.0 <11.11.0"
+        },
+        {
+          "source": 1158511,
+          "name": "pnpm",
+          "dependency": "pnpm",
+          "title": "pnpm: A tarball dependency's manifest `name` escapes node_modules → arbitrary file write/overwrite on install",
+          "url": "https://github.com/advisories/GHSA-vq4v-j7r6-jq4m",
+          "severity": "high",
+          "cwe": [
+            "CWE-22",
+            "CWE-73",
+            "CWE-94"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=11.0.0 <11.11.0"
+        }
+      ],
+      "effects": [],
+      "range": "11.0.0 - 11.10.0",
+      "nodes": [
+        "node_modules/pnpm"
+      ],
+      "fixAvailable": true
+    },
+    "postcss": {
+      "name": "postcss",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1109574,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS line return parsing error",
+          "url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-74",
+            "CWE-144"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
+          },
+          "range": "<8.4.31"
+        },
+        {
+          "source": 1117015,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
+          "url": "https://github.com/advisories/GHSA-qx2v-qp2m-jg93",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": "<8.5.10"
+        },
+        {
+          "source": 1124252,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments",
+          "url": "https://github.com/advisories/GHSA-6g55-p6wh-862q",
+          "severity": "high",
+          "cwe": [
+            "CWE-22",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=8.5.11"
+        },
+        {
+          "source": 1130709,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappingURL reads arbitrary .map files when `from` is unset",
+          "url": "https://github.com/advisories/GHSA-fxqj-rqcc-2cmp",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-22",
+            "CWE-200"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<=8.5.22"
+        },
+        {
+          "source": 1139510,
+          "name": "postcss",
+          "dependency": "postcss",
+          "title": "PostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure",
+          "url": "https://github.com/advisories/GHSA-r28c-9q8g-f849",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=8.5.17"
+        }
+      ],
+      "effects": [
+        "@vue/component-compiler-utils"
+      ],
+      "range": "<=8.5.22",
+      "nodes": [
+        "node_modules/@vue/component-compiler-utils/node_modules/postcss",
+        "node_modules/postcss"
+      ],
+      "fixAvailable": false
+    },
+    "postcss-selector-parser": {
+      "name": "postcss-selector-parser",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1153169,
+          "name": "postcss-selector-parser",
+          "dependency": "postcss-selector-parser",
+          "title": "postcss-selector-parser allows denial of service through uncontrolled AST recursion",
+          "url": "https://github.com/advisories/GHSA-w9m9-85wc-3x92",
+          "severity": "low",
+          "cwe": [
+            "CWE-404"
+          ],
+          "cvss": {
+            "score": 4.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=7.1.0 <7.1.3"
+        },
+        {
+          "source": 1153170,
+          "name": "postcss-selector-parser",
+          "dependency": "postcss-selector-parser",
+          "title": "postcss-selector-parser allows denial of service through uncontrolled AST recursion",
+          "url": "https://github.com/advisories/GHSA-w9m9-85wc-3x92",
+          "severity": "low",
+          "cwe": [
+            "CWE-404"
+          ],
+          "cvss": {
+            "score": 4.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.1.0 <6.1.3"
+        },
+        {
+          "source": 1243379,
+          "name": "postcss-selector-parser",
+          "dependency": "postcss-selector-parser",
+          "title": "PostCSS: Quadratic complexity in flat selector parsing allows CPU exhaustion",
+          "url": "https://github.com/advisories/GHSA-rj75-hqrm-r3gf",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<6.1.5"
+        },
+        {
+          "source": 1243380,
+          "name": "postcss-selector-parser",
+          "dependency": "postcss-selector-parser",
+          "title": "PostCSS: Quadratic complexity in flat selector parsing allows CPU exhaustion",
+          "url": "https://github.com/advisories/GHSA-rj75-hqrm-r3gf",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=7.0.0 <7.1.6"
+        }
+      ],
+      "effects": [],
+      "range": "<=6.1.4 || 7.0.0 - 7.1.5",
+      "nodes": [
+        "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser",
+        "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser",
+        "node_modules/postcss-selector-parser"
+      ],
+      "fixAvailable": true
+    },
+    "proxy-addr": {
+      "name": "proxy-addr",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241210,
+          "name": "proxy-addr",
+          "dependency": "proxy-addr",
+          "title": "proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet",
+          "url": "https://github.com/advisories/GHSA-jqcg-44mw-7w3h",
+          "severity": "critical",
+          "cwe": [
+            "CWE-290",
+            "CWE-348",
+            "CWE-697"
+          ],
+          "cvss": {
+            "score": 9.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
+          },
+          "range": ">=1.1.0 <2.0.8"
+        }
+      ],
+      "effects": [],
+      "range": "1.1.0 - 2.0.7",
+      "nodes": [
+        "node_modules/proxy-addr"
+      ],
+      "fixAvailable": true
+    },
+    "qs": {
+      "name": "qs",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1119502,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set",
+          "url": "https://github.com/advisories/GHSA-q8mj-m7cp-5q26",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-476"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.11.1 <=6.15.1"
+        },
+        {
+          "source": 1158506,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs array-limit bypass via bracket-key comma parsing",
+          "url": "https://github.com/advisories/GHSA-x5fp-wj9c-mxmx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.14.2 <=6.15.3"
+        },
+        {
+          "source": 1158507,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs: Denial of Service via Attacker Controlled isBuffer",
+          "url": "https://github.com/advisories/GHSA-4mjr-xmp4-gh2g",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-248",
+            "CWE-703"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.2.5 <6.16.0"
+        },
+        {
+          "source": 1243687,
+          "name": "qs",
+          "dependency": "qs",
+          "title": "qs : qs.stringify with arrayFormat 'comma' throws an uncaught TypeError on array elements carrying a non-callable own toString (DoS)",
+          "url": "https://github.com/advisories/GHSA-6pq8-jhm2-2vcw",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-248",
+            "CWE-704"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=6.7.0 <=6.16.0"
+        }
+      ],
+      "effects": [],
+      "range": "2.2.5 - 6.16.0",
+      "nodes": [
+        "node_modules/body-parser/node_modules/qs",
+        "node_modules/qs"
+      ],
+      "fixAvailable": true
+    },
+    "serialize-javascript": {
+      "name": "serialize-javascript",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1113686,
+          "name": "serialize-javascript",
+          "dependency": "serialize-javascript",
+          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
+          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
+          "severity": "high",
+          "cwe": [
+            "CWE-96"
+          ],
+          "cvss": {
+            "score": 8.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": "<=7.0.2"
+        },
+        {
+          "source": 1119440,
+          "name": "serialize-javascript",
+          "dependency": "serialize-javascript",
+          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
+          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-400",
+            "CWE-834"
+          ],
+          "cvss": {
+            "score": 5.9,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=5.0.0 <7.0.5"
+        },
+        {
+          "source": 1243082,
+          "name": "serialize-javascript",
+          "dependency": "serialize-javascript",
+          "title": "Serialize JavaScript: Cross-site scripting (XSS) via unescaped </script at the end of a serialized function body",
+          "url": "https://github.com/advisories/GHSA-m5mm-p8h7-m29v",
+          "severity": "low",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<7.1.3"
+        }
+      ],
+      "effects": [
+        "copy-webpack-plugin",
+        "css-minimizer-webpack-plugin"
+      ],
+      "range": "<=7.1.2",
+      "nodes": [
+        "node_modules/serialize-javascript"
+      ],
+      "fixAvailable": false
+    },
+    "shell-quote": {
+      "name": "shell-quote",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1120422,
+          "name": "shell-quote",
+          "dependency": "shell-quote",
+          "title": "shell-quote quote() does not escape newlines in object .op values",
+          "url": "https://github.com/advisories/GHSA-w7jw-789q-3m8p",
+          "severity": "critical",
+          "cwe": [
+            "CWE-77",
+            "CWE-78"
+          ],
+          "cvss": {
+            "score": 8.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
+          },
+          "range": ">=1.1.0 <=1.8.3"
+        },
+        {
+          "source": 1123944,
+          "name": "shell-quote",
+          "dependency": "shell-quote",
+          "title": "shell-quote: Quadratic-complexity Denial of Service in `parse()` (CWE-407)",
+          "url": "https://github.com/advisories/GHSA-395f-4hp3-45gv",
+          "severity": "high",
+          "cwe": [
+            "CWE-407"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": "<=1.8.4"
+        }
+      ],
+      "effects": [],
+      "range": "<=1.8.4",
+      "nodes": [
+        "node_modules/shell-quote"
+      ],
+      "fixAvailable": true
+    },
+    "sockjs": {
+      "name": "sockjs",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "uuid"
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": ">=0.3.17",
+      "nodes": [
+        "node_modules/sockjs"
+      ],
+      "fixAvailable": true
+    },
+    "source-map-js": {
+      "name": "source-map-js",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1241209,
+          "name": "source-map-js",
+          "dependency": "source-map-js",
+          "title": "source-map-js allows event-loop denial of service through indexed source-map section offsets",
+          "url": "https://github.com/advisories/GHSA-68fv-2mgg-jv7q",
+          "severity": "high",
+          "cwe": [
+            "CWE-1284"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=1.0.0 <1.2.2"
+        }
+      ],
+      "effects": [],
+      "range": "1.0.0 - 1.2.1",
+      "nodes": [
+        "node_modules/source-map-js"
+      ],
+      "fixAvailable": true
+    },
+    "source-map-resolve": {
+      "name": "source-map-resolve",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        "decode-uri-component"
+      ],
+      "effects": [
+        "css"
+      ],
+      "range": ">=0.5.1",
+      "nodes": [
+        "node_modules/source-map-resolve"
+      ],
+      "fixAvailable": true
+    },
+    "svgo": {
+      "name": "svgo",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1139520,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO removeScripts plugin leaves some executable scripts intact",
+          "url": "https://github.com/advisories/GHSA-2p49-hgcm-8545",
+          "severity": "high",
+          "cwe": [
+            "CWE-79",
+            "CWE-184"
+          ],
+          "cvss": {
+            "score": 8.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.3"
+        },
+        {
+          "source": 1193740,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO: removeScripts incompletely sanitizes executable HTML in SVG foreignObject elements",
+          "url": "https://github.com/advisories/GHSA-4vpr-x523-8j87",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 6.1,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.4"
+        },
+        {
+          "source": 1243426,
+          "name": "svgo",
+          "dependency": "svgo",
+          "title": "SVGO: removeScripts allows executable links through namespace and control-character bypasses",
+          "url": "https://github.com/advisories/GHSA-w27v-7q3p-w38r",
+          "severity": "high",
+          "cwe": [
+            "CWE-79",
+            "CWE-184"
+          ],
+          "cvss": {
+            "score": 8.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N"
+          },
+          "range": ">=1.0.0 <2.8.4"
+        }
+      ],
+      "effects": [],
+      "range": "1.0.0 - 2.8.3",
+      "nodes": [
+        "node_modules/svgo"
+      ],
+      "fixAvailable": true
+    },
+    "uuid": {
+      "name": "uuid",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1119441,
+          "name": "uuid",
+          "dependency": "uuid",
+          "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
+          "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-787",
+            "CWE-1285"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
+          },
+          "range": "<11.1.1"
+        }
+      ],
+      "effects": [
+        "sockjs"
+      ],
+      "range": "<11.1.1",
+      "nodes": [
+        "node_modules/uuid"
+      ],
+      "fixAvailable": true
+    },
+    "vue": {
+      "name": "vue",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1100238,
+          "name": "vue",
+          "dependency": "vue",
+          "title": "ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function",
+          "url": "https://github.com/advisories/GHSA-5j4c-8p2g-v4jx",
+          "severity": "low",
+          "cwe": [
+            "CWE-1333"
+          ],
+          "cvss": {
+            "score": 3.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": ">=2.0.0-alpha.1 <3.0.0-alpha.0"
+        }
+      ],
+      "effects": [
+        "@vue/test-utils",
+        "@wangeditor/editor-for-vue",
+        "element-ui",
+        "vue-jest",
+        "vuex"
+      ],
+      "range": "2.0.0-alpha.1 - 2.7.16",
+      "nodes": [
+        "node_modules/vue"
+      ],
+      "fixAvailable": {
+        "name": "vue",
+        "version": "3.5.44",
+        "isSemVerMajor": true
+      }
+    },
+    "vue-jest": {
+      "name": "vue-jest",
+      "severity": "critical",
+      "isDirect": true,
+      "via": [
+        "babel-plugin-transform-es2015-modules-commonjs",
+        "vue",
+        "vue-template-compiler"
+      ],
+      "effects": [],
+      "range": "1.0.0 - 5.0.0-alpha.1",
+      "nodes": [
+        "node_modules/vue-jest"
+      ],
+      "fixAvailable": {
+        "name": "vue-jest",
+        "version": "0.6.1",
+        "isSemVerMajor": true
+      }
+    },
+    "vue-loader": {
+      "name": "vue-loader",
+      "severity": "moderate",
+      "isDirect": false,
+      "via": [
+        "@vue/component-compiler-utils"
+      ],
+      "effects": [
+        "@vue/cli-service"
+      ],
+      "range": "15.0.0-beta.1 - 15.11.1",
+      "nodes": [
+        "node_modules/@vue/vue-loader-v15"
+      ],
+      "fixAvailable": false
+    },
+    "vue-template-compiler": {
+      "name": "vue-template-compiler",
+      "severity": "moderate",
+      "isDirect": true,
+      "via": [
+        {
+          "source": 1111772,
+          "name": "vue-template-compiler",
+          "dependency": "vue-template-compiler",
+          "title": "vue-template-compiler vulnerable to client-side Cross-Site Scripting (XSS)",
+          "url": "https://github.com/advisories/GHSA-g3ch-rx76-35fx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-79"
+          ],
+          "cvss": {
+            "score": 4.2,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N"
+          },
+          "range": ">=2.0.0 <3.0.0"
+        }
+      ],
+      "effects": [
+        "@vue/cli-service",
+        "@vue/test-utils",
+        "vue-jest"
+      ],
+      "range": ">=2.0.0",
+      "nodes": [
+        "node_modules/vue-template-compiler"
+      ],
+      "fixAvailable": false
+    },
+    "vuex": {
+      "name": "vuex",
+      "severity": "low",
+      "isDirect": true,
+      "via": [
+        "vue"
+      ],
+      "effects": [],
+      "range": "3.1.3 - 3.6.2",
+      "nodes": [
+        "node_modules/vuex"
+      ],
+      "fixAvailable": {
+        "name": "vuex",
+        "version": "4.1.0",
+        "isSemVerMajor": true
+      }
+    },
+    "webpack-dev-middleware": {
+      "name": "webpack-dev-middleware",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1240027,
+          "name": "webpack-dev-middleware",
+          "dependency": "webpack-dev-middleware",
+          "title": "webpack-dev-middleware vulnerable to Path Traversal via non-slash-terminated publicPath",
+          "url": "https://github.com/advisories/GHSA-g84c-rxfj-3j2c",
+          "severity": "high",
+          "cwe": [
+            "CWE-22"
+          ],
+          "cvss": {
+            "score": 7.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N"
+          },
+          "range": "<7.4.5"
+        }
+      ],
+      "effects": [
+        "webpack-dev-server"
+      ],
+      "range": "<7.4.5",
+      "nodes": [
+        "node_modules/webpack-dev-middleware"
+      ],
+      "fixAvailable": true
+    },
+    "webpack-dev-server": {
+      "name": "webpack-dev-server",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1108429,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser",
+          "url": "https://github.com/advisories/GHSA-9jgg-88mc-972h",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-346"
+          ],
+          "cvss": {
+            "score": 6.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.0"
+        },
+        {
+          "source": 1108430,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server users' source code may be stolen when they access a malicious web site",
+          "url": "https://github.com/advisories/GHSA-4v9v-hfq4-rm2v",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.0"
+        },
+        {
+          "source": 1119074,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to cross-origin source code exposure on non-HTTPS origins",
+          "url": "https://github.com/advisories/GHSA-79cf-xcqc-c78w",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N"
+          },
+          "range": "<=5.2.3"
+        },
+        {
+          "source": 1121087,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to HMR WebSocket interception via permissive user proxies",
+          "url": "https://github.com/advisories/GHSA-mx8g-39q3-5c79",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-346",
+            "CWE-441"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<5.2.5"
+        },
+        {
+          "source": 1123965,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to cross-site request forgery via internal developer endpoints",
+          "url": "https://github.com/advisories/GHSA-f5vj-f2hx-8m93",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-352",
+            "CWE-749"
+          ],
+          "cvss": {
+            "score": 4.7,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:L"
+          },
+          "range": "<=5.2.5"
+        },
+        {
+          "source": 1123966,
+          "name": "webpack-dev-server",
+          "dependency": "webpack-dev-server",
+          "title": "webpack-dev-server vulnerable to denial of service via a malformed Host or Origin header",
+          "url": "https://github.com/advisories/GHSA-m28w-2pqf-7qgj",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-20",
+            "CWE-248"
+          ],
+          "cvss": {
+            "score": 5.3,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
+          },
+          "range": "<=5.2.5"
+        },
+        "sockjs",
+        "webpack-dev-middleware"
+      ],
+      "effects": [],
+      "range": "<=5.2.7",
+      "nodes": [
+        "node_modules/webpack-dev-server"
+      ],
+      "fixAvailable": true
+    },
+    "websocket-driver": {
+      "name": "websocket-driver",
+      "severity": "critical",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1123482,
+          "name": "websocket-driver",
+          "dependency": "websocket-driver",
+          "title": "websocket-driver: Resource limit bypass via message compression",
+          "url": "https://github.com/advisories/GHSA-mp7j-qc5w-4988",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-770"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<0.7.5"
+        },
+        {
+          "source": 1123483,
+          "name": "websocket-driver",
+          "dependency": "websocket-driver",
+          "title": "websocket-driver: Message corruption via abuse of protocol length headers",
+          "url": "https://github.com/advisories/GHSA-xv26-6w52-cph6",
+          "severity": "critical",
+          "cwe": [
+            "CWE-130"
+          ],
+          "cvss": {
+            "score": 0,
+            "vectorString": null
+          },
+          "range": "<0.7.5"
+        }
+      ],
+      "effects": [],
+      "range": "<=0.7.4",
+      "nodes": [
+        "node_modules/websocket-driver"
+      ],
+      "fixAvailable": true
+    },
+    "ws": {
+      "name": "ws",
+      "severity": "high",
+      "isDirect": false,
+      "via": [
+        {
+          "source": 1119108,
+          "name": "ws",
+          "dependency": "ws",
+          "title": "ws: Uninitialized memory disclosure",
+          "url": "https://github.com/advisories/GHSA-58qx-3vcg-4xpx",
+          "severity": "moderate",
+          "cwe": [
+            "CWE-908"
+          ],
+          "cvss": {
+            "score": 4.4,
+            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N"
+          },
+          "range": ">=8.0.0 <8.20.1"
+        },
+        {
+          "source": 1123259,
+          "name": "ws",
+          "dependency": "ws",
+          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
+          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770",
+            "CWE-1050"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=8.0.0 <8.21.0"
+        },
+        {
+          "source": 1123260,
+          "name": "ws",
+          "dependency": "ws",
+          "title": "ws: Memory exhaustion DoS from tiny fragments and data chunks",
+          "url": "https://github.com/advisories/GHSA-96hv-2xvq-fx4p",
+          "severity": "high",
+          "cwe": [
+            "CWE-400",
+            "CWE-770",
+            "CWE-1050"
+          ],
+          "cvss": {
+            "score": 7.5,
+            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
+          },
+          "range": ">=7.0.0 <7.5.11"
+        }
+      ],
+      "effects": [],
+      "range": "7.0.0 - 7.5.10 || 8.0.0 - 8.20.1",
+      "nodes": [
+        "node_modules/jsdom/node_modules/ws",
+        "node_modules/webpack-dev-server/node_modules/ws",
+        "node_modules/ws"
+      ],
+      "fixAvailable": true
+    }
+  },
+  "metadata": {
+    "vulnerabilities": {
+      "info": 0,
+      "low": 11,
+      "moderate": 19,
+      "high": 26,
+      "critical": 7,
+      "total": 63
+    },
+    "dependencies": {
+      "prod": 108,
+      "dev": 1115,
+      "optional": 4,
+      "peer": 0,
+      "peerOptional": 0,
+      "total": 1223
+    }
+  }
+}

+ 279 - 0
_run41_agg.json

@@ -0,0 +1,279 @@
+{
+ "source_test_classes": 216,
+ "reported_classes": 216,
+ "tests": 1649,
+ "passed": 1525,
+ "failures": 71,
+ "errors": 49,
+ "skipped": 4,
+ "pass_rate": 92.48,
+ "red_classes": 37,
+ "red_cases": 120,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 112,
+ "pass_rate_ex_env": 92.97,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 216,
+ "txt_only_classes": 0
+}

+ 286 - 0
_run42_agg.json

@@ -0,0 +1,286 @@
+{
+ "source_test_classes": 218,
+ "reported_classes": 218,
+ "tests": 1664,
+ "passed": 1538,
+ "failures": 71,
+ "errors": 51,
+ "skipped": 4,
+ "pass_rate": 92.43,
+ "red_classes": 38,
+ "red_cases": 122,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 114,
+ "pass_rate_ex_env": 92.91,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "TaskControllerReviewTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 17
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 218,
+ "txt_only_classes": 0
+}

+ 286 - 0
_run43_agg.json

@@ -0,0 +1,286 @@
+{
+ "source_test_classes": 218,
+ "reported_classes": 218,
+ "tests": 1664,
+ "passed": 1538,
+ "failures": 71,
+ "errors": 51,
+ "skipped": 4,
+ "pass_rate": 92.43,
+ "red_classes": 38,
+ "red_cases": 122,
+ "env_red_cases": 8,
+ "nonenv_red_cases": 114,
+ "pass_rate_ex_env": 92.91,
+ "reds": [
+  {
+   "class": "ArticleControllerTest",
+   "F": 4,
+   "E": 5,
+   "env": false,
+   "tests": 11
+  },
+  {
+   "class": "GuideOrderControllerTest",
+   "F": 6,
+   "E": 2,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "CfCommissionServiceSettleTest",
+   "F": 8,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "ProductOrderControllerTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "EnergySystemFlowTest",
+   "F": 6,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "ProductOrderServiceFulfillmentMultiModeTest",
+   "F": 0,
+   "E": 6,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideFamilyTaskControllerTest",
+   "F": 3,
+   "E": 2,
+   "env": false,
+   "tests": 20
+  },
+  {
+   "class": "GuideRolePermissionTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 21
+  },
+  {
+   "class": "PlannerBindInviteFlowTest",
+   "F": 4,
+   "E": 1,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "AuthControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 39
+  },
+  {
+   "class": "PaymentControllerTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 12
+  },
+  {
+   "class": "DanReportParseServiceTest",
+   "F": 4,
+   "E": 0,
+   "env": false,
+   "tests": 38
+  },
+  {
+   "class": "FamilyJoinRequestServiceReferrerBindTest",
+   "F": 0,
+   "E": 4,
+   "env": false,
+   "tests": 5
+  },
+  {
+   "class": "ProductControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 16
+  },
+  {
+   "class": "AdminFamilyOverviewControllerTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "DimensionRegistryMapContractTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "GrowthRecordSyncFlowTest",
+   "F": 1,
+   "E": 2,
+   "env": false,
+   "tests": 10
+  },
+  {
+   "class": "ArticleWorkflowTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 14
+  },
+  {
+   "class": "FamilyAdminOverviewServiceTest",
+   "F": 0,
+   "E": 3,
+   "env": true,
+   "tests": 3
+  },
+  {
+   "class": "ProductOrderServiceUpdateExpressFieldTest",
+   "F": 3,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskProgressUpdateTest",
+   "F": 0,
+   "E": 3,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "GuideTeamControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 9
+  },
+  {
+   "class": "HealthDimensionControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 15
+  },
+  {
+   "class": "TaskControllerReviewTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 17
+  },
+  {
+   "class": "WishControllerTest",
+   "F": 2,
+   "E": 0,
+   "env": false,
+   "tests": 29
+  },
+  {
+   "class": "FortuneServiceTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "UserServiceFamilyNameLinkTest",
+   "F": 0,
+   "E": 2,
+   "env": true,
+   "tests": 2
+  },
+  {
+   "class": "ServiceRoleApproveTest",
+   "F": 0,
+   "E": 2,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "FamilyControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "MindFortuneControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 1
+  },
+  {
+   "class": "StatsControllerTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "DailyCheckinStreakFlowTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "GuideModuleIntegrationTest",
+   "F": 0,
+   "E": 1,
+   "env": false,
+   "tests": 4
+  },
+  {
+   "class": "OrchestrationEngineTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 8
+  },
+  {
+   "class": "OrchestrationIntegrationTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 7
+  },
+  {
+   "class": "MembershipPaySwitchTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 6
+  },
+  {
+   "class": "PaymentServiceORDRoutingTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 3
+  },
+  {
+   "class": "TaskPlanServiceTest",
+   "F": 1,
+   "E": 0,
+   "env": false,
+   "tests": 4
+  }
+ ],
+ "silent_missing": [],
+ "xml_only_classes": 218,
+ "txt_only_classes": 0
+}

+ 856 - 0
_run43_reds.json

@@ -0,0 +1,856 @@
+[
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_ByCategory",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_NoDuration",
+  "kind": "error",
+  "ex": "MockitoException",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod()"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "featured_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <2> but was: <0>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_LoggedInUser",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_WithMemberId",
+  "kind": "error",
+  "ex": "MockitoException",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod()"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "featured_DefaultSize",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <1> but was: <0>"
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "list_ByKeyword",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ArticleControllerTest",
+  "case": "recordRead_Success",
+  "kind": "error",
+  "ex": "MockitoException",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod()"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_UserNotFound",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <410>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "switchRole_NotLoggedIn",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <401>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <410>"
+ },
+ {
+  "cls": "AuthControllerTest",
+  "case": "autoLogin_NoOpenid",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <410>"
+ },
+ {
+  "cls": "FamilyControllerTest",
+  "case": "guideBindFamily_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getFamilyTaskOverview_WithChildren",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <1> but was: <null>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getPendingReviewTasks_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <1> but was: <0>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "reviewTask_Success",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "batchReviewTasks_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <3> but was: <0>"
+ },
+ {
+  "cls": "GuideFamilyTaskControllerTest",
+  "case": "getChildTasks_WithPagination",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_NullParams",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderStats_WithData",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_MissingId",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_WrongGuide",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_WithStatusFilter",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrderDetail_NotFound",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <订单不存在> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideOrderControllerTest",
+  "case": "getOrders_WithPagination",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_OwnerCanView",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_MissingId",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <缺少订单ID> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "reviewTask_TeacherAllowed",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "batchReview_TeacherAllowed",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <2> but was: <0>"
+ },
+ {
+  "cls": "GuideRolePermissionTest",
+  "case": "orderDetail_NotOwnerDenied",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <无权查看> but was: <规划师未完成【planner】培训认证,暂不可提供该类服务>"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "testGetTeamStats_NoInviteCode",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <0> but was: <null>"
+ },
+ {
+  "cls": "GuideTeamControllerTest",
+  "case": "testGetTeamStats_WithMembers",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <3> but was: <null>"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "history_missingMemberId",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <200>"
+ },
+ {
+  "cls": "HealthDimensionControllerTest",
+  "case": "overview_missingMemberId",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <200>"
+ },
+ {
+  "cls": "MindFortuneControllerTest",
+  "case": "testGetTodayFortuneWithoutAuth",
+  "kind": "failure",
+  "ex": "AssertionError",
+  "msg": "JSON path \"$.code\" expected:<401> but was:<400>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "handleWechatCallback_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "handleAlipayCallback_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "createWechatPayOrder_ReturnMapNotNull",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "PaymentControllerTest",
+  "case": "createWechatPayOrder_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <ORD20260622001> but was: <null>"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_PublishSuccess",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_PublishSuccess(ProductControlle"
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_NotOwner",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_NotOwner(ProductControllerTest."
+ },
+ {
+  "cls": "ProductControllerTest",
+  "case": "shelve_UnshelveSuccess",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Invalid use of argument matchers! 3 matchers expected, 1 recorded: -> at com.etotem.cfc.controller.ProductControllerTest.shelve_UnshelveSuccess(ProductControll"
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_Success",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_FilterByStatus",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_AllStatus",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_NotFound",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "myOrders_Empty",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderControllerTest",
+  "case": "confirm_NotYetShipped",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "StatsControllerTest",
+  "case": "familyCompletion_NoFamily",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "TaskControllerReviewTest",
+  "case": "pendingReview_directCall_uniformResultShape",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "TaskControllerReviewTest",
+  "case": "pendingReview_parent_success_returnsList",
+  "kind": "error",
+  "ex": "NestedServletException",
+  "msg": "Request processing failed; nested exception is java.lang.NullPointerException"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "getWishes_MissingCondition",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <请指定查询条件(childId或familyId)> but was: <请指定查询条件(memberId或familyId)>"
+ },
+ {
+  "cls": "WishControllerTest",
+  "case": "getPendingWishes_NoFamilyId",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "tasks_分页",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "overview_成功",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "AdminFamilyOverviewControllerTest",
+  "case": "overview_非admin拒绝",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_unknownLegacy_returnsNullData",
+  "kind": "failure",
+  "ex": "AssertionError",
+  "msg": "JSON path \"$.data\" Expected: null      but: was \"unknown_legacy_xyz\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_emptyLegacy_returnsNullData",
+  "kind": "failure",
+  "ex": "AssertionError",
+  "msg": "JSON path \"$.data\" Expected: null      but: was \"\""
+ },
+ {
+  "cls": "DimensionRegistryMapContractTest",
+  "case": "map_missingLegacy_returnsBadRequest",
+  "kind": "failure",
+  "ex": "AssertionError",
+  "msg": "Status expected:<400> but was:<200>"
+ },
+ {
+  "cls": "DailyCheckinStreakFlowTest",
+  "case": "childDeletesCheckin_Success",
+  "kind": "error",
+  "ex": "MockitoException",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod()"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "parentQueriesEnergyLogs_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "childExchangesWishWithEnergy_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "childExchangesWithInsufficientEnergy_Fails",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "userWithoutFamily_Fails",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <500> but was: <5001>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "parentGetsEnergyOverview_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "EnergySystemFlowTest",
+  "case": "taskCompletionGrantsEnergy_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <500>"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentUploadsHealthReport_Success",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentCreatesRecordWithoutChild_Fails",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <true> but was: <false>"
+ },
+ {
+  "cls": "GrowthRecordSyncFlowTest",
+  "case": "parentCreatesRecordWithOrder_Success",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "GuideModuleIntegrationTest",
+  "case": "testGuidePackageCreationFlow",
+  "kind": "error",
+  "ex": "DataIntegrityViolationException",
+  "msg": " ### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'platform_fee' at row 1 #"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentConfirmsBind_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "guideViewsBoundFamilies_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: not <null>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentBindsSameGuideTwice_Fails",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <400> but was: <403>"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "parentUnbindsGuide_Success",
+  "kind": "error",
+  "ex": "MockitoException",
+  "msg": " Only void methods can doNothing()! Example of correct use of doNothing():     doNothing().     doThrow(new RuntimeException())     .when(mock).someVoidMethod()"
+ },
+ {
+  "cls": "PlannerBindInviteFlowTest",
+  "case": "completeInviteBindFlow_Success",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <200> but was: <403>"
+ },
+ {
+  "cls": "OrchestrationEngineTest",
+  "case": "testOnTaskFailed_FoundNode_ThenMarkFailedAndEvaluateFlow",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": " expected: \"manual_fail\"  but was: null"
+ },
+ {
+  "cls": "OrchestrationIntegrationTest",
+  "case": "testEvaluateFlow_AndNode_AllCompleted_Triggered",
+  "kind": "failure",
+  "ex": "AssertionError",
+  "msg": " Expecting actual:   \"failed\" to be in:   [\"in_progress\", \"pending\"] "
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_pending",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_draft",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "ArticleWorkflowTest",
+  "case": "reDraft_notRejected_published",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_F03a发放_自动创建感恩记录",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: octopusEffectRecordMapper.insert(<any>); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动创建感恩记录(CfCommission"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_同家庭引荐人跳过_顺延到下一级拿F03a",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1020L,     \"F03a\",     1L,     <any> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.set"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_商品订单实付与分润基数分离",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServic"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_两级销售奖_F03a按团队档位_F03b按自身档位",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServic"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_档位比例超规则上限_按上限封顶",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServic"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_落P点消费日志_基数与订单对应",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: ppointConsumptionLogMapper.insert(     <Capturing argument> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_落P点消费日"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_最多两级_第三级引荐人不发放",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     1010L,     \"F03a\",     1L,     <any> ); -> at com.etotem.cfc.service.CfCommissionServiceSettleTest.set"
+ },
+ {
+  "cls": "CfCommissionServiceSettleTest",
+  "case": "settle_推荐人分润只走earnByRule_不再写旧分佣流水",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Wanted but not invoked: cfBalanceService.earnByRule(     <any long>,     <any string>,     <any long>,     <any> ); -> at com.etotem.cfc.service.CfCommissionSe"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA2_standardCoreLiteracyFormat",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <俊辰> but was: <null>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseB4_regression",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "B4 解析应正常 ==> expected: <false> but was: <true>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA1_shouldFallbackToGenericPattern",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "应通过fallback提取感知觉百分位 ==> expected: not <null>"
+ },
+ {
+  "cls": "DanReportParseServiceTest",
+  "case": "testParseA1_shouldExtractCognitiveDimensionFromDetailPage",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "应有processingSpeed_score ==> expected: not <null>"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "overview_计数与明细",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "overview_家庭不存在",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyAdminOverviewServiceTest",
+  "case": "pageTasks_分页",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_inviterWithoutReferrer_doesNotBind",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_tokenPath_userWithReferrer_doesNotRebind",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_tokenPath_newUserWithoutReferrer_bindsInviterReferrer",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "FamilyJoinRequestServiceReferrerBindTest",
+  "case": "approve_shortCodePath_noInviter_doesNotBind",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "FortuneServiceTest",
+  "case": "testCalculateLuckyDirection",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "FortuneServiceTest",
+  "case": "testGenerateIsDeterministic",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "MembershipPaySwitchTest",
+  "case": "createOrderWithPayType_virtualEnabled_configMissing_returnsNull",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <null> but was: <{levelCode=FAMILY, amount=131400, orderNo=ORD1793883676366005E04C, payType=wechat, wechatPayParams={}, groupNo=null, totalPeriods=1, "
+ },
+ {
+  "cls": "PaymentServiceORDRoutingTest",
+  "case": "unknownPrefix_routesToHandlePaymentCallback",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <SUCCESS> but was: <FAIL>"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "resolveShipType_deliveryMethod3_requiresExplicitShipType",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_local_syncsWechatWithLogisticsType2",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrder"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_express_requiresTrackingAndCompany",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_selfPickup_syncsWechatWithLogisticsType4",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrder"
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "ship_virtual_rejectsManualShipAndIdempotent",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ProductOrderServiceFulfillmentMultiModeTest",
+  "case": "autoShipVirtualOrder_onPaySuccess",
+  "kind": "error",
+  "ex": "InvalidUseOfMatchersException",
+  "msg": " Misplaced or misused argument matcher detected here:  -> at com.etotem.cfc.service.ProductOrderServiceFulfillmentMultiModeTest.stubBuyerWithOpenid(ProductOrder"
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "updateExpress_fullUpdate_writesLogisticsColumnsAndSyncsWechat",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"YT9876543210\",     \"圆通速递\",     <any> ); -> at com."
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "ship_writesLogisticsColumns",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     \"JD0000000001\",     \"京东物流\",     <any> ); -> at com."
+ },
+ {
+  "cls": "ProductOrderServiceUpdateExpressFieldTest",
+  "case": "updateExpress_onlyCompany_trackingFallsBackToPersistedLogisticsNo",
+  "kind": "failure",
+  "ex": "",
+  "msg": " Argument(s) are different! Wanted: wechatService.uploadShippingInfo(     \"O20261018001\",     \"oABC123\",     <Capturing argument>,     \"中通快递\",     <any> ); -> a"
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "realName变化_联动家庭名",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "UserServiceFamilyNameLinkTest",
+  "case": "realName未变_不改家庭名",
+  "kind": "error",
+  "ex": "IllegalStateException",
+  "msg": "Failed to load ApplicationContext"
+ },
+ {
+  "cls": "ServiceRoleApproveTest",
+  "case": "planner_已有同手机号admin则更新不重复插入",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "ServiceRoleApproveTest",
+  "case": "planner_通过后写teacher_status并创建admins记录",
+  "kind": "error",
+  "ex": "NullPointerException",
+  "msg": ""
+ },
+ {
+  "cls": "TaskPlanServiceTest",
+  "case": "applyAndActivate_无active实例时新建并置active",
+  "kind": "failure",
+  "ex": "AssertionFailedError",
+  "msg": "expected: <100> but was: <null>"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_withoutFamilyMemberId_fallsBackToUserIdLookup",
+  "kind": "error",
+  "ex": "NoSuchFieldException",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_noDeadlineTask_awardsBasePointsInsteadOfPenalty",
+  "kind": "error",
+  "ex": "NoSuchFieldException",
+  "msg": "platformPointsService"
+ },
+ {
+  "cls": "TaskProgressUpdateTest",
+  "case": "updateProgress_withExplicitFamilyMemberId_doesNotFallbackToUserIdLookup",
+  "kind": "error",
+  "ex": "NoSuchFieldException",
+  "msg": "platformPointsService"
+ }
+]

+ 15 - 0
_surefire_backup_r34/2026-11-04T22-15-11_513-jvmRun1.dump

@@ -0,0 +1,15 @@
+# Created at 2026-11-04T22:57:52.445
+System.exit() or native command error interrupted process checker.
+java.lang.IllegalStateException: error [STOPPED] to read process 7636
+	at org.apache.maven.surefire.booter.PpidChecker.checkProcessInfo(PpidChecker.java:145)
+	at org.apache.maven.surefire.booter.PpidChecker.isProcessAlive(PpidChecker.java:116)
+	at org.apache.maven.surefire.booter.ForkedBooter$2.run(ForkedBooter.java:214)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+
+

Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.common.AdminRolesTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.common.ResultCodeFactoryTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.config.AttributionStage1FoundationTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.config.DatabaseInitializerSeedTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.config.FamilyAccessInterceptorTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.config.JwtInterceptorLoginRequiredTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.AIChatControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ActivityControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ArticleCategoryControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ArticleControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.AttributionControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.AttributionSurveyRoutingTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.AuthControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.DailyTaskControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.DanAssessmentControllerGetActiveMaterialTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.DimensionAdminControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.EnergyControllerGrantEnergyTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.FamilyControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideFamilyTaskControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideOrderControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideRolePermissionTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.GuideTeamControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthCheckinCfEarnCallSiteTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthDimensionControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthPlanDeleteControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerCreateReportTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerListPaginationTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.HealthReportControllerProxyParseBindingTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.IndicatorControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.IndicatorFavoriteControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.PaymentControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ProductControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ProductOrderControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.StatsControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.WishControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminAuthControllerLoginStatusTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminAuthWechatScanTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminButlerControllerEnvelopeTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminCommissionConfigControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.AdminProductControllerBatchShelveTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.ReportParserAdminControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.admin.SupplyTeamControllerInviteTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ai.AIChatControllerGateTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.ai.ButlerControllerGateTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerAddMemberTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerListTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.family.FamilyMembersControllerRenameFamilyTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TeacherMessageControllerMyTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TrainingPlanControllerGetPlanDetailTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.guide.TrainingPlanControllerGetPlanListTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.controller.mind.MindFortuneControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.dto.ActivityDTOTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.DailyCheckinStreakFlowTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.EnergySystemFlowTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.GrowthRecordSyncFlowTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.GuideModuleIntegrationTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.PlannerBindInviteFlowTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.AdminFamilyOverviewControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.AdminSpecialPriceControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.integration.controller.SpecialPriceControllerTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.orchestration.OrchestrationEngineTest.xml


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
_surefire_backup_r34/TEST-com.etotem.cfc.orchestration.OrchestrationIntegrationTest.xml


Некоторые файлы не были показаны из-за большого количества измененных файлов