koishi-plugin-media-luna 0.0.1

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 (437) hide show
  1. package/client/README.md +558 -0
  2. package/client/api.ts +256 -0
  3. package/client/components/ChannelConfigDialog.vue +1113 -0
  4. package/client/components/ChannelsView.vue +698 -0
  5. package/client/components/ConfigRenderer.vue +164 -0
  6. package/client/components/EmptyState.vue +87 -0
  7. package/client/components/GenerateView.vue +778 -0
  8. package/client/components/HistoryGallery.vue +590 -0
  9. package/client/components/ImageLightbox.vue +510 -0
  10. package/client/components/ImageUpload.vue +298 -0
  11. package/client/components/JsonEditor.vue +68 -0
  12. package/client/components/LoadingState.vue +73 -0
  13. package/client/components/PresetsView.vue +800 -0
  14. package/client/components/ScrollContainer.vue +45 -0
  15. package/client/components/SettingsView.vue +231 -0
  16. package/client/components/StatusBadge.vue +55 -0
  17. package/client/components/TagFilter.vue +139 -0
  18. package/client/components/TagInput.vue +63 -0
  19. package/client/components/TasksView.vue +1074 -0
  20. package/client/components/ViewModeSwitch.vue +78 -0
  21. package/client/components/settings/CachePanel.vue +142 -0
  22. package/client/components/settings/MiddlewaresPanel.vue +480 -0
  23. package/client/components/settings/PluginsPanel.vue +493 -0
  24. package/client/index.ts +13 -0
  25. package/client/pages/index.vue +177 -0
  26. package/client/styles/shared.css +258 -0
  27. package/client/types.ts +158 -0
  28. package/client/utils/format.ts +72 -0
  29. package/dist/index.js +1 -0
  30. package/dist/style.css +1 -0
  31. package/lib/api/README.md +643 -0
  32. package/lib/api/cache-api.d.ts +6 -0
  33. package/lib/api/cache-api.d.ts.map +1 -0
  34. package/lib/api/cache-api.js +147 -0
  35. package/lib/api/cache-api.js.map +1 -0
  36. package/lib/api/channel-api.d.ts +6 -0
  37. package/lib/api/channel-api.d.ts.map +1 -0
  38. package/lib/api/channel-api.js +148 -0
  39. package/lib/api/channel-api.js.map +1 -0
  40. package/lib/api/connector-api.d.ts +6 -0
  41. package/lib/api/connector-api.d.ts.map +1 -0
  42. package/lib/api/connector-api.js +63 -0
  43. package/lib/api/connector-api.js.map +1 -0
  44. package/lib/api/generate-api.d.ts +6 -0
  45. package/lib/api/generate-api.d.ts.map +1 -0
  46. package/lib/api/generate-api.js +123 -0
  47. package/lib/api/generate-api.js.map +1 -0
  48. package/lib/api/index.d.ts +15 -0
  49. package/lib/api/index.d.ts.map +1 -0
  50. package/lib/api/index.js +34 -0
  51. package/lib/api/index.js.map +1 -0
  52. package/lib/api/middleware-api.d.ts +6 -0
  53. package/lib/api/middleware-api.d.ts.map +1 -0
  54. package/lib/api/middleware-api.js +212 -0
  55. package/lib/api/middleware-api.js.map +1 -0
  56. package/lib/api/plugin-api.d.ts +6 -0
  57. package/lib/api/plugin-api.d.ts.map +1 -0
  58. package/lib/api/plugin-api.js +78 -0
  59. package/lib/api/plugin-api.js.map +1 -0
  60. package/lib/api/preset-api.d.ts +6 -0
  61. package/lib/api/preset-api.d.ts.map +1 -0
  62. package/lib/api/preset-api.js +256 -0
  63. package/lib/api/preset-api.js.map +1 -0
  64. package/lib/api/settings-api.d.ts +6 -0
  65. package/lib/api/settings-api.d.ts.map +1 -0
  66. package/lib/api/settings-api.js +118 -0
  67. package/lib/api/settings-api.js.map +1 -0
  68. package/lib/api/task-api.d.ts +6 -0
  69. package/lib/api/task-api.d.ts.map +1 -0
  70. package/lib/api/task-api.js +148 -0
  71. package/lib/api/task-api.js.map +1 -0
  72. package/lib/config.d.ts +6 -0
  73. package/lib/config.d.ts.map +1 -0
  74. package/lib/config.js +8 -0
  75. package/lib/config.js.map +1 -0
  76. package/lib/connectors/builtin/chat-api.d.ts +9 -0
  77. package/lib/connectors/builtin/chat-api.d.ts.map +1 -0
  78. package/lib/connectors/builtin/chat-api.js +351 -0
  79. package/lib/connectors/builtin/chat-api.js.map +1 -0
  80. package/lib/connectors/builtin/dalle.d.ts +6 -0
  81. package/lib/connectors/builtin/dalle.d.ts.map +1 -0
  82. package/lib/connectors/builtin/dalle.js +109 -0
  83. package/lib/connectors/builtin/dalle.js.map +1 -0
  84. package/lib/connectors/builtin/flux.d.ts +7 -0
  85. package/lib/connectors/builtin/flux.d.ts.map +1 -0
  86. package/lib/connectors/builtin/flux.js +199 -0
  87. package/lib/connectors/builtin/flux.js.map +1 -0
  88. package/lib/connectors/builtin/index.d.ts +5 -0
  89. package/lib/connectors/builtin/index.d.ts.map +1 -0
  90. package/lib/connectors/builtin/index.js +6 -0
  91. package/lib/connectors/builtin/index.js.map +1 -0
  92. package/lib/connectors/builtin/sd-webui.d.ts +7 -0
  93. package/lib/connectors/builtin/sd-webui.d.ts.map +1 -0
  94. package/lib/connectors/builtin/sd-webui.js +157 -0
  95. package/lib/connectors/builtin/sd-webui.js.map +1 -0
  96. package/lib/connectors/connector-registry.d.ts +36 -0
  97. package/lib/connectors/connector-registry.d.ts.map +1 -0
  98. package/lib/connectors/connector-registry.js +66 -0
  99. package/lib/connectors/connector-registry.js.map +1 -0
  100. package/lib/connectors/index.d.ts +3 -0
  101. package/lib/connectors/index.d.ts.map +1 -0
  102. package/lib/connectors/index.js +4 -0
  103. package/lib/connectors/index.js.map +1 -0
  104. package/lib/core/api/api-utils.d.ts +46 -0
  105. package/lib/core/api/api-utils.d.ts.map +1 -0
  106. package/lib/core/api/api-utils.js +78 -0
  107. package/lib/core/api/api-utils.js.map +1 -0
  108. package/lib/core/api/cache-api.d.ts +6 -0
  109. package/lib/core/api/cache-api.d.ts.map +1 -0
  110. package/lib/core/api/cache-api.js +147 -0
  111. package/lib/core/api/cache-api.js.map +1 -0
  112. package/lib/core/api/channel-api.d.ts +6 -0
  113. package/lib/core/api/channel-api.d.ts.map +1 -0
  114. package/lib/core/api/channel-api.js +146 -0
  115. package/lib/core/api/channel-api.js.map +1 -0
  116. package/lib/core/api/connector-api.d.ts +6 -0
  117. package/lib/core/api/connector-api.d.ts.map +1 -0
  118. package/lib/core/api/connector-api.js +63 -0
  119. package/lib/core/api/connector-api.js.map +1 -0
  120. package/lib/core/api/generate-api.d.ts +6 -0
  121. package/lib/core/api/generate-api.d.ts.map +1 -0
  122. package/lib/core/api/generate-api.js +124 -0
  123. package/lib/core/api/generate-api.js.map +1 -0
  124. package/lib/core/api/index.d.ts +16 -0
  125. package/lib/core/api/index.d.ts.map +1 -0
  126. package/lib/core/api/index.js +38 -0
  127. package/lib/core/api/index.js.map +1 -0
  128. package/lib/core/api/middleware-api.d.ts +6 -0
  129. package/lib/core/api/middleware-api.d.ts.map +1 -0
  130. package/lib/core/api/middleware-api.js +196 -0
  131. package/lib/core/api/middleware-api.js.map +1 -0
  132. package/lib/core/api/plugin-api.d.ts +6 -0
  133. package/lib/core/api/plugin-api.d.ts.map +1 -0
  134. package/lib/core/api/plugin-api.js +78 -0
  135. package/lib/core/api/plugin-api.js.map +1 -0
  136. package/lib/core/api/preset-api.d.ts +6 -0
  137. package/lib/core/api/preset-api.d.ts.map +1 -0
  138. package/lib/core/api/preset-api.js +272 -0
  139. package/lib/core/api/preset-api.js.map +1 -0
  140. package/lib/core/api/settings-api.d.ts +6 -0
  141. package/lib/core/api/settings-api.d.ts.map +1 -0
  142. package/lib/core/api/settings-api.js +118 -0
  143. package/lib/core/api/settings-api.js.map +1 -0
  144. package/lib/core/api/task-api.d.ts +6 -0
  145. package/lib/core/api/task-api.d.ts.map +1 -0
  146. package/lib/core/api/task-api.js +281 -0
  147. package/lib/core/api/task-api.js.map +1 -0
  148. package/lib/core/channel.service.d.ts +44 -0
  149. package/lib/core/channel.service.d.ts.map +1 -0
  150. package/lib/core/channel.service.js +146 -0
  151. package/lib/core/channel.service.js.map +1 -0
  152. package/lib/core/config/config.service.d.ts +89 -0
  153. package/lib/core/config/config.service.d.ts.map +1 -0
  154. package/lib/core/config/config.service.js +216 -0
  155. package/lib/core/config/config.service.js.map +1 -0
  156. package/lib/core/config/index.d.ts +3 -0
  157. package/lib/core/config/index.d.ts.map +1 -0
  158. package/lib/core/config/index.js +3 -0
  159. package/lib/core/config/index.js.map +1 -0
  160. package/lib/core/error.d.ts +73 -0
  161. package/lib/core/error.d.ts.map +1 -0
  162. package/lib/core/error.js +137 -0
  163. package/lib/core/error.js.map +1 -0
  164. package/lib/core/index.d.ts +12 -0
  165. package/lib/core/index.d.ts.map +1 -0
  166. package/lib/core/index.js +23 -0
  167. package/lib/core/index.js.map +1 -0
  168. package/lib/core/logger.d.ts +18 -0
  169. package/lib/core/logger.d.ts.map +1 -0
  170. package/lib/core/logger.js +39 -0
  171. package/lib/core/logger.js.map +1 -0
  172. package/lib/core/medialuna.service.d.ts +168 -0
  173. package/lib/core/medialuna.service.d.ts.map +1 -0
  174. package/lib/core/medialuna.service.js +423 -0
  175. package/lib/core/medialuna.service.js.map +1 -0
  176. package/lib/core/pipeline/dependency-graph.d.ts +43 -0
  177. package/lib/core/pipeline/dependency-graph.d.ts.map +1 -0
  178. package/lib/core/pipeline/dependency-graph.js +223 -0
  179. package/lib/core/pipeline/dependency-graph.js.map +1 -0
  180. package/lib/core/pipeline/generation-pipeline.d.ts +40 -0
  181. package/lib/core/pipeline/generation-pipeline.d.ts.map +1 -0
  182. package/lib/core/pipeline/generation-pipeline.js +216 -0
  183. package/lib/core/pipeline/generation-pipeline.js.map +1 -0
  184. package/lib/core/pipeline/index.d.ts +4 -0
  185. package/lib/core/pipeline/index.d.ts.map +1 -0
  186. package/lib/core/pipeline/index.js +5 -0
  187. package/lib/core/pipeline/index.js.map +1 -0
  188. package/lib/core/pipeline/middleware-registry.d.ts +33 -0
  189. package/lib/core/pipeline/middleware-registry.d.ts.map +1 -0
  190. package/lib/core/pipeline/middleware-registry.js +78 -0
  191. package/lib/core/pipeline/middleware-registry.js.map +1 -0
  192. package/lib/core/plugin-loader.d.ts +77 -0
  193. package/lib/core/plugin-loader.d.ts.map +1 -0
  194. package/lib/core/plugin-loader.js +300 -0
  195. package/lib/core/plugin-loader.js.map +1 -0
  196. package/lib/core/registry/connector.registry.d.ts +36 -0
  197. package/lib/core/registry/connector.registry.d.ts.map +1 -0
  198. package/lib/core/registry/connector.registry.js +65 -0
  199. package/lib/core/registry/connector.registry.js.map +1 -0
  200. package/lib/core/registry/index.d.ts +3 -0
  201. package/lib/core/registry/index.d.ts.map +1 -0
  202. package/lib/core/registry/index.js +4 -0
  203. package/lib/core/registry/index.js.map +1 -0
  204. package/lib/core/registry/service.registry.d.ts +27 -0
  205. package/lib/core/registry/service.registry.d.ts.map +1 -0
  206. package/lib/core/registry/service.registry.js +54 -0
  207. package/lib/core/registry/service.registry.js.map +1 -0
  208. package/lib/core/request.service.d.ts +83 -0
  209. package/lib/core/request.service.d.ts.map +1 -0
  210. package/lib/core/request.service.js +237 -0
  211. package/lib/core/request.service.js.map +1 -0
  212. package/lib/core/types.d.ts +270 -0
  213. package/lib/core/types.d.ts.map +1 -0
  214. package/lib/core/types.js +17 -0
  215. package/lib/core/types.js.map +1 -0
  216. package/lib/database.d.ts +6 -0
  217. package/lib/database.d.ts.map +1 -0
  218. package/lib/database.js +89 -0
  219. package/lib/database.js.map +1 -0
  220. package/lib/index.d.ts +13 -0
  221. package/lib/index.d.ts.map +1 -0
  222. package/lib/index.js +54 -0
  223. package/lib/index.js.map +1 -0
  224. package/lib/middlewares/builtin/billing.d.ts +45 -0
  225. package/lib/middlewares/builtin/billing.d.ts.map +1 -0
  226. package/lib/middlewares/builtin/billing.js +362 -0
  227. package/lib/middlewares/builtin/billing.js.map +1 -0
  228. package/lib/middlewares/builtin/index.d.ts +6 -0
  229. package/lib/middlewares/builtin/index.d.ts.map +1 -0
  230. package/lib/middlewares/builtin/index.js +7 -0
  231. package/lib/middlewares/builtin/index.js.map +1 -0
  232. package/lib/middlewares/builtin/preset.d.ts +14 -0
  233. package/lib/middlewares/builtin/preset.d.ts.map +1 -0
  234. package/lib/middlewares/builtin/preset.js +156 -0
  235. package/lib/middlewares/builtin/preset.js.map +1 -0
  236. package/lib/middlewares/builtin/remote-preset-sync.d.ts +8 -0
  237. package/lib/middlewares/builtin/remote-preset-sync.d.ts.map +1 -0
  238. package/lib/middlewares/builtin/remote-preset-sync.js +32 -0
  239. package/lib/middlewares/builtin/remote-preset-sync.js.map +1 -0
  240. package/lib/middlewares/builtin/request.d.ts +10 -0
  241. package/lib/middlewares/builtin/request.d.ts.map +1 -0
  242. package/lib/middlewares/builtin/request.js +50 -0
  243. package/lib/middlewares/builtin/request.js.map +1 -0
  244. package/lib/middlewares/builtin/storage.d.ts +64 -0
  245. package/lib/middlewares/builtin/storage.d.ts.map +1 -0
  246. package/lib/middlewares/builtin/storage.js +715 -0
  247. package/lib/middlewares/builtin/storage.js.map +1 -0
  248. package/lib/middlewares/builtin/task-recorder.d.ts +20 -0
  249. package/lib/middlewares/builtin/task-recorder.d.ts.map +1 -0
  250. package/lib/middlewares/builtin/task-recorder.js +138 -0
  251. package/lib/middlewares/builtin/task-recorder.js.map +1 -0
  252. package/lib/middlewares/index.d.ts +2 -0
  253. package/lib/middlewares/index.d.ts.map +1 -0
  254. package/lib/middlewares/index.js +3 -0
  255. package/lib/middlewares/index.js.map +1 -0
  256. package/lib/pipeline/dependency-graph.d.ts +43 -0
  257. package/lib/pipeline/dependency-graph.d.ts.map +1 -0
  258. package/lib/pipeline/dependency-graph.js +240 -0
  259. package/lib/pipeline/dependency-graph.js.map +1 -0
  260. package/lib/pipeline/generation-pipeline.d.ts +38 -0
  261. package/lib/pipeline/generation-pipeline.d.ts.map +1 -0
  262. package/lib/pipeline/generation-pipeline.js +211 -0
  263. package/lib/pipeline/generation-pipeline.js.map +1 -0
  264. package/lib/pipeline/index.d.ts +4 -0
  265. package/lib/pipeline/index.d.ts.map +1 -0
  266. package/lib/pipeline/index.js +5 -0
  267. package/lib/pipeline/index.js.map +1 -0
  268. package/lib/pipeline/middleware-registry.d.ts +36 -0
  269. package/lib/pipeline/middleware-registry.d.ts.map +1 -0
  270. package/lib/pipeline/middleware-registry.js +83 -0
  271. package/lib/pipeline/middleware-registry.js.map +1 -0
  272. package/lib/plugins/billing/config.d.ts +19 -0
  273. package/lib/plugins/billing/config.d.ts.map +1 -0
  274. package/lib/plugins/billing/config.js +98 -0
  275. package/lib/plugins/billing/config.js.map +1 -0
  276. package/lib/plugins/billing/index.d.ts +4 -0
  277. package/lib/plugins/billing/index.d.ts.map +1 -0
  278. package/lib/plugins/billing/index.js +20 -0
  279. package/lib/plugins/billing/index.js.map +1 -0
  280. package/lib/plugins/billing/middleware.d.ts +12 -0
  281. package/lib/plugins/billing/middleware.d.ts.map +1 -0
  282. package/lib/plugins/billing/middleware.js +233 -0
  283. package/lib/plugins/billing/middleware.js.map +1 -0
  284. package/lib/plugins/cache/config.d.ts +44 -0
  285. package/lib/plugins/cache/config.d.ts.map +1 -0
  286. package/lib/plugins/cache/config.js +187 -0
  287. package/lib/plugins/cache/config.js.map +1 -0
  288. package/lib/plugins/cache/index.d.ts +6 -0
  289. package/lib/plugins/cache/index.d.ts.map +1 -0
  290. package/lib/plugins/cache/index.js +87 -0
  291. package/lib/plugins/cache/index.js.map +1 -0
  292. package/lib/plugins/cache/middleware.d.ts +12 -0
  293. package/lib/plugins/cache/middleware.d.ts.map +1 -0
  294. package/lib/plugins/cache/middleware.js +194 -0
  295. package/lib/plugins/cache/middleware.js.map +1 -0
  296. package/lib/plugins/cache/service.d.ts +106 -0
  297. package/lib/plugins/cache/service.d.ts.map +1 -0
  298. package/lib/plugins/cache/service.js +467 -0
  299. package/lib/plugins/cache/service.js.map +1 -0
  300. package/lib/plugins/cache/utils/index.d.ts +4 -0
  301. package/lib/plugins/cache/utils/index.d.ts.map +1 -0
  302. package/lib/plugins/cache/utils/index.js +5 -0
  303. package/lib/plugins/cache/utils/index.js.map +1 -0
  304. package/lib/plugins/cache/utils/mime.d.ts +9 -0
  305. package/lib/plugins/cache/utils/mime.d.ts.map +1 -0
  306. package/lib/plugins/cache/utils/mime.js +65 -0
  307. package/lib/plugins/cache/utils/mime.js.map +1 -0
  308. package/lib/plugins/cache/utils/s3.d.ts +19 -0
  309. package/lib/plugins/cache/utils/s3.d.ts.map +1 -0
  310. package/lib/plugins/cache/utils/s3.js +147 -0
  311. package/lib/plugins/cache/utils/s3.js.map +1 -0
  312. package/lib/plugins/cache/utils/webdav.d.ts +16 -0
  313. package/lib/plugins/cache/utils/webdav.d.ts.map +1 -0
  314. package/lib/plugins/cache/utils/webdav.js +69 -0
  315. package/lib/plugins/cache/utils/webdav.js.map +1 -0
  316. package/lib/plugins/connector-chat-api/index.d.ts +7 -0
  317. package/lib/plugins/connector-chat-api/index.d.ts.map +1 -0
  318. package/lib/plugins/connector-chat-api/index.js +400 -0
  319. package/lib/plugins/connector-chat-api/index.js.map +1 -0
  320. package/lib/plugins/connector-dalle/index.d.ts +7 -0
  321. package/lib/plugins/connector-dalle/index.d.ts.map +1 -0
  322. package/lib/plugins/connector-dalle/index.js +140 -0
  323. package/lib/plugins/connector-dalle/index.js.map +1 -0
  324. package/lib/plugins/connector-flux/index.d.ts +7 -0
  325. package/lib/plugins/connector-flux/index.d.ts.map +1 -0
  326. package/lib/plugins/connector-flux/index.js +232 -0
  327. package/lib/plugins/connector-flux/index.js.map +1 -0
  328. package/lib/plugins/connector-sd-webui/index.d.ts +7 -0
  329. package/lib/plugins/connector-sd-webui/index.d.ts.map +1 -0
  330. package/lib/plugins/connector-sd-webui/index.js +171 -0
  331. package/lib/plugins/connector-sd-webui/index.js.map +1 -0
  332. package/lib/plugins/index.d.ts +22 -0
  333. package/lib/plugins/index.d.ts.map +1 -0
  334. package/lib/plugins/index.js +21 -0
  335. package/lib/plugins/index.js.map +1 -0
  336. package/lib/plugins/preset/config.d.ts +37 -0
  337. package/lib/plugins/preset/config.d.ts.map +1 -0
  338. package/lib/plugins/preset/config.js +74 -0
  339. package/lib/plugins/preset/config.js.map +1 -0
  340. package/lib/plugins/preset/index.d.ts +6 -0
  341. package/lib/plugins/preset/index.d.ts.map +1 -0
  342. package/lib/plugins/preset/index.js +58 -0
  343. package/lib/plugins/preset/index.js.map +1 -0
  344. package/lib/plugins/preset/middleware.d.ts +6 -0
  345. package/lib/plugins/preset/middleware.d.ts.map +1 -0
  346. package/lib/plugins/preset/middleware.js +126 -0
  347. package/lib/plugins/preset/middleware.js.map +1 -0
  348. package/lib/plugins/preset/remote-sync.service.d.ts +84 -0
  349. package/lib/plugins/preset/remote-sync.service.d.ts.map +1 -0
  350. package/lib/plugins/preset/remote-sync.service.js +342 -0
  351. package/lib/plugins/preset/remote-sync.service.js.map +1 -0
  352. package/lib/plugins/preset/service.d.ts +64 -0
  353. package/lib/plugins/preset/service.d.ts.map +1 -0
  354. package/lib/plugins/preset/service.js +196 -0
  355. package/lib/plugins/preset/service.js.map +1 -0
  356. package/lib/plugins/prompt-encoding/config.d.ts +25 -0
  357. package/lib/plugins/prompt-encoding/config.d.ts.map +1 -0
  358. package/lib/plugins/prompt-encoding/config.js +62 -0
  359. package/lib/plugins/prompt-encoding/config.js.map +1 -0
  360. package/lib/plugins/prompt-encoding/index.d.ts +5 -0
  361. package/lib/plugins/prompt-encoding/index.d.ts.map +1 -0
  362. package/lib/plugins/prompt-encoding/index.js +21 -0
  363. package/lib/plugins/prompt-encoding/index.js.map +1 -0
  364. package/lib/plugins/prompt-encoding/middleware.d.ts +6 -0
  365. package/lib/plugins/prompt-encoding/middleware.d.ts.map +1 -0
  366. package/lib/plugins/prompt-encoding/middleware.js +151 -0
  367. package/lib/plugins/prompt-encoding/middleware.js.map +1 -0
  368. package/lib/plugins/task/config.d.ts +15 -0
  369. package/lib/plugins/task/config.d.ts.map +1 -0
  370. package/lib/plugins/task/config.js +33 -0
  371. package/lib/plugins/task/config.js.map +1 -0
  372. package/lib/plugins/task/index.d.ts +5 -0
  373. package/lib/plugins/task/index.d.ts.map +1 -0
  374. package/lib/plugins/task/index.js +58 -0
  375. package/lib/plugins/task/index.js.map +1 -0
  376. package/lib/plugins/task/middleware.d.ts +14 -0
  377. package/lib/plugins/task/middleware.d.ts.map +1 -0
  378. package/lib/plugins/task/middleware.js +123 -0
  379. package/lib/plugins/task/middleware.js.map +1 -0
  380. package/lib/plugins/task/service.d.ts +94 -0
  381. package/lib/plugins/task/service.d.ts.map +1 -0
  382. package/lib/plugins/task/service.js +226 -0
  383. package/lib/plugins/task/service.js.map +1 -0
  384. package/lib/plugins/webui-auth/config.d.ts +12 -0
  385. package/lib/plugins/webui-auth/config.d.ts.map +1 -0
  386. package/lib/plugins/webui-auth/config.js +30 -0
  387. package/lib/plugins/webui-auth/config.js.map +1 -0
  388. package/lib/plugins/webui-auth/index.d.ts +5 -0
  389. package/lib/plugins/webui-auth/index.d.ts.map +1 -0
  390. package/lib/plugins/webui-auth/index.js +99 -0
  391. package/lib/plugins/webui-auth/index.js.map +1 -0
  392. package/lib/plugins/webui-auth/service.d.ts +42 -0
  393. package/lib/plugins/webui-auth/service.d.ts.map +1 -0
  394. package/lib/plugins/webui-auth/service.js +106 -0
  395. package/lib/plugins/webui-auth/service.js.map +1 -0
  396. package/lib/services/asset-cache.service.d.ts +133 -0
  397. package/lib/services/asset-cache.service.d.ts.map +1 -0
  398. package/lib/services/asset-cache.service.js +882 -0
  399. package/lib/services/asset-cache.service.js.map +1 -0
  400. package/lib/services/cache.service.d.ts +110 -0
  401. package/lib/services/cache.service.d.ts.map +1 -0
  402. package/lib/services/cache.service.js +333 -0
  403. package/lib/services/cache.service.js.map +1 -0
  404. package/lib/services/channel.service.d.ts +44 -0
  405. package/lib/services/channel.service.d.ts.map +1 -0
  406. package/lib/services/channel.service.js +154 -0
  407. package/lib/services/channel.service.js.map +1 -0
  408. package/lib/services/config.service.d.ts +73 -0
  409. package/lib/services/config.service.d.ts.map +1 -0
  410. package/lib/services/config.service.js +171 -0
  411. package/lib/services/config.service.js.map +1 -0
  412. package/lib/services/index.d.ts +8 -0
  413. package/lib/services/index.d.ts.map +1 -0
  414. package/lib/services/index.js +9 -0
  415. package/lib/services/index.js.map +1 -0
  416. package/lib/services/medialuna.service.d.ts +173 -0
  417. package/lib/services/medialuna.service.d.ts.map +1 -0
  418. package/lib/services/medialuna.service.js +455 -0
  419. package/lib/services/medialuna.service.js.map +1 -0
  420. package/lib/services/preset.service.d.ts +69 -0
  421. package/lib/services/preset.service.d.ts.map +1 -0
  422. package/lib/services/preset.service.js +202 -0
  423. package/lib/services/preset.service.js.map +1 -0
  424. package/lib/services/remote-preset.service.d.ts +97 -0
  425. package/lib/services/remote-preset.service.d.ts.map +1 -0
  426. package/lib/services/remote-preset.service.js +212 -0
  427. package/lib/services/remote-preset.service.js.map +1 -0
  428. package/lib/services/task.service.d.ts +57 -0
  429. package/lib/services/task.service.d.ts.map +1 -0
  430. package/lib/services/task.service.js +138 -0
  431. package/lib/services/task.service.js.map +1 -0
  432. package/lib/types/index.d.ts +357 -0
  433. package/lib/types/index.d.ts.map +1 -0
  434. package/lib/types/index.js +21 -0
  435. package/lib/types/index.js.map +1 -0
  436. package/package.json +66 -0
  437. package/readme.md +326 -0
@@ -0,0 +1,199 @@
1
+ // Flux 适配器 (支持 Replicate API 和兼容接口)
2
+ /**
3
+ * Flux 图像生成连接器
4
+ * 支持 Replicate API 格式和其他兼容的 Flux 服务
5
+ */
6
+ export const FluxConnector = {
7
+ id: 'flux',
8
+ name: 'Flux',
9
+ supportedTypes: ['image'],
10
+ // 卡片上展示的字段
11
+ cardFields: [
12
+ { source: 'connectorConfig', key: 'model', label: '模型' },
13
+ { source: 'connectorConfig', key: 'aspectRatio', label: '宽高比' }
14
+ ],
15
+ fields: [
16
+ {
17
+ key: 'apiUrl',
18
+ label: 'API URL',
19
+ type: 'text',
20
+ required: true,
21
+ default: 'https://api.replicate.com/v1/predictions',
22
+ placeholder: 'https://api.replicate.com/v1/predictions'
23
+ },
24
+ {
25
+ key: 'apiKey',
26
+ label: 'API Key',
27
+ type: 'password',
28
+ required: true
29
+ },
30
+ {
31
+ key: 'model',
32
+ label: '模型版本',
33
+ type: 'text',
34
+ default: 'flux-schnell',
35
+ placeholder: 'flux-schnell',
36
+ description: '常用:flux-schnell、flux-dev、flux-pro、flux-1.1-pro'
37
+ },
38
+ {
39
+ key: 'aspectRatio',
40
+ label: '宽高比',
41
+ type: 'text',
42
+ default: '1:1',
43
+ placeholder: '1:1',
44
+ description: '常用:1:1、16:9、9:16、4:3、3:4、21:9'
45
+ },
46
+ {
47
+ key: 'outputFormat',
48
+ label: '输出格式',
49
+ type: 'text',
50
+ default: 'webp',
51
+ placeholder: 'webp',
52
+ description: '支持:webp、png、jpg'
53
+ },
54
+ {
55
+ key: 'outputQuality',
56
+ label: '输出质量',
57
+ type: 'number',
58
+ default: 80
59
+ },
60
+ {
61
+ key: 'numOutputs',
62
+ label: '生成数量',
63
+ type: 'number',
64
+ default: 1
65
+ },
66
+ {
67
+ key: 'seed',
68
+ label: '种子',
69
+ type: 'number',
70
+ placeholder: '留空随机'
71
+ },
72
+ {
73
+ key: 'guidanceScale',
74
+ label: 'Guidance Scale',
75
+ type: 'number',
76
+ default: 3.5
77
+ },
78
+ {
79
+ key: 'numInferenceSteps',
80
+ label: '推理步数',
81
+ type: 'number',
82
+ default: 28
83
+ },
84
+ {
85
+ key: 'disableSafetyChecker',
86
+ label: '禁用安全检查',
87
+ type: 'boolean',
88
+ default: false
89
+ },
90
+ {
91
+ key: 'timeout',
92
+ label: '超时时间(秒)',
93
+ type: 'number',
94
+ default: 300
95
+ },
96
+ {
97
+ key: 'pollInterval',
98
+ label: '轮询间隔(毫秒)',
99
+ type: 'number',
100
+ default: 2000
101
+ }
102
+ ],
103
+ async generate(ctx, config, files, prompt) {
104
+ const { apiUrl, apiKey, model = 'flux-schnell', aspectRatio = '1:1', outputFormat = 'webp', outputQuality = 80, numOutputs = 1, seed, guidanceScale = 3.5, numInferenceSteps = 28, disableSafetyChecker = false, timeout = 300, pollInterval = 2000 } = config;
105
+ // 模型版本映射 (Replicate 格式)
106
+ const modelVersionMap = {
107
+ 'flux-schnell': 'black-forest-labs/flux-schnell',
108
+ 'flux-dev': 'black-forest-labs/flux-dev',
109
+ 'flux-pro': 'black-forest-labs/flux-pro',
110
+ 'flux-1.1-pro': 'black-forest-labs/flux-1.1-pro'
111
+ };
112
+ const modelVersion = modelVersionMap[model] || model;
113
+ // 构建请求体
114
+ const requestBody = {
115
+ version: modelVersion,
116
+ input: {
117
+ prompt,
118
+ aspect_ratio: aspectRatio,
119
+ output_format: outputFormat,
120
+ output_quality: Number(outputQuality),
121
+ num_outputs: Number(numOutputs),
122
+ guidance_scale: Number(guidanceScale),
123
+ num_inference_steps: Number(numInferenceSteps),
124
+ disable_safety_checker: Boolean(disableSafetyChecker)
125
+ }
126
+ };
127
+ if (seed !== undefined && seed !== null && seed !== '') {
128
+ requestBody.input.seed = Number(seed);
129
+ }
130
+ // 如果有输入图片(img2img),添加到请求
131
+ if (files.length > 0) {
132
+ const imageFile = files.find(f => f.mime.startsWith('image/'));
133
+ if (imageFile) {
134
+ const base64Data = Buffer.from(imageFile.data).toString('base64');
135
+ requestBody.input.image = `data:${imageFile.mime};base64,${base64Data}`;
136
+ }
137
+ }
138
+ try {
139
+ // 创建预测任务
140
+ const createResponse = await ctx.http.post(apiUrl, requestBody, {
141
+ headers: {
142
+ 'Authorization': `Token ${apiKey}`,
143
+ 'Content-Type': 'application/json'
144
+ },
145
+ timeout: 30000
146
+ });
147
+ if (!createResponse.id) {
148
+ throw new Error('Failed to create prediction');
149
+ }
150
+ const predictionId = createResponse.id;
151
+ const getUrl = createResponse.urls?.get || `${apiUrl}/${predictionId}`;
152
+ // 轮询等待结果
153
+ const startTime = Date.now();
154
+ const timeoutMs = timeout * 1000;
155
+ while (Date.now() - startTime < timeoutMs) {
156
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
157
+ const statusResponse = await ctx.http.get(getUrl, {
158
+ headers: {
159
+ 'Authorization': `Token ${apiKey}`
160
+ },
161
+ timeout: 30000
162
+ });
163
+ if (statusResponse.status === 'succeeded') {
164
+ const output = statusResponse.output;
165
+ if (!output) {
166
+ throw new Error('No output from Flux API');
167
+ }
168
+ // 处理输出(可能是单个 URL 或 URL 数组)
169
+ const urls = Array.isArray(output) ? output : [output];
170
+ return urls.map((url) => ({
171
+ kind: 'image',
172
+ url,
173
+ mime: `image/${outputFormat === 'jpg' ? 'jpeg' : outputFormat}`,
174
+ meta: {
175
+ predictionId,
176
+ model: modelVersion,
177
+ aspectRatio
178
+ }
179
+ }));
180
+ }
181
+ if (statusResponse.status === 'failed') {
182
+ throw new Error(statusResponse.error || 'Flux generation failed');
183
+ }
184
+ if (statusResponse.status === 'canceled') {
185
+ throw new Error('Flux generation was canceled');
186
+ }
187
+ // 继续轮询 (processing/starting)
188
+ }
189
+ throw new Error('Flux generation timed out');
190
+ }
191
+ catch (error) {
192
+ if (error instanceof Error) {
193
+ throw new Error(`Flux API error: ${error.message}`);
194
+ }
195
+ throw error;
196
+ }
197
+ }
198
+ };
199
+ //# sourceMappingURL=flux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flux.js","sourceRoot":"","sources":["../../../src/connectors/builtin/flux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { DalleConnector } from './dalle';
2
+ export { SDWebUIConnector } from './sd-webui';
3
+ export { FluxConnector } from './flux';
4
+ export { ChatApiConnector } from './chat-api';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/builtin/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ // 内置连接器导出
2
+ export { DalleConnector } from './dalle';
3
+ export { SDWebUIConnector } from './sd-webui';
4
+ export { FluxConnector } from './flux';
5
+ export { ChatApiConnector } from './chat-api';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/builtin/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAEV,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { ConnectorDefinition } from '../../types';
2
+ /**
3
+ * Stable Diffusion WebUI (AUTOMATIC1111) 连接器
4
+ * 支持 txt2img 和 img2img 接口
5
+ */
6
+ export declare const SDWebUIConnector: ConnectorDefinition;
7
+ //# sourceMappingURL=sd-webui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-webui.d.ts","sourceRoot":"","sources":["../../../src/connectors/builtin/sd-webui.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,aAAa,CAAA;AAExE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAkL9B,CAAA"}
@@ -0,0 +1,157 @@
1
+ // Stable Diffusion WebUI 适配器
2
+ /**
3
+ * Stable Diffusion WebUI (AUTOMATIC1111) 连接器
4
+ * 支持 txt2img 和 img2img 接口
5
+ */
6
+ export const SDWebUIConnector = {
7
+ id: 'sd-webui',
8
+ name: 'Stable Diffusion WebUI',
9
+ supportedTypes: ['image'],
10
+ // 卡片上展示的字段
11
+ cardFields: [
12
+ { source: 'connectorConfig', key: 'model', label: '模型' },
13
+ { source: 'connectorConfig', key: 'width', label: '宽' },
14
+ { source: 'connectorConfig', key: 'height', label: '高' },
15
+ { source: 'connectorConfig', key: 'sampler', label: '采样器' }
16
+ ],
17
+ fields: [
18
+ {
19
+ key: 'apiUrl',
20
+ label: 'API URL',
21
+ type: 'text',
22
+ required: true,
23
+ default: 'http://127.0.0.1:7860',
24
+ placeholder: 'http://127.0.0.1:7860'
25
+ },
26
+ {
27
+ key: 'model',
28
+ label: '模型',
29
+ type: 'text',
30
+ placeholder: '留空使用当前加载的模型'
31
+ },
32
+ {
33
+ key: 'sampler',
34
+ label: '采样器',
35
+ type: 'text',
36
+ default: 'Euler a',
37
+ placeholder: 'Euler a',
38
+ description: '常用:Euler a、DPM++ 2M Karras、DPM++ SDE Karras、DDIM'
39
+ },
40
+ {
41
+ key: 'steps',
42
+ label: '步数',
43
+ type: 'number',
44
+ default: 20
45
+ },
46
+ {
47
+ key: 'cfgScale',
48
+ label: 'CFG Scale',
49
+ type: 'number',
50
+ default: 7
51
+ },
52
+ {
53
+ key: 'width',
54
+ label: '宽度',
55
+ type: 'number',
56
+ default: 512
57
+ },
58
+ {
59
+ key: 'height',
60
+ label: '高度',
61
+ type: 'number',
62
+ default: 512
63
+ },
64
+ {
65
+ key: 'negativePrompt',
66
+ label: '负面提示词',
67
+ type: 'textarea',
68
+ default: 'lowres, bad anatomy, bad hands, text, error, missing fingers'
69
+ },
70
+ {
71
+ key: 'batchSize',
72
+ label: '批量大小',
73
+ type: 'number',
74
+ default: 1
75
+ },
76
+ {
77
+ key: 'seed',
78
+ label: '种子',
79
+ type: 'number',
80
+ default: -1,
81
+ placeholder: '-1 为随机'
82
+ },
83
+ {
84
+ key: 'denoisingStrength',
85
+ label: '去噪强度 (img2img)',
86
+ type: 'number',
87
+ default: 0.75
88
+ },
89
+ {
90
+ key: 'timeout',
91
+ label: '超时时间(秒)',
92
+ type: 'number',
93
+ default: 120
94
+ }
95
+ ],
96
+ async generate(ctx, config, files, prompt) {
97
+ const { apiUrl, model, sampler = 'Euler a', steps = 20, cfgScale = 7, width = 512, height = 512, negativePrompt = '', batchSize = 1, seed = -1, denoisingStrength = 0.75, timeout = 120 } = config;
98
+ const baseUrl = apiUrl.replace(/\/$/, '');
99
+ // 如果有输入图片,使用 img2img,否则使用 txt2img
100
+ const hasInputImage = files.length > 0 && files.some(f => f.mime.startsWith('image/'));
101
+ const endpoint = hasInputImage ? '/sdapi/v1/img2img' : '/sdapi/v1/txt2img';
102
+ // 构建请求体
103
+ const requestBody = {
104
+ prompt,
105
+ negative_prompt: negativePrompt,
106
+ sampler_name: sampler,
107
+ steps: Number(steps),
108
+ cfg_scale: Number(cfgScale),
109
+ width: Number(width),
110
+ height: Number(height),
111
+ batch_size: Number(batchSize),
112
+ seed: Number(seed)
113
+ };
114
+ // 如果指定了模型,添加模型覆盖
115
+ if (model) {
116
+ requestBody.override_settings = {
117
+ sd_model_checkpoint: model
118
+ };
119
+ }
120
+ // img2img 需要额外参数
121
+ if (hasInputImage) {
122
+ const imageFile = files.find(f => f.mime.startsWith('image/'));
123
+ const base64Data = Buffer.from(imageFile.data).toString('base64');
124
+ requestBody.init_images = [`data:${imageFile.mime};base64,${base64Data}`];
125
+ requestBody.denoising_strength = Number(denoisingStrength);
126
+ }
127
+ try {
128
+ const response = await ctx.http.post(`${baseUrl}${endpoint}`, requestBody, {
129
+ timeout: timeout * 1000
130
+ });
131
+ if (!response.images || !Array.isArray(response.images)) {
132
+ throw new Error('Invalid response from SD WebUI API');
133
+ }
134
+ // SD WebUI 返回 base64 图片
135
+ return response.images.map((img, idx) => {
136
+ // 移除可能的 data URI 前缀
137
+ const base64 = img.includes(',') ? img.split(',')[1] : img;
138
+ return {
139
+ kind: 'image',
140
+ url: `data:image/png;base64,${base64}`,
141
+ mime: 'image/png',
142
+ meta: {
143
+ seed: response.parameters?.seed,
144
+ info: response.info
145
+ }
146
+ };
147
+ });
148
+ }
149
+ catch (error) {
150
+ if (error instanceof Error) {
151
+ throw new Error(`SD WebUI API error: ${error.message}`);
152
+ }
153
+ throw error;
154
+ }
155
+ }
156
+ };
157
+ //# sourceMappingURL=sd-webui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-webui.js","sourceRoot":"","sources":["../../../src/connectors/builtin/sd-webui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Context } from 'koishi';
2
+ import { ConnectorDefinition } from '../types';
3
+ /**
4
+ * 连接器注册中心
5
+ *
6
+ * 管理连接器的注册、注销和查询
7
+ */
8
+ export declare class ConnectorRegistry {
9
+ private _connectors;
10
+ private _ctx;
11
+ constructor(ctx: Context);
12
+ /**
13
+ * 注册连接器
14
+ * @returns 注销函数
15
+ */
16
+ register(connector: ConnectorDefinition): () => void;
17
+ /** 注销连接器 */
18
+ unregister(id: string): void;
19
+ /** 获取连接器 */
20
+ get(id: string): ConnectorDefinition | undefined;
21
+ /** 检查连接器是否存在 */
22
+ has(id: string): boolean;
23
+ /** 获取所有连接器 */
24
+ list(): ConnectorDefinition[];
25
+ /** 获取连接器摘要信息(用于前端) */
26
+ listSummary(): Array<{
27
+ id: string;
28
+ name: string;
29
+ supportedTypes: string[];
30
+ fields: any[];
31
+ cardFields: any[];
32
+ }>;
33
+ /** 清空所有连接器 */
34
+ clear(): void;
35
+ }
36
+ //# sourceMappingURL=connector-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-registry.d.ts","sourceRoot":"","sources":["../../src/connectors/connector-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,IAAI,CAAS;gBAET,GAAG,EAAE,OAAO;IAIxB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAcpD,YAAY;IACZ,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS5B,YAAY;IACZ,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIhD,gBAAgB;IAChB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,cAAc;IACd,IAAI,IAAI,mBAAmB,EAAE;IAI7B,sBAAsB;IACtB,WAAW,IAAI,KAAK,CAAC;QACnB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,MAAM,EAAE,GAAG,EAAE,CAAA;QACb,UAAU,EAAE,GAAG,EAAE,CAAA;KAClB,CAAC;IAUF,cAAc;IACd,KAAK,IAAI,IAAI;CAMd"}
@@ -0,0 +1,66 @@
1
+ // 连接器注册中心
2
+ /**
3
+ * 连接器注册中心
4
+ *
5
+ * 管理连接器的注册、注销和查询
6
+ */
7
+ export class ConnectorRegistry {
8
+ _connectors = new Map();
9
+ _ctx;
10
+ constructor(ctx) {
11
+ this._ctx = ctx;
12
+ }
13
+ /**
14
+ * 注册连接器
15
+ * @returns 注销函数
16
+ */
17
+ register(connector) {
18
+ if (this._connectors.has(connector.id)) {
19
+ throw new Error(`Connector "${connector.id}" is already registered`);
20
+ }
21
+ this._connectors.set(connector.id, connector);
22
+ this._ctx.emit('mediaLuna/connector-added', connector);
23
+ // 返回注销函数
24
+ return () => {
25
+ this.unregister(connector.id);
26
+ };
27
+ }
28
+ /** 注销连接器 */
29
+ unregister(id) {
30
+ if (!this._connectors.has(id)) {
31
+ return;
32
+ }
33
+ this._connectors.delete(id);
34
+ this._ctx.emit('mediaLuna/connector-removed', id);
35
+ }
36
+ /** 获取连接器 */
37
+ get(id) {
38
+ return this._connectors.get(id);
39
+ }
40
+ /** 检查连接器是否存在 */
41
+ has(id) {
42
+ return this._connectors.has(id);
43
+ }
44
+ /** 获取所有连接器 */
45
+ list() {
46
+ return Array.from(this._connectors.values());
47
+ }
48
+ /** 获取连接器摘要信息(用于前端) */
49
+ listSummary() {
50
+ return this.list().map(c => ({
51
+ id: c.id,
52
+ name: c.name,
53
+ supportedTypes: c.supportedTypes,
54
+ fields: c.fields,
55
+ cardFields: c.cardFields || []
56
+ }));
57
+ }
58
+ /** 清空所有连接器 */
59
+ clear() {
60
+ for (const id of this._connectors.keys()) {
61
+ this._ctx.emit('mediaLuna/connector-removed', id);
62
+ }
63
+ this._connectors.clear();
64
+ }
65
+ }
66
+ //# sourceMappingURL=connector-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-registry.js","sourceRoot":"","sources":["../../src/connectors/connector-registry.ts"],"names":[],"mappings":"AAAA,UAAU;AAKV;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACpB,WAAW,GAAqC,IAAI,GAAG,EAAE,CAAA;IACzD,IAAI,CAAS;IAErB,YAAY,GAAY;QACtB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACjB,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,SAA8B;QACrC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAA;QAEtD,SAAS;QACT,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC/B,CAAC,CAAA;IACH,CAAC;IAED,YAAY;IACZ,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,YAAY;IACZ,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,gBAAgB;IAChB,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,cAAc;IACd,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,sBAAsB;IACtB,WAAW;QAOT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;SAC/B,CAAC,CAAC,CAAA;IACL,CAAC;IAED,cAAc;IACd,KAAK;QACH,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export { ConnectorRegistry } from './connector-registry';
2
+ export * from './builtin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ // Connectors 模块导出
2
+ export { ConnectorRegistry } from './connector-registry';
3
+ export * from './builtin';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,cAAc,WAAW,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { Context } from 'koishi';
2
+ /**
3
+ * 获取当前用户 uid
4
+ * 优先级:1. @koishijs/plugin-auth 的 session 2. webui-auth 插件配置
5
+ *
6
+ * @param ctx Koishi Context
7
+ * @param authSession 来自 this.auth 的认证信息
8
+ * @returns uid 或 null
9
+ */
10
+ export declare function getUidFromAuth(ctx: Context, authSession: any): number | null;
11
+ /**
12
+ * 创建标准错误响应
13
+ */
14
+ export declare function apiError(error: unknown): {
15
+ success: false;
16
+ error: string;
17
+ };
18
+ /**
19
+ * 创建标准成功响应
20
+ */
21
+ export declare function apiSuccess<T>(data: T): {
22
+ success: true;
23
+ data: T;
24
+ };
25
+ /**
26
+ * API 处理包装器 - 自动处理错误
27
+ */
28
+ export declare function wrapApiHandler<TParams, TResult>(handler: (params: TParams) => Promise<TResult>): (params: TParams) => Promise<{
29
+ success: true;
30
+ data: TResult;
31
+ } | {
32
+ success: false;
33
+ error: string;
34
+ }>;
35
+ /**
36
+ * 需要认证的 API 处理包装器
37
+ * 自动检查 uid,如果未登录则返回错误
38
+ */
39
+ export declare function wrapAuthApiHandler<TParams, TResult>(ctx: Context, handler: (params: TParams, uid: number) => Promise<TResult>): (this: any, params: TParams) => Promise<{
40
+ success: true;
41
+ data: TResult;
42
+ } | {
43
+ success: false;
44
+ error: string;
45
+ }>;
46
+ //# sourceMappingURL=api-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-utils.d.ts","sourceRoot":"","sources":["../../../src/core/api/api-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,QAAQ,CAAA;AAKxC;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAiB5E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAG1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAC7C,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUpG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EACjD,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1D,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAc/G"}