node-karin 1.4.3-pr.289.e7be2a0 → 1.4.3-pr.292.2ccb49c

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 (207) hide show
  1. package/default/config/groups.json +32 -12
  2. package/default/config/privates.json +8 -5
  3. package/dist/index.d.ts +36 -7
  4. package/dist/index.js +178 -20
  5. package/package.json +1 -1
  6. package/dist/web/assets/abap-BrgZPUOV.js.gz +0 -0
  7. package/dist/web/assets/apex-DyP6w7ZV.js.gz +0 -0
  8. package/dist/web/assets/azcli-BaLxmfj-.js.gz +0 -0
  9. package/dist/web/assets/bat-CFOPXBzS.js.gz +0 -0
  10. package/dist/web/assets/bicep-BfEKNvv3.js.gz +0 -0
  11. package/dist/web/assets/cameligo-BFG1Mk7z.js.gz +0 -0
  12. package/dist/web/assets/clojure-DTECt2xU.js.gz +0 -0
  13. package/dist/web/assets/codicon-DCmgc-ay.ttf +0 -0
  14. package/dist/web/assets/coffee-CDGzqUPQ.js.gz +0 -0
  15. package/dist/web/assets/cpp-CLLBncYj.js.gz +0 -0
  16. package/dist/web/assets/csharp-dUCx_-0o.js.gz +0 -0
  17. package/dist/web/assets/csp-5Rap-vPy.js.gz +0 -0
  18. package/dist/web/assets/css-D3h14YRZ.js.gz +0 -0
  19. package/dist/web/assets/cssMode-Co-jH17z.js.gz +0 -0
  20. package/dist/web/assets/cypher-DrQuvNYM.js.gz +0 -0
  21. package/dist/web/assets/dart-CFKIUWau.js.gz +0 -0
  22. package/dist/web/assets/dockerfile-Zznr-cwX.js.gz +0 -0
  23. package/dist/web/assets/ecl-Ce3n6wWz.js.gz +0 -0
  24. package/dist/web/assets/editor.worker-oRlJJsnX.js.gz +0 -0
  25. package/dist/web/assets/elixir-deUWdS0T.js.gz +0 -0
  26. package/dist/web/assets/favicon-BoqZd694.ico +0 -0
  27. package/dist/web/assets/flow9-i9-g7ZhI.js.gz +0 -0
  28. package/dist/web/assets/freemarker2-BG7pgivM.js.gz +0 -0
  29. package/dist/web/assets/fsharp-CzKuDChf.js.gz +0 -0
  30. package/dist/web/assets/go-Cphgjts3.js.gz +0 -0
  31. package/dist/web/assets/graphql-Cg7bfA9N.js.gz +0 -0
  32. package/dist/web/assets/handlebars-D317Siqu.js.gz +0 -0
  33. package/dist/web/assets/hcl-0cvrggvQ.js.gz +0 -0
  34. package/dist/web/assets/html-C5vK2aj6.js.gz +0 -0
  35. package/dist/web/assets/htmlMode-DtWTOL5b.js.gz +0 -0
  36. package/dist/web/assets/index-CI-M6-7w.css.gz +0 -0
  37. package/dist/web/assets/index-Car6nAGv.js +0 -1
  38. package/dist/web/assets/index-DC_W_RDl.js.gz +0 -0
  39. package/dist/web/assets/index-DI-mctNv.js +0 -1
  40. package/dist/web/assets/ini-Drc7WvVn.js.gz +0 -0
  41. package/dist/web/assets/java-B_fMsGYe.js.gz +0 -0
  42. package/dist/web/assets/javascript-PHV6sxyo.js.gz +0 -0
  43. package/dist/web/assets/jsonMode-BXcz_YKt.js.gz +0 -0
  44. package/dist/web/assets/julia-Bqgm2twL.js.gz +0 -0
  45. package/dist/web/assets/kotlin-BSkB5QuD.js.gz +0 -0
  46. package/dist/web/assets/less-BsTHnhdd.js.gz +0 -0
  47. package/dist/web/assets/lexon-YWi4-JPR.js.gz +0 -0
  48. package/dist/web/assets/liquid-ErjVV0bR.js.gz +0 -0
  49. package/dist/web/assets/lua-nf6ki56Z.js.gz +0 -0
  50. package/dist/web/assets/m3-Cpb6xl2v.js.gz +0 -0
  51. package/dist/web/assets/markdown-DSZPf7rp.js.gz +0 -0
  52. package/dist/web/assets/mdx-Bn6v4Bk6.js.gz +0 -0
  53. package/dist/web/assets/mips-B_c3zf-v.js.gz +0 -0
  54. package/dist/web/assets/msdax-rUNN04Wq.js.gz +0 -0
  55. package/dist/web/assets/mysql-DDwshQtU.js.gz +0 -0
  56. package/dist/web/assets/objective-c-B5zXfXm9.js.gz +0 -0
  57. package/dist/web/assets/pascal-CXOwvkN_.js.gz +0 -0
  58. package/dist/web/assets/pascaligo-Bc-ZgV77.js.gz +0 -0
  59. package/dist/web/assets/perl-CwNk8-XU.js.gz +0 -0
  60. package/dist/web/assets/pgsql-tGk8EFnU.js.gz +0 -0
  61. package/dist/web/assets/php-CpIb_Oan.js.gz +0 -0
  62. package/dist/web/assets/pla-B03wrqEc.js.gz +0 -0
  63. package/dist/web/assets/postiats-BKlk5iyT.js.gz +0 -0
  64. package/dist/web/assets/powerquery-Bhzvs7bI.js.gz +0 -0
  65. package/dist/web/assets/powershell-Dd3NCNK9.js.gz +0 -0
  66. package/dist/web/assets/protobuf-COyEY5Pt.js.gz +0 -0
  67. package/dist/web/assets/pug-BaJupSGV.js.gz +0 -0
  68. package/dist/web/assets/python-JEH6BTF6.js.gz +0 -0
  69. package/dist/web/assets/qsharp-DXyYeYxl.js.gz +0 -0
  70. package/dist/web/assets/r-CdQndTaG.js.gz +0 -0
  71. package/dist/web/assets/razor-d-Lx9TWR.js.gz +0 -0
  72. package/dist/web/assets/redis-CVwtpugi.js.gz +0 -0
  73. package/dist/web/assets/redshift-25W9uPmb.js.gz +0 -0
  74. package/dist/web/assets/restructuredtext-DfzH4Xui.js.gz +0 -0
  75. package/dist/web/assets/ruby-Cp1zYvxS.js.gz +0 -0
  76. package/dist/web/assets/rust-D5C2fndG.js.gz +0 -0
  77. package/dist/web/assets/sb-CDntyWJ8.js.gz +0 -0
  78. package/dist/web/assets/scala-BoFRg7Ot.js.gz +0 -0
  79. package/dist/web/assets/scheme-Bio4gycK.js.gz +0 -0
  80. package/dist/web/assets/scss-4Ik7cdeQ.js.gz +0 -0
  81. package/dist/web/assets/shell-CX-rkNHf.js.gz +0 -0
  82. package/dist/web/assets/solidity-Tw7wswEv.js.gz +0 -0
  83. package/dist/web/assets/sophia-C5WLch3f.js.gz +0 -0
  84. package/dist/web/assets/sparql-DHaeiCBh.js.gz +0 -0
  85. package/dist/web/assets/sql-CCSDG5nI.js.gz +0 -0
  86. package/dist/web/assets/st-pnP8ivHi.js.gz +0 -0
  87. package/dist/web/assets/swift-DwJ7jVG9.js.gz +0 -0
  88. package/dist/web/assets/systemverilog-B9Xyijhd.js.gz +0 -0
  89. package/dist/web/assets/tcl-DnHyzjbg.js.gz +0 -0
  90. package/dist/web/assets/ts.worker-Bd4z-OY3.js.gz +0 -0
  91. package/dist/web/assets/tsMode-C3RBzuZM.js.gz +0 -0
  92. package/dist/web/assets/twig-CPajHgWi.js.gz +0 -0
  93. package/dist/web/assets/typescript-DOq2wDuk.js.gz +0 -0
  94. package/dist/web/assets/typespec-D-MeaMDU.js.gz +0 -0
  95. package/dist/web/assets/vb-DgyLZaXg.js.gz +0 -0
  96. package/dist/web/assets/wgsl-BIv9DU6q.js.gz +0 -0
  97. package/dist/web/assets/xml-CTR1BEKq.js.gz +0 -0
  98. package/dist/web/assets/yaml-DIONomu0.js.gz +0 -0
  99. package/dist/web/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 +0 -0
  100. package/dist/web/grid.svg +0 -6
  101. package/dist/web/icon.css +0 -25
  102. package/dist/web/index.html +0 -25
  103. package/dist/web/karin.png +0 -0
  104. package/dist/web/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  105. package/dist/web/monaco-editor/min/vs/base/worker/workerMain.js.gz +0 -0
  106. package/dist/web/monaco-editor/min/vs/basic-languages/abap/abap.js.gz +0 -0
  107. package/dist/web/monaco-editor/min/vs/basic-languages/apex/apex.js.gz +0 -0
  108. package/dist/web/monaco-editor/min/vs/basic-languages/azcli/azcli.js.gz +0 -0
  109. package/dist/web/monaco-editor/min/vs/basic-languages/bat/bat.js.gz +0 -0
  110. package/dist/web/monaco-editor/min/vs/basic-languages/bicep/bicep.js.gz +0 -0
  111. package/dist/web/monaco-editor/min/vs/basic-languages/cameligo/cameligo.js.gz +0 -0
  112. package/dist/web/monaco-editor/min/vs/basic-languages/clojure/clojure.js.gz +0 -0
  113. package/dist/web/monaco-editor/min/vs/basic-languages/coffee/coffee.js.gz +0 -0
  114. package/dist/web/monaco-editor/min/vs/basic-languages/cpp/cpp.js.gz +0 -0
  115. package/dist/web/monaco-editor/min/vs/basic-languages/csharp/csharp.js.gz +0 -0
  116. package/dist/web/monaco-editor/min/vs/basic-languages/csp/csp.js.gz +0 -0
  117. package/dist/web/monaco-editor/min/vs/basic-languages/css/css.js.gz +0 -0
  118. package/dist/web/monaco-editor/min/vs/basic-languages/cypher/cypher.js.gz +0 -0
  119. package/dist/web/monaco-editor/min/vs/basic-languages/dart/dart.js.gz +0 -0
  120. package/dist/web/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js.gz +0 -0
  121. package/dist/web/monaco-editor/min/vs/basic-languages/ecl/ecl.js.gz +0 -0
  122. package/dist/web/monaco-editor/min/vs/basic-languages/elixir/elixir.js.gz +0 -0
  123. package/dist/web/monaco-editor/min/vs/basic-languages/flow9/flow9.js.gz +0 -0
  124. package/dist/web/monaco-editor/min/vs/basic-languages/freemarker2/freemarker2.js.gz +0 -0
  125. package/dist/web/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js.gz +0 -0
  126. package/dist/web/monaco-editor/min/vs/basic-languages/go/go.js.gz +0 -0
  127. package/dist/web/monaco-editor/min/vs/basic-languages/graphql/graphql.js.gz +0 -0
  128. package/dist/web/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js.gz +0 -0
  129. package/dist/web/monaco-editor/min/vs/basic-languages/hcl/hcl.js.gz +0 -0
  130. package/dist/web/monaco-editor/min/vs/basic-languages/html/html.js.gz +0 -0
  131. package/dist/web/monaco-editor/min/vs/basic-languages/ini/ini.js.gz +0 -0
  132. package/dist/web/monaco-editor/min/vs/basic-languages/java/java.js.gz +0 -0
  133. package/dist/web/monaco-editor/min/vs/basic-languages/javascript/javascript.js.gz +0 -0
  134. package/dist/web/monaco-editor/min/vs/basic-languages/julia/julia.js.gz +0 -0
  135. package/dist/web/monaco-editor/min/vs/basic-languages/kotlin/kotlin.js.gz +0 -0
  136. package/dist/web/monaco-editor/min/vs/basic-languages/less/less.js.gz +0 -0
  137. package/dist/web/monaco-editor/min/vs/basic-languages/lexon/lexon.js.gz +0 -0
  138. package/dist/web/monaco-editor/min/vs/basic-languages/liquid/liquid.js.gz +0 -0
  139. package/dist/web/monaco-editor/min/vs/basic-languages/lua/lua.js.gz +0 -0
  140. package/dist/web/monaco-editor/min/vs/basic-languages/m3/m3.js.gz +0 -0
  141. package/dist/web/monaco-editor/min/vs/basic-languages/markdown/markdown.js.gz +0 -0
  142. package/dist/web/monaco-editor/min/vs/basic-languages/mdx/mdx.js.gz +0 -0
  143. package/dist/web/monaco-editor/min/vs/basic-languages/mips/mips.js.gz +0 -0
  144. package/dist/web/monaco-editor/min/vs/basic-languages/msdax/msdax.js.gz +0 -0
  145. package/dist/web/monaco-editor/min/vs/basic-languages/mysql/mysql.js.gz +0 -0
  146. package/dist/web/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js.gz +0 -0
  147. package/dist/web/monaco-editor/min/vs/basic-languages/pascal/pascal.js.gz +0 -0
  148. package/dist/web/monaco-editor/min/vs/basic-languages/pascaligo/pascaligo.js.gz +0 -0
  149. package/dist/web/monaco-editor/min/vs/basic-languages/perl/perl.js.gz +0 -0
  150. package/dist/web/monaco-editor/min/vs/basic-languages/pgsql/pgsql.js.gz +0 -0
  151. package/dist/web/monaco-editor/min/vs/basic-languages/php/php.js.gz +0 -0
  152. package/dist/web/monaco-editor/min/vs/basic-languages/pla/pla.js.gz +0 -0
  153. package/dist/web/monaco-editor/min/vs/basic-languages/postiats/postiats.js.gz +0 -0
  154. package/dist/web/monaco-editor/min/vs/basic-languages/powerquery/powerquery.js.gz +0 -0
  155. package/dist/web/monaco-editor/min/vs/basic-languages/powershell/powershell.js.gz +0 -0
  156. package/dist/web/monaco-editor/min/vs/basic-languages/protobuf/protobuf.js.gz +0 -0
  157. package/dist/web/monaco-editor/min/vs/basic-languages/pug/pug.js.gz +0 -0
  158. package/dist/web/monaco-editor/min/vs/basic-languages/python/python.js.gz +0 -0
  159. package/dist/web/monaco-editor/min/vs/basic-languages/qsharp/qsharp.js.gz +0 -0
  160. package/dist/web/monaco-editor/min/vs/basic-languages/r/r.js.gz +0 -0
  161. package/dist/web/monaco-editor/min/vs/basic-languages/razor/razor.js.gz +0 -0
  162. package/dist/web/monaco-editor/min/vs/basic-languages/redis/redis.js.gz +0 -0
  163. package/dist/web/monaco-editor/min/vs/basic-languages/redshift/redshift.js.gz +0 -0
  164. package/dist/web/monaco-editor/min/vs/basic-languages/restructuredtext/restructuredtext.js.gz +0 -0
  165. package/dist/web/monaco-editor/min/vs/basic-languages/ruby/ruby.js.gz +0 -0
  166. package/dist/web/monaco-editor/min/vs/basic-languages/rust/rust.js.gz +0 -0
  167. package/dist/web/monaco-editor/min/vs/basic-languages/sb/sb.js.gz +0 -0
  168. package/dist/web/monaco-editor/min/vs/basic-languages/scala/scala.js.gz +0 -0
  169. package/dist/web/monaco-editor/min/vs/basic-languages/scheme/scheme.js.gz +0 -0
  170. package/dist/web/monaco-editor/min/vs/basic-languages/scss/scss.js.gz +0 -0
  171. package/dist/web/monaco-editor/min/vs/basic-languages/shell/shell.js.gz +0 -0
  172. package/dist/web/monaco-editor/min/vs/basic-languages/solidity/solidity.js.gz +0 -0
  173. package/dist/web/monaco-editor/min/vs/basic-languages/sophia/sophia.js.gz +0 -0
  174. package/dist/web/monaco-editor/min/vs/basic-languages/sparql/sparql.js.gz +0 -0
  175. package/dist/web/monaco-editor/min/vs/basic-languages/sql/sql.js.gz +0 -0
  176. package/dist/web/monaco-editor/min/vs/basic-languages/st/st.js.gz +0 -0
  177. package/dist/web/monaco-editor/min/vs/basic-languages/swift/swift.js.gz +0 -0
  178. package/dist/web/monaco-editor/min/vs/basic-languages/systemverilog/systemverilog.js.gz +0 -0
  179. package/dist/web/monaco-editor/min/vs/basic-languages/tcl/tcl.js.gz +0 -0
  180. package/dist/web/monaco-editor/min/vs/basic-languages/twig/twig.js.gz +0 -0
  181. package/dist/web/monaco-editor/min/vs/basic-languages/typescript/typescript.js.gz +0 -0
  182. package/dist/web/monaco-editor/min/vs/basic-languages/typespec/typespec.js.gz +0 -0
  183. package/dist/web/monaco-editor/min/vs/basic-languages/vb/vb.js.gz +0 -0
  184. package/dist/web/monaco-editor/min/vs/basic-languages/wgsl/wgsl.js.gz +0 -0
  185. package/dist/web/monaco-editor/min/vs/basic-languages/xml/xml.js.gz +0 -0
  186. package/dist/web/monaco-editor/min/vs/basic-languages/yaml/yaml.js.gz +0 -0
  187. package/dist/web/monaco-editor/min/vs/editor/editor.main.css.gz +0 -0
  188. package/dist/web/monaco-editor/min/vs/editor/editor.main.js.gz +0 -0
  189. package/dist/web/monaco-editor/min/vs/language/css/cssMode.js.gz +0 -0
  190. package/dist/web/monaco-editor/min/vs/language/css/cssWorker.js.gz +0 -0
  191. package/dist/web/monaco-editor/min/vs/language/html/htmlMode.js.gz +0 -0
  192. package/dist/web/monaco-editor/min/vs/language/html/htmlWorker.js.gz +0 -0
  193. package/dist/web/monaco-editor/min/vs/language/json/jsonMode.js.gz +0 -0
  194. package/dist/web/monaco-editor/min/vs/language/json/jsonWorker.js.gz +0 -0
  195. package/dist/web/monaco-editor/min/vs/language/typescript/tsMode.js.gz +0 -0
  196. package/dist/web/monaco-editor/min/vs/language/typescript/tsWorker.js.gz +0 -0
  197. package/dist/web/monaco-editor/min/vs/loader.js.gz +0 -0
  198. package/dist/web/monaco-editor/min/vs/nls.messages.de.js.gz +0 -0
  199. package/dist/web/monaco-editor/min/vs/nls.messages.es.js.gz +0 -0
  200. package/dist/web/monaco-editor/min/vs/nls.messages.fr.js.gz +0 -0
  201. package/dist/web/monaco-editor/min/vs/nls.messages.it.js.gz +0 -0
  202. package/dist/web/monaco-editor/min/vs/nls.messages.ja.js.gz +0 -0
  203. package/dist/web/monaco-editor/min/vs/nls.messages.ko.js.gz +0 -0
  204. package/dist/web/monaco-editor/min/vs/nls.messages.ru.js.gz +0 -0
  205. package/dist/web/monaco-editor/min/vs/nls.messages.zh-cn.js.gz +0 -0
  206. package/dist/web/monaco-editor/min/vs/nls.messages.zh-tw.js.gz +0 -0
  207. package/dist/web/sha256.min.js.gz +0 -0
@@ -1,47 +1,67 @@
1
- {
2
- "default": {
1
+ [
2
+ {
3
+ "key": "default",
3
4
  "cd": 0,
5
+ "userCD": 0,
4
6
  "mode": 0,
5
7
  "alias": [],
6
8
  "enable": [],
7
9
  "disable": [],
8
10
  "member_enable": [],
9
- "member_disable": []
11
+ "member_disable": [],
12
+ "memberEnable": [],
13
+ "memberDisable": []
10
14
  },
11
- "Bot:selfId": {
15
+ {
16
+ "key": "Bot:selfId",
12
17
  "cd": 0,
18
+ "userCD": 0,
13
19
  "mode": 0,
14
20
  "alias": [],
15
21
  "enable": [],
16
22
  "disable": [],
17
23
  "member_enable": [],
18
- "member_disable": []
24
+ "member_disable": [],
25
+ "memberEnable": [],
26
+ "memberDisable": []
19
27
  },
20
- "Bot:selfId:groupId": {
28
+ {
29
+ "key": "Bot:selfId:groupId",
21
30
  "cd": 0,
31
+ "userCD": 0,
22
32
  "mode": 0,
23
33
  "alias": [],
24
34
  "enable": [],
25
35
  "disable": [],
26
36
  "member_enable": [],
27
- "member_disable": []
37
+ "member_disable": [],
38
+ "memberEnable": [],
39
+ "memberDisable": []
28
40
  },
29
- "Bot:selfId:guildId": {
41
+ {
42
+ "key": "Bot:selfId:guildId",
30
43
  "cd": 0,
44
+ "userCD": 0,
31
45
  "mode": 0,
32
46
  "alias": [],
33
47
  "enable": [],
34
48
  "disable": [],
35
49
  "member_enable": [],
36
- "member_disable": []
50
+ "member_disable": [],
51
+ "memberEnable": [],
52
+ "memberDisable": []
37
53
  },
38
- "Bot:selfId:guildId:channelId": {
54
+ {
55
+ "key": "Bot:selfId:guildId:channelId",
39
56
  "cd": 0,
57
+ "userCD": 0,
40
58
  "mode": 0,
41
59
  "alias": [],
42
60
  "enable": [],
43
61
  "disable": [],
44
62
  "member_enable": [],
45
- "member_disable": []
63
+ "member_disable": [],
64
+ "memberEnable": [],
65
+ "memberDisable": []
46
66
  }
47
- }
67
+ ]
@@ -1,23 +1,26 @@
1
- {
2
- "default": {
1
+ [
2
+ {
3
+ "key": "default",
3
4
  "cd": 0,
4
5
  "mode": 0,
5
6
  "alias": [],
6
7
  "enable": [],
7
8
  "disable": []
8
9
  },
9
- "Bot:selfId": {
10
+ {
11
+ "key": "Bot:selfId",
10
12
  "cd": 0,
11
13
  "mode": 0,
12
14
  "alias": [],
13
15
  "enable": [],
14
16
  "disable": []
15
17
  },
16
- "Bot:selfId:userId": {
18
+ {
19
+ "key": "Bot:selfId:userId",
17
20
  "cd": 0,
18
21
  "mode": 0,
19
22
  "alias": [],
20
23
  "enable": [],
21
24
  "disable": []
22
25
  }
23
- }
26
+ ]
package/dist/index.d.ts CHANGED
@@ -6349,6 +6349,15 @@ interface HandlerType<T = any> {
6349
6349
  */
6350
6350
  declare const handler$1: HandlerType;
6351
6351
 
6352
+ /** pkg环境变量类型 */
6353
+ interface PkgEnv {
6354
+ /** 变量名 */
6355
+ key: string;
6356
+ /** 变量值 */
6357
+ value: string;
6358
+ /** 变量注释 */
6359
+ comment: string;
6360
+ }
6352
6361
  /** package.json类型 */
6353
6362
  interface PkgData {
6354
6363
  /** 插件名称 */
@@ -6372,6 +6381,8 @@ interface PkgData {
6372
6381
  static?: string | string[];
6373
6382
  /** 基本文件夹结构 */
6374
6383
  files?: string[];
6384
+ /** 环境变量配置 */
6385
+ env?: PkgEnv[];
6375
6386
  };
6376
6387
  [key: string]: any;
6377
6388
  }
@@ -8078,6 +8089,7 @@ declare namespace key {
8078
8089
  type fs_CacheEntry<T = any> = CacheEntry<T>;
8079
8090
  type fs_Parser = Parser;
8080
8091
  type fs_PkgData = PkgData;
8092
+ type fs_PkgEnv = PkgEnv;
8081
8093
  type fs_RequireFunction = RequireFunction;
8082
8094
  type fs_RequireFunctionSync = RequireFunctionSync;
8083
8095
  type fs_RequireOptions = RequireOptions;
@@ -8148,7 +8160,7 @@ declare const fs_writeJson: typeof writeJson;
8148
8160
  declare const fs_writeJsonSync: typeof writeJsonSync;
8149
8161
  declare const fs_yaml: typeof yaml;
8150
8162
  declare namespace fs {
8151
- export { type fs_CacheEntry as CacheEntry, type fs_Parser as Parser, type fs_PkgData as PkgData, type fs_RequireFunction as RequireFunction, type fs_RequireFunctionSync as RequireFunctionSync, type fs_RequireOptions as RequireOptions, fs_Watch as Watch, fs_Watcher as Watcher, type fs_YamlComment as YamlComment, fs_YamlEditor as YamlEditor, type fs_YamlValue as YamlValue, fs_absPath as absPath, fs_applyComments as applyComments, fs_base64 as base64, fs_buffer as buffer, fs_clearRequire as clearRequire, fs_clearRequireFile as clearRequireFile, fs_comment as comment, fs_copyConfig as copyConfig, fs_copyConfigSync as copyConfigSync, fs_copyFiles as copyFiles, fs_copyFilesSync as copyFilesSync, fs_createPluginDir as createPluginDir, fs_downFile as downFile, fs_existToMkdir as existToMkdir, fs_existToMkdirSync as existToMkdirSync, fs_exists as exists, fs_existsSync as existsSync, fs_filesByExt as filesByExt, fs_getFiles as getFiles, fs_getPluginInfo as getPluginInfo, fs_getRelPath as getRelPath, fs_isDir as isDir, fs_isDirSync as isDirSync, fs_isFile as isFile, fs_isFileSync as isFileSync, fs_isPlugin as isPlugin, fs_isStatic as isStatic, fs_isSubPath as isSubPath, json$1 as json, fs_key as key, fs_lock as lock, fs_lockMethod as lockMethod, fs_lockProp as lockProp, fs_log as log, fs_logs as logs, fs_mkdir as mkdir, fs_mkdirSync as mkdirSync, fs_parseChangelog as parseChangelog, fs_pkgRoot as pkgRoot, fs_randomStr as randomStr, fs_range as range, fs_read as read, fs_readFile as readFile, fs_readJson as readJson, fs_readJsonSync as readJsonSync, fs_requireFile as requireFile, fs_requireFileSync as requireFileSync, fs_rmSync as rmSync, fs_save as save, fs_sep as sep, fs_splitPath as splitPath, fs_stream as stream, fs_urlToPath as urlToPath, fs_watch as watch, fs_watchAndMerge as watchAndMerge, fs_write as write, fs_writeJson as writeJson, fs_writeJsonSync as writeJsonSync, fs_yaml as yaml };
8163
+ export { type fs_CacheEntry as CacheEntry, type fs_Parser as Parser, type fs_PkgData as PkgData, type fs_PkgEnv as PkgEnv, type fs_RequireFunction as RequireFunction, type fs_RequireFunctionSync as RequireFunctionSync, type fs_RequireOptions as RequireOptions, fs_Watch as Watch, fs_Watcher as Watcher, type fs_YamlComment as YamlComment, fs_YamlEditor as YamlEditor, type fs_YamlValue as YamlValue, fs_absPath as absPath, fs_applyComments as applyComments, fs_base64 as base64, fs_buffer as buffer, fs_clearRequire as clearRequire, fs_clearRequireFile as clearRequireFile, fs_comment as comment, fs_copyConfig as copyConfig, fs_copyConfigSync as copyConfigSync, fs_copyFiles as copyFiles, fs_copyFilesSync as copyFilesSync, fs_createPluginDir as createPluginDir, fs_downFile as downFile, fs_existToMkdir as existToMkdir, fs_existToMkdirSync as existToMkdirSync, fs_exists as exists, fs_existsSync as existsSync, fs_filesByExt as filesByExt, fs_getFiles as getFiles, fs_getPluginInfo as getPluginInfo, fs_getRelPath as getRelPath, fs_isDir as isDir, fs_isDirSync as isDirSync, fs_isFile as isFile, fs_isFileSync as isFileSync, fs_isPlugin as isPlugin, fs_isStatic as isStatic, fs_isSubPath as isSubPath, json$1 as json, fs_key as key, fs_lock as lock, fs_lockMethod as lockMethod, fs_lockProp as lockProp, fs_log as log, fs_logs as logs, fs_mkdir as mkdir, fs_mkdirSync as mkdirSync, fs_parseChangelog as parseChangelog, fs_pkgRoot as pkgRoot, fs_randomStr as randomStr, fs_range as range, fs_read as read, fs_readFile as readFile, fs_readJson as readJson, fs_readJsonSync as readJsonSync, fs_requireFile as requireFile, fs_requireFileSync as requireFileSync, fs_rmSync as rmSync, fs_save as save, fs_sep as sep, fs_splitPath as splitPath, fs_stream as stream, fs_urlToPath as urlToPath, fs_watch as watch, fs_watchAndMerge as watchAndMerge, fs_write as write, fs_writeJson as writeJson, fs_writeJsonSync as writeJsonSync, fs_yaml as yaml };
8152
8164
  }
8153
8165
 
8154
8166
  type index$3_CacheEntry<T = any> = CacheEntry<T>;
@@ -8156,6 +8168,7 @@ declare const index$3_EVENT_COUNT: typeof EVENT_COUNT;
8156
8168
  declare const index$3_FILE_CHANGE: typeof FILE_CHANGE;
8157
8169
  type index$3_Parser = Parser;
8158
8170
  type index$3_PkgData = PkgData;
8171
+ type index$3_PkgEnv = PkgEnv;
8159
8172
  declare const index$3_RECV_MSG: typeof RECV_MSG;
8160
8173
  type index$3_RequireFunction = RequireFunction;
8161
8174
  type index$3_RequireFunctionSync = RequireFunctionSync;
@@ -8236,7 +8249,7 @@ declare const index$3_writeJson: typeof writeJson;
8236
8249
  declare const index$3_writeJsonSync: typeof writeJsonSync;
8237
8250
  declare const index$3_yaml: typeof yaml;
8238
8251
  declare namespace index$3 {
8239
- export { type index$3_CacheEntry as CacheEntry, index$3_EVENT_COUNT as EVENT_COUNT, index$3_FILE_CHANGE as FILE_CHANGE, type index$3_Parser as Parser, type index$3_PkgData as PkgData, index$3_RECV_MSG as RECV_MSG, type index$3_RequireFunction as RequireFunction, type index$3_RequireFunctionSync as RequireFunctionSync, type index$3_RequireOptions as RequireOptions, index$3_SEND_MSG as SEND_MSG, index$3_WS_CLOSE as WS_CLOSE, index$3_WS_CLOSE_ONEBOT as WS_CLOSE_ONEBOT, index$3_WS_CLOSE_PUPPETEER as WS_CLOSE_PUPPETEER, index$3_WS_CLOSE_SANDBOX as WS_CLOSE_SANDBOX, index$3_WS_CONNECTION as WS_CONNECTION, index$3_WS_CONNECTION_ONEBOT as WS_CONNECTION_ONEBOT, index$3_WS_CONNECTION_PUPPETEER as WS_CONNECTION_PUPPETEER, index$3_WS_CONNECTION_SANDBOX as WS_CONNECTION_SANDBOX, index$3_Watch as Watch, index$3_Watcher as Watcher, type index$3_YamlComment as YamlComment, index$3_YamlEditor as YamlEditor, type index$3_YamlValue as YamlValue, index$3_absPath as absPath, index$3_applyComments as applyComments, index$3_base64 as base64, index$3_buffer as buffer, index$3_clearRequire as clearRequire, index$3_clearRequireFile as clearRequireFile, index$3_comment as comment, index$3_copyConfig as copyConfig, index$3_copyConfigSync as copyConfigSync, index$3_copyFiles as copyFiles, index$3_copyFilesSync as copyFilesSync, index$3_createPluginDir as createPluginDir, index$3_downFile as downFile, index$3_existToMkdir as existToMkdir, index$3_existToMkdirSync as existToMkdirSync, index$3_exists as exists, index$3_existsSync as existsSync, fs as file, index$3_filesByExt as filesByExt, index$3_getFiles as getFiles, index$3_getPluginInfo as getPluginInfo, index$3_getRelPath as getRelPath, index$3_isDir as isDir, index$3_isDirSync as isDirSync, index$3_isFile as isFile, index$3_isFileSync as isFileSync, index$3_isPlugin as isPlugin, index$3_isStatic as isStatic, index$3_isSubPath as isSubPath, json$1 as json, index$3_key as key, index$3_lock as lock, index$3_lockMethod as lockMethod, index$3_lockProp as lockProp, index$3_log as log, index$3_logs as logs, index$3_mkdir as mkdir, index$3_mkdirSync as mkdirSync, index$3_parseChangelog as parseChangelog, index$3_pkgRoot as pkgRoot, index$3_randomStr as randomStr, index$3_range as range, index$3_read as read, index$3_readFile as readFile, index$3_readJson as readJson, index$3_readJsonSync as readJsonSync, index$3_requireFile as requireFile, index$3_requireFileSync as requireFileSync, index$3_rmSync as rmSync, index$3_save as save, index$3_sep as sep, index$3_splitPath as splitPath, index$3_stream as stream, index$3_urlToPath as urlToPath, index$3_watch as watch, index$3_watchAndMerge as watchAndMerge, index$3_write as write, index$3_writeJson as writeJson, index$3_writeJsonSync as writeJsonSync, index$3_yaml as yaml };
8252
+ export { type index$3_CacheEntry as CacheEntry, index$3_EVENT_COUNT as EVENT_COUNT, index$3_FILE_CHANGE as FILE_CHANGE, type index$3_Parser as Parser, type index$3_PkgData as PkgData, type index$3_PkgEnv as PkgEnv, index$3_RECV_MSG as RECV_MSG, type index$3_RequireFunction as RequireFunction, type index$3_RequireFunctionSync as RequireFunctionSync, type index$3_RequireOptions as RequireOptions, index$3_SEND_MSG as SEND_MSG, index$3_WS_CLOSE as WS_CLOSE, index$3_WS_CLOSE_ONEBOT as WS_CLOSE_ONEBOT, index$3_WS_CLOSE_PUPPETEER as WS_CLOSE_PUPPETEER, index$3_WS_CLOSE_SANDBOX as WS_CLOSE_SANDBOX, index$3_WS_CONNECTION as WS_CONNECTION, index$3_WS_CONNECTION_ONEBOT as WS_CONNECTION_ONEBOT, index$3_WS_CONNECTION_PUPPETEER as WS_CONNECTION_PUPPETEER, index$3_WS_CONNECTION_SANDBOX as WS_CONNECTION_SANDBOX, index$3_Watch as Watch, index$3_Watcher as Watcher, type index$3_YamlComment as YamlComment, index$3_YamlEditor as YamlEditor, type index$3_YamlValue as YamlValue, index$3_absPath as absPath, index$3_applyComments as applyComments, index$3_base64 as base64, index$3_buffer as buffer, index$3_clearRequire as clearRequire, index$3_clearRequireFile as clearRequireFile, index$3_comment as comment, index$3_copyConfig as copyConfig, index$3_copyConfigSync as copyConfigSync, index$3_copyFiles as copyFiles, index$3_copyFilesSync as copyFilesSync, index$3_createPluginDir as createPluginDir, index$3_downFile as downFile, index$3_existToMkdir as existToMkdir, index$3_existToMkdirSync as existToMkdirSync, index$3_exists as exists, index$3_existsSync as existsSync, fs as file, index$3_filesByExt as filesByExt, index$3_getFiles as getFiles, index$3_getPluginInfo as getPluginInfo, index$3_getRelPath as getRelPath, index$3_isDir as isDir, index$3_isDirSync as isDirSync, index$3_isFile as isFile, index$3_isFileSync as isFileSync, index$3_isPlugin as isPlugin, index$3_isStatic as isStatic, index$3_isSubPath as isSubPath, json$1 as json, index$3_key as key, index$3_lock as lock, index$3_lockMethod as lockMethod, index$3_lockProp as lockProp, index$3_log as log, index$3_logs as logs, index$3_mkdir as mkdir, index$3_mkdirSync as mkdirSync, index$3_parseChangelog as parseChangelog, index$3_pkgRoot as pkgRoot, index$3_randomStr as randomStr, index$3_range as range, index$3_read as read, index$3_readFile as readFile, index$3_readJson as readJson, index$3_readJsonSync as readJsonSync, index$3_requireFile as requireFile, index$3_requireFileSync as requireFileSync, index$3_rmSync as rmSync, index$3_save as save, index$3_sep as sep, index$3_splitPath as splitPath, index$3_stream as stream, index$3_urlToPath as urlToPath, index$3_watch as watch, index$3_watchAndMerge as watchAndMerge, index$3_write as write, index$3_writeJson as writeJson, index$3_writeJsonSync as writeJsonSync, index$3_yaml as yaml };
8240
8253
  }
8241
8254
 
8242
8255
  /**
@@ -9416,7 +9429,7 @@ declare const getYaml: <T extends keyof FileListMap>(name: T, type: "user" | "de
9416
9429
  */
9417
9430
  declare const setYaml: <T extends keyof FileListMap>(name: T, data: T extends "groups" ? Groups : T extends "privates" ? Privates : Record<string, any>) => boolean;
9418
9431
  /**
9419
- * @description 修改框架配置
9432
+ * @description 修改框架配置 修改系统配置
9420
9433
  * @param name 文件名称
9421
9434
  * @param data 配置数据
9422
9435
  */
@@ -9500,7 +9513,7 @@ declare const host: () => string;
9500
9513
  declare const authKey: () => string;
9501
9514
  /**
9502
9515
  * @public 公开Api
9503
- * @description 修改`.env`文件
9516
+ * @description 修改`.env`文件 此方法仅允许写入单个键值对 如需写入多个键值对和注释 请使用`writeEnv`方法
9504
9517
  * @param data - 需要更新的环境变量键值对
9505
9518
  * @returns 是否更新成功
9506
9519
  */
@@ -9520,6 +9533,21 @@ declare const getEnv: (filePath?: string) => Record<string, {
9520
9533
  * @description 获取.env文件内容
9521
9534
  */
9522
9535
  declare const env: () => Env;
9536
+ /**
9537
+ * 写入单个或多个环境变量
9538
+ * @param data 要写入的环境变量
9539
+ * @param cwd env文件路径 默认系统.env文件
9540
+ * @param isCover 如果键已经存在 是否覆盖已有的值 默认否
9541
+ */
9542
+ declare const writeEnv: (data: {
9543
+ key: string;
9544
+ value: string;
9545
+ comment: string;
9546
+ } | {
9547
+ key: string;
9548
+ value: string;
9549
+ comment: string;
9550
+ }[], cwd?: string, isCover?: boolean) => void;
9523
9551
 
9524
9552
  /**
9525
9553
  * @public 公开Api
@@ -9621,8 +9649,9 @@ declare const index_setYaml: typeof setYaml;
9621
9649
  declare const index_timeout: typeof timeout;
9622
9650
  declare const index_updateLevel: typeof updateLevel;
9623
9651
  declare const index_webSocketServerToken: typeof webSocketServerToken;
9652
+ declare const index_writeEnv: typeof writeEnv;
9624
9653
  declare namespace index {
9625
- export { index_adapter as adapter, index_admin as admin, index_authKey as authKey, index_clearCache as clearCache, index_clearFiles as clearFiles, index_config as config, index_createCount as createCount, index_defaultConfig as defaultConfig, index_env as env, index_ffmpegPath as ffmpegPath, index_ffplayPath as ffplayPath, index_ffprobePath as ffprobePath, index_formatArray as formatArray, index_formatObject as formatObject, index_getCacheCfg as getCacheCfg, index_getDirectCfg as getDirectCfg, index_getEnv as getEnv, index_getFriendCfg as getFriendCfg, index_getGroupCfg as getGroupCfg, index_getGuildCfg as getGuildCfg, index_getYaml as getYaml, index_groups as groups, index_host as host, index_initConfig as initConfig, index_initConfigCache as initConfigCache, index_master as master, index_mergeDegAndCfg as mergeDegAndCfg, index_pkg as pkg, index_pm2 as pm2, index_port as port, index_privates as privates, redis$1 as redis, render$1 as render, index_setConfig as setConfig, index_setEnv as setEnv, index_setYaml as setYaml, index_timeout as timeout, index_updateLevel as updateLevel, index_webSocketServerToken as webSocketServerToken };
9654
+ export { index_adapter as adapter, index_admin as admin, index_authKey as authKey, index_clearCache as clearCache, index_clearFiles as clearFiles, index_config as config, index_createCount as createCount, index_defaultConfig as defaultConfig, index_env as env, index_ffmpegPath as ffmpegPath, index_ffplayPath as ffplayPath, index_ffprobePath as ffprobePath, index_formatArray as formatArray, index_formatObject as formatObject, index_getCacheCfg as getCacheCfg, index_getDirectCfg as getDirectCfg, index_getEnv as getEnv, index_getFriendCfg as getFriendCfg, index_getGroupCfg as getGroupCfg, index_getGuildCfg as getGuildCfg, index_getYaml as getYaml, index_groups as groups, index_host as host, index_initConfig as initConfig, index_initConfigCache as initConfigCache, index_master as master, index_mergeDegAndCfg as mergeDegAndCfg, index_pkg as pkg, index_pm2 as pm2, index_port as port, index_privates as privates, redis$1 as redis, render$1 as render, index_setConfig as setConfig, index_setEnv as setEnv, index_setYaml as setYaml, index_timeout as timeout, index_updateLevel as updateLevel, index_webSocketServerToken as webSocketServerToken, index_writeEnv as writeEnv };
9626
9655
  }
9627
9656
 
9628
9657
  /**
@@ -10939,7 +10968,7 @@ declare const hooks: {
10939
10968
  * @param isInfo 是否获取插件详细信息 否则返回插件名称列表
10940
10969
  * @param isForce 是否强制更新缓存
10941
10970
  */
10942
- declare const getPlugins: <T extends boolean = false>(type: GetPluginType, isInfo?: T, isForce?: boolean) => Promise<GetPluginReturn<T>>;
10971
+ declare const getPlugins: <T extends boolean = false>(type: GetPluginType, isInfo?: T, isForce?: boolean, isFirst?: boolean) => Promise<GetPluginReturn<T>>;
10943
10972
 
10944
10973
  /**
10945
10974
  * 登录号信息
@@ -11357,4 +11386,4 @@ declare let level: ReturnType<typeof createLevelDB>;
11357
11386
  */
11358
11387
  declare const start: () => Promise<void>;
11359
11388
 
11360
- export { type Accept, type AccordionItemProps, type AccordionKV, type AccordionProProps, type AccordionProResult, type AccordionProps, type AccordionResult, type AccountInfo, type Adapter, AdapterBase, type AdapterCommunication, type AdapterInfo, AdapterOneBot, type AdapterOptions, type AdapterPlatform, type AdapterProtocol, type AdapterStandard, type AdapterType, type Adapters, type AllPluginMethods, type AnonymousSegment, type Apps, type ArrayField, type AtElement, type AtSegment, type BaseContact, BaseEvent, type BaseEventOptions, type BaseEventType, type BaseForwardCallback, type BaseMessageCallback, type BasketballElement, Bot, type BoundingBox, type BubbleFaceElement, type Button, type ButtonElement, type Cache, type CacheEntry, type CheckboxField, type CheckboxGroupProps, type CheckboxProps, type CheckboxResult, type Children, type CmdFnc, type Command, type CommandClass, type ComponentConfig, type ComponentProps, type ComponentType, type Components, type ComponentsClass, type Config, type Contact, type ContactElement, type ContactSegment, type Count, type CreateGroupFolderResponse, type CustomMusicElement, type CustomMusicSegment, type CustomNodeElement, type CustomNodeSegments, type DbStreamStatus, type DbStreams, type DiceElement, type DiceSegment, type DirectContact, DirectMessage, type DirectMessageOptions, type DirectNodeElement, type DirectNodeSegment, type DirectSender, type DividerField, type DividerProps, type DownloadFileOptions, type DownloadFileResponse, EVENT_COUNT, type ElementTypes, type Elements, type Env, type Event, type EventParent, type EventToSubEvent, type ExecOptions, type ExecReturn, type ExecType, FILE_CHANGE, type FaceElement, type FaceSegment, type FieldType, type FileElement, type FileList, type FileListMap, type FileSegment, type FileToUrlHandler, type FileToUrlResult, type FormField, type ForwardMessageCallback, type ForwardOptions, type ForwardSegment, type FriendContact, type FriendData, FriendDecreaseNotice, type FriendDecreaseOptions, FriendIncreaseNotice, type FriendIncreaseOptions, FriendMessage, type FriendMessageOptions, type FriendNoticeEventMap, type FriendRequestEventMap, type FriendRequestOptions, type FriendSender, type GetAtAllCountResponse, type GetBot, type GetConfigRequest, type GetConfigResponse, type GetGroupFileListResponse, type GetGroupFileSystemInfoResponse, type GetGroupHighlightsResponse, type GetGroupInfo, type GetGroupMemberInfo, type GetGroupMuteListResponse, type GetMsg, type GetPluginReturn, type GetPluginType, type GiftElement, type GoToOptions, GroupAdminChangedNotice, type GroupAdminChangedOptions, GroupApplyRequest, type GroupApplyRequestOptions, GroupCardChangedNotice, type GroupCardChangedOptions, type GroupContact, type GroupData, GroupFileUploadedNotice, type GroupFileUploadedOptions, GroupHlightsChangedNotice, type GroupHlightsChangedOptions, GroupHonorChangedNotice, type GroupHonorChangedOptions, type GroupInfo, GroupInviteRequest, type GroupInviteRequestOptions, GroupLuckKingNotice, type GroupLuckKingOptions, GroupMemberBanNotice, type GroupMemberBanOptions, type GroupMemberData, GroupMemberDecreaseNotice, type GroupMemberDecreaseOptions, GroupMemberIncreaseNotice, type GroupMemberIncreaseOptions, type GroupMemberInfo, GroupMemberTitleUpdatedNotice, type GroupMemberUniqueTitleChangedOptions, GroupMessage, type GroupMessageOptions, GroupMessageReactionNotice, type GroupMessageReactionOptions, GroupNotice, type GroupNoticeEventMap, GroupPokeNotice, type GroupPokeOptions, GroupRecallNotice, type GroupRecallOptions, type GroupRequestEventMap, type GroupSender, GroupSignInNotice, type GroupSignInOptions, type GroupTempContact, GroupTempMessage, type GroupTempMessageOptions, type GroupTempSender, GroupWholeBanNotice, type GroupWholeBanOptions, type Groups, type GroupsObjectValue, type GuildContact, GuildMessage, type GuildMessageOptions, type GuildSender, type Handler, type HandlerType, type HonorInfoList, type HookCache, type HookCallback, type HookEmitForward, type HookEmitMessage, type HookNext, type HookOptions, type ImageElement, type ImageSegment, type InputGroupProps, type InputProps, type InputResult, type JsonElement, type JsonSegment, type JwtVerifyBase, type JwtVerifyError, type JwtVerifyExpired, type JwtVerifyResult, type JwtVerifySuccess, type JwtVerifyUnauthorized, type KarinButton, type KeyboardElement, type LocalApiResponse, type LocationElement, type LocationSegment, type Log, type Logger, type LoggerExpand, type LoggerLevel, type LoggerOptions, type LongMsgElement, type MarkdownElement, type MarkdownTplElement, type MarketFaceElement, type Message$2 as Message, MessageBase, type MessageEventMap, type MessageEventSub, type MessageHookItem, type MessageOptions, type MessageResponse, type MetaEventBase, type MusicElement, type MusicPlatform, type MusicSegment, type NodeElement, type NormalMessageCallback, type Notice, type NoticeAndRequest, NoticeBase, type NoticeEventMap, type NoticeEventSub, type NoticeOptions, type NumberField, type OB11AllEvent, OB11ApiAction, type OB11ApiParams, type OB11ApiRequest, OB11Event, type OB11EventBase, type OB11FriendSender, type OB11GroupMessage, type OB11GroupSender, type OB11GroupTempMessage, type OB11Message, OB11MessageSubType, OB11MessageType, type OB11Meta, type OB11NodeSegment, type OB11Notice, type OB11NoticeBaseType, OB11NoticeType, type OB11OtherFriendMessage, type OB11PrivateMessage, type OB11Request, type OB11RequestBaseType, OB11RequestType, type OB11Segment, type OB11SegmentBase, type OB11SegmentType, OB11Sex, type OB11serInfo, type ObjectArrayField, type ObjectField, type OneBot11FriendAdd, type OneBot11FriendRecall, type OneBot11FriendRequest, type OneBot11GroupAdmin, type OneBot11GroupBan, type OneBot11GroupCard, type OneBot11GroupDecrease, type OneBot11GroupEssence, type OneBot11GroupIncrease, type OneBot11GroupMessageReaction, type OneBot11GroupMessageReactionLagrange, type OneBot11GroupRecall, type OneBot11GroupRequest, type OneBot11GroupUpload, type OneBot11Heartbeat, type OneBot11Honor, type OneBot11Lifecycle, type OneBot11LuckyKing, type OneBot11Poke, type OnlinePluginInfo, type Option, type Options, type PM2, type Package, type Parser, type PasmsgElement, type Permission, type PkgData, type PkgInfo, Plugin, type PluginFile, type PluginFncTypes, type PluginLists, type PluginOptions, type PluginRule, type PluginUpdateInfo, type Point, type PokeSegment, PrivateApplyRequest, type PrivateApplyRequestOptions, PrivateFileUploadedNotice, type PrivateFileUploadedOptions, PrivatePokeNotice, type PrivatePokeOptions, PrivateRecallNotice, type PrivateRecallOptions, type Privates, type PrivatesObjectValue, type PuppeteerLifeCycleEvent, type QQBotButton, type QQButtonTextType, type QQGroupFileInfo, type QQGroupFolderInfo, type QQGroupHonorInfo, RECV_MSG, type Radio, type RadioField, type RadioGroupProps, type RadioResult, type RawElement, type ReadyMusicElement, ReceiveLikeNotice, type ReceiveLikeOptions, type RecordElement, type RecordSegment, type Redis, type Render, type RenderResult, Renderer, type Renders, type Reply, type ReplyElement, type ReplySegment, type Request, RequestBase, type RequestEventMap, type RequestEventSub, type RequestOptions, type RequireFunction, type RequireFunctionSync, type RequireOptions, type Role, type RpsElement, type RpsSegment, SEND_MSG, type SandBoxAccountInfo, type SandboxMsgRecord, type SandboxSendApi, type SandboxSendSendFriendMsg, type SandboxSendSendGroupMsg, type SandboxSendSendMsg, type SaveResult, type Scene, type ScreenshotClip, type ScreenshotOptions, type SectionField, type Segment, type SelectField, type SendElement, type SendForwardMessageResponse, type SendMessage, type SendMsgHookItem, type SendMsgResults, type Sender, type SenderBase, type SenderGroup, type Sex, type ShakeSegment, type ShareElement, type ShareSegment, type SrcReply, type SwitchField, type SwitchProps, type SwitchResult, type Task, type TextElement, type TextField, type TextSegment, type TitleField, type UnionMessage, type UnregisterBot, type UserInfo, type ValidationRule, type ValueType, type VideoElement, type VideoSegment, WS_CLOSE, WS_CLOSE_ONEBOT, WS_CLOSE_PUPPETEER, WS_CLOSE_SANDBOX, WS_CONNECTION, WS_CONNECTION_ONEBOT, WS_CONNECTION_PUPPETEER, WS_CONNECTION_SANDBOX, type WaitForOptions, Watch, Watcher, type WeatherElement, type XmlElement, type XmlSegment, type YamlComment, YamlEditor, type YamlValue, absPath, accordion, accordionItem, accordionPro, app, applyComments, base64, buffer, buttonHandle, callRender, changelog, checkGitPluginUpdate, checkPkgUpdate, clearRequire, clearRequireFile, comment, index$1 as common, components, index as config, contact, contactDirect, contactFriend, contactGroup, contactGroupTemp, contactGuild, copyConfig, copyConfigSync, copyFiles, copyFilesSync, createDirectMessage, createFriendDecreaseNotice, createFriendIncreaseNotice, createFriendMessage, createGroupAdminChangedNotice, createGroupApplyRequest, createGroupCardChangedNotice, createGroupFileUploadedNotice, createGroupHlightsChangedNotice, createGroupHonorChangedNotice, createGroupInviteRequest, createGroupLuckKingNotice, createGroupMemberAddNotice, createGroupMemberBanNotice, createGroupMemberDelNotice, createGroupMemberTitleUpdatedNotice, createGroupMessage, createGroupMessageReactionNotice, createGroupPokeNotice, createGroupRecallNotice, createGroupSignInNotice, createGroupTempMessage, createGroupWholeBanNotice, createGuildMessage, createInnerLogger, createPluginDir, createPrivateApplyRequest, createPrivateFileUploadedNotice, createPrivatePokeNotice, createPrivateRecallNotice, createRawMessage, createReceiveLikeNotice, debug, karin as default, divider, downFile, errorToString, exec, existToMkdir, existToMkdirSync, exists, existsSync, ffmpeg, ffplay, ffprobe, fs as file, fileToUrl, fileToUrlHandlerKey, filesByExt, formatTime$1 as formatTime, index$3 as fs, getAllBot, getAllBotID, getAllBotList, getBot, getBotCount, getCommit, getFiles, getHash, getPid, getPkgVersion, getPluginInfo, getPlugins, getRelPath, getRemotePkgVersion, getRender, getRenderCount, getRenderList, getRequestIp, getTime, handler$1 as handler, hooks, importModule, initOneBot, input, isClass, isDir, isDirSync, isDocker, isFile, isFileSync, isIPv4Loop, isIPv6Loop, isLinux, isLocalRequest, isLoopback, isMac, isPlugin, isRoot, isStatic, isSubPath, isWin, json$1 as json, karin, karinToQQBot, key, level, lock, lockMethod, lockProp, log, logger, logs, makeForward, makeMessage, type messageType, mkdir, mkdirSync, parseChangelog, pkgRoot, qqbotToKarin, randomStr, range, read, readFile, readJson, readJsonSync, redis, registerBot, registerRender, render, renderHtml, renderMultiHtml, requireFile, requireFileSync, restart, restartDirect, rmSync, save, type screenshot, segment, sendMsg, sender, senderDirect, senderFriend, senderGroup, senderGroupTemp, senderGuild, sep, server, splitPath, start, stream, stringifyError, switchComponent, index$2 as system, unregisterBot, unregisterRender, updateAllGitPlugin, updateAllPkg, updateGitPlugin, updatePkg, uptime$1 as uptime, urlToPath, watch, watchAndMerge, write, writeJson, writeJsonSync, yaml };
11389
+ export { type Accept, type AccordionItemProps, type AccordionKV, type AccordionProProps, type AccordionProResult, type AccordionProps, type AccordionResult, type AccountInfo, type Adapter, AdapterBase, type AdapterCommunication, type AdapterInfo, AdapterOneBot, type AdapterOptions, type AdapterPlatform, type AdapterProtocol, type AdapterStandard, type AdapterType, type Adapters, type AllPluginMethods, type AnonymousSegment, type Apps, type ArrayField, type AtElement, type AtSegment, type BaseContact, BaseEvent, type BaseEventOptions, type BaseEventType, type BaseForwardCallback, type BaseMessageCallback, type BasketballElement, Bot, type BoundingBox, type BubbleFaceElement, type Button, type ButtonElement, type Cache, type CacheEntry, type CheckboxField, type CheckboxGroupProps, type CheckboxProps, type CheckboxResult, type Children, type CmdFnc, type Command, type CommandClass, type ComponentConfig, type ComponentProps, type ComponentType, type Components, type ComponentsClass, type Config, type Contact, type ContactElement, type ContactSegment, type Count, type CreateGroupFolderResponse, type CustomMusicElement, type CustomMusicSegment, type CustomNodeElement, type CustomNodeSegments, type DbStreamStatus, type DbStreams, type DiceElement, type DiceSegment, type DirectContact, DirectMessage, type DirectMessageOptions, type DirectNodeElement, type DirectNodeSegment, type DirectSender, type DividerField, type DividerProps, type DownloadFileOptions, type DownloadFileResponse, EVENT_COUNT, type ElementTypes, type Elements, type Env, type Event, type EventParent, type EventToSubEvent, type ExecOptions, type ExecReturn, type ExecType, FILE_CHANGE, type FaceElement, type FaceSegment, type FieldType, type FileElement, type FileList, type FileListMap, type FileSegment, type FileToUrlHandler, type FileToUrlResult, type FormField, type ForwardMessageCallback, type ForwardOptions, type ForwardSegment, type FriendContact, type FriendData, FriendDecreaseNotice, type FriendDecreaseOptions, FriendIncreaseNotice, type FriendIncreaseOptions, FriendMessage, type FriendMessageOptions, type FriendNoticeEventMap, type FriendRequestEventMap, type FriendRequestOptions, type FriendSender, type GetAtAllCountResponse, type GetBot, type GetConfigRequest, type GetConfigResponse, type GetGroupFileListResponse, type GetGroupFileSystemInfoResponse, type GetGroupHighlightsResponse, type GetGroupInfo, type GetGroupMemberInfo, type GetGroupMuteListResponse, type GetMsg, type GetPluginReturn, type GetPluginType, type GiftElement, type GoToOptions, GroupAdminChangedNotice, type GroupAdminChangedOptions, GroupApplyRequest, type GroupApplyRequestOptions, GroupCardChangedNotice, type GroupCardChangedOptions, type GroupContact, type GroupData, GroupFileUploadedNotice, type GroupFileUploadedOptions, GroupHlightsChangedNotice, type GroupHlightsChangedOptions, GroupHonorChangedNotice, type GroupHonorChangedOptions, type GroupInfo, GroupInviteRequest, type GroupInviteRequestOptions, GroupLuckKingNotice, type GroupLuckKingOptions, GroupMemberBanNotice, type GroupMemberBanOptions, type GroupMemberData, GroupMemberDecreaseNotice, type GroupMemberDecreaseOptions, GroupMemberIncreaseNotice, type GroupMemberIncreaseOptions, type GroupMemberInfo, GroupMemberTitleUpdatedNotice, type GroupMemberUniqueTitleChangedOptions, GroupMessage, type GroupMessageOptions, GroupMessageReactionNotice, type GroupMessageReactionOptions, GroupNotice, type GroupNoticeEventMap, GroupPokeNotice, type GroupPokeOptions, GroupRecallNotice, type GroupRecallOptions, type GroupRequestEventMap, type GroupSender, GroupSignInNotice, type GroupSignInOptions, type GroupTempContact, GroupTempMessage, type GroupTempMessageOptions, type GroupTempSender, GroupWholeBanNotice, type GroupWholeBanOptions, type Groups, type GroupsObjectValue, type GuildContact, GuildMessage, type GuildMessageOptions, type GuildSender, type Handler, type HandlerType, type HonorInfoList, type HookCache, type HookCallback, type HookEmitForward, type HookEmitMessage, type HookNext, type HookOptions, type ImageElement, type ImageSegment, type InputGroupProps, type InputProps, type InputResult, type JsonElement, type JsonSegment, type JwtVerifyBase, type JwtVerifyError, type JwtVerifyExpired, type JwtVerifyResult, type JwtVerifySuccess, type JwtVerifyUnauthorized, type KarinButton, type KeyboardElement, type LocalApiResponse, type LocationElement, type LocationSegment, type Log, type Logger, type LoggerExpand, type LoggerLevel, type LoggerOptions, type LongMsgElement, type MarkdownElement, type MarkdownTplElement, type MarketFaceElement, type Message$2 as Message, MessageBase, type MessageEventMap, type MessageEventSub, type MessageHookItem, type MessageOptions, type MessageResponse, type MetaEventBase, type MusicElement, type MusicPlatform, type MusicSegment, type NodeElement, type NormalMessageCallback, type Notice, type NoticeAndRequest, NoticeBase, type NoticeEventMap, type NoticeEventSub, type NoticeOptions, type NumberField, type OB11AllEvent, OB11ApiAction, type OB11ApiParams, type OB11ApiRequest, OB11Event, type OB11EventBase, type OB11FriendSender, type OB11GroupMessage, type OB11GroupSender, type OB11GroupTempMessage, type OB11Message, OB11MessageSubType, OB11MessageType, type OB11Meta, type OB11NodeSegment, type OB11Notice, type OB11NoticeBaseType, OB11NoticeType, type OB11OtherFriendMessage, type OB11PrivateMessage, type OB11Request, type OB11RequestBaseType, OB11RequestType, type OB11Segment, type OB11SegmentBase, type OB11SegmentType, OB11Sex, type OB11serInfo, type ObjectArrayField, type ObjectField, type OneBot11FriendAdd, type OneBot11FriendRecall, type OneBot11FriendRequest, type OneBot11GroupAdmin, type OneBot11GroupBan, type OneBot11GroupCard, type OneBot11GroupDecrease, type OneBot11GroupEssence, type OneBot11GroupIncrease, type OneBot11GroupMessageReaction, type OneBot11GroupMessageReactionLagrange, type OneBot11GroupRecall, type OneBot11GroupRequest, type OneBot11GroupUpload, type OneBot11Heartbeat, type OneBot11Honor, type OneBot11Lifecycle, type OneBot11LuckyKing, type OneBot11Poke, type OnlinePluginInfo, type Option, type Options, type PM2, type Package, type Parser, type PasmsgElement, type Permission, type PkgData, type PkgEnv, type PkgInfo, Plugin, type PluginFile, type PluginFncTypes, type PluginLists, type PluginOptions, type PluginRule, type PluginUpdateInfo, type Point, type PokeSegment, PrivateApplyRequest, type PrivateApplyRequestOptions, PrivateFileUploadedNotice, type PrivateFileUploadedOptions, PrivatePokeNotice, type PrivatePokeOptions, PrivateRecallNotice, type PrivateRecallOptions, type Privates, type PrivatesObjectValue, type PuppeteerLifeCycleEvent, type QQBotButton, type QQButtonTextType, type QQGroupFileInfo, type QQGroupFolderInfo, type QQGroupHonorInfo, RECV_MSG, type Radio, type RadioField, type RadioGroupProps, type RadioResult, type RawElement, type ReadyMusicElement, ReceiveLikeNotice, type ReceiveLikeOptions, type RecordElement, type RecordSegment, type Redis, type Render, type RenderResult, Renderer, type Renders, type Reply, type ReplyElement, type ReplySegment, type Request, RequestBase, type RequestEventMap, type RequestEventSub, type RequestOptions, type RequireFunction, type RequireFunctionSync, type RequireOptions, type Role, type RpsElement, type RpsSegment, SEND_MSG, type SandBoxAccountInfo, type SandboxMsgRecord, type SandboxSendApi, type SandboxSendSendFriendMsg, type SandboxSendSendGroupMsg, type SandboxSendSendMsg, type SaveResult, type Scene, type ScreenshotClip, type ScreenshotOptions, type SectionField, type Segment, type SelectField, type SendElement, type SendForwardMessageResponse, type SendMessage, type SendMsgHookItem, type SendMsgResults, type Sender, type SenderBase, type SenderGroup, type Sex, type ShakeSegment, type ShareElement, type ShareSegment, type SrcReply, type SwitchField, type SwitchProps, type SwitchResult, type Task, type TextElement, type TextField, type TextSegment, type TitleField, type UnionMessage, type UnregisterBot, type UserInfo, type ValidationRule, type ValueType, type VideoElement, type VideoSegment, WS_CLOSE, WS_CLOSE_ONEBOT, WS_CLOSE_PUPPETEER, WS_CLOSE_SANDBOX, WS_CONNECTION, WS_CONNECTION_ONEBOT, WS_CONNECTION_PUPPETEER, WS_CONNECTION_SANDBOX, type WaitForOptions, Watch, Watcher, type WeatherElement, type XmlElement, type XmlSegment, type YamlComment, YamlEditor, type YamlValue, absPath, accordion, accordionItem, accordionPro, app, applyComments, base64, buffer, buttonHandle, callRender, changelog, checkGitPluginUpdate, checkPkgUpdate, clearRequire, clearRequireFile, comment, index$1 as common, components, index as config, contact, contactDirect, contactFriend, contactGroup, contactGroupTemp, contactGuild, copyConfig, copyConfigSync, copyFiles, copyFilesSync, createDirectMessage, createFriendDecreaseNotice, createFriendIncreaseNotice, createFriendMessage, createGroupAdminChangedNotice, createGroupApplyRequest, createGroupCardChangedNotice, createGroupFileUploadedNotice, createGroupHlightsChangedNotice, createGroupHonorChangedNotice, createGroupInviteRequest, createGroupLuckKingNotice, createGroupMemberAddNotice, createGroupMemberBanNotice, createGroupMemberDelNotice, createGroupMemberTitleUpdatedNotice, createGroupMessage, createGroupMessageReactionNotice, createGroupPokeNotice, createGroupRecallNotice, createGroupSignInNotice, createGroupTempMessage, createGroupWholeBanNotice, createGuildMessage, createInnerLogger, createPluginDir, createPrivateApplyRequest, createPrivateFileUploadedNotice, createPrivatePokeNotice, createPrivateRecallNotice, createRawMessage, createReceiveLikeNotice, debug, karin as default, divider, downFile, errorToString, exec, existToMkdir, existToMkdirSync, exists, existsSync, ffmpeg, ffplay, ffprobe, fs as file, fileToUrl, fileToUrlHandlerKey, filesByExt, formatTime$1 as formatTime, index$3 as fs, getAllBot, getAllBotID, getAllBotList, getBot, getBotCount, getCommit, getFiles, getHash, getPid, getPkgVersion, getPluginInfo, getPlugins, getRelPath, getRemotePkgVersion, getRender, getRenderCount, getRenderList, getRequestIp, getTime, handler$1 as handler, hooks, importModule, initOneBot, input, isClass, isDir, isDirSync, isDocker, isFile, isFileSync, isIPv4Loop, isIPv6Loop, isLinux, isLocalRequest, isLoopback, isMac, isPlugin, isRoot, isStatic, isSubPath, isWin, json$1 as json, karin, karinToQQBot, key, level, lock, lockMethod, lockProp, log, logger, logs, makeForward, makeMessage, type messageType, mkdir, mkdirSync, parseChangelog, pkgRoot, qqbotToKarin, randomStr, range, read, readFile, readJson, readJsonSync, redis, registerBot, registerRender, render, renderHtml, renderMultiHtml, requireFile, requireFileSync, restart, restartDirect, rmSync, save, type screenshot, segment, sendMsg, sender, senderDirect, senderFriend, senderGroup, senderGroupTemp, senderGuild, sep, server, splitPath, start, stream, stringifyError, switchComponent, index$2 as system, unregisterBot, unregisterRender, updateAllGitPlugin, updateAllPkg, updateGitPlugin, updatePkg, uptime$1 as uptime, urlToPath, watch, watchAndMerge, write, writeJson, writeJsonSync, yaml };
package/dist/index.js CHANGED
@@ -2195,7 +2195,7 @@ var init_config = __esm({
2195
2195
  import fs10 from "node:fs";
2196
2196
  import path7 from "node:path";
2197
2197
  import dotenv from "dotenv";
2198
- var parser, initEnv, ffmpegPath, ffprobePath, ffplayPath, port, host, authKey, setEnv, getEnv, env, env_default;
2198
+ var parser, initEnv, ffmpegPath, ffprobePath, ffplayPath, port, host, authKey, setEnv, getEnv, env, writeEnv, env_default;
2199
2199
  var init_env2 = __esm({
2200
2200
  "src/utils/config/file/env.ts"() {
2201
2201
  "use strict";
@@ -2227,7 +2227,7 @@ var init_env2 = __esm({
2227
2227
  }
2228
2228
  value = value.replace(/^"|"$/g, "");
2229
2229
  }
2230
- list2.push({ key, value, comment: comment2 });
2230
+ list2.push({ key, value, comment: comment2.replace(/\\r|\\n/g, "").trim() });
2231
2231
  });
2232
2232
  const result = {};
2233
2233
  list2.forEach((item) => {
@@ -2298,6 +2298,39 @@ ${key}="${value.value}"`).join("\n");
2298
2298
  });
2299
2299
  return env3;
2300
2300
  };
2301
+ writeEnv = (data, cwd = path7.join(process.cwd(), ".env"), isCover = false) => {
2302
+ const env3 = getEnv(cwd);
2303
+ if (!Array.isArray(data)) data = [data];
2304
+ data.forEach((item) => {
2305
+ var _a;
2306
+ const { key, value, comment: comment2 } = item;
2307
+ if (!key || typeof key !== "string" || typeof value !== "string") {
2308
+ logger.error("[writeEnv]", "key \u5FC5\u987B\u4E3A\u5B57\u7B26\u4E32");
2309
+ return;
2310
+ }
2311
+ if (env3[key]) {
2312
+ if (!isCover) {
2313
+ logger.debug(`[writeEnv] key: ${key} \u5DF2\u5B58\u5728 \u8DF3\u8FC7`);
2314
+ return;
2315
+ }
2316
+ }
2317
+ env3[key] = {
2318
+ value,
2319
+ comment: comment2 || ((_a = env3 == null ? void 0 : env3[key]) == null ? void 0 : _a.comment) || ""
2320
+ };
2321
+ });
2322
+ const content = Object.entries(env3).map(([key, value]) => {
2323
+ const val = /^".*"$/.test(value.value) ? value.value : `"${value.value}"`;
2324
+ if (value.comment) {
2325
+ const comment2 = /^#/.test(value.comment) ? value.comment : `# ${value.comment}`;
2326
+ return `${comment2}
2327
+ ${key}=${val}`;
2328
+ }
2329
+ return `${key}=${val}`;
2330
+ }).join("\n");
2331
+ fs10.writeFileSync(cwd, content);
2332
+ dotenv.config({ path: cwd, override: true });
2333
+ };
2301
2334
  env_default = initEnv;
2302
2335
  }
2303
2336
  });
@@ -2955,7 +2988,8 @@ __export(config_exports, {
2955
2988
  setYaml: () => setYaml,
2956
2989
  timeout: () => timeout,
2957
2990
  updateLevel: () => updateLevel,
2958
- webSocketServerToken: () => webSocketServerToken
2991
+ webSocketServerToken: () => webSocketServerToken,
2992
+ writeEnv: () => writeEnv
2959
2993
  });
2960
2994
  var init_config2 = __esm({
2961
2995
  "src/utils/config/index.ts"() {
@@ -3440,6 +3474,44 @@ var init_time = __esm({
3440
3474
  }
3441
3475
  });
3442
3476
 
3477
+ // src/plugin/env.ts
3478
+ var createAddEnv;
3479
+ var init_env3 = __esm({
3480
+ "src/plugin/env.ts"() {
3481
+ "use strict";
3482
+ init_esm_shims();
3483
+ createAddEnv = (list2) => {
3484
+ if (!list2) {
3485
+ return () => {
3486
+ };
3487
+ }
3488
+ return (name, data) => {
3489
+ if (!Array.isArray(data)) {
3490
+ logger.error(`[addEnv] \u63D2\u4EF6${name}\u7684env\u5B57\u6BB5\u4E0D\u7B26\u5408\u89C4\u8303 \u5DF2\u8DF3\u8FC7\u52A0\u8F7D`);
3491
+ return;
3492
+ }
3493
+ data.forEach((val) => {
3494
+ const { key, value, comment: comment2 = "" } = val;
3495
+ if (!key || !value || typeof key !== "string" || typeof value !== "string") {
3496
+ logger.warn(
3497
+ `[addEnv] \u63D2\u4EF6${name}\u7684env\u4E0D\u7B26\u5408\u89C4\u8303 \u5DF2\u8DF3\u8FC7
3498
+ key: ${key}
3499
+ value: ${value}
3500
+ comment: ${comment2}`
3501
+ );
3502
+ return;
3503
+ }
3504
+ list2.push({
3505
+ key,
3506
+ value,
3507
+ comment: typeof comment2 !== "string" ? String(comment2) : comment2
3508
+ });
3509
+ });
3510
+ };
3511
+ };
3512
+ }
3513
+ });
3514
+
3443
3515
  // src/plugin/list.ts
3444
3516
  import fs15 from "node:fs";
3445
3517
  import path10 from "node:path";
@@ -3450,14 +3522,16 @@ var init_list = __esm({
3450
3522
  "use strict";
3451
3523
  init_esm_shims();
3452
3524
  init_env();
3453
- init_path();
3525
+ init_env3();
3454
3526
  init_root();
3527
+ init_path();
3528
+ init_env2();
3455
3529
  init_require();
3456
3530
  cache9 = {
3457
3531
  list: void 0,
3458
3532
  info: void 0
3459
3533
  };
3460
- getPlugins = async (type, isInfo, isForce = false) => {
3534
+ getPlugins = async (type, isInfo, isForce = false, isFirst = false) => {
3461
3535
  var _a, _b;
3462
3536
  if (isForce) {
3463
3537
  delete cache9.list;
@@ -3500,7 +3574,7 @@ var init_list = __esm({
3500
3574
  return (_a2 = cache9 == null ? void 0 : cache9.list) == null ? true : delete _a2[type];
3501
3575
  }, 60 * 1e3);
3502
3576
  if (!isInfo) return list2;
3503
- const info = await getPluginsInfo(list2, isForce);
3577
+ const info = await getPluginsInfo(list2, isForce, isFirst);
3504
3578
  cache9.info[type] = info;
3505
3579
  setTimeout(() => {
3506
3580
  var _a2;
@@ -3508,9 +3582,10 @@ var init_list = __esm({
3508
3582
  }, 60 * 1e3);
3509
3583
  return info;
3510
3584
  };
3511
- getPluginsInfo = async (list2, isForce) => {
3585
+ getPluginsInfo = async (list2, isForce, isFirst) => {
3512
3586
  const info = [];
3513
3587
  const ext = isTsx() ? [".ts", ".js"] : [".js"];
3588
+ const env3 = isFirst ? [] : null;
3514
3589
  await Promise.allSettled(list2.map(async (v) => {
3515
3590
  const [type, name] = v.split(":");
3516
3591
  if (type === "app") {
@@ -3520,14 +3595,15 @@ var init_list = __esm({
3520
3595
  }
3521
3596
  if (type === "git" || type === "root") {
3522
3597
  const file = type === "root" ? process.cwd() : path10.join(pluginDir, name);
3523
- await getGitInfo(info, file, name, ext, isForce);
3598
+ await getGitInfo(info, file, name, ext, isForce, env3);
3524
3599
  return;
3525
3600
  }
3526
3601
  if (type === "npm") {
3527
3602
  const file = path10.join(process.cwd(), "node_modules", name);
3528
- await getNpmInfo(info, file, name, isForce);
3603
+ await getNpmInfo(info, file, name, isForce, env3);
3529
3604
  }
3530
3605
  }));
3606
+ env3 && writeEnv(env3);
3531
3607
  return info;
3532
3608
  };
3533
3609
  createPkg = (type, name, dir2, apps, allApps, isForce) => {
@@ -3553,12 +3629,13 @@ var init_list = __esm({
3553
3629
  const apps = filesByExt(dir2, ext, "abs");
3554
3630
  info.push(createPkg("app", name, dir2, apps, [dir2], isForce));
3555
3631
  };
3556
- getGitInfo = async (info, dir2, name, ext, isForce) => {
3632
+ getGitInfo = async (info, dir2, name, ext, isForce, env3) => {
3557
3633
  const pkg2 = await requireFile(path10.join(dir2, "package.json"));
3558
3634
  if (!pkg2 || !pkg2.karin) {
3559
3635
  info.push(createPkg("git", name, dir2, [], [], isForce));
3560
3636
  return;
3561
3637
  }
3638
+ Array.isArray(pkg2.env) && createAddEnv(env3)(pkg2.name, pkg2.env);
3562
3639
  const apps = [];
3563
3640
  const files = [];
3564
3641
  const allApps = [];
@@ -3582,7 +3659,7 @@ var init_list = __esm({
3582
3659
  }));
3583
3660
  info.push(createPkg("git", name, dir2, apps, allApps, isForce));
3584
3661
  };
3585
- getNpmInfo = async (info, dir2, name, isForce) => {
3662
+ getNpmInfo = async (info, dir2, name, isForce, env3) => {
3586
3663
  var _a, _b;
3587
3664
  const ext = ".js";
3588
3665
  const apps = [];
@@ -3592,6 +3669,7 @@ var init_list = __esm({
3592
3669
  info.push(createPkg("npm", name, dir2, [], [], isForce));
3593
3670
  return;
3594
3671
  }
3672
+ Array.isArray(pkg2.env) && createAddEnv(env3)(pkg2.name, pkg2.env);
3595
3673
  const files = [];
3596
3674
  if (typeof pkg2.karin.apps === "string") {
3597
3675
  files.push(pkg2.karin.apps);
@@ -5647,6 +5725,85 @@ var init_set = __esm({
5647
5725
  }
5648
5726
  });
5649
5727
 
5728
+ // src/server/api/file/config.ts
5729
+ var getConfig, saveConfig;
5730
+ var init_config3 = __esm({
5731
+ "src/server/api/file/config.ts"() {
5732
+ "use strict";
5733
+ init_esm_shims();
5734
+ init_router();
5735
+ init_response();
5736
+ init_config2();
5737
+ getConfig = async (req, res) => {
5738
+ const { type } = req.body;
5739
+ if (type === "config") {
5740
+ const cfg = config();
5741
+ return createSuccessResponse(res, cfg);
5742
+ }
5743
+ if (type === "adapter") {
5744
+ const cfg = adapter();
5745
+ return createSuccessResponse(res, cfg);
5746
+ }
5747
+ if (type === "groups") {
5748
+ const cfg = groups();
5749
+ return createSuccessResponse(res, cfg);
5750
+ }
5751
+ if (type === "privates") {
5752
+ const cfg = privates();
5753
+ return createSuccessResponse(res, cfg);
5754
+ }
5755
+ if (type === "render") {
5756
+ const cfg = render();
5757
+ return createSuccessResponse(res, cfg);
5758
+ }
5759
+ if (type === "redis") {
5760
+ const cfg = redis();
5761
+ return createSuccessResponse(res, cfg);
5762
+ }
5763
+ if (type === "pm2") {
5764
+ const cfg = pm2();
5765
+ return createSuccessResponse(res, cfg);
5766
+ }
5767
+ if (type === "env") {
5768
+ const cfg = getEnv();
5769
+ return createSuccessResponse(res, cfg);
5770
+ }
5771
+ return createBadRequestResponse(res, "\u65E0\u6548\u7684\u914D\u7F6E\u7C7B\u578B");
5772
+ };
5773
+ saveConfig = async (req, res) => {
5774
+ const list2 = ["config", "adapter", "render", "pm2", "redis", "groups", "privates", "env"];
5775
+ const { type, data } = req.body;
5776
+ const save2 = () => {
5777
+ if (type === "env") {
5778
+ const result = Object.entries(data).map(([key, value]) => ({
5779
+ key,
5780
+ value: value.value,
5781
+ comment: value.comment
5782
+ }));
5783
+ writeEnv(result);
5784
+ return true;
5785
+ }
5786
+ if (list2.includes(type)) {
5787
+ return setConfig(type, data);
5788
+ }
5789
+ return false;
5790
+ };
5791
+ try {
5792
+ const result = save2();
5793
+ if (!result) {
5794
+ return createBadRequestResponse(res, "\u914D\u7F6E\u4FDD\u5B58\u5931\u8D25");
5795
+ }
5796
+ createSuccessResponse(res, "\u914D\u7F6E\u4FDD\u5B58\u6210\u529F");
5797
+ } catch (error) {
5798
+ logger.error(error);
5799
+ createServerErrorResponse(res, error.message);
5800
+ }
5801
+ };
5802
+ router.post("/config/new/get", getConfig);
5803
+ router.post("/config/new/save", saveConfig);
5804
+ }
5805
+ });
5806
+
5650
5807
  // src/server/api/file/index.ts
5651
5808
  var init_file3 = __esm({
5652
5809
  "src/server/api/file/index.ts"() {
@@ -5654,6 +5811,7 @@ var init_file3 = __esm({
5654
5811
  init_esm_shims();
5655
5812
  init_get();
5656
5813
  init_set();
5814
+ init_config3();
5657
5815
  }
5658
5816
  });
5659
5817
 
@@ -10665,8 +10823,8 @@ import fs21 from "node:fs";
10665
10823
  import path16 from "node:path";
10666
10824
  import util3 from "node:util";
10667
10825
  import { pathToFileURL } from "node:url";
10668
- var getWebConfigPathFromPkg, getNpmPluginConfigPath, getLocalPluginConfigPath, getConfigPath, loadConfig, getWebConfig, getConfig, saveConfig, isConfigExist;
10669
- var init_config3 = __esm({
10826
+ var getWebConfigPathFromPkg, getNpmPluginConfigPath, getLocalPluginConfigPath, getConfigPath, loadConfig, getWebConfig, getConfig2, saveConfig2, isConfigExist;
10827
+ var init_config4 = __esm({
10670
10828
  "src/server/api/plugins/config.ts"() {
10671
10829
  "use strict";
10672
10830
  init_esm_shims();
@@ -10735,7 +10893,7 @@ var init_config3 = __esm({
10735
10893
  }
10736
10894
  return await loadConfig(webConfig);
10737
10895
  };
10738
- getConfig = async (req, res) => {
10896
+ getConfig2 = async (req, res) => {
10739
10897
  const options = req.body;
10740
10898
  if (!options.type || !options.name) {
10741
10899
  createServerErrorResponse(res, "\u53C2\u6570\u9519\u8BEF");
@@ -10766,7 +10924,7 @@ var init_config3 = __esm({
10766
10924
  };
10767
10925
  createSuccessResponse(res, data);
10768
10926
  };
10769
- saveConfig = async (req, res) => {
10927
+ saveConfig2 = async (req, res) => {
10770
10928
  const options = req.body;
10771
10929
  const configPath2 = getConfigPath(options);
10772
10930
  if (!configPath2) return createServerErrorResponse(res, "\u53C2\u6570\u9519\u8BEF");
@@ -10780,8 +10938,8 @@ var init_config3 = __esm({
10780
10938
  const configPath2 = getConfigPath(options);
10781
10939
  createSuccessResponse(res, typeof configPath2 === "string");
10782
10940
  };
10783
- router.post("/plugin/config/get", getConfig);
10784
- router.post("/plugin/config/save", saveConfig);
10941
+ router.post("/plugin/config/get", getConfig2);
10942
+ router.post("/plugin/config/save", saveConfig2);
10785
10943
  router.post("/plugin/config/is-exist", isConfigExist);
10786
10944
  }
10787
10945
  });
@@ -11122,7 +11280,7 @@ var init_local = __esm({
11122
11280
  "use strict";
11123
11281
  init_esm_shims();
11124
11282
  init_env();
11125
- init_config3();
11283
+ init_config4();
11126
11284
  init_list();
11127
11285
  init_router();
11128
11286
  init_response();
@@ -11817,7 +11975,7 @@ var init_plugins = __esm({
11817
11975
  "src/server/api/plugins/index.ts"() {
11818
11976
  "use strict";
11819
11977
  init_esm_shims();
11820
- init_config3();
11978
+ init_config4();
11821
11979
  init_admin2();
11822
11980
  init_install();
11823
11981
  init_local();
@@ -12682,7 +12840,7 @@ var init_loader = __esm({
12682
12840
  logger.info("\u52A0\u8F7D\u63D2\u4EF6\u4E2D...");
12683
12841
  const allPromises = [];
12684
12842
  const entryPromises = [];
12685
- const list2 = await getPlugins("all", true);
12843
+ const list2 = await getPlugins("all", true, false, true);
12686
12844
  debug("debug: getPlugins", list2);
12687
12845
  await Promise.all(list2.map(async (pkg2) => {
12688
12846
  var _a, _b, _c, _d, _e, _f;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-karin",
3
- "version": "1.4.3-pr.289.e7be2a0",
3
+ "version": "1.4.3-pr.292.2ccb49c",
4
4
  "description": "Lightweight, efficient, concise, and stable robot framework.",
5
5
  "keywords": [
6
6
  "node",
Binary file
Binary file