@zhin.js/core 1.0.0 → 1.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 (121) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +21 -0
  3. package/README.md +295 -74
  4. package/lib/adapter.d.ts +39 -0
  5. package/lib/adapter.d.ts.map +1 -0
  6. package/{dist → lib}/adapter.js +20 -2
  7. package/lib/adapter.js.map +1 -0
  8. package/lib/app.d.ts +115 -0
  9. package/lib/app.d.ts.map +1 -0
  10. package/{dist → lib}/app.js +148 -78
  11. package/lib/app.js.map +1 -0
  12. package/lib/bot.d.ts +31 -0
  13. package/lib/bot.d.ts.map +1 -0
  14. package/lib/command.d.ts +32 -0
  15. package/lib/command.d.ts.map +1 -0
  16. package/lib/command.js +46 -0
  17. package/lib/command.js.map +1 -0
  18. package/lib/component.d.ts +107 -0
  19. package/lib/component.d.ts.map +1 -0
  20. package/lib/component.js +273 -0
  21. package/lib/component.js.map +1 -0
  22. package/{dist → lib}/config.d.ts.map +1 -1
  23. package/{dist → lib}/config.js +6 -9
  24. package/lib/config.js.map +1 -0
  25. package/lib/cron.d.ts +81 -0
  26. package/lib/cron.d.ts.map +1 -0
  27. package/lib/cron.js +159 -0
  28. package/lib/cron.js.map +1 -0
  29. package/lib/errors.d.ts +165 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +306 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/index.d.ts +15 -0
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +17 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/message.d.ts +44 -0
  38. package/lib/message.d.ts.map +1 -0
  39. package/lib/message.js +11 -0
  40. package/lib/message.js.map +1 -0
  41. package/lib/plugin.d.ts +50 -0
  42. package/lib/plugin.d.ts.map +1 -0
  43. package/lib/plugin.js +170 -0
  44. package/lib/plugin.js.map +1 -0
  45. package/lib/prompt.d.ts +116 -0
  46. package/lib/prompt.d.ts.map +1 -0
  47. package/lib/prompt.js +240 -0
  48. package/lib/prompt.js.map +1 -0
  49. package/lib/schema.d.ts +83 -0
  50. package/lib/schema.d.ts.map +1 -0
  51. package/lib/schema.js +245 -0
  52. package/lib/schema.js.map +1 -0
  53. package/{dist → lib}/types-generator.d.ts.map +1 -1
  54. package/{dist → lib}/types-generator.js +6 -3
  55. package/lib/types-generator.js.map +1 -0
  56. package/lib/types.d.ts +119 -0
  57. package/lib/types.d.ts.map +1 -0
  58. package/lib/utils.d.ts +52 -0
  59. package/lib/utils.d.ts.map +1 -0
  60. package/lib/utils.js +338 -0
  61. package/lib/utils.js.map +1 -0
  62. package/package.json +15 -9
  63. package/src/adapter.ts +25 -9
  64. package/src/app.ts +363 -258
  65. package/src/bot.ts +29 -8
  66. package/src/command.ts +50 -0
  67. package/src/component.ts +318 -0
  68. package/src/config.ts +9 -12
  69. package/src/cron.ts +176 -0
  70. package/src/errors.ts +365 -0
  71. package/src/index.ts +16 -13
  72. package/src/message.ts +44 -0
  73. package/src/plugin.ts +148 -66
  74. package/src/prompt.ts +290 -0
  75. package/src/schema.ts +273 -0
  76. package/src/types-generator.ts +7 -3
  77. package/src/types.ts +77 -30
  78. package/src/utils.ts +312 -0
  79. package/tests/adapter.test.ts +36 -22
  80. package/tests/app.test.ts +30 -0
  81. package/tests/command.test.ts +545 -0
  82. package/tests/component.test.ts +656 -0
  83. package/tests/config.test.ts +1 -1
  84. package/tests/errors.test.ts +311 -0
  85. package/tests/message.test.ts +402 -0
  86. package/tests/plugin.test.ts +275 -143
  87. package/tests/utils.test.ts +80 -0
  88. package/tsconfig.json +3 -4
  89. package/dist/adapter.d.ts +0 -22
  90. package/dist/adapter.d.ts.map +0 -1
  91. package/dist/adapter.js.map +0 -1
  92. package/dist/app.d.ts +0 -69
  93. package/dist/app.d.ts.map +0 -1
  94. package/dist/app.js.map +0 -1
  95. package/dist/bot.d.ts +0 -9
  96. package/dist/bot.d.ts.map +0 -1
  97. package/dist/config.js.map +0 -1
  98. package/dist/index.d.ts +0 -9
  99. package/dist/index.d.ts.map +0 -1
  100. package/dist/index.js +0 -12
  101. package/dist/index.js.map +0 -1
  102. package/dist/logger.d.ts +0 -3
  103. package/dist/logger.d.ts.map +0 -1
  104. package/dist/logger.js +0 -3
  105. package/dist/logger.js.map +0 -1
  106. package/dist/plugin.d.ts +0 -41
  107. package/dist/plugin.d.ts.map +0 -1
  108. package/dist/plugin.js +0 -95
  109. package/dist/plugin.js.map +0 -1
  110. package/dist/types-generator.js.map +0 -1
  111. package/dist/types.d.ts +0 -69
  112. package/dist/types.d.ts.map +0 -1
  113. package/src/logger.ts +0 -3
  114. package/tests/logger.test.ts +0 -170
  115. package/tsconfig.tsbuildinfo +0 -1
  116. /package/{dist → lib}/bot.js +0 -0
  117. /package/{dist → lib}/bot.js.map +0 -0
  118. /package/{dist → lib}/config.d.ts +0 -0
  119. /package/{dist → lib}/types-generator.d.ts +0 -0
  120. /package/{dist → lib}/types.js +0 -0
  121. /package/{dist → lib}/types.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,OAAO,MAAM;IAMK;IAAsB;IAL1C;;;;OAIG;IACH,YAAoB,MAAa,EAAS,KAAiC;QAAvD,WAAM,GAAN,MAAM,CAAO;QAAS,UAAK,GAAL,KAAK,CAA4B;IAAG,CAAC;IAC/E;;OAEG;IACK,iBAAiB,CAA+B,KAAkC;QACtF,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAC7G,CAAC;IACD;;;OAGG;IACK,MAAM,CAAU,MAAwB;QAC5C,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CACX,KAAK,CAAC,EAAE;gBACJ,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjC,IAAI,MAAM,CAAC,YAAY;wBAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;wBACjD,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnB,OAAO;gBACX,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,CAAC,EACD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,CACrB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACH,UAAU,CAAC,QAAwC,EAAE,UAAkB,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW,GAAG,MAAM;QACtG,MAAM,UAAU,GAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,iBAAiB,CAAI,KAAK,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAI,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAC9F,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,EAAE,EAAE,WAAoB;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;SACnC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,EAAE,EAAE,WAAoB;QAC7E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;SACnC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAgB,EAAE,YAAY,GAAG,CAAC,EAAE,WAAoB;QAC/E,OAAO,IAAI,CAAC,MAAM,CAAS;YACvB,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,OAAO;YACP,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK;SACpC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,OAAO,CACT,IAAY,EACZ,YAAoB,KAAK,EACzB,OAAgB,EAChB,YAAY,GAAG,KAAK,EACpB,WAAoB;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAU;YACxB,IAAI,EAAE,GAAG,IAAI,QAAQ,SAAS,MAAM;YACpC,YAAY;YACZ,OAAO;YACP,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS;SACjD,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CACN,IAAY,EACZ,SAA+B,EAAE,IAAI,EAAE,MAAW,EAAE,EACpD,WAAoB;QAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAqB;YACnC,IAAI,EAAE,GAAG,IAAI,WAAW,SAAS,KAAK;YACtC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC3B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,SAAS;wBACV,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;oBACtB,KAAK,QAAQ;wBACT,OAAO,CAAC,CAAC,CAAC;oBACd,KAAK,MAAM;wBACP,OAAO,CAAC,CAAC;gBACjB,CAAC;YACL,CAAC,CAAuB;SAC/B,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,KAAK,CAAU,KAAQ;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CACN,IAAY,EACZ,MAA+B,EAC/B,WAAoB;QAEpB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC9C,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,SAAS,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAA0B;YACxC,IAAI,EAAE,GAAG,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;YACX,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAChB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAClC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC9B,CAAC,CAAC,EAAE,KAAgC,CAAC;gBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,MAAM,CAAC,OAAO;qBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACf,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAA4B,CAAC;YACtD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAmB,MAAS;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YACtC,IAAI,EAAE,EAAS;YACf,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;aACjB,CAAC,CAAC;YACH,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SACpC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAmC,OAAU;QAClE,MAAM,MAAM,GAAS,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,MAA+B,CAAC;IAC3C,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAmB,MAAS;QAChD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjE,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,QAAQ;gBACT,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YAC3E,KAAK,QAAQ;gBACT,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YACzE,KAAK,SAAS;gBACV,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAoB,CAAC;YAC5E,KAAK,QAAQ;gBACT,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW;oBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9E,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAO,CAAC,CAAoB,CAAC;YACvF,KAAK,MAAM;gBACP,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE;oBAC/C,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAoB;iBAChE,CAAC,CAAC;YACP,KAAK,QAAQ;gBACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE;oBACvC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAoB;iBAClE,CAAC,CAAC;YACP,KAAK,OAAO;gBACR,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;YAClD,KAAK,MAAM;gBACP,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAM,CAAC;gBACpC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,KAAK,CAAC,IAAI,CAAC,IAA0B;oBACpF,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;iBACpC,CAAC,CAAoB,CAAC;YAC3B,KAAK,MAAM,CAAC;YACZ;gBACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,83 @@
1
+ export declare class Schema<S = any, T = S> {
2
+ meta: Schema.Meta<S, T>;
3
+ options: Schema.Options;
4
+ [Symbol.toStringTag]: string;
5
+ constructor(meta: Schema.Meta<S, T>, options?: Schema.Options);
6
+ static fromJSON<S, T>(json: Schema.JSON<S, T>): Schema<S, T>;
7
+ toJSON(): Record<string, any>;
8
+ [Symbol.unscopables](): {
9
+ options: boolean;
10
+ meta: boolean;
11
+ };
12
+ /** 设置是否必填 */
13
+ required(): this;
14
+ /** 是否隐藏 */
15
+ hidden(): this;
16
+ /** 设置描述 */
17
+ description(description: string): this;
18
+ /** 设置默认值 */
19
+ default(defaultValue: T): this;
20
+ /** 设置选项列表 */
21
+ option(list: (T | Schema.Option<T>)[]): this;
22
+ /** 设置是否允许多选 */
23
+ multiple(): this;
24
+ /** 声明一个数字类型 */
25
+ static number(description: string): Schema<number>;
26
+ /** 声明一个字符串类型 */
27
+ static string(description: string): Schema<string>;
28
+ /** 声明一个布尔类型 */
29
+ static boolean(description: string): Schema<boolean>;
30
+ /** 声明一个正则类型 */
31
+ static regexp(description: string): Schema<string | RegExp, RegExp>;
32
+ /** 声明一个日期类型 */
33
+ static date(description: string): Schema<number | Date, Date>;
34
+ /** 声明一个字典类型 */
35
+ static dict<X extends Schema>(input: X, description: string): Schema<Record<string, Schema.Types<X>>, Record<string, Schema.Types<X>>>;
36
+ static object<X extends Record<string, Schema>>(input: X, description?: string): Schema<Schema.RecordTypes<X>, Schema.RecordTypes<X>>;
37
+ /** 声明一个列表类型 */
38
+ static list<X extends Schema>(inner: X, description: string): Schema<Schema.Types<X>[], Schema.Types<X>[]>;
39
+ /** 声明一个常量 */
40
+ static const<X extends string | number | boolean>(value: X, description: string): Schema<X, X>;
41
+ static resolve<T extends string>(type: T): Schema.Formatter;
42
+ static extend<T extends string>(type: T, formatter: Schema.Formatter): void;
43
+ }
44
+ export interface Schema<S = any> {
45
+ (value?: S): S;
46
+ }
47
+ export declare namespace Schema {
48
+ const formatters: Map<string, Formatter>;
49
+ type Formatter<S = any, T = S> = (this: Schema, value: S) => T;
50
+ type JSON<S = any, T = S> = Meta<S, T> & {
51
+ object?: Record<string, JSON>;
52
+ inner?: JSON;
53
+ list?: JSON[];
54
+ };
55
+ interface Meta<S = any, T = S> {
56
+ hidden?: boolean;
57
+ type: string;
58
+ default?: T;
59
+ required?: boolean;
60
+ options?: Option<T>[];
61
+ multiple?: boolean;
62
+ description: string;
63
+ component?: string;
64
+ min?: number;
65
+ max?: number;
66
+ step?: number;
67
+ }
68
+ interface Options {
69
+ object?: Record<string, Schema>;
70
+ inner?: Schema;
71
+ }
72
+ type Types<T> = T extends Schema<infer S> ? S : never;
73
+ type RecordTypes<T> = T extends Record<string, Schema> ? {
74
+ [K in keyof T]?: Types<T[K]>;
75
+ } : unknown;
76
+ function checkDefault<T>(schema: Schema, value: T, fallback?: T): T;
77
+ type Option<T = any> = {
78
+ label: string;
79
+ value: T;
80
+ };
81
+ function formatOptionList<T extends (any | Schema.Option)[]>(list: T): Schema.Option[];
82
+ }
83
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/lib/schema.js ADDED
@@ -0,0 +1,245 @@
1
+ import { isEmpty } from './utils.js';
2
+ export class Schema {
3
+ meta;
4
+ options;
5
+ [Symbol.toStringTag] = 'Schema';
6
+ constructor(meta, options = {}) {
7
+ this.meta = meta;
8
+ this.options = options;
9
+ const _this = this;
10
+ const schema = function (value) {
11
+ const formatter = Schema.resolve(_this.meta.type);
12
+ if (!formatter)
13
+ throw new Error(`type ${_this.meta.type} not found`);
14
+ return formatter.call(_this, value);
15
+ };
16
+ return new Proxy(schema, {
17
+ get(target, p, receiver) {
18
+ return Reflect.get(_this, p, receiver);
19
+ },
20
+ set(target, p, value, receiver) {
21
+ return Reflect.set(_this, p, value, receiver);
22
+ },
23
+ });
24
+ }
25
+ static fromJSON(json) {
26
+ const { object, inner, list, ...meta } = json;
27
+ const options = {};
28
+ if (object)
29
+ options.object = Object.fromEntries(Object.entries(object).map(([key, value]) => [key, Schema.fromJSON(value)]));
30
+ if (inner)
31
+ options.inner = Schema.fromJSON(inner);
32
+ return new Schema(meta, options);
33
+ }
34
+ toJSON() {
35
+ return Object.fromEntries(Object.entries({
36
+ ...this.meta,
37
+ default: typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default,
38
+ inner: this.options.inner?.toJSON(),
39
+ dict: this.options.object
40
+ ? Object.fromEntries(Object.entries(this.options.object || {}).map(([key, value]) => [key, value.toJSON()]))
41
+ : undefined,
42
+ }).filter(([key, value]) => typeof value !== 'undefined'));
43
+ }
44
+ [Symbol.unscopables]() {
45
+ return {
46
+ options: true,
47
+ meta: true,
48
+ };
49
+ }
50
+ /** 设置是否必填 */
51
+ required() {
52
+ this.meta.required = true;
53
+ return this;
54
+ }
55
+ /** 是否隐藏 */
56
+ hidden() {
57
+ this.meta.hidden = true;
58
+ return this;
59
+ }
60
+ /** 设置描述 */
61
+ description(description) {
62
+ this.meta.description = description;
63
+ return this;
64
+ }
65
+ /** 设置默认值 */
66
+ default(defaultValue) {
67
+ this.meta.default = defaultValue;
68
+ return this;
69
+ }
70
+ /** 设置选项列表 */
71
+ option(list) {
72
+ this.meta.options = Schema.formatOptionList(list);
73
+ return this;
74
+ }
75
+ /** 设置是否允许多选 */
76
+ multiple() {
77
+ if (this.meta.type !== 'list')
78
+ throw new Error('multiple only support list type');
79
+ this.meta.multiple = true;
80
+ return this;
81
+ }
82
+ /** 声明一个数字类型 */
83
+ static number(description) {
84
+ return new Schema({ type: 'number', description });
85
+ }
86
+ /** 声明一个字符串类型 */
87
+ static string(description) {
88
+ return new Schema({ type: 'string', description });
89
+ }
90
+ /** 声明一个布尔类型 */
91
+ static boolean(description) {
92
+ return new Schema({ type: 'boolean', description });
93
+ }
94
+ /** 声明一个正则类型 */
95
+ static regexp(description) {
96
+ return new Schema({ type: 'regexp', description });
97
+ }
98
+ /** 声明一个日期类型 */
99
+ static date(description) {
100
+ return new Schema({ type: 'date', description });
101
+ }
102
+ /** 声明一个字典类型 */
103
+ static dict(input, description) {
104
+ return new Schema({ type: 'dict', description }, { inner: input });
105
+ }
106
+ static object(input, description = '') {
107
+ return new Schema({ type: 'object', description }, { object: input });
108
+ }
109
+ /** 声明一个列表类型 */
110
+ static list(inner, description) {
111
+ return new Schema({ type: 'list', description }, { inner });
112
+ }
113
+ /** 声明一个常量 */
114
+ static const(value, description) {
115
+ return new Schema({ type: 'const', default: value, description });
116
+ }
117
+ static resolve(type) {
118
+ return Schema.formatters.get(type);
119
+ }
120
+ static extend(type, formatter) {
121
+ Schema.formatters.set(type, formatter);
122
+ }
123
+ }
124
+ (function (Schema) {
125
+ Schema.formatters = new Map();
126
+ function checkDefault(schema, value, fallback = value) {
127
+ if (isEmpty(value)) {
128
+ value = schema.meta.default || fallback;
129
+ }
130
+ const validateType = (schema, value) => {
131
+ switch (schema.meta.type) {
132
+ case 'string':
133
+ if (!['string', 'undefined'].includes(typeof value))
134
+ throw new TypeError(`value is not a string`);
135
+ break;
136
+ case 'number':
137
+ if (!['number', 'undefined'].includes(typeof value))
138
+ throw new TypeError(`value is not a number`);
139
+ break;
140
+ case 'boolean':
141
+ if (!['boolean', 'undefined'].includes(typeof value))
142
+ throw new TypeError(`value is not a boolean`);
143
+ break;
144
+ case 'regexp':
145
+ if (!['string', 'undefined'].includes(typeof value) && !(value instanceof RegExp))
146
+ throw new TypeError(`value is not a RegExp|string`);
147
+ break;
148
+ case 'date':
149
+ if (!['number', 'undefined'].includes(typeof value) && !(value instanceof Date))
150
+ throw new TypeError(`value is not a Date|number`);
151
+ if (value instanceof Date && isNaN(value.getTime()))
152
+ throw new TypeError(`value is not a valid Date`);
153
+ break;
154
+ case 'dict':
155
+ if (!['object', 'undefined', 'null'].includes(typeof value))
156
+ throw new TypeError(`value is not a object`);
157
+ break;
158
+ case 'object':
159
+ if (!['object', 'undefined', 'null'].includes(typeof value))
160
+ throw new TypeError(`value is not a object`);
161
+ break;
162
+ case 'list':
163
+ if (typeof value !== 'undefined' && !Array.isArray(value))
164
+ throw new TypeError(`value is not a list`);
165
+ break;
166
+ case 'const':
167
+ if (typeof value !== 'undefined' && value !== schema.meta.default)
168
+ throw new TypeError(`value is not const`);
169
+ break;
170
+ default:
171
+ throw new TypeError(`value is not a valid type`);
172
+ }
173
+ };
174
+ if (schema.meta.required && typeof value === 'undefined')
175
+ throw new Error(`value is required`);
176
+ validateType(schema, value);
177
+ return value;
178
+ }
179
+ Schema.checkDefault = checkDefault;
180
+ function formatOptionList(list) {
181
+ return list.map(item => {
182
+ if (typeof item === 'string') {
183
+ return {
184
+ label: `${item}`,
185
+ value: item,
186
+ };
187
+ }
188
+ return item;
189
+ });
190
+ }
191
+ Schema.formatOptionList = formatOptionList;
192
+ })(Schema || (Schema = {}));
193
+ Schema.extend('number', function (value) {
194
+ value = Schema.checkDefault(this, value);
195
+ return value;
196
+ });
197
+ Schema.extend('string', function (value) {
198
+ value = Schema.checkDefault(this, value);
199
+ return value;
200
+ });
201
+ Schema.extend('boolean', function (value) {
202
+ return Schema.checkDefault(this, value);
203
+ });
204
+ Schema.extend('dict', function (value) {
205
+ value = Schema.checkDefault(this, value, {});
206
+ return Object.fromEntries(Object.entries(value).map(([key, schema]) => {
207
+ return [key, this.options.inner(schema)];
208
+ }));
209
+ });
210
+ Schema.extend('object', function (value) {
211
+ const getDefault = (schema) => {
212
+ const result = Object.create(null);
213
+ for (const key in schema.options.object) {
214
+ result[key] = getDefault(schema.options.object[key]);
215
+ }
216
+ return result;
217
+ };
218
+ value = Schema.checkDefault(this, value, getDefault(this));
219
+ return Object.fromEntries(Object.entries(value).map(([key, schema]) => {
220
+ return [key, this.options.object[key](schema)];
221
+ }));
222
+ });
223
+ Schema.extend('list', function (value) {
224
+ value = Schema.checkDefault(this, value, []);
225
+ return value.map((item) => this.options.inner(item));
226
+ });
227
+ Schema.extend('regexp', function (value) {
228
+ value = Schema.checkDefault(this, value);
229
+ if (typeof value === 'string') {
230
+ return new RegExp(value);
231
+ }
232
+ return value;
233
+ });
234
+ Schema.extend('date', function (value) {
235
+ value = Schema.checkDefault(this, value);
236
+ return new Date(value);
237
+ });
238
+ Schema.extend('const', function (value) {
239
+ value = Schema.checkDefault(this, value);
240
+ if (value !== this.meta.default) {
241
+ throw new Error('const value not match');
242
+ }
243
+ return value;
244
+ });
245
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEjE"}
1
+ {"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEjE"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
- import { logger } from './logger.js';
3
+ import { getLogger } from '@zhin.js/logger';
4
+ const logger = getLogger('TypesGenerator');
4
5
  /**
5
6
  * 更新 tsconfig.json 的类型声明
6
7
  * @param cwd 项目根目录
@@ -45,7 +46,7 @@ export async function generateEnvTypes(cwd) {
45
46
  tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, 'utf-8'));
46
47
  }
47
48
  catch (err) {
48
- console.error(err);
49
+ // console.error 已替换为注释
49
50
  logger.warn('⚠️ Failed to parse tsconfig.json, creating new one');
50
51
  }
51
52
  }
@@ -63,7 +64,9 @@ export async function generateEnvTypes(cwd) {
63
64
  logger.info('✅ Updated TypeScript types configuration');
64
65
  }
65
66
  catch (error) {
66
- logger.warn('⚠️ Failed to update TypeScript types:', error);
67
+ logger.warn('⚠️ Failed to update TypeScript types', {
68
+ error: error instanceof Error ? error.message : String(error)
69
+ });
67
70
  }
68
71
  }
69
72
  //# sourceMappingURL=types-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../src/types-generator.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,119 @@
1
+ import { MaybePromise } from '@zhin.js/types';
2
+ import { MessageChannel } from "./message.js";
3
+ import { Adapter } from "./adapter.js";
4
+ import { Bot, BotConfig } from "./bot.js";
5
+ import { Databases, Registry } from "@zhin.js/database";
6
+ /**
7
+ * 类型定义文件:包含适配器、消息、数据库、配置等核心类型声明。
8
+ * 协作者可通过本文件了解各主要数据结构的用途与关系。
9
+ */
10
+ declare module '@zhin.js/types' {
11
+ interface GlobalContext extends RegisteredAdapters {
12
+ }
13
+ }
14
+ /**
15
+ * 所有已注册适配器的类型映射(key为适配器名,value为Adapter实例)
16
+ */
17
+ export interface RegisteredAdapters extends Record<string, Adapter> {
18
+ }
19
+ /**
20
+ * 数据库配置类型,支持多种数据库驱动
21
+ */
22
+ export type DatabaseConfig<T extends keyof Databases = keyof Databases> = {
23
+ dialect: T;
24
+ } & Registry.Config<Databases[T]>;
25
+ /**
26
+ * 获取对象所有value类型
27
+ */
28
+ export type ObjectItem<T extends object> = T[keyof T];
29
+ /**
30
+ * 已注册适配器名类型
31
+ */
32
+ export type RegisteredAdapter = keyof RegisteredAdapters;
33
+ /**
34
+ * 指定适配器的消息类型
35
+ */
36
+ export type AdapterMessage<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? BotMessage<R> : {};
37
+ /**
38
+ * 指定适配器的配置类型
39
+ */
40
+ export type AdapterConfig<T extends keyof RegisteredAdapters = keyof RegisteredAdapters> = RegisteredAdapters[T] extends Adapter<infer R> ? PlatformConfig<R> : BotConfig;
41
+ /**
42
+ * Bot实例的配置类型
43
+ */
44
+ export type PlatformConfig<T> = T extends Bot<infer L, infer R> ? R : BotConfig;
45
+ /**
46
+ * Bot实例的消息类型
47
+ */
48
+ export type BotMessage<T extends Bot> = T extends Bot<infer R> ? R : {};
49
+ /**
50
+ * 消息段结构,支持 text/image/at/face 等类型
51
+ */
52
+ export interface MessageSegment {
53
+ type: string;
54
+ data: Record<string, any>;
55
+ }
56
+ /**
57
+ * 单个或数组类型
58
+ */
59
+ export type MaybeArray<T> = T | T[];
60
+ /**
61
+ * 消息发送内容类型
62
+ */
63
+ export type SendContent = MaybeArray<string | MessageSegment>;
64
+ /**
65
+ * 消息发送者信息
66
+ */
67
+ export interface MessageSender {
68
+ id: string;
69
+ name?: string;
70
+ }
71
+ /**
72
+ * 通用字典类型
73
+ */
74
+ export type Dict<V = any, K extends string | symbol = string> = Record<K, V>;
75
+ /**
76
+ * 用户信息结构
77
+ */
78
+ export interface User {
79
+ user_id: string;
80
+ nickname: string;
81
+ card?: string;
82
+ role?: string;
83
+ }
84
+ /**
85
+ * 群组信息结构
86
+ */
87
+ export interface Group {
88
+ group_id: string;
89
+ group_name: string;
90
+ member_count: number;
91
+ }
92
+ /**
93
+ * App配置类型,涵盖机器人、数据库、插件、调试等
94
+ */
95
+ export interface AppConfig {
96
+ /** 机器人配置列表 */
97
+ bots?: BotConfig[];
98
+ /** 数据库配置列表 */
99
+ database?: DatabaseConfig;
100
+ /** 插件目录列表,默认为 ['./plugins', 'node_modules'] */
101
+ plugin_dirs?: string[];
102
+ /** 需要加载的插件列表 */
103
+ plugins?: string[];
104
+ /** 禁用的依赖列表 */
105
+ disable_dependencies?: string[];
106
+ /** 是否启用调试模式 */
107
+ debug?: boolean;
108
+ }
109
+ /**
110
+ * defineConfig辅助类型,支持函数式/对象式配置
111
+ */
112
+ export type DefineConfig<T> = T | ((env: Record<string, string>) => MaybePromise<T>);
113
+ export interface SendOptions extends MessageChannel {
114
+ context: string;
115
+ bot: string;
116
+ content: SendContent;
117
+ }
118
+ export type BeforeSendHandler = (options: SendOptions) => MaybePromise<SendOptions | void>;
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts ADDED
@@ -0,0 +1,52 @@
1
+ import { Dict, SendContent } from "./types";
2
+ export declare function getValueWithRuntime(template: string, ctx: Dict): any;
3
+ export declare const evaluate: <S, T = any>(exp: string, context: S) => T | undefined;
4
+ export declare const execute: <S, T = any>(exp: string, context: S) => T;
5
+ export declare function compiler(template: string, ctx: Dict): string;
6
+ export declare function segment<T extends object>(type: string, data: T): {
7
+ type: string;
8
+ data: T;
9
+ };
10
+ export declare namespace segment {
11
+ function escape<T>(text: T): T;
12
+ function unescape<T>(text: T): T;
13
+ function text(text: string): {
14
+ type: string;
15
+ data: {
16
+ text: string;
17
+ };
18
+ };
19
+ function face(id: string, text?: string): {
20
+ type: string;
21
+ data: {
22
+ id: string;
23
+ text: string | undefined;
24
+ };
25
+ };
26
+ function from(content: SendContent): SendContent;
27
+ function raw(content: SendContent): string;
28
+ function toString(content: SendContent): string;
29
+ }
30
+ export declare function remove<T>(list: T[], fn: (item: T) => boolean): void;
31
+ export declare function remove<T>(list: T[], item: T): void;
32
+ export declare function isEmpty<T>(item: T): boolean;
33
+ export declare namespace Time {
34
+ const millisecond = 1;
35
+ const second = 1000;
36
+ const minute: number;
37
+ const hour: number;
38
+ const day: number;
39
+ const week: number;
40
+ function setTimezoneOffset(offset: number): void;
41
+ function getTimezoneOffset(): number;
42
+ function getDateNumber(date?: number | Date, offset?: number): number;
43
+ function fromDateNumber(value: number, offset?: number): Date;
44
+ function parseTime(source: string): number;
45
+ function parseDate(date: string): Date;
46
+ function formatTimeShort(ms: number): string;
47
+ function formatTime(ms: number): string;
48
+ function template(template: string, time?: Date): string;
49
+ function formatTimeInterval(time: Date, interval?: number): string;
50
+ }
51
+ export declare function sleep(ms: number): Promise<unknown>;
52
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAkB,WAAW,EAAC,MAAM,SAAS,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,OAI9D;AACD,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,SAAS,CAAC,kBAK3D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,SAAS,CAAC,KAAE,CAc5D,CAAC;AASF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,UAUnD;AACD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC;;;EAK3D;AACD,yBAAiB,OAAO,CAAA;IACpB,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQpC;IACD,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQtC;IACD,SAAgB,IAAI,CAAC,IAAI,EAAC,MAAM;;;;;MAE/B;IACD,SAAgB,IAAI,CAAC,EAAE,EAAC,MAAM,EAAC,IAAI,CAAC,EAAC,MAAM;;;;;;MAE1C;IACD,SAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAwDtD;IACD,SAAgB,GAAG,CAAC,OAAO,EAAC,WAAW,UAQtC;IACD,SAAgB,QAAQ,CAAC,OAAO,EAAC,WAAW,UAQ3C;CACJ;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;AACrE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;AAQpD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAC,CAAC,WAOhC;AAED,yBAAiB,IAAI,CAAC;IACX,MAAM,WAAW,IAAI,CAAC;IACtB,MAAM,MAAM,OAAO,CAAC;IACpB,MAAM,MAAM,QAAc,CAAC;IAC3B,MAAM,IAAI,QAAc,CAAC;IACzB,MAAM,GAAG,QAAY,CAAC;IACtB,MAAM,IAAI,QAAU,CAAC;IAI5B,SAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,QAE/C;IAED,SAAgB,iBAAiB,WAEhC;IAED,SAAgB,aAAa,CAAC,IAAI,GAAE,MAAM,GAAG,IAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,UAI9E;IAED,SAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAI5D;IASD,SAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,UAUvC;IAED,SAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,QAUrC;IAED,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,UAYzC;IAED,SAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,UAwBpC;IAQD,SAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAa,UAU3D;IAMD,SAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,UAU/D;CACJ;AACD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B"}