@chainlesschain/personal-data-hub 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/__tests__/adapters/edu-huawei-learning-live.test.js +198 -0
  2. package/__tests__/adapters/edu-zuoyebang-live.test.js +226 -0
  3. package/__tests__/adapters/family-23-collectors-scaffold.test.js +5 -1
  4. package/__tests__/adapters/finance-alipay-live.test.js +258 -0
  5. package/__tests__/adapters/game-genshin-live.test.js +238 -0
  6. package/__tests__/adapters/game-genshin-scaffold.test.js +4 -3
  7. package/__tests__/adapters/game-honor-of-kings-live.test.js +230 -0
  8. package/__tests__/adapters/netease-music-live.test.js +244 -0
  9. package/__tests__/adapters/social-douyin-adb-aweme-detail.test.js +165 -0
  10. package/__tests__/adapters/social-douyin-adb-watch-history.test.js +192 -0
  11. package/__tests__/adapters/social-toutiao-adb-account-reader.test.js +135 -0
  12. package/__tests__/adapters/social-toutiao-adb-api-client.test.js +89 -0
  13. package/__tests__/adapters/social-toutiao-adb-collector.test.js +95 -2
  14. package/__tests__/adapters/social-toutiao-adb-cookies-extension.test.js +30 -0
  15. package/__tests__/adapters/social-xiaohongshu-adb-cookies-extension.test.js +0 -0
  16. package/lib/adapters/_live-json-helpers.js +50 -0
  17. package/lib/adapters/edu-huawei-learning/api-client.js +178 -5
  18. package/lib/adapters/edu-huawei-learning/index.js +83 -9
  19. package/lib/adapters/edu-zuoyebang/api-client.js +181 -6
  20. package/lib/adapters/edu-zuoyebang/index.js +83 -9
  21. package/lib/adapters/finance-alipay/api-client.js +268 -6
  22. package/lib/adapters/finance-alipay/index.js +85 -9
  23. package/lib/adapters/game-genshin/api-client.js +207 -6
  24. package/lib/adapters/game-genshin/index.js +90 -9
  25. package/lib/adapters/game-honor-of-kings/api-client.js +235 -12
  26. package/lib/adapters/game-honor-of-kings/index.js +80 -9
  27. package/lib/adapters/netease-music/api-client.js +284 -0
  28. package/lib/adapters/netease-music/index.js +85 -9
  29. package/lib/adapters/social-douyin/index.js +2 -0
  30. package/lib/adapters/social-douyin-adb/aweme-detail-client.js +119 -0
  31. package/lib/adapters/social-douyin-adb/collector.js +114 -0
  32. package/lib/adapters/social-douyin-adb/index.js +18 -1
  33. package/lib/adapters/social-douyin-adb/watch-history-reader.js +188 -0
  34. package/lib/adapters/social-toutiao-adb/account-reader.js +179 -0
  35. package/lib/adapters/social-toutiao-adb/api-client.js +41 -17
  36. package/lib/adapters/social-toutiao-adb/collector.js +55 -19
  37. package/lib/adapters/social-toutiao-adb/cookies-extension.js +21 -1
  38. package/lib/adapters/social-toutiao-adb/index.js +6 -0
  39. package/lib/adapters/social-xiaohongshu-adb/cookies-extension.js +19 -1
  40. package/lib/index.js +1 -1
  41. package/package.json +1 -1
@@ -36,6 +36,7 @@ const {
36
36
  readChromiumCookies,
37
37
  } = require("../social-bilibili-adb/chromium-cookies-reader");
38
38
 
39
+ const XHS_PACKAGE = "com.xingin.xhs";
39
40
  const XHS_COOKIES_REMOTE_PATH =
40
41
  "/data/data/com.xingin.xhs/app_webview/Default/Cookies";
41
42
 
@@ -56,10 +57,27 @@ async function pullCookiesViaSu(adb, serial, opts) {
56
57
  );
57
58
  const lsLine = lsOut.replace(/\r+$/gm, "").trim();
58
59
  if (lsLine === "NOT_FOUND" || lsLine === "") {
60
+ // Distinguish "app not installed" from "installed but no webview cookie
61
+ // store yet" (logged out / never opened an in-app WebView). Both leave the
62
+ // Cookies file absent, but the user action differs — so probe pm.
63
+ const pmOut = await adb(
64
+ ["shell", "su", "-c", `pm list packages ${XHS_PACKAGE}`],
65
+ adbOpts,
66
+ );
67
+ const installed = pmOut.replace(/\r/g, "").includes(`package:${XHS_PACKAGE}`);
68
+ if (installed) {
69
+ throw new Error(
70
+ "XHS_NO_WEBVIEW_COOKIES: Xiaohongshu App 已安装但无 WebView cookie 库 (" +
71
+ XHS_COOKIES_REMOTE_PATH +
72
+ " 不存在)。请在 App 内登录,并打开任意笔记/网页(触发内置 WebView 写 cookie)后重试。",
73
+ );
74
+ }
59
75
  throw new Error(
60
76
  "XHS_NOT_INSTALLED: " +
61
77
  XHS_COOKIES_REMOTE_PATH +
62
- " not found. Install Xiaohongshu App + log in once on the phone, then retry.",
78
+ " not found and package " +
79
+ XHS_PACKAGE +
80
+ " is not installed. Install Xiaohongshu App + log in once on the phone, then retry.",
63
81
  );
64
82
  }
65
83
  const idOut = await adb(["shell", "su", "-c", "id -u"], adbOpts);
package/lib/index.js CHANGED
@@ -53,7 +53,7 @@ const { DouyinAdapter } = require("./adapters/social-douyin");
53
53
  const { XiaohongshuAdapter } = require("./adapters/social-xiaohongshu");
54
54
  const { ToutiaoAdapter } = require("./adapters/social-toutiao");
55
55
  const { KuaishouAdapter } = require("./adapters/social-kuaishou");
56
- // FAMILY-23 v0.1 — 家庭守护 telemetry collectors (cookie-scrape placeholder).
56
+ // FAMILY-23 v0.2 — 家庭守护 telemetry collectors (snapshot + live fetcher 双路).
57
57
  const { GenshinAdapter } = require("./adapters/game-genshin");
58
58
  const { HonorOfKingsAdapter } = require("./adapters/game-honor-of-kings");
59
59
  const { ZuoyebangAdapter } = require("./adapters/edu-zuoyebang");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chainlesschain/personal-data-hub",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Personal Data Hub — UnifiedSchema + validators + KG ingest helpers for the data-back-to-the-individual middleware",
5
5
  "type": "commonjs",
6
6
  "main": "lib/index.js",