beatsaber-bot-core 0.2.0-dev.3 → 0.2.0-dev.30

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 (223) hide show
  1. package/lib/api/base/aioclient.d.ts +10 -0
  2. package/lib/api/base/aioclient.js +25 -0
  3. package/lib/api/base/aioclient.js.map +1 -0
  4. package/lib/api/base/blRequset.js +7 -7
  5. package/lib/api/base/blRequset.js.map +1 -1
  6. package/lib/api/base/blclient.d.ts +16 -0
  7. package/lib/api/base/blclient.js +60 -0
  8. package/lib/api/base/blclient.js.map +1 -0
  9. package/lib/api/base/bsclient.d.ts +16 -0
  10. package/lib/api/base/bsclient.js +69 -0
  11. package/lib/api/base/bsclient.js.map +1 -0
  12. package/lib/api/base/index.d.ts +4 -12
  13. package/lib/api/base/index.js +4 -4
  14. package/lib/api/base/index.js.map +1 -1
  15. package/lib/api/base/scRequest.d.ts +2 -0
  16. package/lib/api/base/scRequest.js +28 -13
  17. package/lib/api/base/scRequest.js.map +1 -1
  18. package/lib/api/base/ssclient.d.ts +12 -0
  19. package/lib/api/base/ssclient.js +43 -0
  20. package/lib/api/base/ssclient.js.map +1 -0
  21. package/lib/api/composed/beatleader.d.ts +7 -2
  22. package/lib/api/composed/beatleader.js +26 -5
  23. package/lib/api/composed/beatleader.js.map +1 -1
  24. package/lib/api/composed/beatsaver.d.ts +2 -3
  25. package/lib/api/composed/beatsaver.js +2 -1
  26. package/lib/api/composed/beatsaver.js.map +1 -1
  27. package/lib/api/composed/scoresaber.js.map +1 -1
  28. package/lib/api/helper.d.ts +19 -0
  29. package/lib/api/helper.js +102 -0
  30. package/lib/api/helper.js.map +1 -0
  31. package/lib/api/index.d.ts +1 -18
  32. package/lib/api/index.js +8 -98
  33. package/lib/api/index.js.map +1 -1
  34. package/lib/api/interfaces/beatsaver/bsmap.d.ts +2 -0
  35. package/lib/api/interfaces/beatsaver/ws.d.ts +8 -2
  36. package/lib/api/interfaces/index.d.ts +12 -0
  37. package/lib/{interface/db.js → api/interfaces/index.js} +1 -1
  38. package/lib/api/interfaces/index.js.map +1 -0
  39. package/lib/api/interfaces/scoresaber/item.d.ts +12 -3
  40. package/lib/api/interfaces/scoresaber/leaderboard.d.ts +10 -0
  41. package/lib/api/interfaces/scoresaber/leaderboard.js +3 -0
  42. package/lib/api/interfaces/scoresaber/leaderboard.js.map +1 -0
  43. package/lib/cmd/bind/bind-beatleader.js.map +1 -1
  44. package/lib/cmd/bind/bind-beatsaver.js.map +1 -1
  45. package/lib/cmd/bind/bind-id-beatleader.js.map +1 -1
  46. package/lib/cmd/bind/bind-scoresaber.js.map +1 -1
  47. package/lib/cmd/bind/index.d.ts +2 -2
  48. package/lib/cmd/bind/index.js +4 -0
  49. package/lib/cmd/bind/index.js.map +1 -1
  50. package/lib/cmd/bsmap/id-search.d.ts +1 -1
  51. package/lib/cmd/bsmap/id-search.js +3 -3
  52. package/lib/cmd/bsmap/id-search.js.map +1 -1
  53. package/lib/cmd/bsmap/key-search.d.ts +1 -1
  54. package/lib/cmd/bsmap/key-search.js +6 -6
  55. package/lib/cmd/bsmap/key-search.js.map +1 -1
  56. package/lib/cmd/bsmap/latest.d.ts +1 -1
  57. package/lib/cmd/bsmap/latest.js +11 -3
  58. package/lib/cmd/bsmap/latest.js.map +1 -1
  59. package/lib/cmd/builder.d.ts +2 -2
  60. package/lib/cmd/builder.js +20 -1
  61. package/lib/cmd/builder.js.map +1 -1
  62. package/lib/cmd/config/index.d.ts +12 -0
  63. package/lib/cmd/config/index.js +70 -0
  64. package/lib/cmd/config/index.js.map +1 -0
  65. package/lib/cmd/deprecated/cmp.d.ts +1 -1
  66. package/lib/cmd/deprecated/me.d.ts +3 -3
  67. package/lib/cmd/deprecated/me.js +6 -6
  68. package/lib/cmd/deprecated/me.js.map +1 -1
  69. package/lib/cmd/deprecated/tmp.d.ts +1 -1
  70. package/lib/cmd/deprecated/tmp.js +2 -0
  71. package/lib/cmd/deprecated/tmp.js.map +1 -1
  72. package/lib/cmd/deprecated/whois.d.ts +2 -2
  73. package/lib/cmd/deprecated/whois.js +2 -2
  74. package/lib/cmd/deprecated/whois.js.map +1 -1
  75. package/lib/cmd/help.d.ts +1 -1
  76. package/lib/cmd/index.js +3 -1
  77. package/lib/cmd/index.js.map +1 -1
  78. package/lib/cmd/rank.d.ts +2 -2
  79. package/lib/cmd/rank.js +16 -11
  80. package/lib/cmd/rank.js.map +1 -1
  81. package/lib/cmd/score.d.ts +3 -3
  82. package/lib/cmd/score.js +26 -10
  83. package/lib/cmd/score.js.map +1 -1
  84. package/lib/cmd/subscribe/index.d.ts +2 -2
  85. package/lib/cmd/subscribe/subjoin.d.ts +2 -2
  86. package/lib/cmd/subscribe/subleave.d.ts +2 -2
  87. package/lib/cmd/subscribe/unsubscribe.d.ts +2 -2
  88. package/lib/config.d.ts +21 -4
  89. package/lib/db/index.d.ts +0 -34
  90. package/lib/db/index.js +0 -2
  91. package/lib/errors/index.d.ts +43 -41
  92. package/lib/errors/index.js +108 -59
  93. package/lib/errors/index.js.map +1 -1
  94. package/lib/i18n/index.js +17 -11
  95. package/lib/i18n/index.js.map +1 -1
  96. package/lib/i18n/parser.d.ts +14 -0
  97. package/lib/i18n/parser.js +165 -0
  98. package/lib/i18n/parser.js.map +1 -0
  99. package/lib/i18n/zh-cn.json +1 -1
  100. package/lib/img-render/components/RankDifficulty.d.ts +6 -0
  101. package/lib/img-render/components/RankDifficulty.js +17 -0
  102. package/lib/img-render/components/RankDifficulty.js.map +1 -0
  103. package/lib/img-render/components/base/avatar.d.ts +7 -0
  104. package/lib/img-render/components/base/avatar.js +11 -0
  105. package/lib/img-render/components/base/avatar.js.map +1 -1
  106. package/lib/img-render/components/bl-rank-score-item.d.ts +18 -0
  107. package/lib/img-render/components/bl-rank-score-item.js +42 -0
  108. package/lib/img-render/components/bl-rank-score-item.js.map +1 -0
  109. package/lib/img-render/components/bl-score-item.d.ts +6 -0
  110. package/lib/img-render/components/bl-score-item.js +14 -0
  111. package/lib/img-render/components/bl-score-item.js.map +1 -0
  112. package/lib/img-render/components/blScoreItem.js +2 -2
  113. package/lib/img-render/components/blScoreItem.js.map +1 -1
  114. package/lib/img-render/components/rankScoreItem.d.ts +18 -0
  115. package/lib/img-render/components/rankScoreItem.js +42 -0
  116. package/lib/img-render/components/rankScoreItem.js.map +1 -0
  117. package/lib/img-render/components/scoregraph.d.ts +3 -1
  118. package/lib/img-render/components/scoregraph.js +5 -4
  119. package/lib/img-render/components/scoregraph.js.map +1 -1
  120. package/lib/img-render/components/ss-rank-score-item.d.ts +18 -0
  121. package/lib/img-render/components/ss-rank-score-item.js +42 -0
  122. package/lib/img-render/components/ss-rank-score-item.js.map +1 -0
  123. package/lib/img-render/components/ss-score-item.d.ts +4 -0
  124. package/lib/img-render/components/ss-score-item.js +14 -0
  125. package/lib/img-render/components/ss-score-item.js.map +1 -0
  126. package/lib/img-render/components/ssScoreItem.js +1 -1
  127. package/lib/img-render/components/ssScoreItem.js.map +1 -1
  128. package/lib/img-render/index.d.ts +13 -10
  129. package/lib/img-render/index.js +51 -23
  130. package/lib/img-render/index.js.map +1 -1
  131. package/lib/img-render/interfaces.d.ts +2 -0
  132. package/lib/img-render/render.js +26 -1
  133. package/lib/img-render/render.js.map +1 -1
  134. package/lib/img-render/result/bl-player.d.ts +2 -1
  135. package/lib/img-render/result/bl-player.js +3 -4
  136. package/lib/img-render/result/bl-player.js.map +1 -1
  137. package/lib/img-render/result/bl-score-with-rank.d.ts +14 -0
  138. package/lib/img-render/result/bl-score-with-rank.js +33 -0
  139. package/lib/img-render/result/bl-score-with-rank.js.map +1 -0
  140. package/lib/img-render/result/bl-score.js +1 -1
  141. package/lib/img-render/result/bl-score.js.map +1 -1
  142. package/lib/img-render/result/bs-score-with-rank.d.ts +13 -0
  143. package/lib/img-render/result/bs-score-with-rank.js +33 -0
  144. package/lib/img-render/result/bs-score-with-rank.js.map +1 -0
  145. package/lib/img-render/result/index.d.ts +3 -2
  146. package/lib/img-render/result/index.js +10 -5
  147. package/lib/img-render/result/index.js.map +1 -1
  148. package/lib/img-render/result/ss-player.d.ts +2 -1
  149. package/lib/img-render/result/ss-player.js +3 -4
  150. package/lib/img-render/result/ss-player.js.map +1 -1
  151. package/lib/img-render/result/ss-score-with-rank.js +277 -0
  152. package/lib/img-render/result/ss-score-with-rank.js.map +1 -0
  153. package/lib/img-render/utils/canvas.js +10 -4
  154. package/lib/img-render/utils/canvas.js.map +1 -1
  155. package/lib/img-render/utils/format.d.ts +3 -0
  156. package/lib/img-render/utils/format.js +25 -1
  157. package/lib/img-render/utils/format.js.map +1 -1
  158. package/lib/img-render/utils/index.d.ts +1 -1
  159. package/lib/img-render/utils/index.js +1 -1
  160. package/lib/img-render/utils/index.js.map +1 -1
  161. package/lib/img-render/utils/qrcode.js +8 -1
  162. package/lib/img-render/utils/qrcode.js.map +1 -1
  163. package/lib/index.d.ts +1 -1
  164. package/lib/index.js +1 -1
  165. package/lib/index.js.map +1 -1
  166. package/lib/interface/bot.d.ts +1 -1
  167. package/lib/interface/cmd.d.ts +3 -0
  168. package/lib/interface/{db.d.ts → db/index.d.ts} +5 -2
  169. package/lib/interface/db/index.js +18 -0
  170. package/lib/interface/db/index.js.map +1 -0
  171. package/lib/interface/db/models.d.ts +39 -0
  172. package/lib/interface/db/models.js +3 -0
  173. package/lib/interface/db/models.js.map +1 -0
  174. package/lib/interface/index.d.ts +0 -1
  175. package/lib/interface/index.js +0 -1
  176. package/lib/interface/index.js.map +1 -1
  177. package/lib/interface/render.d.ts +7 -5
  178. package/lib/schedules/index.d.ts +7 -2
  179. package/lib/schedules/index.js +20 -16
  180. package/lib/schedules/index.js.map +1 -1
  181. package/lib/schedules/interface.d.ts +18 -0
  182. package/lib/schedules/interface.js +3 -0
  183. package/lib/schedules/interface.js.map +1 -0
  184. package/lib/schedules/oauthTokenRefreshTask.d.ts +2 -5
  185. package/lib/schedules/oauthTokenRefreshTask.js +9 -9
  186. package/lib/schedules/oauthTokenRefreshTask.js.map +1 -1
  187. package/lib/schedules/temp.d.ts +2 -5
  188. package/lib/schedules/temp.js +5 -5
  189. package/lib/schedules/temp.js.map +1 -1
  190. package/lib/utils/cache.d.ts +3 -0
  191. package/lib/utils/cache.js +30 -0
  192. package/lib/utils/cache.js.map +1 -0
  193. package/lib/utils/fetch/index.d.ts +3 -0
  194. package/lib/utils/fetch/index.js +21 -0
  195. package/lib/utils/fetch/index.js.map +1 -0
  196. package/lib/utils/fetch/ofetch.d.ts +22 -0
  197. package/lib/utils/fetch/ofetch.js +87 -0
  198. package/lib/utils/fetch/ofetch.js.map +1 -0
  199. package/lib/utils/index.d.ts +8 -0
  200. package/lib/utils/index.js +80 -0
  201. package/lib/utils/index.js.map +1 -0
  202. package/lib/utils/preference.d.ts +35 -0
  203. package/lib/utils/preference.js +115 -0
  204. package/lib/utils/preference.js.map +1 -0
  205. package/lib/utils/puppeteer.d.ts +20 -0
  206. package/lib/utils/puppeteer.js +79 -0
  207. package/lib/utils/puppeteer.js.map +1 -0
  208. package/lib/utils/s3.d.ts +11 -0
  209. package/lib/utils/s3.js +60 -0
  210. package/lib/utils/s3.js.map +1 -0
  211. package/lib/ws/beatleader.js +1 -0
  212. package/lib/ws/beatleader.js.map +1 -1
  213. package/lib/ws/beatsaver.d.ts +6 -1
  214. package/lib/ws/beatsaver.js +28 -26
  215. package/lib/ws/beatsaver.js.map +1 -1
  216. package/package.json +9 -4
  217. package/lib/interface/db.js.map +0 -1
  218. package/lib/interface/tables.js +0 -1
  219. package/lib/interface/tables.js.map +0 -1
  220. package/lib/utils.d.ts +0 -2
  221. package/lib/utils.js +0 -25
  222. package/lib/utils.js.map +0 -1
  223. /package/lib/{interface/tables.d.ts → img-render/result/ss-score-with-rank.d.ts} +0 -0
package/lib/db/index.d.ts CHANGED
@@ -1,34 +0,0 @@
1
- export interface RelateAccount {
2
- id: number;
3
- uid: number;
4
- type: string;
5
- platform: string;
6
- platformUname: string;
7
- platformUid: string;
8
- platformScope: string;
9
- accessToken: string;
10
- refreshToken: string;
11
- otherPlatformInfo: any;
12
- lastModifiedAt: Date;
13
- lastRefreshAt: Date;
14
- status: string;
15
- }
16
- export interface SubscribeMember {
17
- subscribeId: number;
18
- memberUid: number;
19
- subscribeData: any;
20
- joinedAt: Date;
21
- }
22
- export interface Subscribe {
23
- id: number;
24
- gid: number;
25
- type: string;
26
- time: Date;
27
- enable: boolean;
28
- data: any;
29
- }
30
- export type RelateChannelInfo<CHANNEL> = {
31
- id: number;
32
- name: string;
33
- type: 'user' | 'group' | string;
34
- } & CHANNEL;
package/lib/db/index.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  //# sourceMappingURL=index.js.map
@@ -1,53 +1,55 @@
1
- export declare class ScoreNotFoundError extends Error {
2
- id: string;
3
- params: any;
4
- constructor(message: any);
1
+ export declare class UnexpectedError extends Error {
2
+ constructor();
5
3
  }
6
- export declare class AccountBindingNotFoundError extends Error {
4
+ export declare class BizError extends Error {
7
5
  id: string;
8
- params: any;
9
- constructor(message?: string);
6
+ params?: any;
10
7
  }
11
- export declare class InvalidMapIdError extends Error {
12
- id: string;
13
- params: any;
14
- constructor(message: any);
8
+ export declare class ScoreNotFoundError extends BizError {
9
+ constructor(params?: any);
15
10
  }
16
- export declare class MapIdNotFoundError extends Error {
17
- id: string;
18
- params: any;
19
- constructor(message: any);
11
+ export declare class AccountBindingNotFoundError extends BizError {
12
+ constructor(params?: any);
20
13
  }
21
- export declare class NetworkError extends Error {
22
- id: string;
23
- params: any;
24
- constructor(message: any);
14
+ export declare class UnknownUserIDError extends BizError {
15
+ constructor(params?: any);
25
16
  }
26
- export declare class ScoreSaberIDNotFoundError extends Error {
27
- id: string;
28
- params: any;
29
- constructor(input: string);
17
+ export declare class InvalidMapIdError extends BizError {
18
+ constructor(params?: any);
30
19
  }
31
- export declare class SessionPromotionTimeoutError extends Error {
32
- id: string;
33
- constructor();
20
+ export declare class MapIdNotFoundError extends BizError {
21
+ constructor(params?: any);
34
22
  }
35
- export declare class SessionPromotionCancelError extends Error {
36
- id: string;
37
- constructor();
23
+ export declare class ScoreSaberIDNotFoundError extends BizError {
24
+ constructor(params?: any);
38
25
  }
39
- export declare class SubscriptionExistError extends Error {
40
- id: string;
41
- params: any;
42
- constructor(message?: string);
26
+ export declare class SessionPromotionTimeoutError extends BizError {
27
+ constructor(params?: any);
43
28
  }
44
- export declare class NoneSubscriptionExistError extends Error {
45
- id: string;
46
- params: any;
47
- constructor(message?: string);
29
+ export declare class SessionPromotionCancelError extends BizError {
30
+ constructor(params?: any);
48
31
  }
49
- export declare class SubscriptionNotExistError extends Error {
50
- id: string;
51
- params: any;
52
- constructor(message?: string);
32
+ export declare class SubscriptionExistError extends BizError {
33
+ constructor(params?: any);
34
+ }
35
+ export declare class NoneSubscriptionExistError extends BizError {
36
+ constructor(params?: any);
37
+ }
38
+ export declare class SubscriptionNotExistError extends BizError {
39
+ constructor(params?: any);
40
+ }
41
+ export declare class ImageRenderError extends BizError {
42
+ constructor(params?: any);
43
+ }
44
+ export declare class RequestError extends BizError {
45
+ constructor(params?: any);
46
+ }
47
+ export declare class ReachNetworkRetryLimitError extends BizError {
48
+ constructor(params?: any);
49
+ }
50
+ export declare class NotImplementedError extends BizError {
51
+ constructor(params?: any);
52
+ }
53
+ export declare class EmptyPromptError extends BizError {
54
+ constructor(params?: any);
53
55
  }
@@ -1,113 +1,162 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SubscriptionNotExistError = exports.NoneSubscriptionExistError = exports.SubscriptionExistError = exports.SessionPromotionCancelError = exports.SessionPromotionTimeoutError = exports.ScoreSaberIDNotFoundError = exports.NetworkError = exports.MapIdNotFoundError = exports.InvalidMapIdError = exports.AccountBindingNotFoundError = exports.ScoreNotFoundError = void 0;
4
- class ScoreNotFoundError extends Error {
3
+ exports.EmptyPromptError = exports.NotImplementedError = exports.ReachNetworkRetryLimitError = exports.RequestError = exports.ImageRenderError = exports.SubscriptionNotExistError = exports.NoneSubscriptionExistError = exports.SubscriptionExistError = exports.SessionPromotionCancelError = exports.SessionPromotionTimeoutError = exports.ScoreSaberIDNotFoundError = exports.MapIdNotFoundError = exports.InvalidMapIdError = exports.UnknownUserIDError = exports.AccountBindingNotFoundError = exports.ScoreNotFoundError = exports.BizError = exports.UnexpectedError = void 0;
4
+ class UnexpectedError extends Error {
5
+ constructor() {
6
+ super('UnexpectedError');
7
+ }
8
+ }
9
+ exports.UnexpectedError = UnexpectedError;
10
+ class BizError extends Error {
5
11
  id;
6
12
  params;
7
- constructor(message) {
8
- super(message);
13
+ }
14
+ exports.BizError = BizError;
15
+ class ScoreNotFoundError extends BizError {
16
+ constructor(params) {
17
+ super('ScoreNotFoundError');
9
18
  this.name = 'ScoreNotFoundError';
10
19
  this.id = 'commands.bsbot.me.score-not-found';
20
+ this.params = params;
11
21
  }
12
22
  }
13
23
  exports.ScoreNotFoundError = ScoreNotFoundError;
14
- class AccountBindingNotFoundError extends Error {
15
- id;
16
- params;
17
- constructor(message) {
18
- super(message);
24
+ class AccountBindingNotFoundError extends BizError {
25
+ constructor(params) {
26
+ super('AccountBindingNotFoundError');
19
27
  this.name = 'AccountBindingNotFoundError';
20
28
  this.id = 'commands.bsbot.score.not-bind';
29
+ this.params = params;
21
30
  }
22
31
  }
23
32
  exports.AccountBindingNotFoundError = AccountBindingNotFoundError;
24
- class InvalidMapIdError extends Error {
25
- id;
26
- params;
27
- constructor(message) {
28
- super(message);
33
+ class UnknownUserIDError extends BizError {
34
+ constructor(params) {
35
+ super('UnknownUserIDError');
36
+ this.name = 'UnknownUserIDError';
37
+ this.id = 'commands.bsbot.me.not-found';
38
+ this.params = params;
39
+ }
40
+ }
41
+ exports.UnknownUserIDError = UnknownUserIDError;
42
+ class InvalidMapIdError extends BizError {
43
+ constructor(params) {
44
+ super('InvalidMapIdError');
29
45
  this.name = 'InvalidMapIdError';
30
46
  this.id = 'commands.bsbot.id.error-map-id';
47
+ this.params = params;
31
48
  }
32
49
  }
33
50
  exports.InvalidMapIdError = InvalidMapIdError;
34
- class MapIdNotFoundError extends Error {
35
- id;
36
- params;
37
- constructor(message) {
38
- super(message);
51
+ class MapIdNotFoundError extends BizError {
52
+ constructor(params) {
53
+ super('MapIdNotFoundError');
39
54
  this.name = 'MapIdNotFoundError';
40
55
  this.id = 'commands.bsbot.id.not-found';
56
+ this.params = params;
41
57
  }
42
58
  }
43
59
  exports.MapIdNotFoundError = MapIdNotFoundError;
44
- class NetworkError extends Error {
45
- id;
46
- params;
47
- constructor(message) {
48
- super(message);
49
- this.name = 'NetworkError';
50
- this.id = 'commands.bsbot.id.not-found';
51
- }
52
- }
53
- exports.NetworkError = NetworkError;
54
- class ScoreSaberIDNotFoundError extends Error {
55
- id;
56
- params;
57
- constructor(input) {
58
- super();
60
+ class ScoreSaberIDNotFoundError extends BizError {
61
+ constructor(params) {
62
+ super('ScoreSaberIdNotFoundError');
59
63
  this.name = 'ScoreSaberIdNotFoundError';
60
64
  this.id = 'commands.bsbot.bind.not-found';
61
- this.params = input;
65
+ this.params = params;
66
+ this.params = params;
62
67
  }
63
68
  }
64
69
  exports.ScoreSaberIDNotFoundError = ScoreSaberIDNotFoundError;
65
- class SessionPromotionTimeoutError extends Error {
66
- id;
67
- constructor() {
68
- super();
70
+ class SessionPromotionTimeoutError extends BizError {
71
+ constructor(params) {
72
+ super('SessionPromotionTimeoutError');
69
73
  this.name = 'SessionPromotionTimeoutError';
70
74
  this.id = 'commands.bsbot.session-promotion-timeout';
75
+ this.params = params;
71
76
  }
72
77
  }
73
78
  exports.SessionPromotionTimeoutError = SessionPromotionTimeoutError;
74
- class SessionPromotionCancelError extends Error {
75
- id;
76
- constructor() {
77
- super();
78
- this.name = 'SessionPromotionCancelError';
79
+ class SessionPromotionCancelError extends BizError {
80
+ constructor(params) {
81
+ const name = 'SessionPromotionCancelError';
82
+ super(name);
83
+ this.name = name;
79
84
  this.id = 'commands.bsbot.bind.cancel';
85
+ this.params = params;
80
86
  }
81
87
  }
82
88
  exports.SessionPromotionCancelError = SessionPromotionCancelError;
83
- class SubscriptionExistError extends Error {
84
- id;
85
- params;
86
- constructor(message) {
87
- super(message);
89
+ class SubscriptionExistError extends BizError {
90
+ constructor(params) {
91
+ super('SubscriptionExistError');
92
+ this.params = params;
88
93
  this.name = 'SubscriptionExistError';
89
94
  this.id = 'commands.bsbot.subscribe.exist';
95
+ this.params = params;
90
96
  }
91
97
  }
92
98
  exports.SubscriptionExistError = SubscriptionExistError;
93
- class NoneSubscriptionExistError extends Error {
94
- id;
95
- params;
96
- constructor(message) {
97
- super(message);
99
+ class NoneSubscriptionExistError extends BizError {
100
+ constructor(params) {
101
+ super('NoneSubscriptionExistError');
98
102
  this.name = 'NoneSubscriptionExistError';
99
103
  this.id = 'commands.bsbot.subscribe.info.none';
104
+ this.params = params;
100
105
  }
101
106
  }
102
107
  exports.NoneSubscriptionExistError = NoneSubscriptionExistError;
103
- class SubscriptionNotExistError extends Error {
104
- id;
105
- params;
106
- constructor(message) {
107
- super(message);
108
+ class SubscriptionNotExistError extends BizError {
109
+ constructor(params) {
110
+ super('SubscriptionNotExistError');
108
111
  this.name = 'SubscriptionNotExistError';
109
112
  this.id = 'commands.bsbot.unsubscribe.nosub';
113
+ this.params = params;
110
114
  }
111
115
  }
112
116
  exports.SubscriptionNotExistError = SubscriptionNotExistError;
117
+ class ImageRenderError extends BizError {
118
+ constructor(params) {
119
+ super('ImageRenderError');
120
+ this.name = 'ImageRenderError';
121
+ this.id = 'commands.bsbot.render.error';
122
+ this.params = params;
123
+ }
124
+ }
125
+ exports.ImageRenderError = ImageRenderError;
126
+ class RequestError extends BizError {
127
+ constructor(params) {
128
+ super('RequestError');
129
+ this.name = 'RequestError';
130
+ this.id = 'commands.bsbot.request.error';
131
+ this.params = params;
132
+ }
133
+ }
134
+ exports.RequestError = RequestError;
135
+ class ReachNetworkRetryLimitError extends BizError {
136
+ constructor(params) {
137
+ super('ReachNetworkRetryLimitError');
138
+ this.name = 'ReachNetworkRetryLimitError';
139
+ this.id = 'commands.bsbot.common.error.reach-request-retry-limit';
140
+ this.params = params;
141
+ }
142
+ }
143
+ exports.ReachNetworkRetryLimitError = ReachNetworkRetryLimitError;
144
+ class NotImplementedError extends BizError {
145
+ constructor(params) {
146
+ super('NotImplementedError');
147
+ this.name = 'NotImplementedError';
148
+ this.id = 'commands.bsbot.common.error.not-implemented';
149
+ this.params = params;
150
+ }
151
+ }
152
+ exports.NotImplementedError = NotImplementedError;
153
+ class EmptyPromptError extends BizError {
154
+ constructor(params) {
155
+ super('EmptyPromptError');
156
+ this.name = 'EmptyPromptError';
157
+ this.id = 'commands.bsbot.common.error.empty-prompt';
158
+ this.params = params;
159
+ }
160
+ }
161
+ exports.EmptyPromptError = EmptyPromptError;
113
162
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
package/lib/i18n/index.js CHANGED
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.tran = exports.loadI18nConfig = void 0;
27
+ const parser_1 = require("../i18n/parser");
27
28
  const i18nObj = {};
28
29
  init().then((_) => console.log('i18n loaded'));
29
30
  async function init() {
@@ -58,16 +59,6 @@ function loadI18nConfig(lang, obj) {
58
59
  console.log(`overwrite i18n ${lang} `);
59
60
  }
60
61
  exports.loadI18nConfig = loadI18nConfig;
61
- function safeEval(expr, context) {
62
- try {
63
- const fn = new Function(...Object.keys(context), `return ${expr}`);
64
- return fn(...Object.values(context));
65
- }
66
- catch (e) {
67
- console.error(expr, context, e);
68
- return expr;
69
- }
70
- }
71
62
  function tran(path, params = {}, lang = 'zh-cn') {
72
63
  const keys = path.split('.');
73
64
  let result = i18nObj[lang];
@@ -79,7 +70,12 @@ function tran(path, params = {}, lang = 'zh-cn') {
79
70
  return null;
80
71
  }
81
72
  }
82
- if (typeof result === 'string') {
73
+ try {
74
+ if (typeof result === 'string') {
75
+ return (0, parser_1.interpolate)(result, params);
76
+ }
77
+ }
78
+ catch (e) {
83
79
  return interpolateString(result, params);
84
80
  }
85
81
  return null;
@@ -109,4 +105,14 @@ function interpolateString(str, context) {
109
105
  str = str.replace(variableRegex, (match, expr) => safeEval(expr, context));
110
106
  return str;
111
107
  }
108
+ function safeEval(expr, context) {
109
+ try {
110
+ const fn = new Function(...Object.keys(context), `return ${expr}`);
111
+ return fn(...Object.values(context));
112
+ }
113
+ catch (e) {
114
+ console.error(expr, context, e);
115
+ return expr;
116
+ }
117
+ }
112
118
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,OAAO,GAAG,EAAE,CAAA;AAElB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;AAE9C,KAAK,UAAU,IAAI;IACjB,mBAAmB;IACnB,MAAM,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAA;IACvC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAI;IACpB,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;IAC9B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACtD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAQ;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAA;AACxC,CAAC;AAJD,wCAIC;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE,OAAO;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAjBD,oBAiBC;AAED,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO;IACrC,eAAe;IACf,MAAM,KAAK,GAAG,4CAA4C,CAAA;IAC1D,IAAI,KAAK,CAAA;IAET,OAAO;IACP,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;QAE3D,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAEjE,UAAU;QACV,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,KAAK,CAAA;QAChB,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAEnE,cAAc;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC3C,CAAC;IAED,SAAS;IACT,MAAM,aAAa,GAAG,gBAAgB,CAAA;IACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1E,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA2C;AAE3C,MAAM,OAAO,GAAG,EAAE,CAAA;AAElB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;AAE9C,KAAK,UAAU,IAAI;IACjB,mBAAmB;IACnB,MAAM,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAA;IACvC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAI;IACpB,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;IAC9B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACtD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAQ;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAA;AACxC,CAAC;AAJD,wCAIC;AAED,SAAgB,IAAI,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AApBD,oBAoBC;AAED,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO;IACrC,eAAe;IACf,MAAM,KAAK,GAAG,4CAA4C,CAAA;IAC1D,IAAI,KAAK,CAAA;IAET,OAAO;IACP,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;QAE3D,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAEjE,UAAU;QACV,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,KAAK,CAAA;QAChB,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAEnE,cAAc;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC3C,CAAC;IAED,SAAS;IACT,MAAM,aAAa,GAAG,gBAAgB,CAAA;IACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1E,OAAO,GAAG,CAAA;AACZ,CAAC;AACD,SAAS,QAAQ,CAAC,IAAI,EAAE,OAAO;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare class Parser {
2
+ private template;
3
+ private data;
4
+ private tokens;
5
+ private current;
6
+ constructor(template: string, data: any);
7
+ private tokenize;
8
+ private match;
9
+ private consume;
10
+ private parseExpression;
11
+ private parseInterpolation;
12
+ parse(): string;
13
+ }
14
+ export declare function interpolate(template: string, data: any): string;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interpolate = exports.Parser = void 0;
4
+ var TokenType;
5
+ (function (TokenType) {
6
+ TokenType[TokenType["TEXT"] = 0] = "TEXT";
7
+ TokenType[TokenType["OPEN_BRACE"] = 1] = "OPEN_BRACE";
8
+ TokenType[TokenType["CLOSE_BRACE"] = 2] = "CLOSE_BRACE";
9
+ TokenType[TokenType["IDENTIFIER"] = 3] = "IDENTIFIER";
10
+ TokenType[TokenType["QUESTION"] = 4] = "QUESTION";
11
+ TokenType[TokenType["COLON"] = 5] = "COLON";
12
+ TokenType[TokenType["STRING"] = 6] = "STRING";
13
+ })(TokenType || (TokenType = {}));
14
+ // 插值解析Parser {{}},暂时没转义支持
15
+ // "😯,没有找到用户「{{user}}」的谱面「{{id}} ({{mode ? '{{mode}}' : '' }} {{diff ? '-{{diff}}' : '' }})」的打分数据"
16
+ class Parser {
17
+ template;
18
+ data;
19
+ tokens = [];
20
+ current = 0;
21
+ constructor(template, data) {
22
+ this.template = template;
23
+ this.data = data;
24
+ this.tokenize();
25
+ }
26
+ tokenize() {
27
+ let current = 0;
28
+ while (current < this.template.length) {
29
+ let char = this.template[current];
30
+ if (char === '\\' && current + 1 < this.template.length) {
31
+ // 处理转义字符
32
+ const nextChar = this.template[current + 1];
33
+ if (nextChar === '{' ||
34
+ nextChar === '}' ||
35
+ nextChar === '?' ||
36
+ nextChar === ':' ||
37
+ nextChar === "'" ||
38
+ nextChar === '\\') {
39
+ this.tokens.push({ type: TokenType.TEXT, value: nextChar });
40
+ current += 2;
41
+ continue;
42
+ }
43
+ }
44
+ if (char === '{' && this.template[current + 1] === '{') {
45
+ this.tokens.push({ type: TokenType.OPEN_BRACE, value: '{{' });
46
+ current += 2;
47
+ continue;
48
+ }
49
+ if (char === '}' && this.template[current + 1] === '}') {
50
+ this.tokens.push({ type: TokenType.CLOSE_BRACE, value: '}}' });
51
+ current += 2;
52
+ continue;
53
+ }
54
+ if (char === '?') {
55
+ this.tokens.push({ type: TokenType.QUESTION, value: '?' });
56
+ current++;
57
+ continue;
58
+ }
59
+ if (char === ':') {
60
+ this.tokens.push({ type: TokenType.COLON, value: ':' });
61
+ current++;
62
+ continue;
63
+ }
64
+ if (char === "'") {
65
+ let value = '';
66
+ char = this.template[++current];
67
+ while (char !== "'" && current < this.template.length) {
68
+ if (char === '\\' && current + 1 < this.template.length) {
69
+ char = this.template[++current];
70
+ }
71
+ value += char;
72
+ char = this.template[++current];
73
+ }
74
+ if (char === "'")
75
+ current++;
76
+ this.tokens.push({ type: TokenType.STRING, value });
77
+ continue;
78
+ }
79
+ if (/[a-zA-Z0-9_]/.test(char)) {
80
+ let value = '';
81
+ while (/[a-zA-Z0-9_]/.test(char)) {
82
+ value += char;
83
+ char = this.template[++current];
84
+ }
85
+ this.tokens.push({ type: TokenType.IDENTIFIER, value });
86
+ continue;
87
+ }
88
+ if (/\s/.test(char)) {
89
+ current++;
90
+ continue;
91
+ }
92
+ let value = '';
93
+ while (current < this.template.length &&
94
+ char !== '{' &&
95
+ char !== '}' &&
96
+ char !== '?' &&
97
+ char !== ':' &&
98
+ char !== "'"
99
+ // &&
100
+ // !/[a-zA-Z0-9_]/.test(char)
101
+ ) {
102
+ if (char === '\\' && current + 1 < this.template.length) {
103
+ value += this.template[++current];
104
+ }
105
+ else {
106
+ value += char;
107
+ }
108
+ char = this.template[++current];
109
+ }
110
+ if (value) {
111
+ this.tokens.push({ type: TokenType.TEXT, value });
112
+ }
113
+ }
114
+ }
115
+ match(...types) {
116
+ if (this.current >= this.tokens.length)
117
+ return false;
118
+ return types.includes(this.tokens[this.current].type);
119
+ }
120
+ consume(type) {
121
+ if (this.match(type)) {
122
+ return this.tokens[this.current++];
123
+ }
124
+ throw new Error(`Expected token type ${type}, but got ${this.tokens[this.current].type}`);
125
+ }
126
+ parseExpression() {
127
+ if (this.match(TokenType.OPEN_BRACE)) {
128
+ this.consume(TokenType.OPEN_BRACE);
129
+ const result = this.parseInterpolation();
130
+ this.consume(TokenType.CLOSE_BRACE);
131
+ return result;
132
+ }
133
+ if (this.match(TokenType.STRING)) {
134
+ const tmp = this.consume(TokenType.STRING).value;
135
+ return interpolate(tmp, this.data);
136
+ }
137
+ return this.consume(TokenType.TEXT).value;
138
+ }
139
+ parseInterpolation() {
140
+ const identifier = this.consume(TokenType.IDENTIFIER).value;
141
+ if (this.match(TokenType.QUESTION)) {
142
+ this.consume(TokenType.QUESTION);
143
+ const truePart = this.parseExpression();
144
+ this.consume(TokenType.COLON);
145
+ const falsePart = this.parseExpression();
146
+ return this.data[identifier] ? truePart : falsePart;
147
+ }
148
+ return this.data[identifier]?.toString() || '';
149
+ }
150
+ parse() {
151
+ // console.log(this.current, this.tokens)
152
+ let result = '';
153
+ while (this.current < this.tokens.length) {
154
+ result += this.parseExpression();
155
+ }
156
+ return result;
157
+ }
158
+ }
159
+ exports.Parser = Parser;
160
+ function interpolate(template, data) {
161
+ const parser = new Parser(template, data);
162
+ return parser.parse();
163
+ }
164
+ exports.interpolate = interpolate;
165
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/i18n/parser.ts"],"names":[],"mappings":"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"}