@friggframework/core 2.0.0-next.85 → 2.0.0-next.86

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.
@@ -28,8 +28,9 @@
28
28
  * const updateMetrics = new UpdateProcessMetrics({ processRepository, websocketService });
29
29
  * await updateMetrics.execute(processId, {
30
30
  * processed: 100,
31
- * success: 95,
31
+ * success: 92,
32
32
  * errors: 5,
33
+ * skipped: 3,
33
34
  * errorDetails: [{ contactId: 'abc', error: 'Missing email', timestamp: '...' }]
34
35
  * });
35
36
  */
@@ -54,6 +55,11 @@ class UpdateProcessMetrics {
54
55
  * @param {number} [metricsUpdate.processed=0] - Records processed in this batch
55
56
  * @param {number} [metricsUpdate.success=0] - Successful records
56
57
  * @param {number} [metricsUpdate.errors=0] - Failed records
58
+ * @param {number} [metricsUpdate.skipped=0] - Intentionally-skipped
59
+ * records (hash-match, dedupe, loop protection, etc.). Increments
60
+ * `results.aggregateData.totalSkipped`. Distinct from errors so the
61
+ * UI can show `processed = synced + failed + skipped` without
62
+ * conflating intentional skips with failures.
57
63
  * @param {Array} [metricsUpdate.errorDetails=[]] - Error details array
58
64
  * @returns {Promise<Object>} Updated process record
59
65
  * @throws {Error} If process not found or update fails
@@ -71,9 +77,11 @@ class UpdateProcessMetrics {
71
77
  const processed = metricsUpdate.processed || 0;
72
78
  const success = metricsUpdate.success || 0;
73
79
  const errors = metricsUpdate.errors || 0;
80
+ const skipped = metricsUpdate.skipped || 0;
74
81
  if (processed) increment['context.processedRecords'] = processed;
75
82
  if (success) increment['results.aggregateData.totalSynced'] = success;
76
83
  if (errors) increment['results.aggregateData.totalFailed'] = errors;
84
+ if (skipped) increment['results.aggregateData.totalSkipped'] = skipped;
77
85
 
78
86
  const pushSlice = {};
79
87
  if (
@@ -191,6 +199,7 @@ class UpdateProcessMetrics {
191
199
  total: context.totalRecords || 0,
192
200
  successCount: aggregateData.totalSynced || 0,
193
201
  errorCount: aggregateData.totalFailed || 0,
202
+ skippedCount: aggregateData.totalSkipped || 0,
194
203
  recordsPerSecond: aggregateData.recordsPerSecond || 0,
195
204
  estimatedCompletion: context.estimatedCompletion || null,
196
205
  timestamp: new Date().toISOString(),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@friggframework/core",
3
3
  "prettier": "@friggframework/prettier-config",
4
- "version": "2.0.0-next.85",
4
+ "version": "2.0.0-next.86",
5
5
  "dependencies": {
6
6
  "@aws-sdk/client-apigatewaymanagementapi": "^3.588.0",
7
7
  "@aws-sdk/client-kms": "^3.588.0",
@@ -38,9 +38,9 @@
38
38
  }
39
39
  },
40
40
  "devDependencies": {
41
- "@friggframework/eslint-config": "2.0.0-next.85",
42
- "@friggframework/prettier-config": "2.0.0-next.85",
43
- "@friggframework/test": "2.0.0-next.85",
41
+ "@friggframework/eslint-config": "2.0.0-next.86",
42
+ "@friggframework/prettier-config": "2.0.0-next.86",
43
+ "@friggframework/test": "2.0.0-next.86",
44
44
  "@prisma/client": "^6.17.0",
45
45
  "@types/lodash": "4.17.15",
46
46
  "@typescript-eslint/eslint-plugin": "^8.0.0",
@@ -80,5 +80,5 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "gitHead": "707cad86e779677700e84a9349791aca8db83348"
83
+ "gitHead": "8862a43e3aa4be518fa1b35da41b76129b617a2e"
84
84
  }