eternal-timer 3.0.0 → 4.1.0

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 (62) hide show
  1. package/README.md +145 -35
  2. package/dist/cjs/EventEmitter.d.ts +12 -0
  3. package/dist/cjs/EventEmitter.d.ts.map +1 -0
  4. package/dist/cjs/EventEmitter.js +50 -0
  5. package/dist/cjs/EventEmitter.js.map +1 -0
  6. package/dist/cjs/TimersManager/JSONLTimersManager.d.ts.map +1 -1
  7. package/dist/cjs/TimersManager/JSONLTimersManager.js +6 -3
  8. package/dist/cjs/TimersManager/JSONLTimersManager.js.map +1 -1
  9. package/dist/cjs/TimersManager/TimersManager.d.ts +30 -29
  10. package/dist/cjs/TimersManager/TimersManager.d.ts.map +1 -1
  11. package/dist/cjs/TimersManager/TimersManager.js +58 -54
  12. package/dist/cjs/TimersManager/TimersManager.js.map +1 -1
  13. package/dist/cjs/TimersStore/JSONLTimersStore.d.ts.map +1 -1
  14. package/dist/cjs/TimersStore/JSONLTimersStore.js +2 -1
  15. package/dist/cjs/TimersStore/JSONLTimersStore.js.map +1 -1
  16. package/dist/cjs/TimersStore/PlainTextTimersStore.d.ts.map +1 -1
  17. package/dist/cjs/TimersStore/PlainTextTimersStore.js +2 -1
  18. package/dist/cjs/TimersStore/PlainTextTimersStore.js.map +1 -1
  19. package/dist/cjs/TimersStore/TimersStore.d.ts.map +1 -1
  20. package/dist/cjs/TimersStore/TimersStore.js +4 -3
  21. package/dist/cjs/TimersStore/TimersStore.js.map +1 -1
  22. package/dist/cjs/throwMessage.d.ts +12 -0
  23. package/dist/cjs/throwMessage.d.ts.map +1 -0
  24. package/dist/cjs/throwMessage.js +15 -0
  25. package/dist/cjs/throwMessage.js.map +1 -0
  26. package/dist/cjs/types.d.ts +14 -0
  27. package/dist/cjs/types.d.ts.map +1 -1
  28. package/dist/esm/EventEmitter.d.ts +12 -0
  29. package/dist/esm/EventEmitter.d.ts.map +1 -0
  30. package/dist/esm/EventEmitter.js +46 -0
  31. package/dist/esm/EventEmitter.js.map +1 -0
  32. package/dist/esm/TimersManager/JSONLTimersManager.d.ts.map +1 -1
  33. package/dist/esm/TimersManager/JSONLTimersManager.js +6 -3
  34. package/dist/esm/TimersManager/JSONLTimersManager.js.map +1 -1
  35. package/dist/esm/TimersManager/TimersManager.d.ts +30 -29
  36. package/dist/esm/TimersManager/TimersManager.d.ts.map +1 -1
  37. package/dist/esm/TimersManager/TimersManager.js +58 -54
  38. package/dist/esm/TimersManager/TimersManager.js.map +1 -1
  39. package/dist/esm/TimersStore/JSONLTimersStore.d.ts.map +1 -1
  40. package/dist/esm/TimersStore/JSONLTimersStore.js +2 -1
  41. package/dist/esm/TimersStore/JSONLTimersStore.js.map +1 -1
  42. package/dist/esm/TimersStore/PlainTextTimersStore.d.ts.map +1 -1
  43. package/dist/esm/TimersStore/PlainTextTimersStore.js +2 -1
  44. package/dist/esm/TimersStore/PlainTextTimersStore.js.map +1 -1
  45. package/dist/esm/TimersStore/TimersStore.d.ts.map +1 -1
  46. package/dist/esm/TimersStore/TimersStore.js +4 -3
  47. package/dist/esm/TimersStore/TimersStore.js.map +1 -1
  48. package/dist/esm/throwMessage.d.ts +12 -0
  49. package/dist/esm/throwMessage.d.ts.map +1 -0
  50. package/dist/esm/throwMessage.js +12 -0
  51. package/dist/esm/throwMessage.js.map +1 -0
  52. package/dist/esm/types.d.ts +14 -0
  53. package/dist/esm/types.d.ts.map +1 -1
  54. package/package.json +2 -5
  55. package/dist/cjs/Log.d.ts +0 -8
  56. package/dist/cjs/Log.d.ts.map +0 -1
  57. package/dist/cjs/Log.js +0 -61
  58. package/dist/cjs/Log.js.map +0 -1
  59. package/dist/esm/Log.d.ts +0 -8
  60. package/dist/esm/Log.d.ts.map +0 -1
  61. package/dist/esm/Log.js +0 -24
  62. package/dist/esm/Log.js.map +0 -1
@@ -8,7 +8,8 @@ const path_1 = __importDefault(require("path"));
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const uuid_1 = require("uuid");
10
10
  const searchRoot_js_1 = __importDefault(require("../searchRoot.js"));
11
- const Log_js_1 = require("../Log.js");
11
+ const EventEmitter_js_1 = require("../EventEmitter.js");
12
+ const throwMessage_js_1 = require("../throwMessage.js");
12
13
  /**
13
14
  * TimersManager
14
15
  * @description
@@ -18,7 +19,7 @@ const Log_js_1 = require("../Log.js");
18
19
  * - Timers are persisted in a file
19
20
  * - Expired timers are detected by polling
20
21
  */
21
- class TimersManager {
22
+ class TimersManager extends EventEmitter_js_1.EventEmitter {
22
23
  timerfiledir;
23
24
  checkLock = false;
24
25
  TimersStore = null;
@@ -31,17 +32,18 @@ class TimersManager {
31
32
  /**
32
33
  * constructor
33
34
  * @description Initializes the TimersManager instance. If the timer file does not exist, an empty file is created.
34
- * @param {string} [options] (string, optional) Configuration timer file path and it is treated as the timer file path.
35
+ * @param {string} [timerfile] (string, optional) Configuration timer file path and it is treated as the timer file path.
35
36
  * @throws If file access or creation fails
36
37
  * @example
37
38
  * const manager = new TimersManager(); // Uses default timer file path
38
39
  * const manager = new TimersManager("/path/to/timers.txt"); // Uses specified timer file path
39
40
  */
40
- constructor(options) {
41
+ constructor(timerfile) {
42
+ super();
41
43
  const rootDir = (0, searchRoot_js_1.default)();
42
- this.timerfiledir = path_1.default.resolve(rootDir, options ?? this.getDefaultFilename());
44
+ this.timerfiledir = path_1.default.resolve(rootDir, timerfile ?? this.getDefaultFilename());
43
45
  if (!this.timerfiledir.startsWith(rootDir)) {
44
- throw new Error(`Timer file path must be within the project directory`);
46
+ throw new Error(throwMessage_js_1.throwMessage.FilePathinvalid);
45
47
  }
46
48
  try {
47
49
  fs_1.default.accessSync(this.timerfiledir);
@@ -53,23 +55,27 @@ class TimersManager {
53
55
  /**
54
56
  * createTimer
55
57
  * @description Creates a new timer.
56
- * @param {{length: number, extra: Extra} | number} options Timer duration in milliseconds and extra field(only JSONL)
58
+ * @param {CreateTimerOptions<T, Extra>} options Timer duration in milliseconds for PlainText or an object with length and extra for JSONL.
57
59
  * @returns Promise that resolves to the timer ID (UUID)
58
- * @throws If length is invalid(e.g. length < 0) or file operation fails
60
+ * @throws If length is invalid (e.g. length < 0) or file operation fails
59
61
  * @example
60
- * const manager = new TimersManager();
61
- * const newTimer = await manager.createTimer(5000);
62
- * // newTimer will be id of the timer
62
+ * // For PlainTextTimersManager
63
+ * const manager = new PlainTextTimersManager();
64
+ * const newTimerId = await manager.createTimer(5000); // Create a 5-second timer
65
+ *
66
+ * // For JSONLTimersManager
67
+ * const jsonlManager = new JSONLTimersManager<{ title: string }>();
68
+ * const jsonlTimerId = await jsonlManager.createTimer({ length: 10000, extra: { title: "My JSONL Timer" } }); // Create a 10-second timer with extra data
63
69
  */
64
70
  async createTimer(options) {
65
71
  return this.runExclusive(async () => {
66
72
  this.TimersStore ??= await this.createTimersStore();
67
73
  if (this.type === "JSONL" && typeof options === "number") {
68
- throw new Error(`Cannot create timer without extra fields in JSONL`);
74
+ throw new Error(throwMessage_js_1.throwMessage.NoExtra);
69
75
  }
70
76
  let length = typeof options === "object" ? options.length : options;
71
77
  if (length < 0)
72
- throw new Error(`Invalid length: ${length}`);
78
+ throw new Error(throwMessage_js_1.throwMessage.InvalidLength(length));
73
79
  length = Math.trunc(length);
74
80
  const id = (0, uuid_1.v4)();
75
81
  const now = Date.now();
@@ -83,6 +89,7 @@ class TimersManager {
83
89
  : {}),
84
90
  };
85
91
  await this.TimersStore.appendTimer(newTimerData);
92
+ await this.emit("created", newTimerData);
86
93
  return id;
87
94
  });
88
95
  }
@@ -100,37 +107,35 @@ class TimersManager {
100
107
  this.TimersStore ??= await this.createTimersStore();
101
108
  const timers = await this.TimersStore.loadTimers();
102
109
  const index = timers.findIndex(t => t.id === id);
103
- if (index === -1) {
104
- throw new Error(`Timer with id ${id} not found`);
110
+ if (index === -1 || timers[index] === undefined) {
111
+ throw new Error(throwMessage_js_1.throwMessage.NotFound(id));
105
112
  }
106
113
  timers.splice(index, 1);
107
114
  await this.TimersStore.saveTimers(timers);
115
+ await this.emit("removed", timers[index]);
108
116
  return;
109
117
  });
110
118
  }
111
119
  /**
112
- * checkTimers
113
- * @description Starts monitoring timers at the specified interval.
114
- * When a timer expires, the provided `callback` is invoked with the timer.
115
- * The callback is awaited before the next processing cycle continues.
116
- * @param {(timer: Timer<T, Extra>) => void | Promise<void>} callback Function invoked when an expired timer is detected (called asynchronously)
117
- * @param {number} [interval=200] (number, optional): Check interval in milliseconds (default: 200ms)
118
- * @throws If file operation fails
119
- * @returns {Promise<NodeJS.Timeout>} intervalId interval id of checkTimers
120
+ * checkStart
121
+ * @description Starts the timer checking loop. This method should be called once after creating an instance of TimersManager to detect expired timers.
122
+ * @param {number} [interval=200] Polling interval in milliseconds (default: 200ms)
123
+ * @returns The interval ID which can be used to stop the loop with clearInterval
124
+ * @throws If file operation fails during checking
120
125
  * @example
121
- * const interval = await manager.checkTimers((timer) => {
122
- * console.log(`A timer was stopped: ${timer.id}`);
123
- * });
126
+ * const manager = new TimersManager();
127
+ * manager.checkStart(1000); // Check for expired timers every 1 second
124
128
  */
125
- async checkTimers(callback, interval = 200) {
129
+ async checkStart(interval = 200) {
126
130
  this.TimersStore ??= await this.createTimersStore();
127
131
  const loop = async () => {
128
- if (this.checkLock) {
132
+ if (this.checkLock)
129
133
  return;
130
- }
131
134
  this.checkLock = true;
135
+ let expiredTimers = [];
132
136
  try {
133
- const expiredTimers = await this.runExclusive(async () => {
137
+ expiredTimers = await this.runExclusive(async () => {
138
+ await this.emit("interval", void 0);
134
139
  const allTimers = await this.TimersStore.loadTimers();
135
140
  const now = Date.now();
136
141
  const expired = [];
@@ -148,35 +153,33 @@ class TimersManager {
148
153
  }
149
154
  return expired;
150
155
  });
151
- for (const timerData of expiredTimers) {
152
- try {
153
- await callback(timerData);
154
- }
155
- catch (e) {
156
- await Log_js_1.Log.ensureLogger();
157
- Log_js_1.Log.loggerInstance?.error(`Error in callback of checkTimers: ${e}`);
158
- }
159
- }
160
156
  }
161
157
  catch (e) {
162
- await Log_js_1.Log.ensureLogger();
163
- Log_js_1.Log.loggerInstance?.error(`Error when checking timer: ${e}`);
164
- }
165
- finally {
158
+ this.emit("errored", e instanceof Error ? e : new Error(String(e))).catch(() => { });
166
159
  this.checkLock = false;
160
+ return;
161
+ }
162
+ for (const timer of expiredTimers) {
163
+ try {
164
+ await this.emit("expired", timer);
165
+ }
166
+ catch (e) {
167
+ await this.emit("errored", e instanceof Error ? e : new Error(String(e)));
168
+ }
167
169
  }
170
+ this.checkLock = false;
168
171
  };
169
172
  return setInterval(loop, interval);
170
173
  }
171
174
  /**
172
- * showTimers
173
- * @description Retrieves all active timers.
174
- * @returns Array of `Timer` objects
175
- * @throws If file operation fails
176
- * @example
177
- * const timers = await manager.showTimers();
178
- * console.log(JSON.stringify(timers))
179
- */
175
+ * showTimers
176
+ * @description Retrieves all active timers.
177
+ * @returns Array of `Timer` objects
178
+ * @throws If file operation fails
179
+ * @example
180
+ * const timers = await manager.showTimers();
181
+ * console.log(JSON.stringify(timers))
182
+ */
180
183
  async showTimers() {
181
184
  return this.runExclusive(async () => {
182
185
  this.TimersStore ??= await this.createTimersStore();
@@ -197,16 +200,17 @@ class TimersManager {
197
200
  this.TimersStore ??= await this.createTimersStore();
198
201
  const timers = await this.TimersStore.loadTimers();
199
202
  const index = timers.findIndex(t => t.id === id);
200
- if (index === -1) {
201
- throw new Error(`Timer with id ${id} not found`);
203
+ if (index === -1 || timers[index] === undefined) {
204
+ throw new Error(throwMessage_js_1.throwMessage.NotFound(id));
202
205
  }
206
+ const old = { ...timers[index] };
203
207
  const now = Date.now();
204
208
  const timer = timers[index];
205
209
  const remaining = Math.max(0, timer.stop - now);
206
210
  const newRemaining = Math.max(0, remaining + delay);
207
211
  timer.stop = now + newRemaining;
208
- timers[index] = timer;
209
212
  await this.TimersStore.saveTimers(timers);
213
+ await this.emit("updated", { old, new: timer });
210
214
  return;
211
215
  });
212
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JSONLTimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/JSONLTimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,gBAAgB,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;gBAGrF,SAAS,EAAE,MAAM;IAKlB;;;;;;OAMG;cACsB,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7E,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM;IAO1D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;CAMlE"}
1
+ {"version":3,"file":"JSONLTimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/JSONLTimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,gBAAgB,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;gBAGrF,SAAS,EAAE,MAAM;IAKlB;;;;;;OAMG;cACsB,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7E,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM;IAO1D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;CAMlE"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JSONLTimersStore = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const TimersStore_js_1 = require("./TimersStore.js");
6
+ const throwMessage_js_1 = require("../throwMessage.js");
6
7
  class JSONLTimersStore extends TimersStore_js_1.TimersStore {
7
8
  constructor(timerfile) {
8
9
  super(timerfile);
@@ -16,7 +17,7 @@ class JSONLTimersStore extends TimersStore_js_1.TimersStore {
16
17
  */
17
18
  async checkTimerfileSyntax(timers) {
18
19
  const throwing = () => {
19
- throw new Error(`Timer file's syntax is wrong`);
20
+ throw new Error(throwMessage_js_1.throwMessage.InvalidSyntax);
20
21
  };
21
22
  for (const timer of timers) {
22
23
  if (Object.keys(timer).length !== 4)
@@ -1 +1 @@
1
- {"version":3,"file":"JSONLTimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/JSONLTimersStore.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAGhC,qDAA+C;AAE/C,MAAa,gBAAuC,SAAQ,4BAA2B;IAEtF,YACC,SAAiB;QAEjB,KAAK,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACgB,KAAK,CAAC,oBAAoB,CAAC,MAA+B;QAC5E,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI;gBAAE,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;IACF,CAAC;IAEe,iBAAiB,CAAC,MAA+B;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAEe,WAAW,CAAC,IAAY;QACvC,OAAO,IAAI;aACT,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC,CAAC;IAC5D,CAAC;CACD;AA3CD,4CA2CC"}
1
+ {"version":3,"file":"JSONLTimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/JSONLTimersStore.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAGhC,qDAA+C;AAC/C,wDAAkD;AAElD,MAAa,gBAAuC,SAAQ,4BAA2B;IAEtF,YACC,SAAiB;QAEjB,KAAK,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACgB,KAAK,CAAC,oBAAoB,CAAC,MAA+B;QAC5E,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI;gBAAE,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;IACF,CAAC;IAEe,iBAAiB,CAAC,MAA+B;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAEe,WAAW,CAAC,IAAY;QACvC,OAAO,IAAI;aACT,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC,CAAC;IAC5D,CAAC;CACD;AA3CD,4CA2CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlainTextTimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/PlainTextTimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,oBAAqB,SAAQ,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;gBAGxE,SAAS,EAAE,MAAM;IAKlB;;;;;;OAMM;cACmB,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM;IAO/D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;CAavE"}
1
+ {"version":3,"file":"PlainTextTimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/PlainTextTimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,oBAAqB,SAAQ,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;gBAGxE,SAAS,EAAE,MAAM;IAKlB;;;;;;OAMM;cACmB,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM;IAO/D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;CAavE"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlainTextTimersStore = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const TimersStore_js_1 = require("./TimersStore.js");
6
+ const throwMessage_js_1 = require("../throwMessage.js");
6
7
  class PlainTextTimersStore extends TimersStore_js_1.TimersStore {
7
8
  constructor(timerfile) {
8
9
  super(timerfile);
@@ -16,7 +17,7 @@ class PlainTextTimersStore extends TimersStore_js_1.TimersStore {
16
17
  */
17
18
  async checkTimerfileSyntax(timers) {
18
19
  const throwing = () => {
19
- throw new Error(`Timer file's syntax is wrong`);
20
+ throw new Error(throwMessage_js_1.throwMessage.InvalidSyntax);
20
21
  };
21
22
  for (const timer of timers) {
22
23
  if (Object.keys(timer).length !== 3)
@@ -1 +1 @@
1
- {"version":3,"file":"PlainTextTimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/PlainTextTimersStore.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAGhC,qDAA+C;AAE/C,MAAa,oBAAqB,SAAQ,4BAAgC;IAEzE,YACC,SAAiB;QAEjB,KAAK,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;OAMM;IACa,KAAK,CAAC,oBAAoB,CAAC,MAAoC;QACjF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,QAAQ,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,QAAQ,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO;IACR,CAAC;IAEe,iBAAiB,CAAC,MAAoC;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAEe,WAAW,CAAC,IAAY;QACvC,OAAO,IAAI;aACT,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO;gBACN,EAAE,EAAE,EAAG;gBACP,KAAK,EAAE,MAAM,CAAC,QAAS,CAAC;gBACxB,IAAI,EAAE,MAAM,CAAC,OAAQ,CAAC;aACQ,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;CACD;AAjDD,oDAiDC"}
1
+ {"version":3,"file":"PlainTextTimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/PlainTextTimersStore.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAGhC,qDAA+C;AAC/C,wDAAkD;AAElD,MAAa,oBAAqB,SAAQ,4BAAgC;IAEzE,YACC,SAAiB;QAEjB,KAAK,CAAC,SAAS,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;OAMM;IACa,KAAK,CAAC,oBAAoB,CAAC,MAAoC;QACjF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,QAAQ,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,QAAQ,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO;IACR,CAAC;IAEe,iBAAiB,CAAC,MAAoC;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAEe,WAAW,CAAC,IAAY;QACvC,OAAO,IAAI;aACT,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO;gBACN,EAAE,EAAE,EAAG;gBACP,KAAK,EAAE,MAAM,CAAC,QAAS,CAAC;gBACxB,IAAI,EAAE,MAAM,CAAC,OAAQ,CAAC;aACQ,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;CACD;AAjDD,oDAiDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/TimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtD,8BAAsB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM;IAC5E,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAErC,SAAS,aACR,SAAS,EAAE,MAAM;IAKL,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAWxC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aACjE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM;aACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;CAC5D"}
1
+ {"version":3,"file":"TimersStore.d.ts","sourceRoot":"","sources":["../../../src/TimersStore/TimersStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGtD,8BAAsB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM;IAC5E,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAErC,SAAS,aACR,SAAS,EAAE,MAAM;IAKL,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAWxC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aACjE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM;aACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;CAC5D"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TimersStore = void 0;
7
7
  const promises_1 = __importDefault(require("fs/promises"));
8
+ const throwMessage_js_1 = require("../throwMessage.js");
8
9
  class TimersStore {
9
10
  timerfile;
10
11
  constructor(timerfile) {
@@ -18,7 +19,7 @@ class TimersStore {
18
19
  return timersData;
19
20
  }
20
21
  catch (e) {
21
- throw new Error("Error when loading timer data", { cause: e });
22
+ throw new Error(throwMessage_js_1.throwMessage.LoadTimerData, { cause: e });
22
23
  }
23
24
  }
24
25
  async saveTimers(timers) {
@@ -27,7 +28,7 @@ class TimersStore {
27
28
  await promises_1.default.writeFile(this.timerfile, data, "utf-8");
28
29
  }
29
30
  catch (e) {
30
- throw new Error(`Error when saving timer data`, { cause: e });
31
+ throw new Error(throwMessage_js_1.throwMessage.SaveTimerData, { cause: e });
31
32
  }
32
33
  }
33
34
  async appendTimer(timer) {
@@ -36,7 +37,7 @@ class TimersStore {
36
37
  return;
37
38
  }
38
39
  catch (e) {
39
- throw new Error(`Error when appending timer data`, { cause: e });
40
+ throw new Error(throwMessage_js_1.throwMessage.AppendTimerData, { cause: e });
40
41
  }
41
42
  }
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/TimersStore.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAI7B,MAAsB,WAAW;IACb,SAAS,CAAS;IAErC,YACC,SAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,UAAU,GAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAyB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC;YACJ,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAsB;QAC9C,IAAI,CAAC;YACJ,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5E,OAAO;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;CAKD;AA1CD,kCA0CC"}
1
+ {"version":3,"file":"TimersStore.js","sourceRoot":"","sources":["../../../src/TimersStore/TimersStore.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAG7B,wDAAkD;AAElD,MAAsB,WAAW;IACb,SAAS,CAAS;IAErC,YACC,SAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,UAAU,GAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAyB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC;YACJ,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAsB;QAC9C,IAAI,CAAC;YACJ,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5E,OAAO;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;CAKD;AA1CD,kCA0CC"}
@@ -0,0 +1,12 @@
1
+ export declare const throwMessage: {
2
+ NotFound: (id: string) => string;
3
+ ChangeExtra: string;
4
+ FilePathinvalid: string;
5
+ NoExtra: string;
6
+ InvalidLength: (length: number) => string;
7
+ InvalidSyntax: string;
8
+ LoadTimerData: string;
9
+ SaveTimerData: string;
10
+ AppendTimerData: string;
11
+ };
12
+ //# sourceMappingURL=throwMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throwMessage.d.ts","sourceRoot":"","sources":["../../src/throwMessage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;mBACT,MAAM;;;;4BAIG,MAAM;;;;;CAK9B,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.throwMessage = void 0;
4
+ exports.throwMessage = {
5
+ NotFound: (id) => `Timer with id ${id} not found`,
6
+ ChangeExtra: "Error when changing extra",
7
+ FilePathinvalid: "Timer file path must be within the project directory",
8
+ NoExtra: "Cannot create timer without extra fields in JSONL",
9
+ InvalidLength: (length) => `Invalid length: ${length}`,
10
+ InvalidSyntax: "Timer file's syntax is wrong",
11
+ LoadTimerData: "Error when loading timer data",
12
+ SaveTimerData: "Error when saving timer data",
13
+ AppendTimerData: "Error when appending timer data",
14
+ };
15
+ //# sourceMappingURL=throwMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throwMessage.js","sourceRoot":"","sources":["../../src/throwMessage.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC3B,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,YAAY;IACzD,WAAW,EAAE,2BAA2B;IACxC,eAAe,EAAE,sDAAsD;IACvE,OAAO,EAAE,mDAAmD;IAC5D,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,mBAAmB,MAAM,EAAE;IAC9D,aAAa,EAAE,8BAA8B;IAC7C,aAAa,EAAE,+BAA+B;IAC9C,aAAa,EAAE,8BAA8B;IAC7C,eAAe,EAAE,iCAAiC;CAClD,CAAC"}
@@ -13,4 +13,18 @@ export type CreateTimerOptions<T extends StorageType, Extra extends object> = T
13
13
  length: number;
14
14
  extra: Extra;
15
15
  } : T extends "PlainText" ? number : never;
16
+ export type TimerEvents<T extends StorageType, Extra extends object> = {
17
+ expired: Timer<T, Extra>;
18
+ errored: Error;
19
+ interval: void;
20
+ created: Timer<T, Extra>;
21
+ removed: Timer<T, Extra>;
22
+ updated: {
23
+ old: Timer<T, Extra>;
24
+ new: Timer<T, Extra>;
25
+ };
26
+ };
27
+ export type ListenerMap<T extends StorageType, Extra extends object> = {
28
+ [K in keyof TimerEvents<T, Extra>]?: ((payload: TimerEvents<T, Extra>[K]) => void | Promise<void>)[];
29
+ };
16
30
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;IACrE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KAAE,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;KACpE,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;CAC7B,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { StorageType, TimerEvents } from "./types.js";
2
+ export declare class EventEmitter<T extends StorageType, Extra extends object> {
3
+ protected listeners: {
4
+ [K in keyof TimerEvents<T, Extra>]?: ((payload: TimerEvents<T, Extra>[K]) => void | Promise<void>)[];
5
+ };
6
+ on<K extends keyof TimerEvents<T, Extra>>(event: K, listener: (payload: TimerEvents<T, Extra>[K]) => void | Promise<void>): void;
7
+ once<K extends keyof TimerEvents<T, Extra>>(event: K, listener: (payload: TimerEvents<T, Extra>[K]) => void | Promise<void>): void;
8
+ off<K extends keyof TimerEvents<T, Extra>>(event: K, listener: (payload: TimerEvents<T, Extra>[K]) => void | Promise<void>): void;
9
+ offAll<K extends keyof TimerEvents<T, Extra>>(event: K): void;
10
+ protected emit<K extends keyof TimerEvents<T, Extra>>(event: K, payload: TimerEvents<T, Extra>[K]): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=EventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../src/EventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,qBAAa,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM;IACpE,SAAS,CAAC,SAAS,EAAE;SACb,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;KAC/B,CAAM;IAEH,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAC9C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnE,IAAI;IAOA,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAChD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnE,IAAI;IAQA,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAC/C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnE,IAAI;IAUA,MAAM,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAClD,KAAK,EAAE,CAAC,GACN,IAAI;cAIS,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EACzD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC;CAoBhB"}
@@ -0,0 +1,46 @@
1
+ export class EventEmitter {
2
+ listeners = {};
3
+ on(event, listener) {
4
+ if (!this.listeners[event]) {
5
+ this.listeners[event] = [];
6
+ }
7
+ this.listeners[event].push(listener);
8
+ }
9
+ once(event, listener) {
10
+ const wrapper = (payload) => {
11
+ this.off(event, wrapper);
12
+ return listener(payload);
13
+ };
14
+ this.on(event, wrapper);
15
+ }
16
+ off(event, listener) {
17
+ const listeners = this.listeners[event];
18
+ if (!listeners)
19
+ return;
20
+ const index = listeners.indexOf(listener);
21
+ if (index !== -1) {
22
+ listeners.splice(index, 1);
23
+ }
24
+ }
25
+ offAll(event) {
26
+ this.listeners[event] = [];
27
+ }
28
+ async emit(event, payload) {
29
+ const listeners = this.listeners[event];
30
+ if (!listeners?.length)
31
+ return;
32
+ const errors = [];
33
+ await Promise.all(listeners.map(async (l) => {
34
+ try {
35
+ await l(payload);
36
+ }
37
+ catch (e) {
38
+ errors.push(e);
39
+ }
40
+ }));
41
+ if (errors.length > 0) {
42
+ throw new AggregateError(errors, `Errors in event "${event}"`);
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=EventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/EventEmitter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACd,SAAS,GAIZ,EAAE,CAAC;IAEH,EAAE,CACR,KAAQ,EACR,QAAqE;QAErE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEM,IAAI,CACV,KAAQ,EACR,QAAqE;QAErE,MAAM,OAAO,GAAG,CAAC,OAAiC,EAAE,EAAE;YACrD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,GAAG,CACT,KAAQ,EACR,QAAqE;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAEM,MAAM,CACZ,KAAQ;QAER,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,IAAI,CACnB,KAAQ,EACR,OAAiC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,MAAM;YAAE,OAAO;QAE/B,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,MAAM,OAAO,CAAC,GAAG,CAChB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;YACvB,IAAI,CAAC;gBACJ,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;QACF,CAAC,CAAC,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,oBAAoB,KAAK,GAAG,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/JSONLTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE;;;;;;;;GAQG;AACH,qBAAa,kBAAkB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;IACnG,UAAmB,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAQ;cAEnD,kBAAkB,IAAI,MAAM;cAItB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAI9E,UAAmB,IAAI,EAAE,OAAO,CAAoB;IAEpD;;;;;;;;;;;OAWG;IACU,WAAW,CACvB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,KAAK,GACb,OAAO,CAAC,IAAI,CAAC;CAkBhB"}
1
+ {"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/JSONLTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE;;;;;;;;GAQG;AACH,qBAAa,kBAAkB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;IACnG,UAAmB,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAQ;cAEnD,kBAAkB,IAAI,MAAM;cAItB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAI9E,UAAmB,IAAI,EAAE,OAAO,CAAoB;IAEpD;;;;;;;;;;;OAWG;IACU,WAAW,CACvB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,KAAK,GACb,OAAO,CAAC,IAAI,CAAC;CAqBhB"}
@@ -1,5 +1,6 @@
1
1
  import { TimersManager } from "./TimersManager.js";
2
2
  import { JSONLTimersStore } from "../TimersStore/JSONLTimersStore.js";
3
+ import { throwMessage } from "../throwMessage.js";
3
4
  /**
4
5
  * JSONLTimersManager
5
6
  * @description
@@ -36,14 +37,16 @@ export class JSONLTimersManager extends TimersManager {
36
37
  try {
37
38
  const timers = await this.TimersStore.loadTimers();
38
39
  const index = timers?.findIndex(t => t.id === id);
39
- if (index === -1) {
40
- throw new Error(`Timer with id ${id} not found`);
40
+ if (index === -1 || timers[index] === undefined) {
41
+ throw new Error(throwMessage.NotFound(id));
41
42
  }
43
+ const old = { ...timers[index] };
42
44
  timers[index].extra = newExtra;
43
45
  await this.TimersStore.saveTimers(timers);
46
+ await this.emit("updated", { old, new: timers[index] });
44
47
  }
45
48
  catch (e) {
46
- throw new Error(`Error when changing extra`, { cause: e });
49
+ throw new Error(throwMessage.ChangeExtra, { cause: e });
47
50
  }
48
51
  });
49
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/JSONLTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAkD,SAAQ,aAA6B;IAChF,WAAW,GAAmC,IAAI,CAAC;IAEnD,kBAAkB;QACpC,OAAO,eAAe,CAAC;IACxB,CAAC;IAEkB,KAAK,CAAC,iBAAiB;QACzC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAEkB,IAAI,GAAY,OAAgB,CAAC;IAEpD;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,WAAW,CACvB,EAAU,EACV,QAAe;QAEf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAEnD,MAAM,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAChC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/JSONLTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAkD,SAAQ,aAA6B;IAChF,WAAW,GAAmC,IAAI,CAAC;IAEnD,kBAAkB;QACpC,OAAO,eAAe,CAAC;IACxB,CAAC;IAEkB,KAAK,CAAC,iBAAiB;QACzC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAEkB,IAAI,GAAY,OAAgB,CAAC;IAEpD;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,WAAW,CACvB,EAAU,EACV,QAAe;QAEf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAEnD,MAAM,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBACjD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAEjC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}