powr-sdk-api 4.1.10 → 4.3.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 (46) hide show
  1. package/dist/index.js +7 -5
  2. package/dist/{services → managers}/functions.js +1 -1
  3. package/dist/managers/index.js +26 -0
  4. package/dist/{services/scheduledTasks.js → managers/tasks.js} +123 -143
  5. package/dist/{services → managers}/tools.js +1 -1
  6. package/dist/middleware/projectId.js +1 -1
  7. package/dist/routes/functions.js +3 -1
  8. package/dist/routes/index.js +3 -27
  9. package/dist/routes/tasks.js +304 -0
  10. package/dist/routes/tools.js +21 -8
  11. package/package.json +69 -71
  12. package/dist/admin/activities.js +0 -81
  13. package/dist/admin/auth.js +0 -234
  14. package/dist/admin/blogs.js +0 -94
  15. package/dist/admin/comments.js +0 -83
  16. package/dist/admin/files.js +0 -56
  17. package/dist/admin/forms.js +0 -242
  18. package/dist/admin/index.js +0 -53
  19. package/dist/admin/invoice.js +0 -163
  20. package/dist/admin/likes.js +0 -126
  21. package/dist/admin/notifications.js +0 -93
  22. package/dist/admin/plexx.js +0 -53
  23. package/dist/admin/ratings.js +0 -189
  24. package/dist/admin/routes.js +0 -132
  25. package/dist/admin/slides.js +0 -101
  26. package/dist/admin/users.js +0 -175
  27. package/dist/admin/waitlists.js +0 -94
  28. package/dist/logger/gcs.js +0 -78
  29. package/dist/logger/s3.js +0 -78
  30. package/dist/middleware/auth.js +0 -76
  31. package/dist/middleware/logger.js +0 -45
  32. package/dist/middleware/response.js +0 -53
  33. package/dist/routes/admin/index.js +0 -520
  34. package/dist/routes/blogs.js +0 -94
  35. package/dist/routes/invoice.js +0 -167
  36. package/dist/routes/plexx.js +0 -269
  37. package/dist/routes/routes.js +0 -143
  38. package/dist/routes/scheduledTasks.js +0 -240
  39. package/dist/scripts/update-tools-schema.js +0 -157
  40. package/dist/services/dbService.js +0 -42
  41. package/dist/services/logger.js +0 -35
  42. package/dist/services/plexx.js +0 -229
  43. package/dist/utils/auth.js +0 -19
  44. package/dist/utils/logger.js +0 -57
  45. package/dist/utils/s3-transport.js +0 -61
  46. package/dist/utils/s3.js +0 -78
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- const jwt = require('jsonwebtoken');
4
-
5
- /**
6
- * Generates a JWT token for a user
7
- * @param {Object} user - The user object
8
- * @returns {string} - The generated JWT token
9
- */
10
- const generateToken = user => {
11
- return jwt.sign({
12
- userId: user.userId
13
- }, process.env.JWT_SECRET, {
14
- expiresIn: process.env.JWT_EXPIRES_IN || '24h'
15
- });
16
- };
17
- module.exports = {
18
- generateToken
19
- };
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Logger utility for Express applications
5
- */
6
-
7
- const winston = require('winston');
8
- const S3Transport = require('./s3-transport');
9
-
10
- /**
11
- * Creates a Winston logger instance with configured transports
12
- * @param {Object} options - Logger configuration options
13
- * @param {string} options.service - Service name for logging
14
- * @param {string} options.level - Log level (default: 'info')
15
- * @param {Object} options.s3 - S3 transport configuration
16
- * @param {string} options.s3.bucket - S3 bucket name
17
- * @param {string} options.s3.prefix - S3 key prefix
18
- * @param {number} options.s3.bufferSize - Buffer size for S3 uploads
19
- * @param {number} options.s3.flushInterval - Flush interval in milliseconds
20
- * @returns {winston.Logger} Configured Winston logger instance
21
- */
22
- const createLogger = (options = {}) => {
23
- const {
24
- service = 'api',
25
- level = process.env.LOG_LEVEL || 'info',
26
- s3 = null
27
- } = options;
28
-
29
- // Custom format for logs
30
- const logFormat = winston.format.combine(winston.format.timestamp(), winston.format.errors({
31
- stack: true
32
- }), winston.format.json());
33
-
34
- // Create base transports array with console transport
35
- const transports = [new winston.transports.Console()];
36
-
37
- // Add S3 transport if configured
38
- if (s3 && process.env.NODE_ENV === 'production') {
39
- transports.push(new S3Transport({
40
- bucket: s3.bucket,
41
- prefix: s3.prefix || 'logs',
42
- bufferSize: s3.bufferSize || 100,
43
- flushInterval: s3.flushInterval || 5000
44
- }));
45
- }
46
-
47
- // Create and return the logger
48
- return winston.createLogger({
49
- level,
50
- format: logFormat,
51
- defaultMeta: {
52
- service
53
- },
54
- transports
55
- });
56
- };
57
- module.exports = createLogger;
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * S3 Transport for Winston logger
5
- */
6
-
7
- const winston = require('winston');
8
- const {
9
- S3Client,
10
- PutObjectCommand
11
- } = require('@aws-sdk/client-s3');
12
-
13
- /**
14
- * Custom Winston transport for logging to S3
15
- */
16
- class S3Transport extends winston.Transport {
17
- constructor(opts) {
18
- super(opts);
19
- this.bucket = opts.bucket;
20
- this.prefix = opts.prefix || '';
21
- this.buffer = [];
22
- this.bufferSize = opts.bufferSize || 100;
23
- this.flushInterval = opts.flushInterval || 5000;
24
- this.setupFlushInterval();
25
- }
26
- setupFlushInterval() {
27
- setInterval(() => {
28
- this.flush();
29
- }, this.flushInterval);
30
- }
31
- async flush() {
32
- if (this.buffer.length === 0) return;
33
- const logs = this.buffer.splice(0, this.buffer.length);
34
- const date = new Date().toISOString().split('T')[0];
35
- const key = `${this.prefix}/${date}/${Date.now()}.json`;
36
- try {
37
- const command = new PutObjectCommand({
38
- Bucket: this.bucket,
39
- Key: key,
40
- Body: JSON.stringify(logs),
41
- ContentType: 'application/json'
42
- });
43
- await this.s3Client.send(command);
44
- } catch (error) {
45
- console.error('Error flushing logs to S3:', error);
46
- // Put logs back in buffer
47
- this.buffer.unshift(...logs);
48
- }
49
- }
50
- log(info, callback) {
51
- setImmediate(() => {
52
- this.emit('logged', info);
53
- });
54
- this.buffer.push(info);
55
- if (this.buffer.length >= this.bufferSize) {
56
- this.flush();
57
- }
58
- callback();
59
- }
60
- }
61
- module.exports = S3Transport;
package/dist/utils/s3.js DELETED
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- const winston = require('winston');
4
- const {
5
- S3Client,
6
- PutObjectCommand
7
- } = require('@aws-sdk/client-s3');
8
-
9
- // Create S3 client
10
- const s3Client = new S3Client({
11
- region: process.env.AWS_REGION,
12
- credentials: {
13
- accessKeyId: process.env.AWS_ACCESS_KEY_ID,
14
- secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
15
- }
16
- });
17
-
18
- /**
19
- * Custom Winston transport for logging to S3
20
- */
21
- class S3Transport extends winston.Transport {
22
- constructor(opts) {
23
- super(opts);
24
- this.bucket = opts.bucket;
25
- this.prefix = opts.prefix || '';
26
- this.buffer = [];
27
- this.bufferSize = opts.bufferSize || 100;
28
- this.flushInterval = opts.flushInterval || 5000;
29
- this.setupFlushInterval();
30
- }
31
- setupFlushInterval() {
32
- setInterval(() => {
33
- this.flush();
34
- }, this.flushInterval);
35
- }
36
- async flush() {
37
- if (this.buffer.length === 0) return;
38
- const logs = this.buffer.splice(0, this.buffer.length);
39
- const date = new Date().toISOString().split('T')[0];
40
- const key = `${this.prefix}/${date}/${Date.now()}.json`;
41
- try {
42
- const command = new PutObjectCommand({
43
- Bucket: this.bucket,
44
- Key: key,
45
- Body: JSON.stringify(logs),
46
- ContentType: 'application/json'
47
- });
48
- await s3Client.send(command);
49
- } catch (error) {
50
- console.error('Failed to write logs to S3:', {
51
- error: error.message,
52
- code: error.code,
53
- bucket: this.bucket,
54
- key: key,
55
- region: process.env.AWS_REGION,
56
- stack: error.stack
57
- });
58
- // Put the logs back in the buffer
59
- this.buffer.unshift(...logs);
60
- }
61
- }
62
- log(info, callback) {
63
- setImmediate(() => {
64
- this.emit('logged', info);
65
- });
66
- this.buffer.push({
67
- timestamp: new Date().toISOString(),
68
- ...info
69
- });
70
- if (this.buffer.length >= this.bufferSize) {
71
- this.flush();
72
- }
73
- callback();
74
- }
75
- }
76
- module.exports = {
77
- S3Transport
78
- };