opclawtm 1.4.0

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 (350) hide show
  1. package/README.md +136 -0
  2. package/dist/bin/team-manager.d.ts +6 -0
  3. package/dist/bin/team-manager.d.ts.map +1 -0
  4. package/dist/bin/team-manager.js +36 -0
  5. package/dist/bin/team-manager.js.map +1 -0
  6. package/dist/bin/team-setup.d.ts +7 -0
  7. package/dist/bin/team-setup.d.ts.map +1 -0
  8. package/dist/bin/team-setup.js +66 -0
  9. package/dist/bin/team-setup.js.map +1 -0
  10. package/dist/bin/team-uninstall.d.ts +6 -0
  11. package/dist/bin/team-uninstall.d.ts.map +1 -0
  12. package/dist/bin/team-uninstall.js +91 -0
  13. package/dist/bin/team-uninstall.js.map +1 -0
  14. package/dist/cli/commands/agent.command.d.ts +43 -0
  15. package/dist/cli/commands/agent.command.d.ts.map +1 -0
  16. package/dist/cli/commands/agent.command.js +223 -0
  17. package/dist/cli/commands/agent.command.js.map +1 -0
  18. package/dist/cli/commands/checklist.command.d.ts +35 -0
  19. package/dist/cli/commands/checklist.command.d.ts.map +1 -0
  20. package/dist/cli/commands/checklist.command.js +77 -0
  21. package/dist/cli/commands/checklist.command.js.map +1 -0
  22. package/dist/cli/commands/dept.command.d.ts +32 -0
  23. package/dist/cli/commands/dept.command.d.ts.map +1 -0
  24. package/dist/cli/commands/dept.command.js +92 -0
  25. package/dist/cli/commands/dept.command.js.map +1 -0
  26. package/dist/cli/commands/document.command.d.ts +37 -0
  27. package/dist/cli/commands/document.command.d.ts.map +1 -0
  28. package/dist/cli/commands/document.command.js +146 -0
  29. package/dist/cli/commands/document.command.js.map +1 -0
  30. package/dist/cli/commands/domain.command.d.ts +36 -0
  31. package/dist/cli/commands/domain.command.d.ts.map +1 -0
  32. package/dist/cli/commands/domain.command.js +97 -0
  33. package/dist/cli/commands/domain.command.js.map +1 -0
  34. package/dist/cli/commands/feishu.command.d.ts +63 -0
  35. package/dist/cli/commands/feishu.command.d.ts.map +1 -0
  36. package/dist/cli/commands/feishu.command.js +433 -0
  37. package/dist/cli/commands/feishu.command.js.map +1 -0
  38. package/dist/cli/commands/job.command.d.ts +39 -0
  39. package/dist/cli/commands/job.command.d.ts.map +1 -0
  40. package/dist/cli/commands/job.command.js +168 -0
  41. package/dist/cli/commands/job.command.js.map +1 -0
  42. package/dist/cli/commands/license.command.d.ts +22 -0
  43. package/dist/cli/commands/license.command.d.ts.map +1 -0
  44. package/dist/cli/commands/license.command.js +68 -0
  45. package/dist/cli/commands/license.command.js.map +1 -0
  46. package/dist/cli/commands/message-failure.command.d.ts +44 -0
  47. package/dist/cli/commands/message-failure.command.d.ts.map +1 -0
  48. package/dist/cli/commands/message-failure.command.js +137 -0
  49. package/dist/cli/commands/message-failure.command.js.map +1 -0
  50. package/dist/cli/commands/message.command.d.ts +47 -0
  51. package/dist/cli/commands/message.command.d.ts.map +1 -0
  52. package/dist/cli/commands/message.command.js +129 -0
  53. package/dist/cli/commands/message.command.js.map +1 -0
  54. package/dist/cli/commands/node.command.d.ts +76 -0
  55. package/dist/cli/commands/node.command.d.ts.map +1 -0
  56. package/dist/cli/commands/node.command.js +251 -0
  57. package/dist/cli/commands/node.command.js.map +1 -0
  58. package/dist/cli/commands/role-flow.command.d.ts +12 -0
  59. package/dist/cli/commands/role-flow.command.d.ts.map +1 -0
  60. package/dist/cli/commands/role-flow.command.js +54 -0
  61. package/dist/cli/commands/role-flow.command.js.map +1 -0
  62. package/dist/cli/commands/skill-pack.command.d.ts +41 -0
  63. package/dist/cli/commands/skill-pack.command.d.ts.map +1 -0
  64. package/dist/cli/commands/skill-pack.command.js +137 -0
  65. package/dist/cli/commands/skill-pack.command.js.map +1 -0
  66. package/dist/cli/commands/status.command.d.ts +8 -0
  67. package/dist/cli/commands/status.command.d.ts.map +1 -0
  68. package/dist/cli/commands/status.command.js +61 -0
  69. package/dist/cli/commands/status.command.js.map +1 -0
  70. package/dist/cli/commands/task.command.d.ts +105 -0
  71. package/dist/cli/commands/task.command.d.ts.map +1 -0
  72. package/dist/cli/commands/task.command.js +402 -0
  73. package/dist/cli/commands/task.command.js.map +1 -0
  74. package/dist/cli/commands/user.command.d.ts +43 -0
  75. package/dist/cli/commands/user.command.d.ts.map +1 -0
  76. package/dist/cli/commands/user.command.js +134 -0
  77. package/dist/cli/commands/user.command.js.map +1 -0
  78. package/dist/cli/index.d.ts +7 -0
  79. package/dist/cli/index.d.ts.map +1 -0
  80. package/dist/cli/index.js +863 -0
  81. package/dist/cli/index.js.map +1 -0
  82. package/dist/cli/tui/index.d.ts +45 -0
  83. package/dist/cli/tui/index.d.ts.map +1 -0
  84. package/dist/cli/tui/index.js +470 -0
  85. package/dist/cli/tui/index.js.map +1 -0
  86. package/dist/cli/tui/menus/agent-manage.menu.d.ts +8 -0
  87. package/dist/cli/tui/menus/agent-manage.menu.d.ts.map +1 -0
  88. package/dist/cli/tui/menus/agent-manage.menu.js +614 -0
  89. package/dist/cli/tui/menus/agent-manage.menu.js.map +1 -0
  90. package/dist/cli/tui/menus/dept-manage.menu.d.ts +8 -0
  91. package/dist/cli/tui/menus/dept-manage.menu.d.ts.map +1 -0
  92. package/dist/cli/tui/menus/dept-manage.menu.js +299 -0
  93. package/dist/cli/tui/menus/dept-manage.menu.js.map +1 -0
  94. package/dist/cli/tui/menus/domain-manage.menu.d.ts +8 -0
  95. package/dist/cli/tui/menus/domain-manage.menu.d.ts.map +1 -0
  96. package/dist/cli/tui/menus/domain-manage.menu.js +208 -0
  97. package/dist/cli/tui/menus/domain-manage.menu.js.map +1 -0
  98. package/dist/cli/tui/menus/feishu.menu.d.ts +8 -0
  99. package/dist/cli/tui/menus/feishu.menu.d.ts.map +1 -0
  100. package/dist/cli/tui/menus/feishu.menu.js +1727 -0
  101. package/dist/cli/tui/menus/feishu.menu.js.map +1 -0
  102. package/dist/cli/tui/menus/job-manage.menu.d.ts +16 -0
  103. package/dist/cli/tui/menus/job-manage.menu.d.ts.map +1 -0
  104. package/dist/cli/tui/menus/job-manage.menu.js +734 -0
  105. package/dist/cli/tui/menus/job-manage.menu.js.map +1 -0
  106. package/dist/cli/tui/menus/license.menu.d.ts +12 -0
  107. package/dist/cli/tui/menus/license.menu.d.ts.map +1 -0
  108. package/dist/cli/tui/menus/license.menu.js +164 -0
  109. package/dist/cli/tui/menus/license.menu.js.map +1 -0
  110. package/dist/cli/tui/menus/main.menu.d.ts +10 -0
  111. package/dist/cli/tui/menus/main.menu.d.ts.map +1 -0
  112. package/dist/cli/tui/menus/main.menu.js +94 -0
  113. package/dist/cli/tui/menus/main.menu.js.map +1 -0
  114. package/dist/cli/tui/menus/reset.menu.d.ts +10 -0
  115. package/dist/cli/tui/menus/reset.menu.d.ts.map +1 -0
  116. package/dist/cli/tui/menus/reset.menu.js +767 -0
  117. package/dist/cli/tui/menus/reset.menu.js.map +1 -0
  118. package/dist/cli/tui/menus/status.menu.d.ts +8 -0
  119. package/dist/cli/tui/menus/status.menu.d.ts.map +1 -0
  120. package/dist/cli/tui/menus/status.menu.js +123 -0
  121. package/dist/cli/tui/menus/status.menu.js.map +1 -0
  122. package/dist/cli/tui/menus/task-manage.menu.d.ts +11 -0
  123. package/dist/cli/tui/menus/task-manage.menu.d.ts.map +1 -0
  124. package/dist/cli/tui/menus/task-manage.menu.js +129 -0
  125. package/dist/cli/tui/menus/task-manage.menu.js.map +1 -0
  126. package/dist/cli/tui/menus/team-create.menu.d.ts +8 -0
  127. package/dist/cli/tui/menus/team-create.menu.d.ts.map +1 -0
  128. package/dist/cli/tui/menus/team-create.menu.js +353 -0
  129. package/dist/cli/tui/menus/team-create.menu.js.map +1 -0
  130. package/dist/config.d.ts +9 -0
  131. package/dist/config.d.ts.map +1 -0
  132. package/dist/config.js +74 -0
  133. package/dist/config.js.map +1 -0
  134. package/dist/core/auth/index.d.ts +6 -0
  135. package/dist/core/auth/index.d.ts.map +1 -0
  136. package/dist/core/auth/index.js +22 -0
  137. package/dist/core/auth/index.js.map +1 -0
  138. package/dist/core/auth/middleware.d.ts +73 -0
  139. package/dist/core/auth/middleware.d.ts.map +1 -0
  140. package/dist/core/auth/middleware.js +456 -0
  141. package/dist/core/auth/middleware.js.map +1 -0
  142. package/dist/core/auth/storage.d.ts +38 -0
  143. package/dist/core/auth/storage.d.ts.map +1 -0
  144. package/dist/core/auth/storage.js +280 -0
  145. package/dist/core/auth/storage.js.map +1 -0
  146. package/dist/core/keys/public.pem +9 -0
  147. package/dist/core/models/types.d.ts +426 -0
  148. package/dist/core/models/types.d.ts.map +1 -0
  149. package/dist/core/models/types.js +9 -0
  150. package/dist/core/models/types.js.map +1 -0
  151. package/dist/core/services/agent-template.service.d.ts +49 -0
  152. package/dist/core/services/agent-template.service.d.ts.map +1 -0
  153. package/dist/core/services/agent-template.service.js +88 -0
  154. package/dist/core/services/agent-template.service.js.map +1 -0
  155. package/dist/core/services/agent.service.d.ts +120 -0
  156. package/dist/core/services/agent.service.d.ts.map +1 -0
  157. package/dist/core/services/agent.service.js +381 -0
  158. package/dist/core/services/agent.service.js.map +1 -0
  159. package/dist/core/services/auth-profiles.service.d.ts +93 -0
  160. package/dist/core/services/auth-profiles.service.d.ts.map +1 -0
  161. package/dist/core/services/auth-profiles.service.js +220 -0
  162. package/dist/core/services/auth-profiles.service.js.map +1 -0
  163. package/dist/core/services/checklist.service.d.ts +58 -0
  164. package/dist/core/services/checklist.service.d.ts.map +1 -0
  165. package/dist/core/services/checklist.service.js +240 -0
  166. package/dist/core/services/checklist.service.js.map +1 -0
  167. package/dist/core/services/config-tracker.service.d.ts +119 -0
  168. package/dist/core/services/config-tracker.service.d.ts.map +1 -0
  169. package/dist/core/services/config-tracker.service.js +1093 -0
  170. package/dist/core/services/config-tracker.service.js.map +1 -0
  171. package/dist/core/services/crypto.service.d.ts +102 -0
  172. package/dist/core/services/crypto.service.d.ts.map +1 -0
  173. package/dist/core/services/crypto.service.js +377 -0
  174. package/dist/core/services/crypto.service.js.map +1 -0
  175. package/dist/core/services/dept.service.d.ts +92 -0
  176. package/dist/core/services/dept.service.d.ts.map +1 -0
  177. package/dist/core/services/dept.service.js +260 -0
  178. package/dist/core/services/dept.service.js.map +1 -0
  179. package/dist/core/services/document.service.d.ts +131 -0
  180. package/dist/core/services/document.service.d.ts.map +1 -0
  181. package/dist/core/services/document.service.js +368 -0
  182. package/dist/core/services/document.service.js.map +1 -0
  183. package/dist/core/services/domain.service.d.ts +50 -0
  184. package/dist/core/services/domain.service.d.ts.map +1 -0
  185. package/dist/core/services/domain.service.js +98 -0
  186. package/dist/core/services/domain.service.js.map +1 -0
  187. package/dist/core/services/feishu.service.d.ts +124 -0
  188. package/dist/core/services/feishu.service.d.ts.map +1 -0
  189. package/dist/core/services/feishu.service.js +165 -0
  190. package/dist/core/services/feishu.service.js.map +1 -0
  191. package/dist/core/services/index.d.ts +27 -0
  192. package/dist/core/services/index.d.ts.map +1 -0
  193. package/dist/core/services/index.js +89 -0
  194. package/dist/core/services/index.js.map +1 -0
  195. package/dist/core/services/job.service.d.ts +60 -0
  196. package/dist/core/services/job.service.d.ts.map +1 -0
  197. package/dist/core/services/job.service.js +190 -0
  198. package/dist/core/services/job.service.js.map +1 -0
  199. package/dist/core/services/log.service.d.ts +111 -0
  200. package/dist/core/services/log.service.d.ts.map +1 -0
  201. package/dist/core/services/log.service.js +237 -0
  202. package/dist/core/services/log.service.js.map +1 -0
  203. package/dist/core/services/message-failure.service.d.ts +65 -0
  204. package/dist/core/services/message-failure.service.d.ts.map +1 -0
  205. package/dist/core/services/message-failure.service.js +112 -0
  206. package/dist/core/services/message-failure.service.js.map +1 -0
  207. package/dist/core/services/message.service.d.ts +122 -0
  208. package/dist/core/services/message.service.d.ts.map +1 -0
  209. package/dist/core/services/message.service.js +374 -0
  210. package/dist/core/services/message.service.js.map +1 -0
  211. package/dist/core/services/node.service.d.ts +150 -0
  212. package/dist/core/services/node.service.d.ts.map +1 -0
  213. package/dist/core/services/node.service.js +257 -0
  214. package/dist/core/services/node.service.js.map +1 -0
  215. package/dist/core/services/openclaw-config.service.d.ts +187 -0
  216. package/dist/core/services/openclaw-config.service.d.ts.map +1 -0
  217. package/dist/core/services/openclaw-config.service.js +268 -0
  218. package/dist/core/services/openclaw-config.service.js.map +1 -0
  219. package/dist/core/services/preset-loader.service.d.ts +80 -0
  220. package/dist/core/services/preset-loader.service.d.ts.map +1 -0
  221. package/dist/core/services/preset-loader.service.js +379 -0
  222. package/dist/core/services/preset-loader.service.js.map +1 -0
  223. package/dist/core/services/role-flow.service.d.ts +21 -0
  224. package/dist/core/services/role-flow.service.d.ts.map +1 -0
  225. package/dist/core/services/role-flow.service.js +47 -0
  226. package/dist/core/services/role-flow.service.js.map +1 -0
  227. package/dist/core/services/setup.service.d.ts +46 -0
  228. package/dist/core/services/setup.service.d.ts.map +1 -0
  229. package/dist/core/services/setup.service.js +336 -0
  230. package/dist/core/services/setup.service.js.map +1 -0
  231. package/dist/core/services/skill-pack.service.d.ts +56 -0
  232. package/dist/core/services/skill-pack.service.d.ts.map +1 -0
  233. package/dist/core/services/skill-pack.service.js +113 -0
  234. package/dist/core/services/skill-pack.service.js.map +1 -0
  235. package/dist/core/services/task.service.d.ts +177 -0
  236. package/dist/core/services/task.service.d.ts.map +1 -0
  237. package/dist/core/services/task.service.js +397 -0
  238. package/dist/core/services/task.service.js.map +1 -0
  239. package/dist/core/services/template.service.d.ts +51 -0
  240. package/dist/core/services/template.service.d.ts.map +1 -0
  241. package/dist/core/services/template.service.js +88 -0
  242. package/dist/core/services/template.service.js.map +1 -0
  243. package/dist/core/services/user.service.d.ts +50 -0
  244. package/dist/core/services/user.service.d.ts.map +1 -0
  245. package/dist/core/services/user.service.js +111 -0
  246. package/dist/core/services/user.service.js.map +1 -0
  247. package/dist/core/utils/agent-guide-generator.d.ts +38 -0
  248. package/dist/core/utils/agent-guide-generator.d.ts.map +1 -0
  249. package/dist/core/utils/agent-guide-generator.js +187 -0
  250. package/dist/core/utils/agent-guide-generator.js.map +1 -0
  251. package/dist/core/utils/credentials-cleanup.d.ts +81 -0
  252. package/dist/core/utils/credentials-cleanup.d.ts.map +1 -0
  253. package/dist/core/utils/credentials-cleanup.js +256 -0
  254. package/dist/core/utils/credentials-cleanup.js.map +1 -0
  255. package/dist/core/utils/index.d.ts +215 -0
  256. package/dist/core/utils/index.d.ts.map +1 -0
  257. package/dist/core/utils/index.js +462 -0
  258. package/dist/core/utils/index.js.map +1 -0
  259. package/dist/core/utils/openclaw-helper.d.ts +250 -0
  260. package/dist/core/utils/openclaw-helper.d.ts.map +1 -0
  261. package/dist/core/utils/openclaw-helper.js +1629 -0
  262. package/dist/core/utils/openclaw-helper.js.map +1 -0
  263. package/dist/core/utils/template-generator.d.ts +67 -0
  264. package/dist/core/utils/template-generator.d.ts.map +1 -0
  265. package/dist/core/utils/template-generator.js +170 -0
  266. package/dist/core/utils/template-generator.js.map +1 -0
  267. package/dist/db/index.d.ts +54 -0
  268. package/dist/db/index.d.ts.map +1 -0
  269. package/dist/db/index.js +403 -0
  270. package/dist/db/index.js.map +1 -0
  271. package/dist/db/repositories/agent-template.repo.d.ts +47 -0
  272. package/dist/db/repositories/agent-template.repo.d.ts.map +1 -0
  273. package/dist/db/repositories/agent-template.repo.js +108 -0
  274. package/dist/db/repositories/agent-template.repo.js.map +1 -0
  275. package/dist/db/repositories/agent.repo.d.ts +64 -0
  276. package/dist/db/repositories/agent.repo.d.ts.map +1 -0
  277. package/dist/db/repositories/agent.repo.js +103 -0
  278. package/dist/db/repositories/agent.repo.js.map +1 -0
  279. package/dist/db/repositories/base.repository.d.ts +51 -0
  280. package/dist/db/repositories/base.repository.d.ts.map +1 -0
  281. package/dist/db/repositories/base.repository.js +107 -0
  282. package/dist/db/repositories/base.repository.js.map +1 -0
  283. package/dist/db/repositories/company.repo.d.ts +18 -0
  284. package/dist/db/repositories/company.repo.d.ts.map +1 -0
  285. package/dist/db/repositories/company.repo.js +33 -0
  286. package/dist/db/repositories/company.repo.js.map +1 -0
  287. package/dist/db/repositories/config-change.repo.d.ts +65 -0
  288. package/dist/db/repositories/config-change.repo.d.ts.map +1 -0
  289. package/dist/db/repositories/config-change.repo.js +119 -0
  290. package/dist/db/repositories/config-change.repo.js.map +1 -0
  291. package/dist/db/repositories/dept.repo.d.ts +37 -0
  292. package/dist/db/repositories/dept.repo.d.ts.map +1 -0
  293. package/dist/db/repositories/dept.repo.js +66 -0
  294. package/dist/db/repositories/dept.repo.js.map +1 -0
  295. package/dist/db/repositories/document.repo.d.ts +25 -0
  296. package/dist/db/repositories/document.repo.d.ts.map +1 -0
  297. package/dist/db/repositories/document.repo.js +51 -0
  298. package/dist/db/repositories/document.repo.js.map +1 -0
  299. package/dist/db/repositories/domain.repo.d.ts +42 -0
  300. package/dist/db/repositories/domain.repo.d.ts.map +1 -0
  301. package/dist/db/repositories/domain.repo.js +79 -0
  302. package/dist/db/repositories/domain.repo.js.map +1 -0
  303. package/dist/db/repositories/index.d.ts +24 -0
  304. package/dist/db/repositories/index.d.ts.map +1 -0
  305. package/dist/db/repositories/index.js +81 -0
  306. package/dist/db/repositories/index.js.map +1 -0
  307. package/dist/db/repositories/init-session.repo.d.ts +38 -0
  308. package/dist/db/repositories/init-session.repo.d.ts.map +1 -0
  309. package/dist/db/repositories/init-session.repo.js +112 -0
  310. package/dist/db/repositories/init-session.repo.js.map +1 -0
  311. package/dist/db/repositories/job.repo.d.ts +54 -0
  312. package/dist/db/repositories/job.repo.d.ts.map +1 -0
  313. package/dist/db/repositories/job.repo.js +119 -0
  314. package/dist/db/repositories/job.repo.js.map +1 -0
  315. package/dist/db/repositories/message-failure.repo.d.ts +92 -0
  316. package/dist/db/repositories/message-failure.repo.d.ts.map +1 -0
  317. package/dist/db/repositories/message-failure.repo.js +141 -0
  318. package/dist/db/repositories/message-failure.repo.js.map +1 -0
  319. package/dist/db/repositories/message-log.repo.d.ts +36 -0
  320. package/dist/db/repositories/message-log.repo.d.ts.map +1 -0
  321. package/dist/db/repositories/message-log.repo.js +64 -0
  322. package/dist/db/repositories/message-log.repo.js.map +1 -0
  323. package/dist/db/repositories/node.repo.d.ts +107 -0
  324. package/dist/db/repositories/node.repo.d.ts.map +1 -0
  325. package/dist/db/repositories/node.repo.js +276 -0
  326. package/dist/db/repositories/node.repo.js.map +1 -0
  327. package/dist/db/repositories/role-flow.repo.d.ts +43 -0
  328. package/dist/db/repositories/role-flow.repo.d.ts.map +1 -0
  329. package/dist/db/repositories/role-flow.repo.js +83 -0
  330. package/dist/db/repositories/role-flow.repo.js.map +1 -0
  331. package/dist/db/repositories/skill-pack.repo.d.ts +45 -0
  332. package/dist/db/repositories/skill-pack.repo.d.ts.map +1 -0
  333. package/dist/db/repositories/skill-pack.repo.js +149 -0
  334. package/dist/db/repositories/skill-pack.repo.js.map +1 -0
  335. package/dist/db/repositories/task.repo.d.ts +168 -0
  336. package/dist/db/repositories/task.repo.d.ts.map +1 -0
  337. package/dist/db/repositories/task.repo.js +381 -0
  338. package/dist/db/repositories/task.repo.js.map +1 -0
  339. package/dist/db/repositories/template.repo.d.ts +40 -0
  340. package/dist/db/repositories/template.repo.d.ts.map +1 -0
  341. package/dist/db/repositories/template.repo.js +66 -0
  342. package/dist/db/repositories/template.repo.js.map +1 -0
  343. package/dist/db/repositories/user.repo.d.ts +46 -0
  344. package/dist/db/repositories/user.repo.d.ts.map +1 -0
  345. package/dist/db/repositories/user.repo.js +75 -0
  346. package/dist/db/repositories/user.repo.js.map +1 -0
  347. package/dist/db/schema.sql +364 -0
  348. package/package.json +90 -0
  349. package/resources/preset-data-hash.enc +1 -0
  350. package/resources/preset-data.enc +1 -0
@@ -0,0 +1,456 @@
1
+ "use strict";
2
+ /**
3
+ * License Verification Middleware (v1.3.0)
4
+ *
5
+ * 安全特性:
6
+ * 1. 加密存储 session_key
7
+ * 2. checksum 校验防篡改
8
+ * 3. machine_id 设备绑定
9
+ * 4. 时间戳防重放
10
+ * 5. 定期心跳验证
11
+ * 6. 密钥同步(v1.3.0 新增)
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.verifyLicenseOnline = verifyLicenseOnline;
15
+ exports.validateSessionOnline = validateSessionOnline;
16
+ exports.checkLicense = checkLicense;
17
+ exports.bindLicense = bindLicense;
18
+ exports.unbindLicense = unbindLicense;
19
+ exports.getLicenseStatus = getLicenseStatus;
20
+ exports.showLicenseError = showLicenseError;
21
+ exports.getMachineId = getMachineId;
22
+ const storage_1 = require("./storage");
23
+ const config_1 = require("../../config");
24
+ const crypto_service_1 = require("../services/crypto.service");
25
+ // ============================================
26
+ // Configuration
27
+ // ============================================
28
+ const LICENSE_SERVER = process.env.LICENSE_SERVER || 'https://opclawtm.com';
29
+ const LICENSE_SERVER_LOCAL = 'http://localhost:3000';
30
+ const USE_LOCAL = process.env.LICENSE_LOCAL === 'true';
31
+ // 后台刷新控制
32
+ let refreshInProgress = false;
33
+ let lastRefreshAttempt = 0;
34
+ const REFRESH_COOLDOWN_MS = 60 * 1000;
35
+ // 心跳间隔(5 分钟)
36
+ const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000;
37
+ let lastHeartbeat = 0;
38
+ // ============================================
39
+ // HTTP Client
40
+ // ============================================
41
+ function httpRequest(url, options) {
42
+ return new Promise((resolve, reject) => {
43
+ const http = require('http');
44
+ const https = require('https');
45
+ const parsedUrl = new URL(url);
46
+ const isHttps = parsedUrl.protocol === 'https:';
47
+ const reqOptions = {
48
+ hostname: parsedUrl.hostname,
49
+ port: parsedUrl.port || (isHttps ? 443 : 80),
50
+ path: parsedUrl.pathname + parsedUrl.search,
51
+ method: options.method || 'GET',
52
+ headers: {
53
+ 'Content-Type': 'application/json',
54
+ ...options.headers,
55
+ },
56
+ };
57
+ const client = isHttps ? https : http;
58
+ const req = client.request(reqOptions, (res) => {
59
+ let data = '';
60
+ res.on('data', (chunk) => {
61
+ data += chunk;
62
+ });
63
+ res.on('end', () => {
64
+ try {
65
+ const json = JSON.parse(data);
66
+ resolve(json);
67
+ }
68
+ catch (e) {
69
+ reject(new Error(`解析响应失败: ${data}`));
70
+ }
71
+ });
72
+ });
73
+ req.on('error', (e) => {
74
+ reject(e);
75
+ });
76
+ req.setTimeout(options.timeout || 10000, () => {
77
+ req.destroy();
78
+ reject(new Error('请求超时'));
79
+ });
80
+ if (options.body) {
81
+ req.write(JSON.stringify(options.body));
82
+ }
83
+ req.end();
84
+ });
85
+ }
86
+ // ============================================
87
+ // License Verification
88
+ // ============================================
89
+ /**
90
+ * 在线验证授权(绑定新设备)
91
+ *
92
+ * 支持两种 Key:
93
+ * 1. 正式授权 Key(TM-XXXX-XXXX-XXXX-XXXX)
94
+ * 2. 临时 Key(TM-TEMP-XXXX-XXXX)
95
+ */
96
+ async function verifyLicenseOnline(licenseKey) {
97
+ const server = USE_LOCAL ? LICENSE_SERVER_LOCAL : LICENSE_SERVER;
98
+ const machineId = (0, storage_1.getLocalMachineId)();
99
+ try {
100
+ // 首先检查是否为临时 Key
101
+ if (licenseKey.startsWith('TM-TEMP-')) {
102
+ // 使用临时 Key 接口
103
+ const response = await httpRequest(`${server}/api/license/use-temp-key`, {
104
+ method: 'POST',
105
+ body: {
106
+ temp_key: licenseKey,
107
+ machine_id: machineId,
108
+ cli_version: config_1.CLI_VERSION, // 新增:上报版本号
109
+ },
110
+ timeout: 15000,
111
+ });
112
+ if (response.success && response.data) {
113
+ // 同步加密密钥
114
+ if (response.data.encryption_key) {
115
+ (0, crypto_service_1.syncEncryptionKeyFromServer)(response.data.encryption_key);
116
+ }
117
+ // 保存会话(使用返回的正式 license_key)
118
+ (0, storage_1.saveSession)({
119
+ license_key: response.data.license_key,
120
+ machine_id: machineId,
121
+ session_key: response.data.session_key,
122
+ session_expires_at: response.data.session_expires_at,
123
+ last_verify_at: new Date().toISOString(),
124
+ });
125
+ const savedSession = (0, storage_1.readSession)();
126
+ return {
127
+ success: true,
128
+ session: savedSession || undefined,
129
+ };
130
+ }
131
+ return {
132
+ success: false,
133
+ error: response.error || {
134
+ code: 'TEMP_KEY_INVALID',
135
+ message: '临时 Key 无效或已过期',
136
+ },
137
+ };
138
+ }
139
+ // 正式授权 Key 验证
140
+ const response = await httpRequest(`${server}/api/license/verify`, {
141
+ method: 'POST',
142
+ body: {
143
+ license_key: licenseKey,
144
+ machine_id: machineId,
145
+ cli_version: config_1.CLI_VERSION, // 新增:上报版本号
146
+ },
147
+ timeout: 15000,
148
+ });
149
+ if (response.success && response.data) {
150
+ // 同步加密密钥
151
+ if (response.data.encryption_key) {
152
+ (0, crypto_service_1.syncEncryptionKeyFromServer)(response.data.encryption_key);
153
+ }
154
+ // 保存会话(自动加密)
155
+ (0, storage_1.saveSession)({
156
+ license_key: licenseKey,
157
+ machine_id: machineId,
158
+ session_key: response.data.session_key,
159
+ session_expires_at: response.data.session_expires_at,
160
+ last_verify_at: new Date().toISOString(),
161
+ });
162
+ const savedSession = (0, storage_1.readSession)();
163
+ return {
164
+ success: true,
165
+ session: savedSession || undefined,
166
+ };
167
+ }
168
+ // 特殊错误处理
169
+ if (response.error?.code === 'DEVICE_NOT_FOUND' ||
170
+ response.error?.code === 'DEVICE_LIMIT' ||
171
+ response.error?.code === 'SESSION_INVALID') {
172
+ (0, storage_1.clearSession)();
173
+ }
174
+ return {
175
+ success: false,
176
+ error: response.error || {
177
+ code: 'VERIFY_FAILED',
178
+ message: '授权验证失败',
179
+ },
180
+ };
181
+ }
182
+ catch (e) {
183
+ return {
184
+ success: false,
185
+ error: {
186
+ code: 'NETWORK_ERROR',
187
+ message: `网络错误: ${e.message}`,
188
+ },
189
+ };
190
+ }
191
+ }
192
+ /**
193
+ * 在线验证 Session(心跳检测)
194
+ */
195
+ async function validateSessionOnline(session) {
196
+ const server = USE_LOCAL ? LICENSE_SERVER_LOCAL : LICENSE_SERVER;
197
+ const machineId = (0, storage_1.getLocalMachineId)();
198
+ // 解密 session_key
199
+ const decryptedSessionKey = (0, storage_1.getDecryptedSessionKey)(session);
200
+ if (!decryptedSessionKey) {
201
+ (0, storage_1.clearSession)();
202
+ return {
203
+ success: false,
204
+ error: {
205
+ code: 'DECRYPT_FAILED',
206
+ message: 'Session 解密失败,可能是设备不匹配',
207
+ },
208
+ };
209
+ }
210
+ try {
211
+ const response = await httpRequest(`${server}/api/license/validate-session`, {
212
+ method: 'POST',
213
+ body: {
214
+ license_key: session.license_key,
215
+ machine_id: machineId,
216
+ session_key: decryptedSessionKey,
217
+ },
218
+ timeout: 5000,
219
+ });
220
+ if (response.success && response.data?.session_valid) {
221
+ // 更新会话
222
+ (0, storage_1.saveSession)({
223
+ license_key: session.license_key,
224
+ machine_id: machineId,
225
+ session_key: decryptedSessionKey,
226
+ session_expires_at: response.data.session_expires_at || session.session_expires_at,
227
+ last_verify_at: new Date().toISOString(),
228
+ });
229
+ const savedSession = (0, storage_1.readSession)();
230
+ return {
231
+ success: true,
232
+ session: savedSession || undefined,
233
+ };
234
+ }
235
+ // Session 无效
236
+ if (response.error?.code === 'SESSION_INVALID' ||
237
+ response.error?.code === 'DEVICE_UNBOUND' ||
238
+ response.error?.code === 'KEY_UPDATED') {
239
+ (0, storage_1.clearSession)();
240
+ }
241
+ return {
242
+ success: false,
243
+ error: response.error || {
244
+ code: 'SESSION_INVALID',
245
+ message: 'Session 已失效',
246
+ },
247
+ };
248
+ }
249
+ catch (e) {
250
+ // 网络错误时降级
251
+ if ((0, storage_1.isSessionValid)(session)) {
252
+ return {
253
+ success: true,
254
+ session,
255
+ };
256
+ }
257
+ return {
258
+ success: false,
259
+ error: {
260
+ code: 'NETWORK_ERROR',
261
+ message: `网络错误: ${e.message}`,
262
+ },
263
+ };
264
+ }
265
+ }
266
+ /**
267
+ * 后台心跳检测
268
+ */
269
+ async function heartbeat(session) {
270
+ if (refreshInProgress)
271
+ return;
272
+ const now = Date.now();
273
+ if (now - lastRefreshAttempt < REFRESH_COOLDOWN_MS)
274
+ return;
275
+ if (now - lastHeartbeat < HEARTBEAT_INTERVAL_MS)
276
+ return;
277
+ refreshInProgress = true;
278
+ lastRefreshAttempt = now;
279
+ lastHeartbeat = now;
280
+ try {
281
+ const result = await validateSessionOnline(session);
282
+ if (!result.success) {
283
+ console.warn('[授权] 心跳检测失败:', result.error?.message);
284
+ }
285
+ }
286
+ catch (e) {
287
+ // 忽略心跳错误
288
+ }
289
+ finally {
290
+ refreshInProgress = false;
291
+ }
292
+ }
293
+ /**
294
+ * 检查授权状态
295
+ *
296
+ * 检查顺序:
297
+ * 1. 本地 session 是否存在
298
+ * 2. checksum 是否正确(防止篡改)
299
+ * 3. machine_id 是否匹配(防止复制)
300
+ * 4. 是否过期
301
+ * 5. 心跳检测
302
+ */
303
+ async function checkLicense() {
304
+ const session = (0, storage_1.readSession)();
305
+ if (!session) {
306
+ return {
307
+ success: false,
308
+ error: {
309
+ code: 'NO_LICENSE',
310
+ message: '未绑定授权,请先使用 bind-license 命令绑定授权Key',
311
+ },
312
+ };
313
+ }
314
+ // 检查 machine_id
315
+ const currentMachineId = (0, storage_1.getLocalMachineId)();
316
+ if (session.machine_id !== currentMachineId) {
317
+ console.error('[授权] 检测到 license.json 与当前设备不匹配');
318
+ (0, storage_1.clearSession)();
319
+ return {
320
+ success: false,
321
+ error: {
322
+ code: 'DEVICE_MISMATCH',
323
+ message: '授权文件与当前设备不匹配',
324
+ },
325
+ };
326
+ }
327
+ // 检查过期
328
+ if (!(0, storage_1.isSessionValid)(session)) {
329
+ console.log('[授权] 会话已过期,正在重新验证...');
330
+ const result = await validateSessionOnline(session);
331
+ if (!result.success) {
332
+ console.log('[授权] 尝试重新绑定设备...');
333
+ return verifyLicenseOnline(session.license_key);
334
+ }
335
+ return result;
336
+ }
337
+ // 触发心跳检测
338
+ if ((0, storage_1.needsRefresh)(session)) {
339
+ heartbeat(session);
340
+ }
341
+ return {
342
+ success: true,
343
+ session,
344
+ };
345
+ }
346
+ /**
347
+ * 绑定授权
348
+ */
349
+ async function bindLicense(licenseKey) {
350
+ console.log(`正在验证授权Key: ${licenseKey}`);
351
+ const result = await verifyLicenseOnline(licenseKey);
352
+ if (result.success) {
353
+ console.log('✓ 授权绑定成功!');
354
+ if (result.session) {
355
+ const remaining = (0, storage_1.getSessionRemainingSeconds)(result.session);
356
+ console.log(` 会话有效期: ${(0, storage_1.formatRemainingTime)(remaining)}`);
357
+ }
358
+ }
359
+ else {
360
+ console.error('✗ 授权绑定失败:', result.error?.message);
361
+ }
362
+ return result;
363
+ }
364
+ /**
365
+ * 解除授权绑定
366
+ */
367
+ function unbindLicense() {
368
+ const session = (0, storage_1.readSession)();
369
+ if (!session) {
370
+ console.log('⚠️ 当前没有绑定授权');
371
+ return;
372
+ }
373
+ // 尝试通知服务器解绑设备
374
+ const decryptedSessionKey = (0, storage_1.getDecryptedSessionKey)(session);
375
+ if (decryptedSessionKey) {
376
+ unbindDeviceOnline(session.license_key, session.machine_id, decryptedSessionKey).catch(() => {
377
+ // 忽略错误,继续清除本地文件
378
+ });
379
+ }
380
+ // 清除本地文件
381
+ (0, storage_1.clearSession)();
382
+ console.log('✓ 已解除授权绑定');
383
+ }
384
+ /**
385
+ * 在线解绑设备
386
+ */
387
+ async function unbindDeviceOnline(licenseKey, machineId, sessionKey) {
388
+ const server = USE_LOCAL ? LICENSE_SERVER_LOCAL : LICENSE_SERVER;
389
+ try {
390
+ await httpRequest(`${server}/api/license/unbind-device`, {
391
+ method: 'POST',
392
+ body: {
393
+ license_key: licenseKey,
394
+ machine_id: machineId,
395
+ session_key: sessionKey,
396
+ },
397
+ timeout: 5000,
398
+ });
399
+ }
400
+ catch (e) {
401
+ // 忽略错误
402
+ }
403
+ }
404
+ /**
405
+ * 获取授权状态
406
+ */
407
+ async function getLicenseStatus() {
408
+ const session = (0, storage_1.readSession)();
409
+ if (!session) {
410
+ return {
411
+ valid: false,
412
+ error: '未绑定授权',
413
+ };
414
+ }
415
+ const currentMachineId = (0, storage_1.getLocalMachineId)();
416
+ if (session.machine_id !== currentMachineId) {
417
+ return {
418
+ valid: false,
419
+ error: '授权文件与当前设备不匹配',
420
+ };
421
+ }
422
+ const valid = (0, storage_1.isSessionValid)(session);
423
+ const remaining = (0, storage_1.getSessionRemainingSeconds)(session);
424
+ return {
425
+ valid,
426
+ license_key: session.license_key,
427
+ remaining_time: (0, storage_1.formatRemainingTime)(remaining),
428
+ };
429
+ }
430
+ /**
431
+ * 显示授权错误提示
432
+ */
433
+ function showLicenseError(error) {
434
+ console.error('');
435
+ console.error('❌ 授权验证失败');
436
+ console.error('');
437
+ console.error(`错误: ${error.message}`);
438
+ console.error('');
439
+ // 根据错误码提供不同的解决方案
440
+ if (error.code === 'DEVICE_LIMIT') {
441
+ console.error('设备数量已达上限,请执行以下操作之一:');
442
+ console.error(' 1. 访问 https://opclawtm.com/licenses 解绑其他设备');
443
+ console.error(' 2. 联系客服处理');
444
+ }
445
+ else {
446
+ console.error('请执行以下操作之一:');
447
+ console.error(' 1. 运行 opclawtm bind-license --key YOUR_KEY 绑定新授权');
448
+ console.error(' 2. 访问 https://opclawtm.com/licenses 查看授权状态');
449
+ }
450
+ console.error('');
451
+ }
452
+ // 导出
453
+ function getMachineId() {
454
+ return (0, storage_1.getLocalMachineId)();
455
+ }
456
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/core/auth/middleware.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAqIH,kDAmIC;AAKD,sDAoFC;AAsCD,oCAmDC;AAKD,kCAiBC;AAKD,sCAuBC;AA8BD,4CA0BC;AAKD,4CAmBC;AAGD,oCAEC;AA9jBD,uCAWmB;AACnB,yCAA2C;AAC3C,+DAAyE;AAyBzE,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,sBAAsB,CAAC;AAC5E,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AACrD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAEvD,SAAS;AACT,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAC3B,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtC,aAAa;AACb,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C,SAAS,WAAW,CAAI,GAAW,EAAE,OAKpC;IACC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAEhD,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,OAAO,CAAC,OAAO;aACnB;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAQ,EAAE,EAAE;YAClD,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;YAC3B,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,GAAG,EAAE;YAC5C,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;IACjE,MAAM,SAAS,GAAG,IAAA,2BAAiB,GAAE,CAAC;IAEtC,IAAI,CAAC;QACH,gBAAgB;QAChB,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,cAAc;YACd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAY/B,GAAG,MAAM,2BAA2B,EAAE;gBACvC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,SAAS;oBACrB,WAAW,EAAE,oBAAW,EAAG,WAAW;iBACvC;gBACD,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,SAAS;gBACT,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACjC,IAAA,4CAA2B,EAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5D,CAAC;gBAED,4BAA4B;gBAC5B,IAAA,qBAAW,EAAC;oBACV,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;oBACtC,UAAU,EAAE,SAAS;oBACrB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;oBACtC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;oBACpD,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACzC,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAG,IAAA,qBAAW,GAAE,CAAC;gBAEnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,YAAY,IAAI,SAAS;iBACnC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI;oBACvB,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,eAAe;iBACzB;aACF,CAAC;QACJ,CAAC;QAED,cAAc;QACd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAY/B,GAAG,MAAM,qBAAqB,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,oBAAW,EAAG,WAAW;aACvC;YACD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,SAAS;YACT,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACjC,IAAA,4CAA2B,EAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5D,CAAC;YAED,aAAa;YACb,IAAA,qBAAW,EAAC;gBACV,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;gBACtC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;gBACpD,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACzC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,IAAA,qBAAW,GAAE,CAAC;YAEnC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,YAAY,IAAI,SAAS;aACnC,CAAC;QACJ,CAAC;QAED,SAAS;QACT,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,kBAAkB;YAC3C,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,cAAc;YACvC,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/C,IAAA,sBAAY,GAAE,CAAC;QACjB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI;gBACvB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,QAAQ;aAClB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE;aAC9B;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CAAC,OAAuB;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;IACjE,MAAM,SAAS,GAAG,IAAA,2BAAiB,GAAE,CAAC;IAEtC,iBAAiB;IACjB,MAAM,mBAAmB,GAAG,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,IAAA,sBAAY,GAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,uBAAuB;aACjC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAO/B,GAAG,MAAM,+BAA+B,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,mBAAmB;aACjC;YACD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;YACrD,OAAO;YACP,IAAA,qBAAW,EAAC;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,mBAAmB;gBAChC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB;gBAClF,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACzC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,IAAA,qBAAW,GAAE,CAAC;YAEnC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,YAAY,IAAI,SAAS;aACnC,CAAC;QACJ,CAAC;QAED,aAAa;QACb,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,iBAAiB;YAC1C,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,gBAAgB;YACzC,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAA,sBAAY,GAAE,CAAC;QACjB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,aAAa;aACvB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,UAAU;QACV,IAAI,IAAA,wBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE;aAC9B;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,OAAuB;IAC9C,IAAI,iBAAiB;QAAE,OAAO;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,kBAAkB,GAAG,mBAAmB;QAAE,OAAO;IAC3D,IAAI,GAAG,GAAG,aAAa,GAAG,qBAAqB;QAAE,OAAO;IAExD,iBAAiB,GAAG,IAAI,CAAC;IACzB,kBAAkB,GAAG,GAAG,CAAC;IACzB,aAAa,GAAG,GAAG,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,SAAS;IACX,CAAC;YAAS,CAAC;QACT,iBAAiB,GAAG,KAAK,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,mCAAmC;aAC7C;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,gBAAgB,GAAG,IAAA,2BAAiB,GAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,IAAA,sBAAY,GAAE,CAAC;QAEf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,cAAc;aACxB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;IACP,IAAI,CAAC,IAAA,wBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;IACT,IAAI,IAAA,sBAAY,EAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAA,oCAA0B,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,IAAA,6BAAmB,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,mBAAmB,GAAG,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,mBAAmB,EAAE,CAAC;QACxB,kBAAkB,CAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,EAClB,mBAAmB,CACpB,CAAC,KAAK,CAAC,GAAG,EAAE;YACX,gBAAgB;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,IAAA,sBAAY,GAAE,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,SAAiB,EACjB,UAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,MAAM,4BAA4B,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,UAAU;aACxB;YACD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;IACT,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IACpC,MAAM,OAAO,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,2BAAiB,GAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,cAAc;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAA,oCAA0B,EAAC,OAAO,CAAC,CAAC;IAEtD,OAAO;QACL,KAAK;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,IAAA,6BAAmB,EAAC,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAwC;IACvE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,iBAAiB;IACjB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,KAAK;AACL,SAAgB,YAAY;IAC1B,OAAO,IAAA,2BAAiB,GAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * License Storage Module (v1.2.5)
3
+ *
4
+ * 安全特性:
5
+ * 1. 加密存储敏感信息
6
+ * 2. 校验和防止篡改
7
+ * 3. machine_id 绑定设备
8
+ */
9
+ export interface LicenseSession {
10
+ license_key: string;
11
+ machine_id: string;
12
+ session_key: string;
13
+ session_expires_at: string;
14
+ last_verify_at: string;
15
+ checksum: string;
16
+ encrypted_at: number;
17
+ version: number;
18
+ _decryptedSessionKey?: string;
19
+ }
20
+ export declare function getLocalMachineId(): string;
21
+ export declare function getAuthDir(): string;
22
+ export declare function getSessionFilePath(): string;
23
+ export declare function ensureAuthDir(): void;
24
+ export declare function readSession(): LicenseSession | null;
25
+ export declare function saveSession(data: {
26
+ license_key: string;
27
+ machine_id: string;
28
+ session_key: string;
29
+ session_expires_at: string;
30
+ last_verify_at: string;
31
+ }): void;
32
+ export declare function getDecryptedSessionKey(session: LicenseSession): string | null;
33
+ export declare function clearSession(): void;
34
+ export declare function isSessionValid(session: LicenseSession): boolean;
35
+ export declare function needsRefresh(session: LicenseSession): boolean;
36
+ export declare function getSessionRemainingSeconds(session: LicenseSession): number;
37
+ export declare function formatRemainingTime(seconds: number): string;
38
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/core/auth/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAsCD,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C;AA0DD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CAoDnD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,IAAI,CA+BP;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAS7E;AAED,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAU7D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAU1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmB3D"}