@machinemetrics/mm-erp-sdk 0.3.0-beta.0 → 0.3.0-beta.2

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 (141) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
  6. package/dist/services/data-sync-service/configuration-manager.js +30 -30
  7. package/dist/services/data-sync-service/configuration-manager.js.map +1 -1
  8. package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
  9. package/dist/services/data-sync-service/data-sync-service.js +9 -0
  10. package/dist/services/data-sync-service/data-sync-service.js.map +1 -1
  11. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.d.ts.map +1 -1
  12. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +1 -2
  13. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  14. package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
  15. package/dist/services/data-sync-service/jobs/from-erp.js +7 -13
  16. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  17. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.d.ts.map +1 -1
  18. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +1 -2
  19. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  20. package/dist/services/data-sync-service/jobs/run-migrations.d.ts.map +1 -1
  21. package/dist/services/data-sync-service/jobs/run-migrations.js +1 -2
  22. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  23. package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
  24. package/dist/services/data-sync-service/jobs/to-erp.js +12 -3
  25. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  26. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +30 -0
  27. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -0
  28. package/dist/services/data-sync-service/nats-labor-ticket-listener.js +290 -0
  29. package/dist/services/data-sync-service/nats-labor-ticket-listener.js.map +1 -0
  30. package/dist/services/mm-api-service/company-info.d.ts +13 -0
  31. package/dist/services/mm-api-service/company-info.d.ts.map +1 -0
  32. package/dist/services/mm-api-service/company-info.js +60 -0
  33. package/dist/services/mm-api-service/company-info.js.map +1 -0
  34. package/dist/services/mm-api-service/index.d.ts +7 -0
  35. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  36. package/dist/services/mm-api-service/index.js +5 -0
  37. package/dist/services/mm-api-service/index.js.map +1 -1
  38. package/dist/services/mm-api-service/mm-api-service.d.ts +6 -0
  39. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  40. package/dist/services/mm-api-service/mm-api-service.js +15 -3
  41. package/dist/services/mm-api-service/mm-api-service.js.map +1 -1
  42. package/dist/services/mm-api-service/types/receive-types.d.ts +3 -0
  43. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  44. package/dist/services/mm-api-service/types/receive-types.js +1 -0
  45. package/dist/services/mm-api-service/types/receive-types.js.map +1 -1
  46. package/dist/services/mm-api-service/types/send-types.d.ts +17 -8
  47. package/dist/services/mm-api-service/types/send-types.d.ts.map +1 -1
  48. package/dist/services/mm-api-service/types/send-types.js +41 -17
  49. package/dist/services/mm-api-service/types/send-types.js.map +1 -1
  50. package/dist/services/nats-service/nats-service.d.ts +114 -0
  51. package/dist/services/nats-service/nats-service.d.ts.map +1 -0
  52. package/dist/services/nats-service/nats-service.js +244 -0
  53. package/dist/services/nats-service/nats-service.js.map +1 -0
  54. package/dist/services/nats-service/test-nats-subscriber.d.ts +6 -0
  55. package/dist/services/nats-service/test-nats-subscriber.d.ts.map +1 -0
  56. package/dist/services/nats-service/test-nats-subscriber.js +79 -0
  57. package/dist/services/nats-service/test-nats-subscriber.js.map +1 -0
  58. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  59. package/dist/services/reporting-service/logger.js +31 -6
  60. package/dist/services/reporting-service/logger.js.map +1 -1
  61. package/dist/types/erp-connector.d.ts +1 -8
  62. package/dist/types/erp-connector.d.ts.map +1 -1
  63. package/dist/types/index.d.ts +0 -1
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/utils/error-formatter.d.ts +19 -0
  66. package/dist/utils/error-formatter.d.ts.map +1 -0
  67. package/dist/utils/error-formatter.js +184 -0
  68. package/dist/utils/error-formatter.js.map +1 -0
  69. package/dist/utils/http-client.js +2 -4
  70. package/dist/utils/http-client.js.map +1 -1
  71. package/dist/utils/index.d.ts +5 -1
  72. package/dist/utils/index.d.ts.map +1 -1
  73. package/dist/utils/index.js +4 -1
  74. package/dist/utils/index.js.map +1 -1
  75. package/dist/utils/local-data-store/jobs-shared-data.d.ts +0 -2
  76. package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
  77. package/dist/utils/local-data-store/jobs-shared-data.js +0 -2
  78. package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -1
  79. package/dist/utils/mm-labor-ticket-helpers.d.ts +4 -3
  80. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  81. package/dist/utils/mm-labor-ticket-helpers.js +7 -12
  82. package/dist/utils/mm-labor-ticket-helpers.js.map +1 -1
  83. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +0 -15
  84. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  85. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +46 -180
  86. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -1
  87. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +1 -7
  88. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  89. package/dist/utils/standard-process-drivers/mm-entity-processor.js +1 -7
  90. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -1
  91. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +2 -8
  92. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  93. package/dist/utils/standard-process-drivers/standard-process-drivers.js +18 -27
  94. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -1
  95. package/dist/utils/time-utils.d.ts.map +1 -1
  96. package/dist/utils/time-utils.js +0 -7
  97. package/dist/utils/time-utils.js.map +1 -1
  98. package/package.json +5 -4
  99. package/src/index.ts +3 -0
  100. package/src/services/data-sync-service/configuration-manager.ts +37 -50
  101. package/src/services/data-sync-service/data-sync-service.ts +10 -0
  102. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +1 -2
  103. package/src/services/data-sync-service/jobs/from-erp.ts +7 -13
  104. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +1 -2
  105. package/src/services/data-sync-service/jobs/run-migrations.ts +1 -2
  106. package/src/services/data-sync-service/jobs/to-erp.ts +12 -3
  107. package/src/services/data-sync-service/nats-labor-ticket-listener.ts +342 -0
  108. package/src/services/mm-api-service/company-info.ts +87 -0
  109. package/src/services/mm-api-service/index.ts +8 -0
  110. package/src/services/mm-api-service/mm-api-service.ts +20 -3
  111. package/src/services/mm-api-service/types/receive-types.ts +1 -0
  112. package/src/services/mm-api-service/types/send-types.ts +40 -16
  113. package/src/services/nats-service/nats-service.ts +351 -0
  114. package/src/services/nats-service/test-nats-subscriber.ts +96 -0
  115. package/src/services/reporting-service/logger.ts +39 -7
  116. package/src/types/erp-connector.ts +1 -8
  117. package/src/types/index.ts +0 -8
  118. package/src/utils/error-formatter.ts +205 -0
  119. package/src/utils/http-client.ts +3 -4
  120. package/src/utils/index.ts +6 -5
  121. package/src/utils/local-data-store/jobs-shared-data.ts +0 -2
  122. package/src/utils/mm-labor-ticket-helpers.ts +8 -11
  123. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +64 -220
  124. package/src/utils/standard-process-drivers/mm-entity-processor.ts +1 -7
  125. package/src/utils/standard-process-drivers/standard-process-drivers.ts +19 -33
  126. package/src/utils/time-utils.ts +0 -11
  127. package/dist/types/flattened-work-order.d.ts +0 -99
  128. package/dist/types/flattened-work-order.d.ts.map +0 -1
  129. package/dist/types/flattened-work-order.js +0 -2
  130. package/dist/types/flattened-work-order.js.map +0 -1
  131. package/dist/utils/env.d.ts +0 -8
  132. package/dist/utils/env.d.ts.map +0 -1
  133. package/dist/utils/env.js +0 -58
  134. package/dist/utils/env.js.map +0 -1
  135. package/dist/utils/erp-timezone-utils.d.ts +0 -20
  136. package/dist/utils/erp-timezone-utils.d.ts.map +0 -1
  137. package/dist/utils/erp-timezone-utils.js +0 -75
  138. package/dist/utils/erp-timezone-utils.js.map +0 -1
  139. package/src/types/flattened-work-order.ts +0 -108
  140. package/src/utils/env.ts +0 -75
  141. package/src/utils/erp-timezone-utils.ts +0 -99
@@ -0,0 +1,244 @@
1
+ /**
2
+ * NATS Service - Central connection and subscription management
3
+ * Allows connectors to register handlers for different NATS subjects
4
+ */
5
+ import { connect, StringCodec } from "nats";
6
+ import { logger } from "../reporting-service/index.js";
7
+ const sc = StringCodec();
8
+ export class NatsService {
9
+ connection = null;
10
+ subscriptions = new Map();
11
+ config;
12
+ handlers = [];
13
+ statusPublishTimer = null;
14
+ constructor(config) {
15
+ this.config = config;
16
+ }
17
+ /**
18
+ * Register a handler for a specific subject pattern
19
+ */
20
+ registerHandler(registration) {
21
+ logger.info("Registering NATS handler", {
22
+ subject: registration.subject,
23
+ description: registration.description,
24
+ });
25
+ this.handlers.push(registration);
26
+ }
27
+ /**
28
+ * Connect to NATS and start all registered handlers
29
+ */
30
+ async connect() {
31
+ if (!this.config.enabled) {
32
+ logger.info("NATS is disabled, skipping connection");
33
+ return;
34
+ }
35
+ try {
36
+ logger.info("Connecting to NATS...", {
37
+ servers: this.config.servers,
38
+ name: this.config.name,
39
+ });
40
+ this.connection = await connect({
41
+ servers: this.config.servers,
42
+ name: this.config.name,
43
+ reconnect: this.config.reconnect ?? true,
44
+ maxReconnectAttempts: this.config.maxReconnectAttempts ?? -1,
45
+ reconnectTimeWait: this.config.reconnectTimeWait ?? 2000,
46
+ });
47
+ logger.info("Connected to NATS", {
48
+ server: this.connection.getServer(),
49
+ clientId: this.connection.info?.client_id,
50
+ });
51
+ // Start all registered handlers
52
+ for (const registration of this.handlers) {
53
+ await this.startHandler(registration);
54
+ }
55
+ // Start automatic status publishing
56
+ this.startStatusPublishing();
57
+ // Monitor connection status
58
+ this.monitorConnection();
59
+ // Graceful shutdown
60
+ this.setupShutdown();
61
+ }
62
+ catch (error) {
63
+ logger.error("Failed to connect to NATS", { error });
64
+ throw error;
65
+ }
66
+ }
67
+ /**
68
+ * Start a single handler (subscribe to its subject)
69
+ */
70
+ async startHandler(registration) {
71
+ if (!this.connection) {
72
+ throw new Error("NATS connection not established");
73
+ }
74
+ const sub = this.connection.subscribe(registration.subject);
75
+ this.subscriptions.set(registration.subject, sub);
76
+ logger.info("Started NATS handler", {
77
+ subject: registration.subject,
78
+ description: registration.description,
79
+ });
80
+ // Process messages
81
+ (async () => {
82
+ for await (const msg of sub) {
83
+ try {
84
+ const data = sc.decode(msg.data);
85
+ logger.info("Received NATS message", {
86
+ subject: msg.subject,
87
+ hasReply: !!msg.reply,
88
+ });
89
+ // Parse JSON if possible
90
+ let parsedData;
91
+ try {
92
+ parsedData = JSON.parse(data);
93
+ }
94
+ catch {
95
+ parsedData = data;
96
+ }
97
+ // Call handler
98
+ const response = await registration.handler.handle(parsedData, msg.subject);
99
+ // If there's a reply subject and handler returned something, reply
100
+ if (msg.reply && response !== undefined) {
101
+ const responseStr = JSON.stringify(response);
102
+ msg.respond(sc.encode(responseStr));
103
+ logger.info("Sent reply", { replySubject: msg.reply });
104
+ }
105
+ }
106
+ catch (error) {
107
+ logger.error("Error handling NATS message", {
108
+ subject: msg.subject,
109
+ error,
110
+ });
111
+ // Send error response if reply expected
112
+ if (msg.reply) {
113
+ const errorResponse = {
114
+ status: "error",
115
+ error: {
116
+ message: error instanceof Error ? error.message : "Unknown error",
117
+ code: "HANDLER_ERROR",
118
+ },
119
+ };
120
+ msg.respond(sc.encode(JSON.stringify(errorResponse)));
121
+ }
122
+ }
123
+ }
124
+ })();
125
+ }
126
+ /**
127
+ * Publish a message to a subject (for pub/sub)
128
+ */
129
+ async publish(subject, data) {
130
+ if (!this.connection) {
131
+ throw new Error("NATS connection not established");
132
+ }
133
+ const message = typeof data === "string" ? data : JSON.stringify(data);
134
+ this.connection.publish(subject, sc.encode(message));
135
+ logger.info("Published NATS message", { subject });
136
+ }
137
+ /**
138
+ * Send a request and wait for reply (for request-reply)
139
+ */
140
+ async request(subject, data, timeoutMs = 30000) {
141
+ if (!this.connection) {
142
+ throw new Error("NATS connection not established");
143
+ }
144
+ const message = typeof data === "string" ? data : JSON.stringify(data);
145
+ const response = await this.connection.request(subject, sc.encode(message), { timeout: timeoutMs });
146
+ const responseData = sc.decode(response.data);
147
+ try {
148
+ return JSON.parse(responseData);
149
+ }
150
+ catch {
151
+ return responseData;
152
+ }
153
+ }
154
+ /**
155
+ * Check if connected to NATS
156
+ */
157
+ isConnected() {
158
+ return this.connection !== null && !this.connection.isClosed();
159
+ }
160
+ /**
161
+ * Start automatic status publishing (every 30 seconds)
162
+ */
163
+ startStatusPublishing() {
164
+ logger.info("Starting status publishing (every 30 seconds)");
165
+ // Publish immediately on start
166
+ this.publishStatus();
167
+ // Then publish every 30 seconds
168
+ this.statusPublishTimer = setInterval(() => {
169
+ this.publishStatus();
170
+ }, 30000);
171
+ }
172
+ /**
173
+ * Publish connector status
174
+ */
175
+ async publishStatus() {
176
+ try {
177
+ const status = {
178
+ timestamp: new Date().toISOString(),
179
+ locationRef: this.config.locationRef,
180
+ erpType: this.config.erpType,
181
+ natsConnected: this.isConnected(),
182
+ };
183
+ await this.publish(`mm.16.${this.config.locationRef}.status`, status);
184
+ logger.debug("Published connector status");
185
+ }
186
+ catch (error) {
187
+ logger.error("Failed to publish status", { error });
188
+ }
189
+ }
190
+ /**
191
+ * Monitor connection status
192
+ */
193
+ monitorConnection() {
194
+ if (!this.connection)
195
+ return;
196
+ (async () => {
197
+ for await (const status of this.connection.status()) {
198
+ // Only log important events, skip pingTimer
199
+ if (status.type !== "pingTimer") {
200
+ logger.info("NATS connection status", {
201
+ type: status.type,
202
+ data: status.data,
203
+ });
204
+ }
205
+ }
206
+ })();
207
+ }
208
+ /**
209
+ * Setup graceful shutdown
210
+ */
211
+ setupShutdown() {
212
+ const shutdown = async () => {
213
+ logger.info("Shutting down NATS service...");
214
+ await this.disconnect();
215
+ process.exit(0);
216
+ };
217
+ process.on("SIGINT", shutdown);
218
+ process.on("SIGTERM", shutdown);
219
+ }
220
+ /**
221
+ * Disconnect from NATS
222
+ */
223
+ async disconnect() {
224
+ // Stop status publishing
225
+ if (this.statusPublishTimer) {
226
+ clearInterval(this.statusPublishTimer);
227
+ this.statusPublishTimer = null;
228
+ }
229
+ // Close connection
230
+ if (this.connection) {
231
+ await this.connection.drain();
232
+ this.connection = null;
233
+ this.subscriptions.clear();
234
+ logger.info("Disconnected from NATS");
235
+ }
236
+ }
237
+ /**
238
+ * Get the location reference
239
+ */
240
+ getLocationRef() {
241
+ return this.config.locationRef;
242
+ }
243
+ }
244
+ //# sourceMappingURL=nats-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nats-service.js","sourceRoot":"","sources":["../../../src/services/nats-service/nats-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Simple proof-of-concept NATS subscriber
3
+ * Subscribes to mm.16.> and replies with "hello world"
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=test-nats-subscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-nats-subscriber.d.ts","sourceRoot":"","sources":["../../../src/services/nats-service/test-nats-subscriber.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Simple proof-of-concept NATS subscriber
3
+ * Subscribes to mm.16.> and replies with "hello world"
4
+ */
5
+ import { connect, StringCodec } from "nats";
6
+ import { logger } from "../../services/reporting-service/index.js";
7
+ const sc = StringCodec();
8
+ async function startTestSubscriber() {
9
+ try {
10
+ // Connect to NATS server
11
+ const nc = await connect({
12
+ servers: "nats://localhost:4222",
13
+ name: "mm-erp-sdk-test-subscriber",
14
+ });
15
+ logger.info("Connected to NATS server", {
16
+ server: nc.getServer(),
17
+ clientId: nc.info?.client_id,
18
+ });
19
+ // Subscribe to all messages on mm.16.>
20
+ const sub = nc.subscribe("mm.16.>");
21
+ logger.info("Subscribed to mm.16.> - waiting for messages...");
22
+ // Process incoming messages
23
+ (async () => {
24
+ for await (const msg of sub) {
25
+ const data = sc.decode(msg.data);
26
+ logger.info("📨 Received NATS message", {
27
+ subject: msg.subject,
28
+ data: data,
29
+ reply: msg.reply,
30
+ });
31
+ console.log("\n=== NATS MESSAGE RECEIVED ===");
32
+ console.log("Subject:", msg.subject);
33
+ console.log("Data:", data);
34
+ console.log("Reply subject:", msg.reply);
35
+ console.log("============================\n");
36
+ // Reply if there's a reply subject
37
+ if (msg.reply) {
38
+ const replyMessage = JSON.stringify({
39
+ message: "hello world",
40
+ timestamp: new Date().toISOString(),
41
+ receivedSubject: msg.subject,
42
+ receivedData: data,
43
+ });
44
+ msg.respond(sc.encode(replyMessage));
45
+ logger.info("✅ Sent reply: hello world", {
46
+ replySubject: msg.reply,
47
+ });
48
+ console.log("✅ Replied with: hello world\n");
49
+ }
50
+ }
51
+ })();
52
+ // Handle connection events
53
+ (async () => {
54
+ for await (const status of nc.status()) {
55
+ logger.info("NATS connection status", {
56
+ type: status.type,
57
+ data: status.data,
58
+ });
59
+ console.log(`Connection status: ${status.type}`, status.data);
60
+ }
61
+ })();
62
+ // Graceful shutdown
63
+ const shutdown = async () => {
64
+ logger.info("Shutting down NATS subscriber...");
65
+ await nc.drain();
66
+ process.exit(0);
67
+ };
68
+ process.on("SIGINT", shutdown);
69
+ process.on("SIGTERM", shutdown);
70
+ }
71
+ catch (error) {
72
+ logger.error("Failed to connect to NATS", { error });
73
+ console.error("Error connecting to NATS:", error);
74
+ process.exit(1);
75
+ }
76
+ }
77
+ // Start the subscriber
78
+ startTestSubscriber();
79
+ //# sourceMappingURL=test-nats-subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-nats-subscriber.js","sourceRoot":"","sources":["../../../src/services/nats-service/test-nats-subscriber.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"AAyGA,QAAA,MAAM,MAAM,0BAIV,CAAC;AAuGH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,SA8BhE,CAAC;AAQF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"AA4IA,QAAA,MAAM,MAAM,0BAIV,CAAC;AAuGH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,SA8BhE,CAAC;AAKF,eAAe,MAAM,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import { createLogger, format, transports } from "winston";
2
2
  import DailyRotateFile from "winston-daily-rotate-file";
3
3
  import path from "path";
4
- import { getEnvString } from "../../utils/env.js"; // Utility function to get environment variables with default values and validation
5
4
  const logDirectory = "logs";
6
- const initialLogLevel = getEnvString("LOG_LEVEL", "info");
7
- const initialNodeEnv = getEnvString("NODE_ENV", "development");
5
+ const initialLogLevel = process.env.LOG_LEVEL || "info";
8
6
  const LOGGER_ERROR_PREFIX = "[mm-erp-sdk logger]";
9
7
  const serializeLoggerError = (error) => {
10
8
  if (error instanceof Error) {
@@ -44,8 +42,37 @@ const truncateString = (str) => {
44
42
  }
45
43
  return result;
46
44
  };
45
+ /**
46
+ * Safe JSON serializer that handles circular references and extracts meaningful error data
47
+ */
48
+ const safeStringify = (obj, indent = 2) => {
49
+ const seen = new WeakSet();
50
+ return JSON.stringify(obj, (key, value) => {
51
+ // Handle Error objects specially
52
+ if (value instanceof Error) {
53
+ return {
54
+ message: value.message,
55
+ name: value.name,
56
+ stack: value.stack,
57
+ ...(value.constructor.name === 'HTTPError' || value.constructor.name === 'AxiosError' ? {
58
+ status: value.status,
59
+ code: value.code,
60
+ data: value.data,
61
+ } : {}),
62
+ };
63
+ }
64
+ // Handle circular references
65
+ if (typeof value === "object" && value !== null) {
66
+ if (seen.has(value)) {
67
+ return "[Circular]";
68
+ }
69
+ seen.add(value);
70
+ }
71
+ return value;
72
+ }, indent);
73
+ };
47
74
  const baseFormat = format.printf(({ timestamp, level, message, ...rest }) => {
48
- let restString = JSON.stringify(rest, undefined, 2);
75
+ let restString = safeStringify(rest, 2);
49
76
  restString = restString === "{}" ? "" : restString;
50
77
  let formattedMessage;
51
78
  if (typeof message == "string" && message.includes("is already running")) {
@@ -213,8 +240,6 @@ export const configureLogger = (logLevel, nodeEnv) => {
213
240
  // Set the log level
214
241
  logger.level = logLevel;
215
242
  };
216
- // Ensure file logging is configured as soon as the module loads
217
- configureLogger(initialLogLevel, initialNodeEnv);
218
243
  // Add fatal method for Graceful compatibility
219
244
  logger.fatal = (err, meta) => logger.error(err, meta);
220
245
  export default logger;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,6 @@ export interface IERPConnector {
11
11
  readonly type: string;
12
12
  /**
13
13
  * Sync data from the ERP system to MM.
14
- * Timezone expectations:
15
- * - When sending ERP data to MachineMetrics (e.g., via StandardProcessDrivers or MMEntityProcessor),
16
- * connectors MUST convert all datetime fields to ISO-8601 UTC strings (trailing `Z` or explicit offset)
17
- * before invoking SDK helpers. The SDK validates/forwards these values but does not apply timezone shifts.
18
14
  */
19
15
  syncFromERP(): Promise<void>;
20
16
  syncFromERPCompleted(): Promise<void>;
@@ -29,15 +25,12 @@ export interface IERPConnector {
29
25
  retryFailedLaborTickets(): Promise<void>;
30
26
  retryFailedLaborTicketsCompleted(): Promise<void>;
31
27
  /**
32
- * Start the connector. Typically a connector should delegate control to the data-sync-service via runDataSyncService().
28
+ * Start the connector. Typically a connector should delegate control to the data-sync-service.
33
29
  */
34
30
  startUp(): Promise<void>;
35
31
  }
36
32
  /**
37
33
  * Interface for standard process methods that call ERP connectors back to create or update labor tickets.
38
- *
39
- * Timestamp fields on `MMReceiveLaborTicket` objects have already been converted by the SDKfrom MM's
40
- * UTC API responses into the ERP's local timezone, based on the company's timezone setting.
41
34
  */
42
35
  export interface IERPLaborTicketHandler {
43
36
  createLaborTicketInERP(laborTicket: MMReceiveLaborTicket): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -4,5 +4,4 @@
4
4
  */
5
5
  export type { IERPConnector } from "./erp-connector.js";
6
6
  export type { ERPObjType, ERPPagination, ERPResponse, ERPObject, } from "./erp-types.js";
7
- export type { FlattenedWorkOrderRow, FlattenedWorkOrderRowBase, FlattenedWorkOrderPartFields, FlattenedWorkOrderPartOperationFields, FlattenedWorkOrderFields, FlattenedWorkOrderOperationFields, } from "./flattened-work-order.js";
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,qCAAqC,EACrC,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Error formatter utility for standardizing error messages across connectors
3
+ * Extracts human-readable messages from various error types (axios, custom errors, etc.)
4
+ */
5
+ export interface FormattedError {
6
+ message: string;
7
+ code: string;
8
+ httpStatus?: number;
9
+ metadata?: Record<string, any>;
10
+ }
11
+ /**
12
+ * Extract meaningful error message from various error types
13
+ */
14
+ export declare function formatError(error: any): FormattedError;
15
+ /**
16
+ * Format error for logging (shorter, cleaner version)
17
+ */
18
+ export declare function formatErrorForLogging(error: any): string;
19
+ //# sourceMappingURL=error-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,cAAc,CA6CtD;AAkID;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAUxD"}