@sera4/essentia 3.0.11 → 3.0.13-rc.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 (75) hide show
  1. package/dist/cache/index.d.ts +22 -0
  2. package/dist/cache/index.js +166 -0
  3. package/dist/cache/index.js.map +1 -0
  4. package/dist/constants/index.d.ts +6 -0
  5. package/dist/constants/index.js +9 -0
  6. package/dist/constants/index.js.map +1 -0
  7. package/dist/formatter/index.d.ts +37 -0
  8. package/dist/formatter/index.js +75 -0
  9. package/dist/formatter/index.js.map +1 -0
  10. package/dist/hal/index.d.ts +5 -0
  11. package/dist/hal/index.js +69 -0
  12. package/dist/hal/index.js.map +1 -0
  13. package/dist/health/health-logger.d.ts +9 -0
  14. package/dist/health/health-logger.js +34 -0
  15. package/dist/health/health-logger.js.map +1 -0
  16. package/dist/health/index.d.ts +19 -0
  17. package/dist/health/index.js +175 -0
  18. package/dist/health/index.js.map +1 -0
  19. package/dist/helpers/index.d.ts +1 -0
  20. package/dist/helpers/index.js +2 -0
  21. package/dist/helpers/index.js.map +1 -0
  22. package/dist/helpers/test-server-wrapper.d.ts +120 -0
  23. package/dist/helpers/test-server-wrapper.js +165 -0
  24. package/dist/helpers/test-server-wrapper.js.map +1 -0
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +17 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/last-commit.d.ts +1 -0
  29. package/dist/last-commit.js.map +1 -0
  30. package/dist/last_commit/index.d.ts +7 -0
  31. package/dist/last_commit/index.js +83 -0
  32. package/dist/last_commit/index.js.map +1 -0
  33. package/dist/paginator/s4-pagination.d.ts +9 -0
  34. package/dist/paginator/s4-pagination.js +49 -0
  35. package/dist/paginator/s4-pagination.js.map +1 -0
  36. package/dist/paginator/sql-pagination.d.ts +27 -0
  37. package/dist/paginator/sql-pagination.js +166 -0
  38. package/dist/paginator/sql-pagination.js.map +1 -0
  39. package/dist/paper-trail/helpers.d.ts +11 -0
  40. package/dist/paper-trail/helpers.js +74 -0
  41. package/dist/paper-trail/helpers.js.map +1 -0
  42. package/dist/paper-trail/index.d.ts +13 -0
  43. package/dist/paper-trail/index.js +662 -0
  44. package/dist/paper-trail/index.js.map +1 -0
  45. package/dist/prompts/index.d.ts +14 -0
  46. package/dist/prompts/index.js +63 -0
  47. package/dist/prompts/index.js.map +1 -0
  48. package/dist/queue/index.d.ts +166 -0
  49. package/dist/queue/index.js +371 -0
  50. package/dist/queue/index.js.map +1 -0
  51. package/dist/queue/publisher.d.ts +31 -0
  52. package/dist/queue/publisher.js +84 -0
  53. package/dist/queue/publisher.js.map +1 -0
  54. package/dist/queue/queue-logger.d.ts +9 -0
  55. package/dist/queue/queue-logger.js +35 -0
  56. package/dist/queue/queue-logger.js.map +1 -0
  57. package/dist/queue/subscriber.d.ts +39 -0
  58. package/dist/queue/subscriber.js +97 -0
  59. package/dist/queue/subscriber.js.map +1 -0
  60. package/dist/safe_proxy/index.d.ts +13 -0
  61. package/dist/safe_proxy/index.js +54 -0
  62. package/dist/safe_proxy/index.js.map +1 -0
  63. package/dist/serializer/index.d.ts +5 -0
  64. package/dist/serializer/index.js +83 -0
  65. package/dist/serializer/index.js.map +1 -0
  66. package/dist/ts/logger/s4-logger.js +2 -0
  67. package/dist/ts/logger/s4-logger.js.map +1 -1
  68. package/dist/ts/queue/index.js +54 -65
  69. package/dist/ts/queue/index.js.map +1 -1
  70. package/dist/ts/task-scheduler/index.d.ts +130 -0
  71. package/dist/ts/task-scheduler/index.js +259 -0
  72. package/dist/ts/task-scheduler/index.js.map +1 -0
  73. package/package.json +9 -3
  74. package/scripts/publish.sh +46 -0
  75. package/package.tar.gz +0 -0
@@ -1,4 +1,4 @@
1
- import amqp from "amqplib/callback_api.js";
1
+ import amqp from "amqplib";
2
2
  import logger from "./queue-logger.js";
3
3
  import urlParse from "url-parse";
4
4
  import { Publisher } from "./publisher.js";
@@ -31,9 +31,14 @@ class S4Queue {
31
31
  this.connectionTestChannel = null;
32
32
  throw new Error("queue service not connected");
33
33
  }
34
- this.connectionTestChannel = this.connectionTestChannel || await this.connection.createChannel();
35
34
  if (!this.connectionTestChannel) {
36
- throw new Error("queue service failed to obtain a channel");
35
+ const ch = await this.connection.createChannel();
36
+ if (!ch) {
37
+ throw new Error("queue service failed to obtain a channel");
38
+ }
39
+ ch.on("error", () => { this.connectionTestChannel = null; });
40
+ ch.on("close", () => { this.connectionTestChannel = null; });
41
+ this.connectionTestChannel = ch;
37
42
  }
38
43
  await this.connectionTestChannel.assertExchange("--health-check--", "topic", { durable: false });
39
44
  }
@@ -49,55 +54,48 @@ class S4Queue {
49
54
  }
50
55
  const retry = parseInt(options.retryInterval?.toString() || "10");
51
56
  this.retry = retry || 10;
52
- logger.debug("Attempting connection...");
53
- // The docs say there is amqp.connect returning
54
- // a promise, but this version doesn't seem to like
55
- // when a callback isn't provided, therefore run
56
- // in a new Promise
57
- return new Promise((resolve, reject) => {
58
- // We may run into issues with SNI TLS if
59
- // we host with 3rd parties using our own certs.
60
- // To avoid any issues, let's parse the url
61
- // and provide the server name in the socket options
62
- const urlParts = urlParse(options.connectionUrl);
63
- const socketOptions = { servername: urlParts.hostname };
64
- amqp.connect(options.connectionUrl, socketOptions, (err, conn) => {
65
- if (err) {
57
+ // We may run into issues with SNI TLS if
58
+ // we host with 3rd parties using our own certs.
59
+ // To avoid any issues, let's parse the url
60
+ // and provide the server name in the socket options
61
+ const urlParts = urlParse(options.connectionUrl);
62
+ const socketOptions = { servername: urlParts.hostname };
63
+ return new Promise((resolve) => {
64
+ const attempt = async () => {
65
+ logger.debug("Attempting connection...");
66
+ try {
67
+ const conn = await amqp.connect(options.connectionUrl, socketOptions);
68
+ this.connection = conn;
69
+ this.updatePubsAndSubsConnectionRef(conn);
70
+ this.connection.on("error", (err) => {
71
+ logger.error("connection error", err);
72
+ // Do not attempt to reconnect as the
73
+ // 'close' event will also be emitted
74
+ // if this error closes the connection
75
+ });
76
+ this.connection.on("close", (err) => {
77
+ logger.error("connection closed");
78
+ this.connection = null;
79
+ this.connectionTestChannel = null;
80
+ if (err) {
81
+ logger.error("connection closed due to error:", err);
82
+ logger.error("Reconnecting in", this.retry, "seconds");
83
+ setTimeout(attempt, this.retry * 1000);
84
+ }
85
+ else {
86
+ logger.debug("Will not re-attempt");
87
+ }
88
+ });
89
+ logger.debug("Connected");
90
+ resolve();
91
+ }
92
+ catch (err) {
66
93
  logger.error("Error while connecting", err);
67
94
  logger.error("Attempting again in", this.retry, "seconds");
68
- return setTimeout(() => this.openConnection(options), this.retry * 1000);
69
- }
70
- this.connection = conn;
71
- if (!this.connection) {
72
- return reject(new Error("Failed to obtain connection"));
95
+ setTimeout(attempt, this.retry * 1000);
73
96
  }
74
- else {
75
- this.updatePubsAndSubsConnectionRef(conn);
76
- }
77
- this.connection.on("error", (err) => {
78
- logger.error("connection error", err);
79
- // Do not attempt to reconnect as the
80
- // 'close' event will also be emitted
81
- // if this error closes the connection
82
- });
83
- this.connection.on("close", (err) => {
84
- logger.error("connection closed");
85
- this.connection = null;
86
- if (err) {
87
- logger.error("connection closed due to error:", err);
88
- logger.error("Reconnecting in", this.retry, "seconds");
89
- setTimeout(() => this.openConnection(options), this.retry * 1000);
90
- }
91
- else {
92
- // If there was no error, it is us who closed
93
- // this connection, thus a reconnection will not
94
- // be attempted.
95
- logger.debug("Will not re-attempt");
96
- }
97
- });
98
- logger.debug("Connected");
99
- resolve();
100
- });
97
+ };
98
+ attempt();
101
99
  });
102
100
  }
103
101
  /**
@@ -106,22 +104,13 @@ class S4Queue {
106
104
  * and subscribers
107
105
  */
108
106
  async closeConnection() {
109
- return new Promise((resolve, reject) => {
110
- if (!this.connection) {
111
- return resolve();
112
- }
113
- this.connection.close((err) => {
114
- if (err) {
115
- reject(err);
116
- }
117
- else {
118
- this.subs = {};
119
- this.pubs = {};
120
- this.connection = null;
121
- resolve();
122
- }
123
- });
124
- });
107
+ if (!this.connection)
108
+ return;
109
+ await this.connection.close();
110
+ this.subs = {};
111
+ this.pubs = {};
112
+ this.connectionTestChannel = null;
113
+ this.connection = null;
125
114
  }
126
115
  /**
127
116
  * Returns whether we have an active connection
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/queue/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/queue/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Task function type definition
3
+ */
4
+ export type TaskFunction = () => Promise<void> | void;
5
+ /**
6
+ * Task options interface
7
+ */
8
+ export interface TaskOptions {
9
+ scheduled?: boolean;
10
+ timezone?: string;
11
+ }
12
+ /**
13
+ * Scheduler initialization options
14
+ */
15
+ export interface SchedulerOptions {
16
+ timezone?: string;
17
+ scheduled?: boolean;
18
+ }
19
+ /**
20
+ * Task information interface
21
+ */
22
+ export interface TaskInfo {
23
+ name: string;
24
+ cronExpression: string;
25
+ isRunning: boolean;
26
+ createdAt: Date;
27
+ options: TaskOptions;
28
+ }
29
+ /**
30
+ * TaskScheduler - Singleton class for managing cron-based scheduled tasks
31
+ * Provides helper functions around node-cron for easy task scheduling
32
+ */
33
+ export declare class TaskScheduler {
34
+ private static instance;
35
+ private readonly tasks;
36
+ private isInitialized;
37
+ private options;
38
+ private constructor();
39
+ /**
40
+ * Get the singleton instance of TaskScheduler
41
+ * @returns {TaskScheduler} The singleton instance
42
+ */
43
+ static getInstance(): TaskScheduler;
44
+ /**
45
+ * Initialize the task scheduler
46
+ * @param {SchedulerOptions} options - Configuration options
47
+ * @param {string} options.timezone - Timezone for cron jobs (default: 'UTC')
48
+ * @param {boolean} options.scheduled - Whether to start tasks immediately (default: true)
49
+ */
50
+ init(options?: SchedulerOptions): void;
51
+ /**
52
+ * Add a scheduled task
53
+ * @param {string} name - Unique name for the task
54
+ * @param {string} cronExpression - Cron expression (e.g., '0 0 * * *' for daily at midnight)
55
+ * @param {TaskFunction} taskFunction - Function to execute
56
+ * @param {TaskOptions} options - Additional options
57
+ * @param {boolean} options.scheduled - Whether to start the task immediately (default: true)
58
+ * @param {string} options.timezone - Timezone override for this task
59
+ * @returns {boolean} - Success status
60
+ */
61
+ addTask(name: string, cronExpression: string, taskFunction: TaskFunction, options?: TaskOptions): boolean;
62
+ /**
63
+ * Update an existing scheduled task
64
+ * @param {string} name - Name of the task to update
65
+ * @param {string} cronExpression - New cron expression
66
+ * @param {TaskFunction} taskFunction - New function to execute
67
+ * @param {TaskOptions} options - Additional options
68
+ * @returns {boolean} - Success status
69
+ */
70
+ updateTask(name: string, cronExpression: string, taskFunction: TaskFunction, options?: TaskOptions): boolean;
71
+ /**
72
+ * Remove a scheduled task
73
+ * @param {string} name - Name of the task to remove
74
+ * @returns {boolean} - Success status
75
+ */
76
+ removeTask(name: string): boolean;
77
+ /**
78
+ * Start a specific task
79
+ * @param {string} name - Name of the task to start
80
+ * @returns {boolean} - Success status
81
+ */
82
+ startTask(name: string): boolean;
83
+ /**
84
+ * Stop a specific task
85
+ * @param {string} name - Name of the task to stop
86
+ * @returns {boolean} - Success status
87
+ */
88
+ stopTask(name: string): boolean;
89
+ /**
90
+ * Start all tasks
91
+ */
92
+ startAll(): void;
93
+ /**
94
+ * Stop all tasks
95
+ */
96
+ stopAll(): void;
97
+ /**
98
+ * Get information about all scheduled tasks
99
+ * @returns {TaskInfo[]} - Array of task information objects
100
+ */
101
+ getTasks(): TaskInfo[];
102
+ /**
103
+ * Get information about a specific task
104
+ * @param {string} name - Name of the task
105
+ * @returns {TaskInfo | null} - Task information or null if not found
106
+ */
107
+ getTask(name: string): TaskInfo | null;
108
+ /**
109
+ * Validate a cron expression
110
+ * @param {string} cronExpression - Cron expression to validate
111
+ * @returns {boolean} - Whether the expression is valid
112
+ */
113
+ validateCronExpression(cronExpression: string): boolean;
114
+ /**
115
+ * Check if the scheduler is initialized
116
+ * @returns {boolean} - Whether the scheduler is initialized
117
+ */
118
+ isSchedulerInitialized(): boolean;
119
+ /**
120
+ * Get the number of active tasks
121
+ * @returns {number} - Number of active tasks
122
+ */
123
+ getTaskCount(): number;
124
+ /**
125
+ * Shutdown the scheduler and clean up all tasks
126
+ */
127
+ shutdown(): void;
128
+ }
129
+ declare const _default: TaskScheduler;
130
+ export default _default;
@@ -0,0 +1,259 @@
1
+ import cron from 'node-cron';
2
+ import { S4Logger } from '../logger/index.js';
3
+ const logger = new S4Logger();
4
+ /**
5
+ * TaskScheduler - Singleton class for managing cron-based scheduled tasks
6
+ * Provides helper functions around node-cron for easy task scheduling
7
+ */
8
+ export class TaskScheduler {
9
+ constructor() {
10
+ this.tasks = new Map();
11
+ this.isInitialized = false;
12
+ this.options = {};
13
+ }
14
+ /**
15
+ * Get the singleton instance of TaskScheduler
16
+ * @returns {TaskScheduler} The singleton instance
17
+ */
18
+ static getInstance() {
19
+ if (!TaskScheduler.instance) {
20
+ TaskScheduler.instance = new TaskScheduler();
21
+ }
22
+ return TaskScheduler.instance;
23
+ }
24
+ /**
25
+ * Initialize the task scheduler
26
+ * @param {SchedulerOptions} options - Configuration options
27
+ * @param {string} options.timezone - Timezone for cron jobs (default: 'UTC')
28
+ * @param {boolean} options.scheduled - Whether to start tasks immediately (default: true)
29
+ */
30
+ init(options = {}) {
31
+ if (this.isInitialized) {
32
+ logger.warn('TaskScheduler already initialized');
33
+ return;
34
+ }
35
+ this.options = {
36
+ timezone: options.timezone || 'UTC',
37
+ scheduled: options.scheduled !== false
38
+ };
39
+ this.isInitialized = true;
40
+ logger.info('TaskScheduler initialized', {
41
+ timezone: this.options.timezone,
42
+ scheduled: this.options.scheduled
43
+ });
44
+ }
45
+ /**
46
+ * Add a scheduled task
47
+ * @param {string} name - Unique name for the task
48
+ * @param {string} cronExpression - Cron expression (e.g., '0 0 * * *' for daily at midnight)
49
+ * @param {TaskFunction} taskFunction - Function to execute
50
+ * @param {TaskOptions} options - Additional options
51
+ * @param {boolean} options.scheduled - Whether to start the task immediately (default: true)
52
+ * @param {string} options.timezone - Timezone override for this task
53
+ * @returns {boolean} - Success status
54
+ */
55
+ addTask(name, cronExpression, taskFunction, options = {}) {
56
+ if (!this.isInitialized) {
57
+ logger.error('TaskScheduler not initialized. Call init() first.');
58
+ return false;
59
+ }
60
+ if (this.tasks.has(name)) {
61
+ logger.warn(`Task '${name}' already exists. Use updateTask() to modify it.`);
62
+ return false;
63
+ }
64
+ if (!cron.validate(cronExpression)) {
65
+ logger.error(`Invalid cron expression for task '${name}': ${cronExpression}`);
66
+ return false;
67
+ }
68
+ const taskOptions = {
69
+ scheduled: options.scheduled !== false && this.options.scheduled,
70
+ timezone: options.timezone || this.options.timezone
71
+ };
72
+ try {
73
+ const task = cron.schedule(cronExpression, async () => {
74
+ const startTime = Date.now();
75
+ logger.info(`Starting scheduled task: ${name}`);
76
+ try {
77
+ await taskFunction();
78
+ const duration = Date.now() - startTime;
79
+ logger.info(`Completed scheduled task: ${name} (${duration}ms)`);
80
+ }
81
+ catch (error) {
82
+ const duration = Date.now() - startTime;
83
+ logger.error(`Failed scheduled task: ${name} (${duration}ms)`, error);
84
+ }
85
+ }, taskOptions);
86
+ this.tasks.set(name, {
87
+ task,
88
+ cronExpression,
89
+ taskFunction,
90
+ options: taskOptions,
91
+ createdAt: new Date()
92
+ });
93
+ logger.info(`Added scheduled task: ${name}`, {
94
+ cronExpression,
95
+ scheduled: taskOptions.scheduled,
96
+ timezone: taskOptions.timezone
97
+ });
98
+ return true;
99
+ }
100
+ catch (error) {
101
+ logger.error(`Failed to add scheduled task: ${name}`, error);
102
+ return false;
103
+ }
104
+ }
105
+ /**
106
+ * Update an existing scheduled task
107
+ * @param {string} name - Name of the task to update
108
+ * @param {string} cronExpression - New cron expression
109
+ * @param {TaskFunction} taskFunction - New function to execute
110
+ * @param {TaskOptions} options - Additional options
111
+ * @returns {boolean} - Success status
112
+ */
113
+ updateTask(name, cronExpression, taskFunction, options = {}) {
114
+ if (!this.tasks.has(name)) {
115
+ logger.error(`Task '${name}' not found. Use addTask() to create it.`);
116
+ return false;
117
+ }
118
+ // Remove existing task
119
+ this.removeTask(name);
120
+ // Add updated task
121
+ return this.addTask(name, cronExpression, taskFunction, options);
122
+ }
123
+ /**
124
+ * Remove a scheduled task
125
+ * @param {string} name - Name of the task to remove
126
+ * @returns {boolean} - Success status
127
+ */
128
+ removeTask(name) {
129
+ if (!this.tasks.has(name)) {
130
+ logger.warn(`Task '${name}' not found`);
131
+ return false;
132
+ }
133
+ const taskInfo = this.tasks.get(name);
134
+ taskInfo.task.destroy();
135
+ this.tasks.delete(name);
136
+ logger.info(`Removed scheduled task: ${name}`);
137
+ return true;
138
+ }
139
+ /**
140
+ * Start a specific task
141
+ * @param {string} name - Name of the task to start
142
+ * @returns {boolean} - Success status
143
+ */
144
+ startTask(name) {
145
+ if (!this.tasks.has(name)) {
146
+ logger.error(`Task '${name}' not found`);
147
+ return false;
148
+ }
149
+ const taskInfo = this.tasks.get(name);
150
+ taskInfo.task.start();
151
+ logger.info(`Started scheduled task: ${name}`);
152
+ return true;
153
+ }
154
+ /**
155
+ * Stop a specific task
156
+ * @param {string} name - Name of the task to stop
157
+ * @returns {boolean} - Success status
158
+ */
159
+ stopTask(name) {
160
+ if (!this.tasks.has(name)) {
161
+ logger.error(`Task '${name}' not found`);
162
+ return false;
163
+ }
164
+ const taskInfo = this.tasks.get(name);
165
+ taskInfo.task.stop();
166
+ logger.info(`Stopped scheduled task: ${name}`);
167
+ return true;
168
+ }
169
+ /**
170
+ * Start all tasks
171
+ */
172
+ startAll() {
173
+ this.tasks.forEach((taskInfo, name) => {
174
+ taskInfo.task.start();
175
+ });
176
+ logger.info(`Started all scheduled tasks (${this.tasks.size} tasks)`);
177
+ }
178
+ /**
179
+ * Stop all tasks
180
+ */
181
+ stopAll() {
182
+ this.tasks.forEach((taskInfo, name) => {
183
+ taskInfo.task.stop();
184
+ });
185
+ logger.info(`Stopped all scheduled tasks (${this.tasks.size} tasks)`);
186
+ }
187
+ /**
188
+ * Get information about all scheduled tasks
189
+ * @returns {TaskInfo[]} - Array of task information objects
190
+ */
191
+ getTasks() {
192
+ const tasks = [];
193
+ this.tasks.forEach((taskInfo, name) => {
194
+ tasks.push({
195
+ name,
196
+ cronExpression: taskInfo.cronExpression,
197
+ isRunning: taskInfo.task.running || false,
198
+ createdAt: taskInfo.createdAt,
199
+ options: taskInfo.options
200
+ });
201
+ });
202
+ return tasks;
203
+ }
204
+ /**
205
+ * Get information about a specific task
206
+ * @param {string} name - Name of the task
207
+ * @returns {TaskInfo | null} - Task information or null if not found
208
+ */
209
+ getTask(name) {
210
+ if (!this.tasks.has(name)) {
211
+ return null;
212
+ }
213
+ const taskInfo = this.tasks.get(name);
214
+ return {
215
+ name,
216
+ cronExpression: taskInfo.cronExpression,
217
+ isRunning: taskInfo.task.running || false,
218
+ createdAt: taskInfo.createdAt,
219
+ options: taskInfo.options
220
+ };
221
+ }
222
+ /**
223
+ * Validate a cron expression
224
+ * @param {string} cronExpression - Cron expression to validate
225
+ * @returns {boolean} - Whether the expression is valid
226
+ */
227
+ validateCronExpression(cronExpression) {
228
+ return cron.validate(cronExpression);
229
+ }
230
+ /**
231
+ * Check if the scheduler is initialized
232
+ * @returns {boolean} - Whether the scheduler is initialized
233
+ */
234
+ isSchedulerInitialized() {
235
+ return this.isInitialized;
236
+ }
237
+ /**
238
+ * Get the number of active tasks
239
+ * @returns {number} - Number of active tasks
240
+ */
241
+ getTaskCount() {
242
+ return this.tasks.size;
243
+ }
244
+ /**
245
+ * Shutdown the scheduler and clean up all tasks
246
+ */
247
+ shutdown() {
248
+ logger.info('Shutting down TaskScheduler...');
249
+ this.tasks.forEach((taskInfo, name) => {
250
+ taskInfo.task.destroy();
251
+ });
252
+ this.tasks.clear();
253
+ this.isInitialized = false;
254
+ logger.info('TaskScheduler shutdown complete');
255
+ }
256
+ }
257
+ // Export singleton instance
258
+ export default TaskScheduler.getInstance();
259
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/task-scheduler/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sera4/essentia",
3
- "version": "3.0.11",
3
+ "version": "3.0.13-rc.1",
4
4
  "description": "A library of utilities for Teleporte Web Services",
5
5
  "main": "dist/ts/index.js",
6
6
  "type": "module",
@@ -34,7 +34,8 @@
34
34
  "last-commit": "node last-commit.js",
35
35
  "build": "tsc",
36
36
  "build:watch": "tsc -w",
37
- "clean": "rm -rf dist"
37
+ "clean": "rm -rf dist",
38
+ "publish:package": "scripts/publish.sh"
38
39
  },
39
40
  "author": "Dev DM <dev@sera4.com>",
40
41
  "repository": {
@@ -43,6 +44,7 @@
43
44
  },
44
45
  "license": "UNLICENSED",
45
46
  "devDependencies": {
47
+ "@types/amqplib": "^0.10.8",
46
48
  "@types/argparse": "^2.0.17",
47
49
  "@types/chai": "^4.3.11",
48
50
  "@types/express": "^4.17.21",
@@ -50,9 +52,12 @@
50
52
  "@types/mocha": "^10.0.10",
51
53
  "@types/morgan": "^1.9.9",
52
54
  "@types/node": "^20.17.32",
55
+ "@types/node-cron": "^3.0.11",
53
56
  "@types/prompt": "^1.1.9",
54
57
  "@types/sinon": "^10.0.20",
55
58
  "@types/sinon-chai": "^4.0.0",
59
+ "@types/url-parse": "^1.4.11",
60
+ "@types/uuid": "^10.0.0",
56
61
  "c8": "^8.0.1",
57
62
  "chai": "^5.2.0",
58
63
  "express": "^4.17.1",
@@ -67,7 +72,7 @@
67
72
  "typescript": "^5.3.3"
68
73
  },
69
74
  "dependencies": {
70
- "amqplib": "^0.10.7",
75
+ "amqplib": "^0.10.9",
71
76
  "argparse": "^2.0.1",
72
77
  "async": "^3.2.2",
73
78
  "axios": "^1.7.7",
@@ -77,6 +82,7 @@
77
82
  "git-rev": "^0.2.1",
78
83
  "lodash": "^4.17.21",
79
84
  "morgan": "^1.10.0",
85
+ "node-cron": "^4.2.1",
80
86
  "prompt": "^1.3.0",
81
87
  "recursive-iterator": "^3.3.0",
82
88
  "url-parse": "^1.5.10",