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,258 @@
1
+ /**
2
+ * Media Luna 共享样式
3
+ * 在组件中通过 @import 引入,或在全局样式中使用
4
+ */
5
+
6
+ /* ========== 视图容器布局 ========== */
7
+ .ml-view-container {
8
+ height: 100%;
9
+ display: flex;
10
+ flex-direction: column;
11
+ min-height: 0;
12
+ }
13
+
14
+ .ml-view-header {
15
+ flex-shrink: 0;
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ margin-bottom: 1rem;
20
+ }
21
+
22
+ .ml-header-left {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 1.5rem;
26
+ flex-wrap: wrap;
27
+ }
28
+
29
+ .ml-header-right {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 1rem;
33
+ }
34
+
35
+ .ml-view-content {
36
+ flex: 1 1 0;
37
+ min-height: 0;
38
+ overflow-y: auto;
39
+ overflow-x: hidden;
40
+ padding: 0.5rem 0;
41
+ }
42
+
43
+ /* ========== 卡片基础样式 ========== */
44
+ .ml-card {
45
+ background: var(--k-card-bg);
46
+ border: 1px solid var(--k-color-border);
47
+ border-radius: 8px;
48
+ overflow: hidden;
49
+ transition: all 0.2s ease;
50
+ }
51
+
52
+ .ml-card--clickable {
53
+ cursor: pointer;
54
+ }
55
+
56
+ .ml-card--clickable:hover {
57
+ border-color: var(--k-color-active);
58
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
59
+ transform: translateY(-2px);
60
+ }
61
+
62
+ .ml-card--active {
63
+ border-color: var(--k-color-active);
64
+ background: var(--k-color-active-bg);
65
+ }
66
+
67
+ .ml-card--disabled {
68
+ opacity: 0.6;
69
+ }
70
+
71
+ /* ========== 表格样式 ========== */
72
+ .ml-table-container {
73
+ background-color: var(--k-card-bg);
74
+ border: 1px solid var(--k-color-border);
75
+ border-radius: 8px;
76
+ overflow: hidden;
77
+ }
78
+
79
+ .ml-table {
80
+ width: 100%;
81
+ border-collapse: collapse;
82
+ table-layout: fixed;
83
+ }
84
+
85
+ .ml-table thead {
86
+ background-color: var(--k-color-bg-2);
87
+ }
88
+
89
+ .ml-table th {
90
+ padding: 0.875rem 1rem;
91
+ font-size: 0.8rem;
92
+ font-weight: 600;
93
+ color: var(--k-color-text-description);
94
+ text-align: left;
95
+ border-bottom: 1px solid var(--k-color-border);
96
+ white-space: nowrap;
97
+ overflow: hidden;
98
+ text-overflow: ellipsis;
99
+ }
100
+
101
+ .ml-table tbody tr {
102
+ cursor: pointer;
103
+ transition: background-color 0.15s ease;
104
+ }
105
+
106
+ .ml-table tbody tr:hover {
107
+ background-color: var(--k-color-bg-1);
108
+ }
109
+
110
+ .ml-table td {
111
+ padding: 0.75rem 1rem;
112
+ border-bottom: 1px solid var(--k-color-border);
113
+ vertical-align: middle;
114
+ text-align: left;
115
+ overflow: hidden;
116
+ text-overflow: ellipsis;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ .ml-table tbody tr:last-child td {
121
+ border-bottom: none;
122
+ }
123
+
124
+ /* ========== 瀑布流布局 ========== */
125
+ .ml-masonry {
126
+ columns: 5;
127
+ column-gap: 1rem;
128
+ }
129
+
130
+ .ml-masonry-item {
131
+ break-inside: avoid;
132
+ margin-bottom: 1rem;
133
+ }
134
+
135
+ @media (max-width: 1400px) {
136
+ .ml-masonry { columns: 4; }
137
+ }
138
+
139
+ @media (max-width: 1100px) {
140
+ .ml-masonry { columns: 3; }
141
+ }
142
+
143
+ @media (max-width: 800px) {
144
+ .ml-masonry { columns: 2; }
145
+ }
146
+
147
+ @media (max-width: 500px) {
148
+ .ml-masonry { columns: 1; }
149
+ }
150
+
151
+ /* ========== 栅格布局 ========== */
152
+ .ml-grid {
153
+ display: grid;
154
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
155
+ gap: 1.5rem;
156
+ padding: 0.5rem;
157
+ }
158
+
159
+ /* ========== 按钮变体 ========== */
160
+ .ml-btn-outline-primary {
161
+ color: var(--k-color-active) !important;
162
+ border-color: var(--k-color-active) !important;
163
+ }
164
+
165
+ .ml-btn-outline-primary:hover {
166
+ background-color: var(--k-color-active) !important;
167
+ color: white !important;
168
+ }
169
+
170
+ .ml-btn-outline-danger {
171
+ color: var(--k-color-error, #f56c6c) !important;
172
+ border-color: var(--k-color-error, #f56c6c) !important;
173
+ }
174
+
175
+ .ml-btn-outline-danger:hover {
176
+ background-color: var(--k-color-error, #f56c6c) !important;
177
+ color: white !important;
178
+ }
179
+
180
+ /* ========== 徽章样式 ========== */
181
+ .ml-badge {
182
+ display: inline-flex;
183
+ align-items: center;
184
+ gap: 0.35rem;
185
+ padding: 2px 8px;
186
+ background-color: var(--k-color-bg-2);
187
+ border-radius: 4px;
188
+ font-size: 0.8rem;
189
+ color: var(--k-color-text-description);
190
+ }
191
+
192
+ .ml-badge--success {
193
+ background-color: var(--k-color-success-light, rgba(103, 194, 58, 0.1));
194
+ color: var(--k-color-success, #67c23a);
195
+ }
196
+
197
+ .ml-badge--primary {
198
+ background-color: var(--k-color-active-bg);
199
+ color: var(--k-color-active);
200
+ }
201
+
202
+ .ml-badge--warning {
203
+ background-color: var(--k-color-warning-light, rgba(230, 162, 60, 0.1));
204
+ color: var(--k-color-warning, #e6a23c);
205
+ }
206
+
207
+ .ml-badge--danger {
208
+ background-color: var(--k-color-error-light, rgba(245, 108, 108, 0.1));
209
+ color: var(--k-color-error, #f56c6c);
210
+ }
211
+
212
+ /* ========== 标签样式 ========== */
213
+ .ml-tag {
214
+ font-size: 0.75rem;
215
+ padding: 1px 6px;
216
+ color: var(--k-color-text-description);
217
+ border: 1px solid var(--k-color-border);
218
+ border-radius: 12px;
219
+ background-color: transparent;
220
+ }
221
+
222
+ .ml-tag--filled {
223
+ background-color: var(--k-color-bg-2);
224
+ border-color: transparent;
225
+ }
226
+
227
+ /* ========== 表单提示 ========== */
228
+ .ml-form-hint {
229
+ font-size: 0.8rem;
230
+ color: var(--k-color-text-description);
231
+ margin-top: 4px;
232
+ }
233
+
234
+ /* ========== 分隔线 ========== */
235
+ .ml-divider {
236
+ height: 1px;
237
+ background-color: var(--k-color-border);
238
+ margin: 1rem 0;
239
+ }
240
+
241
+ /* ========== 动画 ========== */
242
+ @keyframes ml-spin {
243
+ from { transform: rotate(0deg); }
244
+ to { transform: rotate(360deg); }
245
+ }
246
+
247
+ .ml-spin {
248
+ animation: ml-spin 1s linear infinite;
249
+ }
250
+
251
+ @keyframes ml-fade-in {
252
+ from { opacity: 0; }
253
+ to { opacity: 1; }
254
+ }
255
+
256
+ .ml-fade-in {
257
+ animation: ml-fade-in 0.3s ease;
258
+ }
@@ -0,0 +1,158 @@
1
+ // 从后端导入所有类型(前后端共享同一份类型定义)
2
+ // 使用相对路径直接引用源文件,确保开发时类型同步
3
+ export type {
4
+ // 基础类型
5
+ AssetKind,
6
+ OutputAsset,
7
+ FileData,
8
+ ClientFileData,
9
+
10
+ // 配置类型
11
+ ConfigField,
12
+ ConfigFieldType,
13
+ ConfigFieldOption,
14
+ CardField,
15
+ CardDisplayField,
16
+ MiddlewareCardField,
17
+
18
+ // 渠道和连接器
19
+ ChannelConfig,
20
+ ConnectorDefinition,
21
+ ConnectorSupportedType,
22
+
23
+ // 中间件
24
+ MiddlewareCategory,
25
+ MiddlewareInfo,
26
+
27
+ // 预设和任务
28
+ PresetData,
29
+ TaskData,
30
+ TaskStats,
31
+
32
+ // 生成
33
+ GenerationRequest,
34
+ GenerationResult,
35
+
36
+ // 设置面板
37
+ SettingsPanelType,
38
+ SettingsPanelDefinition,
39
+ SettingsPanelInfo,
40
+
41
+ // API 响应
42
+ ApiResponse,
43
+ PaginatedResponse,
44
+ CardFieldsResponse
45
+ } from '../src/types'
46
+
47
+ // 类型别名(保持向后兼容)
48
+ import type { ConfigField, CardFieldsResponse as _CardFieldsResponse } from '../src/types'
49
+ export type FieldDefinition = ConfigField
50
+ export type MiddlewareCardFieldsResponse = _CardFieldsResponse
51
+
52
+ // Koishi Client 事件类型扩展
53
+ import type {
54
+ ChannelConfig,
55
+ PresetData,
56
+ TaskData,
57
+ TaskStats,
58
+ ConnectorDefinition,
59
+ GenerationResult,
60
+ ClientFileData,
61
+ MiddlewareInfo,
62
+ SettingsPanelInfo,
63
+ ApiResponse,
64
+ PaginatedResponse,
65
+ CardFieldsResponse
66
+ } from '../src/types'
67
+
68
+ // 远程预设配置类型
69
+ export interface RemotePresetConfig {
70
+ apiUrl: string
71
+ autoSync: boolean
72
+ syncInterval: number
73
+ deleteRemoved: boolean
74
+ }
75
+
76
+ declare module '@koishijs/client' {
77
+ interface Events {
78
+ // 渠道
79
+ 'media-luna/channels/list': () => ApiResponse<ChannelConfig[]>
80
+ 'media-luna/channels/get': (params: { id: number }) => ApiResponse<ChannelConfig>
81
+ 'media-luna/channels/create': (params: Omit<ChannelConfig, 'id'>) => ApiResponse<ChannelConfig>
82
+ 'media-luna/channels/update': (params: { id: number, data: Partial<ChannelConfig> }) => ApiResponse<ChannelConfig>
83
+ 'media-luna/channels/delete': (params: { id: number }) => ApiResponse<void>
84
+ 'media-luna/channels/toggle': (params: { id: number, enabled: boolean }) => ApiResponse<void>
85
+ 'media-luna/channels/tags': () => ApiResponse<string[]>
86
+ 'media-luna/channels/by-tags': (params: { tags: string[], matchAll?: boolean }) => ApiResponse<ChannelConfig[]>
87
+
88
+ // 预设
89
+ 'media-luna/presets/list': (params: { enabledOnly?: boolean }) => ApiResponse<PresetData[]>
90
+ 'media-luna/presets/get': (params: { id: number }) => ApiResponse<PresetData>
91
+ 'media-luna/presets/create': (params: Omit<PresetData, 'id'>) => ApiResponse<PresetData>
92
+ 'media-luna/presets/update': (params: { id: number, data: Partial<PresetData> }) => ApiResponse<PresetData>
93
+ 'media-luna/presets/delete': (params: { id: number }) => ApiResponse<void>
94
+ 'media-luna/presets/toggle': (params: { id: number, enabled: boolean }) => ApiResponse<void>
95
+ 'media-luna/presets/tags': () => ApiResponse<string[]>
96
+ 'media-luna/presets/by-tags': (params: { tags: string[], matchAll?: boolean }) => ApiResponse<PresetData[]>
97
+ 'media-luna/presets/matching': (params: { channelId: number }) => ApiResponse<PresetData[]>
98
+ 'media-luna/presets/copy': (params: { id: number }) => ApiResponse<PresetData>
99
+
100
+ // 任务
101
+ 'media-luna/tasks/list': (params: { userId?: number, channelId?: number, status?: string, limit?: number, offset?: number }) => ApiResponse<PaginatedResponse<TaskData>>
102
+ 'media-luna/tasks/get': (params: { id: number }) => ApiResponse<TaskData>
103
+ 'media-luna/tasks/delete': (params: { id: number }) => ApiResponse<void>
104
+ 'media-luna/tasks/stats': (params: { channelId?: number }) => ApiResponse<TaskStats>
105
+ 'media-luna/tasks/cleanup': (params: { days?: number }) => ApiResponse<{ deleted: number, beforeDate: string }>
106
+ 'media-luna/tasks/recent': (params: { userId: number, limit?: number }) => ApiResponse<TaskData[]>
107
+
108
+ // 连接器
109
+ 'media-luna/connectors/list': () => ApiResponse<{ id: string, name: string, supportedTypes: string[] }[]>
110
+ 'media-luna/connectors/get': (params: { id: string }) => ApiResponse<ConnectorDefinition>
111
+ 'media-luna/connectors/fields': (params: { id: string }) => ApiResponse<ConfigField[]>
112
+ 'media-luna/connectors/schema': () => ApiResponse<any[]>
113
+
114
+ // 生成
115
+ 'media-luna/generate': (params: { channelId: number, prompt: string, files?: ClientFileData[], parameters?: any, userId?: number }) => ApiResponse<GenerationResult>
116
+ 'media-luna/generate/preview': (params: { channelId: number, prompt: string, parameters?: any }) => ApiResponse<{ channelName: string, connectorId: string, finalPrompt: string, parameters: any }>
117
+
118
+ // 中间件
119
+ 'media-luna/middlewares/list': () => ApiResponse<MiddlewareInfo[]>
120
+ 'media-luna/middlewares/get': (params: { name: string }) => ApiResponse<MiddlewareInfo>
121
+ 'media-luna/middlewares/update': (params: { name: string, data: { enabled?: boolean, config?: any } }) => ApiResponse<void>
122
+ 'media-luna/middlewares/reset': (params: { name: string }) => ApiResponse<void>
123
+ 'media-luna/middlewares/execution-order': () => ApiResponse<any[]>
124
+ 'media-luna/middlewares/card-fields': () => ApiResponse<CardFieldsResponse>
125
+
126
+ // 设置面板
127
+ 'media-luna/settings/panels': () => ApiResponse<SettingsPanelInfo[]>
128
+ 'media-luna/settings/get': (params: { id: string }) => ApiResponse<SettingsPanelInfo>
129
+ 'media-luna/settings/update': (params: { id: string, config: Record<string, any> }) => ApiResponse<void>
130
+ 'media-luna/settings/remote-presets/config': () => ApiResponse<RemotePresetConfig>
131
+ 'media-luna/settings/remote-presets/update': (params: { config: Partial<RemotePresetConfig> }) => ApiResponse<void>
132
+ 'media-luna/settings/remote-presets/sync': () => ApiResponse<{ added: number, updated: number, removed: number }>
133
+
134
+ // 画廊
135
+ 'media-luna/gallery/my': (params?: { limit?: number, offset?: number, channelId?: number }) => ApiResponse<{
136
+ items: Array<{ id: number, prompt: string, images: string[], createdAt: Date, channelId: number }>
137
+ total: number
138
+ hasMore: boolean
139
+ }>
140
+ 'media-luna/gallery/recent-images': (params?: { limit?: number }) => ApiResponse<Array<{
141
+ taskId: number
142
+ url: string
143
+ prompt: string
144
+ createdAt: Date
145
+ }>>
146
+ 'media-luna/gallery/user': (params: { uid: number, limit?: number, offset?: number, channelId?: number }) => ApiResponse<{
147
+ items: Array<{ id: number, prompt: string, images: string[], createdAt: Date, channelId: number }>
148
+ total: number
149
+ hasMore: boolean
150
+ }>
151
+
152
+ // 用户任务
153
+ 'media-luna/tasks/my': (params?: { channelId?: number, status?: string, limit?: number, offset?: number }) => ApiResponse<PaginatedResponse<TaskData>>
154
+
155
+ // 认证
156
+ 'media-luna/auth/me': () => ApiResponse<{ loggedIn: boolean, source?: string, uid?: number, name?: string, authority?: number }>
157
+ }
158
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * 格式化工具函数
3
+ */
4
+
5
+ /**
6
+ * 格式化时间戳为本地时间字符串
7
+ */
8
+ export const formatDate = (dateStr: string | Date): string => {
9
+ if (!dateStr) return '-'
10
+ const date = typeof dateStr === 'string' ? new Date(dateStr) : dateStr
11
+ return date.toLocaleString()
12
+ }
13
+
14
+ /**
15
+ * 格式化相对时间(如 "2分钟前")
16
+ */
17
+ export const formatRelativeTime = (dateStr: string | Date): string => {
18
+ if (!dateStr) return '-'
19
+ const date = typeof dateStr === 'string' ? new Date(dateStr) : dateStr
20
+ const now = new Date()
21
+ const diff = now.getTime() - date.getTime()
22
+
23
+ const seconds = Math.floor(diff / 1000)
24
+ const minutes = Math.floor(seconds / 60)
25
+ const hours = Math.floor(minutes / 60)
26
+ const days = Math.floor(hours / 24)
27
+
28
+ if (days > 0) return `${days}天前`
29
+ if (hours > 0) return `${hours}小时前`
30
+ if (minutes > 0) return `${minutes}分钟前`
31
+ return '刚刚'
32
+ }
33
+
34
+ /**
35
+ * 格式化持续时间(毫秒 -> 可读字符串)
36
+ */
37
+ export const formatDuration = (ms: number): string => {
38
+ if (ms === undefined || ms === null) return '-'
39
+ if (ms < 1000) return `${ms}ms`
40
+ if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`
41
+ const minutes = Math.floor(ms / 60000)
42
+ const seconds = ((ms % 60000) / 1000).toFixed(0)
43
+ return `${minutes}m ${seconds}s`
44
+ }
45
+
46
+ /**
47
+ * 格式化文件大小
48
+ */
49
+ export const formatFileSize = (bytes: number): string => {
50
+ if (bytes === 0) return '0 B'
51
+ const k = 1024
52
+ const sizes = ['B', 'KB', 'MB', 'GB']
53
+ const i = Math.floor(Math.log(bytes) / Math.log(k))
54
+ return `${(bytes / Math.pow(k, i)).toFixed(1)} ${sizes[i]}`
55
+ }
56
+
57
+ /**
58
+ * 格式化数字(添加千位分隔符)
59
+ */
60
+ export const formatNumber = (num: number): string => {
61
+ if (num === undefined || num === null) return '-'
62
+ return num.toLocaleString()
63
+ }
64
+
65
+ /**
66
+ * 格式化货币值
67
+ */
68
+ export const formatCurrency = (value: number, suffix?: string): string => {
69
+ if (value === undefined || value === null) return '-'
70
+ if (value === 0) return '免费'
71
+ return suffix ? `${value} ${suffix}` : String(value)
72
+ }